master
Miloslav Ciz 5 months ago
parent 7573a09d17
commit b931aa36c3

@ -4,7 +4,7 @@ Assembly (also ASM) is, for any given hardware computing platform ([ISA](isa.md)
**Assembly is NOT a single language**, it differs for every architecture, i.e. every model of CPU has potentially different architecture, understands a different machine code and hence has a different assembly (though there are some standardized families of assembly like x86 that work on wide range of CPUs); therefore **assembly is not [portable](portability.md)** (i.e. the program won't generally work on a different type of CPU or under a different [OS](os.md))! And even the same kind of assembly language may have several different [syntax](syntax.md) formats which may differ in comment style, order of writing arguments and even instruction abbreviations (e.g. x86 can be written in [Intel](intel.md) and [AT&T](at_and_t.md) syntax). For the reason of non-portability (and also for the fact that "assembly is hard") you shouldn't write your programs directly in assembly but rather in a bit higher level language such as [C](c.md) (which can be compiled to any CPU's assembly). However you should know at least the very basics of programming in assembly as a good programmer will come in contact with it sometimes, for example during hardcore [optimization](optimization.md) (many languages offer an option to embed inline assembly in specific places), debugging, reverse engineering, when writing a C compiler for a completely new platform or even when designing one's own new platform. **You should write at least one program in assembly** -- it gives you a great insight into how a computer actually works and you'll get a better idea of how your high level programs translate to machine code (which may help you write better [optimized](optimization.md) code) and WHY your high level language looks the way it does.
**OK, but why doesn't anyone make a portable assembly?** Well, people do, they just usually call it a [bytecode](bytecode.md) -- take a look at that. [C](c.md) is portable and low level, so it is often called a "portable assembly", though it still IS significantly higher in abstraction and won't usually give you the real assembly vibes.
**OK, but why doesn't anyone make a portable assembly?** Well, people do, they just usually call it a [bytecode](bytecode.md) -- take a look at that. [C](c.md) is portable and low level, so it is often called a "portable assembly", though it still IS significantly higher in abstraction and won't usually give you the real assembly vibes. [Forth](forth.md) may also be seen as close to such concept.
The most common assembly languages you'll encounter nowadays are **[x86](x86.md)** (used by most desktop [CPUs](cpu.md)) and **[ARM](arm.md)** (used by most mobile CPUs) -- both are used by [proprietary](proprietary.md) hardware and though an assembly language itself cannot (as of yet) be [copyrighted](copyright.md), the associated architectures may be "protected" (restricted) e.g. by [patents](patent.md) (see also [IP cores](ip_core.md)). **[RISC-V](risc_v.md)** on the other hand is an "[open](open.md)" alternative, though not yet so wide spread. Other assembly languages include e.g. [AVR](avr.md) (8bit CPUs used e.g. by some [Arduinos](arduino.md)) and [PowerPC](ppc.md).

@ -4,6 +4,8 @@ Blender (also Blunder) is an "[open-source](open_source.md)" 3D modeling and [re
After version 2.76 Blender started REQUIRING [OpenGL](opengl.md) 2.1 due to its "[modern](modern.md)" [EEVEE](eevee.md) renderer, deprecating old machines and giving a huge fuck you to all users with incompatible hardware (for example the users of [RYF](ryf.md) software). This new version also stopped working with the [free](free_software.md) [Nouveau](nouvea.md) driver, forcing the users to use NVidia's proprietary drivers. Blender of course doesn't at all care about this. { I've been forced to use the extremely low FPS [software](sw_rendering.md) GL version of Blender after 2.8. ~drummyfish }
**Are there good alternatives to Blender?** Some programs to check out are [wings3d](wings3d.md), [k3d](k3d.md), [meshlab](meshlab.md) and [mm3d](mm3d.md) (looks like bloat), also for some things possibly [FreeCAD](freecad.md). Remember you can also make models manually :-) Formats like obj can be hand-written.
## See Also
- [3D modeling](3d_modeling.md)

@ -4,6 +4,6 @@ Devuan is a [GNU](gnu.md)/[Linux](linux.md) [distribution](distro.md) that's pra
Notice how *Devuan* rhymes less with *lesbian* than *Debian*.
Despite some flaws (such as being [Linux](linux.md) with all the [bloat](bloat.md) and proprietary blobs), Devuan is still one of the best [operating systems](os.md) for most people and it is at this time recommended by [us](us.md) over most other [distros](distro.md) not just for avoiding systemd, but mainly for its adoption of Debian [free software](free_software.md) definition that requires software to be free as a whole, including its data (i.e. respecting also [free culture](free_culture.md)). It is also a nicely working [unix](unix.md) system that's easy to install and which is still relatively unbloated.
Despite some flaws (such as being [Linux](linux.md) with all the [bloat](bloat.md)), Devuan is still one of the best [operating systems](os.md) for most people and it is at this time recommended by [us](us.md) over most other [distros](distro.md) not just for avoiding systemd, but mainly for its adoption of Debian [free software](free_software.md) definition that requires software to be free as a whole, including its data (i.e. respecting also [free culture](free_culture.md)). It is also a nicely working [unix](unix.md) system that's easy to install and which is still relatively unbloated.
{ I can recommend Devuan, I've been using it as my main OS for several years. NOTE: some people told me Devuan is impure because it's still kinda bloated and recommends bloated stuff like Firefox etc., they recommended e.g. Dragora and Hyperbola -- this is absolutely true, **basically nothing ideal exists at the moment**, and any software recommendation always comes with the danger of it becoming shit over time, always keep that in mind; really recommending any software at this point comes down to discussing what's least shit, what [suckles the least](suckless.md) and also putting a a lot of weight on subjective factors. Also distros don't matter basically, they are all shit, just choose something that doesn't stand too much in the way of your creation and accept that it sucks. If you are skilled you can set up a much better Unix than Debian, Debian is a recommendation for a user who wants a good balance between "close to LRS" and "[just werks](just_werks.md)"; if you are skilled enough to set up a close to ideal system you probably don't need my recommendation on a distro, you can find it yourself. ~drummyfish }

@ -2,7 +2,7 @@
Fascist groups are subgroups of society that strongly pursue [self interest](self_interest.md) on the detriment of others (those who are not part of said group). Fascism is a [rightist](left_right.md), [competitive](competition.md) tendency, very much connected to [identity politics](identity_politics.md) (being or rather feeling to be part of some group, e.g. nation, sex, [race](race.md) etc.); fascists aim to make themselves as strong, as powerful and as rich as possible, i.e. to weaken and possibly eliminate competing groups, to have power over them, enslave them and to seize their resources. The means of their operation are almost exclusively [evil](evil.md), including [violence](violence.md), [bullying](bully.md), [wars](war.md), [propaganda](propaganda.md), [eye for an eye](revenge.md), [slavery](slavery.md) etc.
A few examples of fascist groups are [corporations](corporation.md), [nations](nationalism.md), NSDAP ([Nazis](nazi.md)), [LGBT](lgbt.md), [feminists](feminism.md), [Antifa](antifa.md), [KKK](kkk.md), [Marxists](marxism.md) and, of course, the infamous Italian fascist party of Benito Mussolini. Some famous fascists include Alexander the Great, [Napoleon](napoleon.md), [Churchill](churchill.md), [Julius Caesar](caesar.md), [Hitler](hitler.md), Mussolini, [Stalin](stalin.md), [Steve Jobs](steve_jobs.md) and all [American](usa.md) presidents (basically any so called "great leader" can be included).
A few examples of fascist groups are [corporations](corporation.md), [nations](nationalism.md), NSDAP ([Nazis](nazi.md)), [LGBT](lgbt.md), [feminists](feminism.md), [Antifa](antifa.md), [KKK](kkk.md), [Marxists](marxism.md) and, of course, the infamous Italian fascist party of Benito Mussolini. Some famous fascists include Alexander the Great, [Napoleon](napoleon.md), [Churchill](churchill.md), [Julius Caesar](caesar.md), [Hitler](hitler.md), Mussolini, [Stalin](stalin.md), Henry Ford, [Steve Jobs](steve_jobs.md) and all [American](usa.md) presidents (basically any so called "great leader" can be included).
Fascism is always bad and we have to aim towards eliminating it (that is eliminating fascism, NOT fascists -- fascists are people and living beings to whom we wish no harm). However here comes a great warning: **in eliminating fascism be extremely careful to not become a fascist yourself**. We purposefully do NOT advice to *[fight](fight_culture.md)* fascism as fight implies violence, the tool of fascism. **Elimination of fascism has to be done in a [non-violent](nonviolence.md) way**. Sadly, generation after generation keeps repeating the same mistake over and over: they keep opposing fascism by fascist means, eventually taking the oppressors place and becoming the new oppressor, only to again be dethroned by the new generation. This has happened e.g. with [feminism](feminism.md) and other [pseudoleftist](pseudoleft.md) movements. This is an endless cycle of stupidity but, more importantly, endless suffering of people. This cycle needs to be ended. We must choose not the easy way of violence, but the difficult way of non-violent rejection which includes loving the enemy as we [love](love.md) ourselves. Fascism is all about loving one's own group while hating the enemy groups -- if we can achieve loving all groups of people, even fascists themselves, fascism will have been by definition eliminated.

@ -1,24 +1,24 @@
# Forth
Forth is a based [minimalist](minimalism.md) stack-based untyped programming language with [postfix](notation.md) (reverse Polish) notation.
Forth is a very good [minimalist](minimalism.md) [stack](stack.md)-based untyped [programming language](programming_language.md) that uses [postfix](notation.md) (reverse Polish) notation. It is yet much simpler than [C](c.md), it's very [elegant](elegant.md) and its compiler/interpreter can be made very easily, giving it high practical freedom (i.e. not being practically controlled by any central organization); it is used e.g. in space technology and embedded systems as a way to write efficient [low level](low_level.md) programs that are, unlike those written in [assembly](assembly.md), [portable](portability.md) (there even exist computers directly running Forth in hardware). Forth was the main influence for [Comun](comun.md), the [LRS](lrs.md) language.
{ It's kinda like usable [brainfuck](brainfuck.md). ~drummyfish }
It is usually presented as [interpreted](interpreter.md) language but may as well be [compiled](compiler.md), in fact it maps pretty nicely to [assembly](assembly.md).
There are several Forth standard, most notably ANSI Forth from 1994.
There are several Forth standards, most notably ANSI Forth from 1994 (the document is [proprietary](proprietary.md), sharing is allowed, 640 kB as txt).
A free interpreter is e.g. GNU Forth ([gforth](gforth.md)).
A [free](free_software.md) implementation is e.g. GNU Forth ([gforth](gforth.md)) or [pforth](pforth.md) (a possibly better option by LRS standards, favors [portability](portability.md) over performance).
## Language
The language is case-insensitive.
Forth is case-insensitive (this may however not be the case in some implementations).
The language operates on an evaluation **stack**: e.g. the operation + takes the two values at the top of the stack, adds them together and pushed the result back to the stack. Besides this there are also some "advanced" features like variables living outside the stack, if you want to use them.
The language operates on an evaluation **[stack](stack.md)**: e.g. the operation + takes the two values at the top of the stack, adds them together and pushed the result back on the stack. Besides this there are also some "advanced" features like variables living outside the stack, if you want to use them.
The stack is composed of **cells**: the size and internal representation of the cell is implementation defined. There are no data types, or rather everything is just of type signed int.
Basic abstraction of Forth is so called **word**: a word is simply a string without spaces like `abc` or `1mm#3`. A word represents some operation on stack (and possible other effect such as printing to the console), for example the word `1` adds the number 1 on top of the stack, the word `+` performs the addition on top of the stack etc. The programmer can define his own words which can be seen as "functions" or rather procedures or macros (words don't return anything or take any arguments, they all just invoke some operations on the stack). A word is defined like this:
Basic abstraction of Forth is so called **word**: a word is simply a string without spaces like `abc` or `1mm#3`. A word represents some operation on stack (and possible other effect such as printing to the console), for example the word `1` adds the number 1 on top of the stack, the word `+` performs the addition on top of the stack etc. The programmer can define his own words which can be seen as "[functions](function.md)" or rather procedures or macros (words don't return anything or take any arguments, they all just invoke some operations on the stack). A word is defined like this:
```
: myword operation1 operation2 ... ;
@ -77,6 +77,7 @@ do C loop loops from stack top value to stack second from,
begin C until like do/loop but keeps looping as long as top = 0
begin C while like begin/until but loops as long as top != 0
allot allocates memory, can be used for arrays
recurse recursively call the word currently being defined
```
@ -94,3 +95,22 @@ cr ." hey bitch " cr \ prints: hey bitch
: myloop 5 0 do i . loop ; myloop \ prints 0 1 2 3 4
```
## How To
Source code files usually have `.fs` extension. We can use mentioned gforth to run our files. Let's create file `my.fs`; in it we write: { Hope the code is OK, I never actually programmed in Forth before. ~drummyfish }
```
: factorial
dup 1 > if
dup 1 - recurse *
else
drop 1
then
;
5 factorial .
bye
```
We can run this simply with `gforth my.fs`, the programs should write `120`.

@ -6,17 +6,21 @@ Fun is a rewarding lighthearted satisfying feeling you get as a result of doing
## Things That Are Fun
This is subjective AF, even within a single man this depends on day, hour and mood. Anyway some fun stuff may include:
- [programming](programming.md)
- [games](game.md) such as [chess](chess.md)
- [games](game.md) such as [chess](chess.md), [go](go.md) and [shogi](shogi.md), even vidya gaymes (programming them and/or playing them), but only old+libre ones
- [jokes](jokes.md)
- [open consoles](open_console.md) and [fantasy consoles](fantasy_console.md)
- [obfuscating C](ioccc.md)
- [open consoles](open_console.md) and [fantasy consoles](fantasy_console.md), cool [embedded](embedded.md) programming without [bullshit](bullshit.md) (see also [SAF](saf.md))
- [obfuscating C](ioccc.md), [steganography](steganography.md)
- [marble racing](marble_race.md)
- [Netstalking](netstalking.md)
- [funny programming languages](esolang.md)
- vandalizing [Wikipedia](wikipedia.md), LMAO take a look at this https://encyclopediadramatica.online/Vandal/How-to
- hanging around with friends on the [Island](island.md)
- laughing at normies dealing with [bloat](bloat.md)
- randomly stumbling upon sites on [wiby](https://www.wiby.me/)
- randomly stumbling upon sites on [wiby](https://www.wiby.me/), wikiindex, finding [politically incorrect](political_correctness.md) stuff in old [encyclopedias](encyclopedia.md) and generally just digging out obscure data
- old [Nokia](nokia.md) phones were fun
- [cowsay](cowsay.md)
- ...
- math and data visualizations, e.g. [fractals](fractal.md), [phase diagrams](phase_diagram.md) (https://yt.artemislena.eu/watch?v=b-pLRX3L-fg), strange [attractors](attractor.md), [procgen](procgen.md), [cellular automata](cellular_automaton.md), plotting wild 2D [functions](function.md), ...
- ...

@ -1,6 +1,6 @@
# Gemini
Gemini is a [shitty](shit.md) [pseudominimalist](pseudominimalism.md) network [protocol](protocol.md) for publishing, browsing and downloading files, a simpler alternative to the [World Wide Web](www.md) and a more complex alternative to [gopher](gopher.md) (by which it was inspired). It is a part of so called [Smol Internet](smol_internet.md). Gemini aims to be a "[modern](modern.md) take on gopher", adding some new "features" and [bloat](bloat.md), it's also more of a toxic, [SJW](sjw.md) soydev version of gopher; gemini is to gopher a bit like what [Rust](rust.md) it to [C](c.md). The project states it wants to be something in the middle between Web and gopher but doesn't want to replace either.
Gemini is a [shitty](shit.md) [pseudominimalist](pseudominimalism.md) network [protocol](protocol.md) for publishing, browsing and downloading files, a simpler alternative to the [World Wide Web](www.md) and a more complex alternative to [gopher](gopher.md) (by which it was inspired). It is a part of so called [Smol Internet](smol_internet.md). Gemini aims to be a "[modern](modern.md) take on gopher", adding some new "features" and [bloat](bloat.md), it's also more of a toxic, [SJW](sjw.md) soydev version of gopher; gemini is to gopher a bit like what [Rust](rust.md) it to [C](c.md). The project states it wants to be something in the middle between Web and gopher but doesn't want to replace either (but secretly it wants to replace gopher).
On one hand Gemini is kind of cool but on the other hand it's pretty [shit](shit.md), especially by REQUIRING the use of [TLS](tls.md) [encryption](encryption.md) for "muh security" because the project was made by privacy freaks that advocate the *ENCRYPT ABSOLUTELY EVERYTHIIIIIING* philosophy. This is firstly mostly unnecessary (it's not like you do Internet banking over Gemini) and secondly adds a shitton of [bloat](bloat.md) and prevents simple implementations of clients and servers. Some members of the community called for creating a non-encrypted Gemini version, but that would basically be just gopher. Not even the Web goes as far as REQUIRING encryption (at least for now), so it may be better and easier to just create a simple web 1.0 website rather than a Gemini capsule. And if you want ultra simplicity, we highly advocate to instead prefer using [gopher](gopher.md) which doesn't suffer from the mentioned issue.

@ -15,10 +15,10 @@ Here is a list of some projects and project ideas which we, [LRS](lrs.md), need
| 3D raytracing library | mid? | | | had vague plans |C lib for shooting 3D rays, allows raycast., RT, pathtr., ... | POV-RAY |
| 3D renderer (C) | mid/hard | [small3dlib](small3dlib.md) | drummyfish | done | | TinyGL, PortableGL |
| 3D voxel renderer (C) | mid/hard? | | | | like Ken Silverman's voxlap, looks very nice | voxlap |
| [Anarch](anarch.md) mods | easy | | | more would be nice | for fun | |
| artificial human language | hard? | | | thinking bout it |need LRS lang., big problems with definitions of words tho, think| Esperanto, Lojban, ... |
| audio/music editor | mid/hard? | | | | for waveforms and/or MIDI (tracker music), can even be CLI/TUI | Audacity, LMMS, ... |
| Arduino/Pokitto/... computer | mid/hard? | | | | until we have PD computer, we'll need a nice tiny embedded comp.| |
| [portal renderer](portal_rendering.md) | mid/hard? | | | | for Anarch II? :) | Doom engine, BUILD |
| audio/music editor | mid/hard? | | | | for waveforms and/or MIDI (tracker music), can even be CLI/TUI | Audacity, LMMS, ... |
| chat software | mid? | dumbchat | drummyfish | one done | make it KISS, no encryption, no Unicode, ... just chat! | IRC |
| [chatbot](chatbot.md) | mid? | | | plans in my head | probably NOT neural net, KISS lib for good enough chatbot | |
| [chess](chess.md) engine/library (C) | mid/hard |[smallchesslib](smallchesslib.md)| drummyfish | done | it's not very strong tho :/ | |
@ -50,6 +50,7 @@ Here is a list of some projects and project ideas which we, [LRS](lrs.md), need
| steganography hosting anywhere | easy/mid | | |planning in head... |embedding uncensored data anywhere on the Inet with steganography| darknet n shit |
|[PD computer](public_domain_computer.md)| very hard | | | | needs prerequisites done first (language, logic circ. lib., ...)| Thinkpads :) |
| PD computer "[operating system](os.md)"| mid? | | | | not now, will be more like Pokitto loader (see OS article) | |
| [portal renderer](portal_rendering.md) | mid/hard? | | | | for Anarch II? :) | Doom engine, BUILD |
| propaganda materials | easy | | |can never have enough|wallpapers, songs, videos, translations, tutorials, games, ... | |
| programming language | mid/hard | [comun](comun.md) | drummyfish | done, continuing | | C, comun, FORTH, ... |
| [search engine](search_engine.md) | mid/hard? | | | |like wiby, marginalia, ... support gopher, KISS (no DB, just txt)| wiby, marginalia, ... |

@ -27,13 +27,21 @@ A computer language consists from two main parts:
- [Brainfuck](brainfuck.md): However funny and meme this language may look, its simple design is actually pretty beautiful and interpreters are ultra extremely simple to make. It is a GOOD language.
- [C](c.md): The one and only, the go-to language of the [suckless](suckless.md) community and of compiled languages in general, greatly [future-proof](future_proof.md), uncontested in performance and with nice oldschool [meme](meme.md)-free design, our beloved C. It has many flaws, but has stood as the best practically used language, and is also [historically](history.md) most significant.
- [Comun](comun.md): official [LRS](lrs.md) language
- [Scheme](scheme.md): the minimal/elegant member of [lisp](lisp.md) family of [functional](functional.md) languages
- [Scheme](scheme.md): the minimal/elegant member of [Lisp](lisp.md) family of [functional](functional.md) languages
- [Forth](forth.md): beautifully simple stack-based language
- [Lambda calculus](lambda_calculus.md): ultra extremely [minimal](minimalism.md) [mathematical](math.md) [functional](functional.md) language
- [LIL](lil.md): very nice KISS & [suckless](suckless.md) interpreted language
- [Lua](lua.md)
- [Sigma calculus](sigma_calculus): yes or no? seems like yes
## Interesting Programming Languages
Some programming languages may be [interesting](interesting.md) rather than directly useful, however they teach us a lot and may help us design good practically usable languages. In fact professional researches in theory of computation spend their whole lives dealing with such languages.
One such language is e.g. **[Unary](unary_lang.md)**, a programming language that only uses a single character while being Turing complete (i.e. having the highest possible "computing power", being able to express any program). All programs in Unary are just sequences of one character, differing only by their length (i.e. a program can also be seen just as a single natural number, the length of the sequence). We can do this because we can make an ordered list of all (infinitely many) possible programs in some simple programming language (such as a [Turing machine](turing_machine.md) or [Brainfuck](brainfuck.md)), i.e. assign each program its ordinal number (1st, 2nd, 3rd, ...) -- then to express a program we simply say the position of the program on the list.
There is a community around so called **[esoteric programming languages](esolang.md)** which takes great interest in such languages, from mere [jokes](jokes.md) (e.g. languages that look like cooking recipes or languages that can compute everything but can't output anything) to discussing semi-serious and serious, even philosophical and metaphysical questions. If you dare, kindly follow the rabbit hole.
## See Also
- [esoteric programming language](esolang.md)

@ -3,7 +3,7 @@
This is an auto-generated article holding stats about this wiki.
- number of articles: 526
- total size of all texts in bytes: 2612974
- total size of all texts in bytes: 2616667
longest articles:
@ -23,6 +23,18 @@ longest articles:
latest changes:
```
Date: Wed Dec 20 20:17:45 2023 +0100
fascism.md
feminism.md
game_of_life.md
go.md
less_retarded_society.md
linux.md
lrs.md
oop.md
wiki_stats.md
wiki_style.md
woman.md
Date: Tue Dec 19 13:00:12 2023 +0100
feminism.md
how_to.md
@ -38,13 +50,5 @@ wiki_stats.md
Date: Mon Dec 18 08:02:57 2023 +0100
approximation.md
bloat.md
wiki_stats.md
Date: Sun Dec 17 18:21:35 2023 +0100
bilinear.md
creative_commons.md
interpolation.md
public_domain.md
wiki_stats.md
Date: Sat Dec 16 20:32:58 2023 +0100
```

Loading…
Cancel
Save