master
Miloslav Ciz 4 months ago
parent cfd02a8acf
commit 6e779ad9b4

@ -1,9 +1,13 @@
# Data Structure
Data structure refers to a any specific way in which [data](data.md) is organized in computer memory. A specific data structure describes such things as order, relationships (interconnection, hierarchy, ...), formats and [types](data_type.md) of parts of the data. [Programming](programming.md) is sometimes seen as consisting mainly of two things: design of [algorithms](algorithm.md) and data structures these algorithm work with.
*Not to be confused with [data type](data_type.md).*
Data structure refers to a any specific way in which [data](data.md) is organized in computer memory, which often comes with associated efficient operations on such data. A specific data structure describes such things as order, relationships (interconnection, hierarchy, ...), helper values ([checksum](checksum.md), [indices](index.md), ...), formats and [types](data_type.md) of parts of the data. [Programming](programming.md) is sometimes seen as consisting mainly of two things: design of [algorithms](algorithm.md) and data structures these algorithm work with.
As a programmer dealing with a specific problem you oftentimes have a choice of multiple data structures -- choosing the right one is essential for performance and efficiency of your program. As with everything, each data structure has advantages and also its downsides; some are faster, some take less memory etc. For example for a searchable database of text string we can be choosing between a [binary tree](binary_tree.md) and a [hash table](hash_table.md); hash table offers theoretically much faster search, but binary trees may be more memory efficient and offer many other efficient operations like range search and sorting (which hash tables can do but very inefficiently).
**What's the difference between data structure and (a potentially structured/complex) [data type](data_type.md)?** This can be tricky, in some specific cases the terms may even be interchanged without committing an error, but there is an important difference -- data structure is a PHYSICAL ORGANIZATION of data and though it's often associated with operations and algorithms (e.g. a binary tree comes with a natural search algorithm), the stress is on the layout of data in memory; on the other hand data type can be seen as a more abstract term defined by a SET OF ALLOWED VALUES and OPERATIONS on those values, usually without paying much attention to how those values and operations internally work, although in practice of course we rarely ignore this and often talk about a data type as being connected to specific data structure, which may be where the confusion comes from (also `struct` is a name of a data type in some languages, something potentially confusing as well). For example an ASCII text string is a data type, its set of values are all possible sequences of ASCII symbols and operations it allows are e.g. concatenation, substring search, substring replacement etc. This specific data type can be internally implemented differently, though one of the most natural ways is a "zero terminated string", i.e. [array](array.md) of values that always ends with value zero -- this is A DATA STRUCTURE. Because string, a data type, and zero terminated string (an array of values) are so closely connected, we may sometimes hear a *string* being called both a data type and data structure. However consider another example: a [dictionary](dictionary.md) -- this is a DATA TYPE, very frequently used e.g. in [Python](python.md), which allows storage of pairs of values; again dictionary itself is a data type defining only "how it behaves on the outside", but it can be implemented in several ways, for example with [trees](tree.md), [hash tables](hash_table.md) or [arrays](array.md), i.e. different DATA STRUCTURES. Different Python implementations will all offer the same dictionary data type but may use a different underlying data structure for it.
## Specific Data Structures
These are just some common ones:
@ -22,9 +26,11 @@ These are just some common ones:
- [N-ary tree](nary_tree.md)
- [record](record.md)
- [stack](stack.md)
- [string](string.md)
- zero terminated [string](string.md)
- [tree](tree.md)
- [tuple](tuple.md)
- [queue](queue.md)
- ...
## See Also

@ -1,4 +1,4 @@
# Welcome to the Island!
# Welcome To The Island!
This is the freedom island where [we](less_retarded_society.md) live! It has [no owner](free_universe.md). Feel free to take off your clothes, we don't wear them here. You can build your house on any free spot. Planting trees and making landscape works are allowed too. Basically we have [no laws](anarchism.md).

@ -2,10 +2,31 @@
JavaScript (not to be confused with completely unrelated [Java](java.md) language) is a [bloated](bloat.md) [programming language](programming_language.md) used mainly on the [web](www.md).
TODO: some more shit
TODO
```
"11" + 1 // "111"
"11" - 1 // 10
```
```
Here is how to **make your page work only with JavaScript turned off**:
```
<html>
<head>
<script>
function nuke() { document.body.innerHTML = "<p>disable JavaScript to view this page</p>"; }
</script>
</head>
<body onload="nuke()">
<h1> My awesome page </h1>
<p> My awesome page text :) </p>
</body>
</html>
```
{ NOTE: Remember that normally breaking compatibility on purpose is probably bad, it shouldn't be done seriously (don't waste effort on breaking something, rather make something nice, also censorship is always bad), but it's a nice [troll](troll.md) :D Don't forget to have fun sometimes. ~drummyfish }

@ -66,19 +66,19 @@ Besides others gears/wheels can be used to:
| _|||____{ o }____;-; |
| '-;-. { o } |
|_____________ { o } _'-'__|
'-'
'-'
1
0 1
__ ,-, ___ ,-, ______
| { o } { o }-, |
| ,;-' ,-, '-{ o } |
| _|||__{ o }____;-; |
| '-' .-.{ o } |
|___________ { o }'-'_____|
'-'
0
__ ,-, ___ ,-, _______
| { o } { o },-, |
| ,;-' ,-, '-'{ o } |
| _|||__{ o }_____;-; |
| '-' .-{ o } |
|_____________ { o }-'_____|
'-'
0
```
*NXOR (equality) gate implemented with gears (counterclockwise/clockwise rotation mean 1/0); the bottom gear rotates counterclockwise only if the both input gears rotate in the same direction.*
@ -197,6 +197,6 @@ Whether the use of fluids/gases (water, air, steam, maybe even sand, ...) is sti
### Other
Don't forget there exist many other possible components and concepts a mechanical computer can internally use -- many things we leave out above for the questionability of their practical usability can be used to in fact carry out computation, for example dominoes or slinkies. Furthermore many actually useful things exist, e.g. teethed **cylinders/disks** may be used to record plots of data over time or to store and deliver read/only data (e.g. the program instructions) easily, see music boxes and gramophones; **[punch card](punch_card.md)** have widely been used for storing read-only data too. Sometimes deformed cylinders were used as an analog **2D [look up table](lut.md)** for some mathematical [function](function.md) -- imagine e.g. a device that has input *x* (rotating cylinder along its axis) and *y* (shifting it left/right); the cylinder can then at each surface point record function *f(x,y)* by its width which will in turn displace some stick that will mark the function value on a scale. To transfer movement **strings, chains and belts** may also be used. [Random number generation](rng.md) may be implemented e.g. with [Galton board](galton_board.md). If timing is needed, pendulums can be used just like in clock. Some mechanical computers even use pretty complex parts such as mechanical arms, but these are firstly hard to make and secondly prone to breaking, so try to avoid complexity as much as possible.
Don't forget there exist many other possible components and concepts a mechanical computer can internally use -- many things we leave out above for the questionability of their practical usability can be used to in fact carry out computation, for example dominoes or slinkies. Furthermore many actually useful things exist, e.g. teethed **cylinders/disks** may be used to record plots of data over time or to store and deliver read/only data (e.g. the program instructions) easily, see music boxes and gramophones; **[punch card](punch_card.md)** have widely been used for storing read-only data too. Sometimes deformed cylinders were used as an analog **2D [look up table](lut.md)** for some mathematical [function](function.md) -- imagine e.g. a device that has input *x* (rotating cylinder along its axis) and *y* (shifting it left/right); the cylinder can then at each surface point record function *f(x,y)* by its width which will in turn displace some stick that will mark the function value on a scale. To transfer movement **strings, chains and belts** may also be used. [Random number generation](rng.md) may be implemented e.g. with [Galton board](galton_board.md). If timing is needed, pendulums can be used just like in clock. Some mechanical computers even use pretty complex parts such as mechanical arms, but these are firstly hard to make and secondly prone to breaking, so try to avoid complexity as much as possible. Some old mechanical calculators worked by requiring the user to plug a stick into some hole (e.g. number he wanted to add) and then manually trace some path -- this can work on the same principle as e.g. the marble computer, but without needing the marbles complexity and size are drastically reduced.
BONUS THOUGHT: We have gotten so much used to using our current electronic digital computers for everything that sometimes we forget that at simulating actual physical reality they may still fail (or just be very overcomplicated) compared to a mechanical simulation which USES the physical reality itself; for example to make a simulation of a tsunami wave it may be more accurate to build an actual small model of a city and flood it with water than to make a computer simulation. That's why aerodynamic tunnels are still a thing. Ancient NASA flight simulators of space ships did use some electronics, but they did not use computer graphics to render the view from the ship, instead they used a screen projecting view from a tiny camera controlled by the simulator, moving inside a tiny environment, which basically achieved photorealistic graphics. Ideas like these may come in handy when designing mechanical computers as simulating reality is often what we want to do with the computer; for example if we want to model a [sine](sin.md) function, we don't have to go through the pain of implementing binary logic and performing iterative calculation of sine approximation, we may simply use a pendulum whose swinging draws the function simply and precisely.

@ -6,7 +6,7 @@ Races of people are very large, loosely defined groups of genetically similar (r
Instead of the word *race* the politically correct camp uses words such as *ethnicity* -- it's funny, sometimes they say no such thing as race exists but other times they simply have to operate with the fact that people are genetically diverse, e.g. when they accuse others of [racism](racism.md) or point out statistics that benefit them ("black people are paid less!"), as existence of discrimination based on differences between people necessarily implies the existence of differences between people -- so here they try to substitute the word *race* for a different word so as to make their self-contradiction less obvious. Anyway, it doesn't [work](work.md) :) Races indeed do exit, no matter what we call them.
**Race can be told from the shape of the skull and one's [DNA](dna.md)**, which finds use e.g. in forensics to help solve crimes. It is officially called the *ancestry estimation*. Some idiots say this should be forbidden to do because it's "racist" lmao. Besides the obvious visual difference such as skin color **races also have completely measurable differences acknowledged even by modern "science"**, for example unlike other races about 90% of Asians have dry earwax. Similar absolutely measurable differences exist in height, body odor, alcohol and lactose tolerance, high altitude tolerance, vulnerability to specific diseases, hair structure, cold tolerance, risk of obesity, behavior (see e.g. the infamous *[chimp out](chimp_out.md)* behavior of black people) and others. It is known for a fact that Sherpas are greatly accustomed to living in high altitudes, that's why they work as helpers for people climbing mt. Everest, they can just do it much easily than other races. While dryness of earwax is really a minor curiosity, it is completely unreasonable to believe that race differences stop at traits we humans find unimportant and that genetics somehow magically avoids affecting traits that are harder to measure and which our current society deems politically incorrect to exist. In fact differences in important areas such as intelligence were measured very well -- these are however either censored or declared incorrect and "debunked" by unquestionable "science" authorities, because politics.
**Race can be told from the shape of the skull and one's [DNA](dna.md)**, which finds use e.g. in forensics to help solve crimes. It is officially called the *ancestry estimation*. Some idiots say this should be forbidden to do because it's "racist" lmao. Besides the obvious visual difference such as skin color **races also have completely measurable differences acknowledged even by modern "science"**, for example unlike other races about 90% of Asians have dry earwax, Asians also have highest bone density, Huaorani tribe has flat feet, blood type distributions are wildly different between races, people near the equator have measurably smaller eyeballs than those very far north, even distribution of genes associated with specific behavior was measured to differ between races. Similar absolutely measurable differences exist in height, body odor, alcohol and lactose tolerance, high altitude tolerance, vulnerability to specific diseases, hair structure, cold tolerance, risk of obesity, behavior (see e.g. the infamous *[chimp out](chimp_out.md)* behavior of black people) and others. It is known for a fact that Sherpas are greatly accustomed to living in high altitudes, that's why they work as helpers for people climbing mt. Everest, they can just do it much easier than other races. While dryness of earwax is really a minor curiosity, it is completely unreasonable to believe that race differences stop at traits we humans find "controversial" and that genetics somehow magically avoids affecting traits that are harder to measure and which our current society deems politically incorrect to exist. In fact differences in important areas such as intelligence were measured very well -- these are however either censored or declared incorrect and "debunked" by unquestionable "science" authorities, because politics.
Pseudoleft uses cheap, logically faulty arguments to deny the existence of race; for example that there are no clear objective boundaries between races -- of course there are not, but how does that imply nonexistence of race? The same argument could also be given even e.g. for the term *species* (see e.g. ring species in which the boundaries are not clear) so as to invalidate it; yet we see no one doubting the existence of various species of animals. That's like saying that color doesn't exist because given any two distinct colors there exists a gradual transition, or that [music](music.md) and noise are the same thing because objectively no clear line can be drawn between them. If by this argument races don't exist, then movie genres also don't exist.
@ -18,7 +18,7 @@ Denying the facts regarding human race is called **[race denialism](race_deniali
**What races are there?** That depends on definitions, the boundaries between races are [fuzzy](fuzzy.md) and the lines can be drawn differently. The traditional, most general division still found in the greatest 1990s encyclopedias is to three large groups: **Caucasoid** (white), **Negroid** (black) and **Mongoloid** (yellow). These can be further subdivided. Some go as far as calling different nations separate races (e.g. the Norwegian race, Russian race etc.), thought that may be a bit of a stretch. One of the first scientific divisions of people into races was done by Francois Bernier in *New Division of the Earth by the Different Species or "Races" of Man that Inhabit It* into Europeans, Asians, Africans and Sami (north Europe), based on skin color, hair color, height and shape of face, nose and eyes.
There is a controversial 1994 book called *The Bell Curve* that deals with differences in intelligence between races (later followed by other books such as *The Global Bell Curve* trying to examine the situation world-wide). [SJWs](sjw.md) indeed tried to attack it, however international experts on intelligence agree the book is correct in saying average intelligence between races differs (see e.g. [The Wall Street Journal's Mainstream Science on Intelligence](https://web.archive.org/web/20120716184838/http://www.lrainc.com/swtaboo/taboos/wsj_main.html)). An online resource with a lot of information on racial differences is e.g. http://www.humanbiologicaldiversity.com/. See also e.g. https://en.metapedia.org/wiki/Race_and_morphology. Note that even though the mentioned sites may be fascist, biased and contain propaganda of their own, they provide links to resources which the pseudoleftist mainstream such as [Wikipedia](wikipedia.md) and [Google](google.md) simply censor -- while we may not promote the politics and opinions of mentioned sites, we link to them to provide access to censored information so that one can seek truth and form his own opinions.
There is a controversial 1994 book called *The Bell Curve* that deals with differences in intelligence between races (later followed by other books such as *The Global Bell Curve* trying to examine the situation world-wide). [SJWs](sjw.md) indeed tried to attack it, however international experts on intelligence agree the book is correct in saying average intelligence between races differs (see e.g. [The Wall Street Journal's Mainstream Science on Intelligence](https://web.archive.org/web/20120716184838/http://www.lrainc.com/swtaboo/taboos/wsj_main.html)). Online resources with a lot of information on racial differences are e.g. https://zerocontradictions.net/FAQs/race-FAQs and http://www.humanbiologicaldiversity.com/, https://en.metapedia.org/wiki/Race_and_morphology etc. Note that even if some particular resource may be fascist, biased and contain propaganda of its own, it may likely give you information the pseudoleftist mainstream such as [Wikipedia](wikipedia.md) and [Google](google.md) simply [censor](censorship.md) -- while we may of course not approve of the politics/opinions/goals/etc. of some we link to, we still link to them to provide access to censored information so that one can seek truth and form his own opinions.
**If you want a relatively objective view on races, read old (pre 1950) books.** See for example the article on *NEGRO* in 11th edition of Encyclopedia Britannica (1911), which clearly states on page 344 of the 19th volume that "Mentally the negro is inferior to the white" and continues to cite thorough study of this, finding that black children were quite intelligent but with adulthood the intellect always went down, however it states that negro has e.g. better sense of vision and hearing. Even in the 90s still the uncensored information on race was still available in the mainstream sources, e.g. the 1995 *Desk Reference Encyclopedia* and 1993 *Columbia Encyclopedia* still have articles on races and their differences.

@ -2,9 +2,18 @@
*"Those who don't know Unix are doomed to reinvent it, poorly."* --obligatory quote by Henry Spencer
Unix is an [old](old.md) [operating system](operating_system.md) developed since 1960s as a research project of [Bell Labs](bell_labs.md), which has become one of the most influential pieces of software in history and whose principles (e.g. the [Unix philosophy](unix_philosophy.md)) live on in many so called Unix-like operating systems such as [Linux](linux.md) and [BSD](bsd.md) (at least to some degree). The original system itself is no longer in use, the name UNIX is nowadays a trademark and a certification. However, as someone once said, *Unix is not so much an operating system as a way of thinking*.
Unix (plurar *Unixes* or *Unices*) is an [old](old.md) [operating system](operating_system.md) developed since 1960s as a research project of [Bell Labs](bell_labs.md), which has become one of the most influential pieces of software in history and whose principles (e.g. the [Unix philosophy](unix_philosophy.md), [everything is a file](everything_is_a_file.md), ...) live on in many so called Unix-like operating systems such as [Linux](linux.md) and [BSD](bsd.md) (at least to some degree). The original system itself is no longer in use (it was later followed by a new project, [plan9](plan9.md), which itself is now pretty old), the name UNIX is nowadays a [trademark](trademark.md) and a certification. However, as someone once said, *Unix is not so much an operating system as a way of thinking*.
Unix has reached the highest level a software can reach: it has transcended its implementation and became a [de facto standard](de_facto_standard.md). This means it has become a set of interface conventions, cultural and philosophical ideas rather than being a single system, it lives on as a concept that has many implementations. This is extremely important as we don't depend on any single Unix implementation but we have a great variety of choice between which we can switch without greater issues. This is very important for [freedom](freedom.md) -- it prevents monopolization -- and its one of the important reasons to use unix-like systems.
In one aspect Unix has reached the highest level a software can strive for: it has transcended its implementation and became a [de facto standard](de_facto_standard.md). This means it has become a set of interface conventions, "paradigms", [cultural](culture.md) and philosophical ideas rather than being a single system, it lives on as a concept that has many implementations. This is extremely important as we don't depend on any single Unix implementation but we have a great variety of choice between which we can switch without greater issues. This is very important for [freedom](freedom.md) -- it prevents monopolization -- and its one of the important reasons to use unix-like systems.
The main highlights of Unix are possibly these:
- **[Unix philosophy](unix_philosophy.md)**: a kind of general mindset of software development, usually summed up as **"do one things well"** (rather than ["do everything but poorly"](windows_philosophy.md)) and "make programs work in collaboration with other programs", advising on using universal text interfaces for communication etc. This often comes with the idea of **[pipes](pipe.md)**, a way of chaining programs (typically using the pipe `|` operator, hence the name) by sending one program's output to other program's input.
- **[everything is a file](everything_is_a_file.md)**: Unix chose to use the [file](file.md) abstraction to enable universal communication of programs with hardware and among themselves, i.e. on unices most things such as printing, reading keyboard, networking etc. will be likely implemented as reading or writing to/from some special (sometimes just virtual) file. This has the advantage of being able to just use some file reading library or syscall, not having to access physical memory bits in memory, which may be difficult, unsafe etc.
- Text centrism (great [command line](cli.md) preference), value on [portability](portability.md) (even over performance), sharing of source code, freedom of information and openness, connection to [hacker culture](hacking.md), valuing human time over machine time, ...
- ...
Unix is greatly connected to software [minimalism](minimalism.md), however most unices are still not minimalist to absolute extreme and many unix forks (e.g. [GNU](gnu.md)/[Linux](linux.md)) just abandon minimalism as a priority. So the question stands: **is Unix [LRS](lrs.md) or is it too [bloated](bloat.md)?** The answer to this will be similar to our stance towards the [C](c.md) language (which itself was developed alongside Unix); from our point of view Unix -- i.e. its concepts and some of their existing implementations -- is relatively good, there is a lot of wisdom to take away (e.g. "do one thing well", modularity, "use text interfaces", ...), however these are intermixed with things which under more strict minimalism we may want to abandon (e.g. "everything is a file" requires we buy into the file [abstraction](abstraction.md) and will often also imply existence of a file system etc., which may be unnecessary), so in some ways we see Unix as a temporary "[least evil](least_evil.md)" tool on our way to truly good, extremely minimalist technology. [DuskOS](duskos.md) is an example of operating system more close to the final idea of LRS. But for now Unix is very cool, some Unix-like systems are definitely a good choice nowadays.
## History

File diff suppressed because one or more lines are too long

@ -3,7 +3,7 @@
This is an autogenerated article holding stats about this wiki.
- number of articles: 539
- total size of all texts in bytes: 2756240
- total size of all texts in bytes: 2757851
longest articles:
@ -16,13 +16,18 @@ longest articles:
36K faq.md
32K 3d_rendering.md
32K game.md
28K procgen.md
28K mechanical.md
28K procgen.md
```
latest changes:
```
Date: Sat Jan 13 20:20:29 2024 +0100
jokes.md
mechanical.md
wiki_pages.md
wiki_stats.md
Date: Sat Jan 13 13:31:07 2024 +0100
game.md
mechanical.md
@ -45,11 +50,6 @@ holy_war.md
interaction_net.md
island.md
main.md
rule110.md
wiki_pages.md
wiki_stats.md
Date: Fri Jan 12 18:16:37 2024 +0100
capitalism.md
```
most wanted pages:

Loading…
Cancel
Save