This commit is contained in:
Miloslav Ciz 2022-04-27 21:13:55 +02:00
parent 617f178d0c
commit 02b2c56764
7 changed files with 89 additions and 6 deletions

View file

@ -26,6 +26,10 @@ By 1800 Alessandro Volta invented an **electric battery**. In 1827 André-Marie
In 1822 [Charles Babbage](charles_babbage.md), a great English mathematician, completed the first version of a manually powered **[digital](digital.md) mechanical computer** called the Difference Engine to help with the computation of [polynomial](polynomial.md) [derivatives](derivative.md) to create mathematical tables used e.g. in navigation. It was met with success and further development was funded by the government, however difficulties of the construction led to never finishing the whole project. In 1837 Babbage designed a new machine, this time a **[Turing complete](turing_complete.md) general purpose computer**, i.e. allowing for programming with branches and loops, a true marvel of technology. It also ended up not being built completely, but it showed a lot about what computers would be, e.g. it had an [assembly](assembly.md)-like programming language, memory etc. For this computer [Ada Lovelace](ada_lovelace.md) would famously write the Bernoulli number algorithm.
**Sound recording** with phonatograph was invented in 1857 in Paris, however it could not be played back at the time -- the first record of human voice made with this technology can nowadays be reconstructed and played back. It wouldn't be until 1878 when people could both record and play back sounds with [Edison](edison.md)'s improvement of phonatograph. A year later, in 1879, Edison also patented the **light bulb**, even though he didn't invent it -- there were at least 20 people who created a light bulb before him.
Around 1888 so called **war of the currents** was taking place; it was a heated battle between companies and inventors for whether the [alternating](ac.md) or [direct](dc.md) current would become the standard for distribution of electric energy. The main actors were [Thomas Edison](edison.md), a famous iventor and a huge capitalist dick rooting for DC, and George Westinghouse, the promoter of AC. Edison and his friends used false claims and even killing of animals to show that AC was wrong and dangerous, however AC was objectively better, e.g. by its efficiency thanks to using high voltage, and so it ended up winning the war. AC was also supported by the famous genius inventor [Nikola Tesla](tesla.md) who during these times contributed hugely to electric engineering, he e.g. invented an AC motor and Tesla coil and created a system for wireless transmission of electric power.
1895 can roughly be seen as the year of **invention of radio**, specifically wireless [telegraph](telegraph.md), by Italian engineer and inventor Guglielmo Marconi. He built on top of work of others such as [Hertz](hertz.md) and [Tesla](tesla.md) and created a device with which he was able to wirelessly ring a bell at a distance over 2 km.
On December 17 1903 the Wright brothers famously performed the **first controlled flight of a motor airplane** which they built, in North Carolina. In repeated attempts they flew as far as 61 meters over just a few seconds.
@ -34,11 +38,12 @@ Around 1915 [Albert Einstein](einstein.md), a German physicist, completed his **
Int 1907 Lee De Forest invented a practically usable **[vacuum tube](vacuum_tube.md)**, an extremely important part usable in electric devices for example as an amplifier or a switch -- this would enable construction of radios, telephones and later even primitive computers. The invention would lead to the [electronic](electronics.md) revolution.
In 1924 about 50% of US households own a car.
October 22 1925 has seen the invention of **[transistor](transistor.md)** by Julius Lilienfeld (Austria-Hungary), a component that would replace vacuum tubes thanks to its better properties, and which would become probably the most essential part of computers. At the time the invention didn't see much attention, it would only become relevant decades later.
In 1826 or 1827 French inventor Nicéphore Niépce captured **first [photography](photo.md)** that survived until today -- a view from his estate named Le Gras. About an 8 hour exposure was used (some say it may have taken several days). He used a [camera obscura](camera_obscura.md) and asphalt plate that hardened where the light was shining. Earlier cases of photography existed maybe as early as 1717, but they were only short lived.
In 1931 [Kurt Gödel](kurt_godel.md), a genius mathematician and logician from Austria-Hunagry (nowadays Czech Republic), published revolutionary papers with his [incompleteness theorems](incompleteness.md) which proved that, simply put, mathematics has fundamental limits and "can't prove everything". This led to [Alan Turing](turing.md)'s publications in 1936 that nowadays stand as the **foundations of [computer science](compsci.md)** -- he introduced a theoretical computer called the **[Turing machine](turing_machine.md)** and with it he proved that computers, no matter how powerful, will never be able to "compute everything". Turing also predicted the importance of computers in the future and has created several [algorithms](algorithm.md) for future computers (such as a [chess](chess.md) playing program).
In 1938 [Konrad Zuse](konrad_zuse.md), a German engineer, constructed **[Z1](z1.md), the first working electric mechanical [digital](digital.md) partially programmable computer** in his parents' house. It weighted about a ton and wasn't very reliable, but brought huge innovation nevertheless. It was programmed with punched film tapes, however programming was limited, it was NOT [Turing complete](turing_complete.md) and there were only 8 instructions. Z1 ran on a frequency of 1 to 4 Hz and most operations took several clock cycles. It had a 16 word memory and worked with [floating point](float.md) numbers. The original computer was destroyed during the war but it was rebuilt and nowadays can be seen in a Berlin museum.
@ -53,6 +58,10 @@ Shortly after, on 29 October 1969, another historical event would happen that co
In 1983 **[Richard Stallman](rms.md) announced his [GNU](gnu.md) project and invented [free (as in freedom) software](free_software.md)**, a kind of software that is freely shared and developed by the people so as to respect the users' freedom. This kind of ethical software stands opposed to the [proprietary](proprietary.md) corporate software, it would lead to creation of some of the most important software and to a whole revolution in software development and its licensing, it would spark the creation of other movements striving for keeping ethics in the information age.
August 12 1981 would see the released of **[IBM PC](ibm_pc.md)**, a person computer based on open, modular architecture that would immediately be very successful and would become the [de-facto standard](de_facto_standard.md) of personal computers. IBM PC was the first of the kind of desktop computers we have today. It had 4.77 MHz [Intel 8088](intel.md) CPU, 16 kB of [RAM](ram.md) and used 5.25" [floppy disks](floppy.md).
On November 20 1985 the first version of **[Windows](windows.md) operating system** was sadly released by [Microsoft](microsoft.md). These systems would become the mainstream desktop operating systems despite their horrible design and they would unfortunately establish so called [Windows philosophy](windows_philosophy.md) that would irreversibly corrupt other mainstream technology.
At the beginning of 1991 [Tim Berners-Lee](berners_lee.md) created the **[World Wide Web](www.md)**, a network of interlinked pages on the Internet. This marks another huge step in the Internet revolution, the Web would become the primary Internet service and the greatest software platform for publishing any kind of information faster and cheaper than ever before. It is what would popularize the Internet and bring it to the masses.
On 25 August 1991 **[Linus Torvalds](linus_torvalds.md) announced [Linux](linux.md)**, his project for a completely free as in freedom Unix-like [operating system](os.md). Linux would become part of [GNU](gnu.md) and later one of the biggest and most successful software projects in history. It would end up powering Internet servers and supercomputers as well as desktop computers of a great number of users. Linux proved that free software works and surpasses proprietary systems.

9
information.md Normal file
View file

@ -0,0 +1,9 @@
# Information
*Information wants to be free.*
Information is knowledge that can be used for making decisions. Information is interpreted [data](data.md), i.e. while data itself may not give us any information, e.g. if they're encrypted and we don't know the key or if we simply don't know what the data signifies, information emerges once we make sense of the data. Information is contained in books, on the [Internet](internet.md), in nature, and we access it through our senses. [Computers](computer.md) can be seen as machines for processing information and since the computer revolution information has become the focus of our society; we often encounter terms such as [information technology](it.md), informatics, information war etc. [Information theory](information_theory.md) is a [scientific field](science.md) studying information.
**Information wants to be free**, i.e. it is free naturally unless we decide to limit its spread with [shit](shit.md) like [intellectual property](intellectual_property.md) laws. What does "free" mean? It is the miraculous property of information that allows us to duplicate information basically without any cost. Once we have certain information, we may share it with others without having to give up our own knowledge of the information. A file on a computer can be copied to another computer without deleting the file on the original computer. This is unlike with physical products which if we give to someone, we lose them ourselves. Imagine if you could make a piece of bread and then duplicate it infinitely for the whole world -- information works like this! We see it as a crime to want to restrict such a miracle. We may also very nicely store information in our heads. For all this information is [beautiful](beauty.md). It is sometimes discussed whether information is created or discovered -- if a mathematician invents an equation, is it his creation or simply his discovery of something that belongs to the nature? This question isn't so important because whatever terms we use, we at [LRS](lrs.md) decide to create, spread and freely share information without limiting it in any way.
In [computer science](compsci.md) the basic unit of information amount is 1 **[bit](bit.md)** (for *binary digit*), also known as [shannon](shannon.md). It represents a choice of two possible options, for example an answer to a *yes/no* question, or one of two [binary](binary.md) digits: 0 or 1. From this we derive higher units such as [bytes](byte.md) (8 bits), [kilobytes](memory_units.md) (1000 bytes) etc. Other units of information include [nat](nat.md) or [hart](hart.md). With enough bits we can encode any information including text, sounds and images. For this we invent various [formats](file_format.md) and encodings with different properties: some encodings may for example contain [redundant](redundancy.md) data to ensure the encoded information is preserved even if the data is partially lost. Some encodings may try to hide the contained information (see [encryption](encryption.md), [obfuscation](obfuscation.md), [steganography](steganography.md)). For processing information we create [algorithms](algorithm.md). We store information in computer [memory](memory.md) or on storage media such as [CDs](cd.md), or with traditional potentially [analog](analog.md) media such as photographs or books. The opposite measure of information is **[entropy](entropy.md)**; it is measured in same units but says how much information is missing rather than what is present.

View file

@ -34,6 +34,7 @@ If you don't know where to start, here are some suggestions. If you're new, the
- [capitalist software](capitalist_software.md)
- [C tutorial](c_tutorial.md)
- [pseudoleft](pseudoleft.md)
- [history](history.md)
And if you just want something more obscure and [fun](fun.md), check out these:

View file

@ -2,11 +2,13 @@
{ Remember that racism, i.e. hatred and oppression of a race as a whole is wrong, as is any other kind of hatred and oppression against living beings. Telling the truth without censorship, using politically incorrect terms and acknowledging differences between people is however not racism in itself, despite what modern propaganda tells you. Keep this in mind when reading this article. ~drummyfish }
Races of people are very large, loosely defined groups of genetically similar people. This topic is nowadays forbidden to be discussed and researched in [science](science.md), however there exists a number of older research and some things are just obvious.
Races of people are very large, loosely defined groups of genetically similar people. Races differ by their look and in physical, mental and cultural aspects. This topic is nowadays forbidden to be discussed and researched in "[science](soyence.md)", however there exists a number of older research and some things are just obvious.
In relation to [technology](tech.md)/[math](math.md)/[science](science.md) it is useful to know the differences in intellect between different races, though cultural and other traits linked to races may also play a big role. It is important to keep in mind intelligence isn't one dimensional, it's one of the most complex and complicated concepts we can be dealing with (remember the famous Chimp test that revealed that chimpanzees greatly outperform humans at certain intellectual tasks). We can't simplify to a single measure such as [IQ](iq.md). Let intelligence here mean simply the ability to perform well in the area of our art.
There is a controversial 1994 book called *The Bell Curve* that deals with differences between races. An online resource with a lot of information is e.g. http://www.humanbiologicaldiversity.com/.
The smartest races in this regard seem to be [Jews](jew.md) and [Asians](asian.md), closely followed by the general white race. There is no question about the intelligence of Jews, the greatest thinkers of all times were Jewish ([Richard Stallman](rms.md), [Einstein](einstein.md), [Marx](marx.md), [Chomsky](chomsky.md), ...). The African black race (the *negro* race) is decisively the lease intelligent -- this makes a lot of sense, the race has been oppressed for centuries and didn't get much chance to evolve towards good performance in intellectual tasks, quite the opposite, those who were physically fit were probably more likely to survive and reproduce as slaves. 1892 book *Hereditary Genius* says that the black race is *about two grades* below the white race (nowadays the gap will most likely be lower). There isn't so much info about other races such as the red race or Eskimos, but they're probably similarly intelligent to the black race (The above mentioned book *Hereditary Genius* gives an intelligence of the Australian race *at least one grade below that of the negro*). The brown races are kind of complicated, the Indian people showed a great intellectual potential, e.g. in [chess](chess.md), [math](math.md), philosophy (nonviolence inherently connected to India is the most intellectually advanced philosophy), and lately also [computer science](compsci.md) (even though many would argue that "[pajeets](pajeet.md)" are just trained coding monkeys).
In relation to [technology](tech.md)/[math](math.md)/[science](science.md) it is useful to know the differences in intellect between different races, though cultural and other traits linked to races may also play a big role. It is important to keep in mind intelligence isn't one dimensional, it's one of the most complex and complicated concepts we can be dealing with (remember the famous Chimp test that revealed that chimpanzees greatly outperform humans at certain intellectual tasks). We can't simplify to a single measure such as [IQ](iq.md). Let intelligence here mean simply the ability to perform well in the area of our art. And of course, there are smart and stupid people in any race, the general statements we make are just about statistics and probabilities.
The smartest races in this regard seem to be [Jews](jew.md) and [Asians](asian.md), closely followed by the general white race. There is no question about the intelligence of Jews, the greatest thinkers of all times were Jewish ([Richard Stallman](rms.md), [Einstein](einstein.md), [Marx](marx.md), [Chomsky](chomsky.md), even [Jesus](jesus.md) and others). Jews seem to have a very creative intelligence while Asians are more mechanically inclined, they can learn a skill and bring it to perfection with an extremely deep study and dedication. The African black race (in older literature known as the *negro*) is decisively the least intelligent -- this makes a lot of sense, the race has been oppressed for centuries and didn't get much chance to evolve towards good performance in intellectual tasks, quite the opposite, those who were physically fit rather than smart were probably more likely to survive and reproduce as slaves. 1892 book *Hereditary Genius* says that the black race is *about two grades* below the white race (nowadays the gap will most likely be lower). There isn't so much info about other races such as the red race or Eskimos, but they're probably similarly intelligent to the black race (The above mentioned book *Hereditary Genius* gives an intelligence of the Australian race *at least one grade below that of the negro*). The brown races are kind of complicated, the Indian people showed a great intellectual potential, e.g. in [chess](chess.md), [math](math.md), philosophy (nonviolence inherently connected to India is the most intellectually advanced philosophy), and lately also [computer science](compsci.md) (even though many would argue that "[pajeets](pajeet.md)" are just trained coding monkeys).
Increasing multiculturalism and mixing of the races will likely make all of this less and less relevant.

42
saf.md
View file

@ -2,4 +2,44 @@
TODO
The repository is available at https://codeberg.org/drummyfish/SAF.
The repository is available at https://codeberg.org/drummyfish/SAF.
```
Minigames
________________________________________________________________
| |
| , ,, ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ''' ''' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ''; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;;;;;;;;;;;;;;;;;;|
| ;;;;;;;; ;;;;|
| ;;;;;;;; ;;;;|
| ;;;;;;;; ;;;;;;;;;;;; ;;;;|
| ;;;;;;;; ;;;;;;;;;;;; ;;;;|
| |
----------------------------------------------------------------
```
*screenshot of SAF minigames running in terminal with [ncurses](ncurses.md)*

View file

@ -6,4 +6,4 @@ For example the amount and aggressiveness of brainwashing [ads](ad.md) and techn
The technique of slowly boiling the frog is used by [corporations](corporation.md), [governments](government.md), fascists and idiots to slowly take away people's freedom in small steps: each step takes away a bit of freedom while promising some reward, normally in form of additional comfort -- normal people are too braindead to see the obvious trick and are enthusiastic about the change. If you tell them that giving up [net neutrality](net_neutrality.md) or [P2P](p2p.md) encryption will eventually lead to almost complete loss of freedom, they label you a [tinfoil](tinfoil.md) or "conspiracy theorist", they tell you that "it's not a big deal". So it will go on with other and other changes and the normie is still happy because he can only see one step ahead or behind. The bad thing is that it's not only the normie who will suffer --in fact he may even be happy as a slave robot of the system -- but you will suffer as well. Normies decide the future of the environment we all have to live in.
Slowly boiling the frog works very well when spanning several generations because a new generation won't remember that things used to be better. Parents can tell them but young never listen to older generations, or take it seriously. A [zooomer](genz.md) won't remember that computers used to be better, he thinks that [bloated](bloat.md) phones filled with [ads](ad.md) and [DRM](drm.md) that don't work without Internet connection and that spy on you constantly are the only way of technology.
Slowly boiling the frog works very well when spanning several generations because a new generation won't remember that things used to be better. Parents can tell them but young never listen to older generations, or take them seriously. A [zooomer](genz.md) won't remember that computers used to be better, he thinks that [bloated](bloat.md) phones filled with [ads](ad.md) and [DRM](drm.md) that don't work without Internet connection and that spy on you constantly are the only way of technology.

22
sorting.md Normal file
View file

@ -0,0 +1,22 @@
# Sorting
Sorting means rearranging a sequence, such as a [list](list.md) of numbers, so that the elements are put in a specific order (e.g. ascending or descending). In [computer science](compsci.md) sorting is quite a wide topic, there are dozens of sorting [algorithms](algorithm.md), each with pros and cons and different attributes are being studied, e.g. the algorithm's [time complexity](time_complexity.md), its stability etc. Sorting algorithms are a favorite subject of programming classes as they provide a good exercise for programming and analysis of algorithms and can be nicely put on tests :)
Some famous sorting algorithms include [bubble sort](bubble_sort.md) (a simple KISS algorithm), [quick](quick_sort.md) and [merge](merge_sort.md) sort (some of the fastest algorithms) and [stupid sort](bogosort.md) (just tries different [permutations](permutation.md) until it hits the jackpot).
In practice however we oftentimes end up using some of the simplest sorting algorithms (such as [bubble sort](bubble_sort.md)) anyway, unless we're programming a database or otherwise dealing with enormous amounts of data. If we need to sort just a few hundred of items and/or the sorting doesn't occur very often, a simple algorithm does the job well, sometimes even faster due to a potential initial overhead of a very complex algorithm. So always consider the [KISS](kiss.md) approach first.
Attributes of sorting algorithms we're generally interested in are the following:
- **[time](time_complexity.md) and [space](space_complexity.md) complexity**: Time and space complexity hints on how fast the algorithm will run and how much memory it will need, specifically we're interested in the **best, worst and average case** depending on the length of the input sequence. Indeed we ideally want the fastest algorithm, but it has to be known that a better time complexity doesn't have to imply a faster run time in practice, especially with shorter sequences. An algorithm that's extremely fast in best case scenario may be extremely slow in non-ideal cases. With memory, we are often interested whether the algorithm works **in place**; such an algorithm only needs a constant amount of memory in addition to the memory that the sorted sequence takes, i.e. the sequence is sorted in the memory where it resides.
- **implementation complexity**: A simple algorithm is better if it's [good enough](good_enough.md). It may lead to e.g. smaller code size which may be a factor e.g. in [embedded](embedded.md).
- **stability**: A stable sorting algorithm preserves the order of the elements that are considered equal. With pure numbers this of course doesn't matter, but if we're sorting more complex data structures (e.g. sorting records about people by their names), this attribute may become important.
- **comparative vs non-comparative**: A comparative sort only requires a single operation that compares any two elements and says which one has a higher value -- such an algorithm is general and can be used for sorting any data, but its time complexity of the average case can't be better than *O(n * log(n))*. Non-comparison sorts can be faster as they may take advantage of other possible integer operations.
- **[recursion](recursion.md) and [parallelism](parallel.md)**: Some algorithms are recursive in nature, some are not. Some algorithms can be parallelised e.g. with a [GPU](gpu.md) which will greatly increase their speed.
- **other**: There may be other specific, e.g. some algorithms are are slow if sorting an already sorted sequence (which is addressed by *adaptive* sorting), so we may have to also consider the nature of data we'll be sorting. Other times we may be interested e.g. in what machine instructions the algorithm will compile to etc.
In practice not only the algorithm but also its implementation matters. For example if we have a sequence of very large data structures to sort, we may want to avoid physically rearranging these structures in memory, this could be slow. In such case we may want to use **indirect sorting**: we create an additional list whose elements are indices to the main sequence, and we only sort this list of indices.
## List Of Sorting Algorithms
TODO