master
Miloslav Ciz 3 months ago
parent 810a5262e4
commit 490b384b88

@ -0,0 +1,39 @@
# Arduboy
Arduboy is an [Arduino](arduino.md)-based, extremely tiny indie/"retro" [open gaming console](open_console.md), about the size of a credit card, with monochrome (black&white) display; it was one of the earliest during the boom of such devices and is at the same time among the best in many aspects (construction, hardware, community, games, price, ...). Not only is it one of the top open consoles out there, it is also one of the most [minimalist](minimalism.md) ones and a great way to get into low level [programming](programming.md), learning [C](c.md), [embedded](embedded.md) development etc. Even for a normie not intending to program it it's just a super cool thing to play old nostalgic games on and flex with around friends. [We](lrs.md) can really recommend getting Arduboy ASAP to anyone remotely interested in this kind of stuff. Arduboy is a bit similar to the original [Gamebuino](gamebuino.md) (the one with monochrome screen), it may have been inspired by it. The official website is at https://www.arduboy.com/.
```
_________
|.-------.|
|| ||
||_______||
| |
| _||_ O|
| ",," O |
|_________|
```
*Hasted Arduboy ASCII art.*
Arduboy has a number of [hack](hacking.md)/mods, both official and unofficial, see e.g. Arduboy FX (version that comes with memory for games so one doesn't have to use external PC to switch between them) or Arduboy Mini (yet physically smaller version).
{ Let's make it clear I AM NOT PAID for this article :D Reading through it it sounds like I'm shilling it super hard but it's really just that I like Arduboy, it was my first open console and I owe it my change in direction in programming. Of course, Arduboy does have its flaws, it's still something designed for profit, it shills [open soars](open_source.md), forums need [JavaScript](js.md) and it's very possible it will become more spoiled in the future, however at the moment it's something quite nice with the amount of capitalist [bullshit](bullshit.md) being still tolerable. That may change but as of writing this it still seems to be so. ~drummyfish }
Arduboy is not even very expensive, one can even build it at home, there is documentation. The one you buy has excellent construction, it doesn't suffer from any shortcomings often seen in other such devices (hard to press buttons, display visibility angles, ... ), the monochrome display is tiny but very good, with great contrast, it is joy to just look at; some people even managed to "fake" multiple shades of gray by fast pixel flickering.
As can be judged from the name, Arduboy is based on **[Arduino](arduino.md)** (the famous [free hardware](free_hardware.md) platform), seems like Arduino Leonardo. The console is very small not only physically but also by its [hardware](hardware.md) specification, and that even compared to other open consoles -- Arduboy only has **2.5 KB of [RAM](ram.md)** which is really low, however this is good for learning [good programming](lrs.md) and testing minimalist software; [less is more](less_is_more.md). Besides this there is 1 KB of EEPROM (for things like game saves, ...) and 32 KB of flash memory (memory for the program itself -- as RAM is so low, one often tries to store data here). The CPU is 8bit ATmega32u4 clocked at **16 MHz** (also not very much, good for minimalism). It's an [AVR](avr.md) CPU which has a **Harvard architecture**, i.e. program resides in different memory than the data; this can be something new to PC programmers as you have to think what (and how) to place into the program memory (flash) vs the [RAM](ram.md) (as there is very little RAM); basically you have to use the `PROGMEM` macro to tell Arduino you want something placed in the flash (however that data will then be read-only; the whole PROGMEM thing can be a bit of annoyance, but in the end this is how small computers work). There are **6 buttons**: arrows, *A* and *B* and that's it -- one often has to think of how to make clever controls with this limited number of buttons (another kind of minimalist exercise). The display is **monochrome, 128x64 pixels**. For programming one typically uses Arduino IDE and the official Arduboy library ([FOSS](foss.md)), but it's easy to do everything from the [command line](cli.md). There is also some kind of speaker for making beeps. Arduboy also has a good **[emulator](emulator.md)**, something that greatly helps with development which also isn't standard in the open console world.
Arduboy way designed by Kevin Bates through Kickstarter in 2015, He still keeps improving it and regularly gets involved in discussions on the official forums, that's pretty cool, he shares details and ideas about what he's currently doing, he gets involved in discussing [hacks](hacking.md) etc. The community is also very nice and greatly active itself -- yes, there are probably some rules on the forums, most people are absolute uber noobs, but it just seems like politics, furriness and similar poison just doesn't get discussed there, everyone just shares games, advice on programming etc., it's pretty bearable. In this it's similar to [Pokitto](pokitto.md) -- there the community is also nice, active, with the creator getting involved a lot.
**Games**, mostly made by the users themselves, can either be found on the official website or in Erwin's Arduboy game collection (https://arduboy.ried.cl/) which as of writing this lists **something over 300 games** -- some are pretty impressive, like Arduventure, a pokemon-look-alike RPG game with quite huge world (very impressive for such tiny amount of memory), MicroCity or various [raycasting](raycasting.md) 3Dish games. If you don't have Arduboy yet, you can play any game in the emulator (which even runs in the browser), however the experience of playing on the small device cannot indeed be replicated. The console can only hold one game at a time, so you always have to upload another one through USB if you want to switch, though the Arduboy FX mod addresses this by adding additional game memory to the console. Game progress is saved in EEPROM so you shouldn't lose your save states by uploading a new game (unless that game carelessly uses the same space in EEPROM for its own savestates). Great many of the games are [FOSS](foss.md), i.e. come with a free [license](license.md) or at least with the source code, only a minority has secret source code. Some [LRS](lrs.md) software run on Arduboy, e.g. [SAF](saf.md), so also games like [microTD](utd.md) and [smolchess](smallchesslib.md), though for example [Anarch](anarch.md) are too much for this small hardware. Comun [C](c.md) interpreter also ran on Arduboy.
**How [free](free_software.md) is it?** Quite a lot, though probably not 100% (if spying is your concern then this small thing probably won't even be capable of trying to hurt you this way). Arduboy Schematics are available { Not sure about license. ~drummyfish }, forums have tons of additional documentation and tutorials, Arduboy library is free licensed (BSD 3 clause), Arduino itself also uses free licenses (though of course it won't likely be free down to individual transistors...), games are very often free too. Being a minimalist computer there is a great deal of practical freedom. All in all, it's one of the most "overall" free things you can get.

@ -0,0 +1,3 @@
# Boot
See [bootstrapping](bootstrap.md).

@ -0,0 +1,41 @@
# Bootstrap/Boot
In general bootstrapping (from the idiom "pull yourself up by your bootstraps"), sometimes shortened to just *booting*, refers to a clever process of self-establishing some relatively complex system starting from something very small, without much external help. As an example imagine something like a "civilization bootstrapping kit" that contains only few primitive tools along with instructions on how to use those tools to mine ore, turn it into metal out of which one makes more tools which will be used to obtain more material and so on up until having basically all modern technology and factories set up in relatively short time ([civboot](civboot.md) is a project like this). The term *bootstrapping* is however especially relevant in relation to [computer](computer.md) technology -- here it has two main meanings:
- The process by which a computer starts and sets up the [operating system](operating_system.md) after power on, which often involves several stages of loading various modules, running several bootloaders etc. This is traditionally called **booting** (*rebooting* means restarting the computer).
- Utilizing the principle of bootstrapping for making greatly independent [software](software.md), i.e. software that doesn't [depend](depend.md) on other software as it can set itself up. This is usually what **bootstrapping** (the longer term) means. This is also greatly related to **[self hosting](self_hosting.md)**, another principle whose idea is to "implement technology using itself".
## Bootstrapping: Making Dependency-Free Software
TODO
**Why be concerned with bootstrapping when we already have our systems set up?** There are many reasons, one of the notable ones is that we may lose our current technology due to societal [collapse](collapse.md), which is not improbable, it keeps happening throughout history over and over, so many people fear (rightfully so) that if by whatever disaster we lose our current computers, Internet etc., we will also lose with it all modern art, data, software we so painfully developed, digitized books, inventions and so on; not talking about the horrors that will follow if we're unable to quickly reestablish our computer networks we are so dependent on. Setting up what we currently have completely from scratch would be extremely difficult, a task for centuries -- just take a while to consider all the activity and knowledge that's required around the globe to create a single computer with all its billions of lines of code worth of software that makes it work. Knowledge of old technology gets lost -- to make modern computers we first needed older, primitive computers, but now that we only have modern computers no one remembers anymore how to make the older computers -- if we lose the current ones, we won't be able to make them, we will lack the tools. Another reason for bootstrapping is independence of technology which brings e.g. [freedom](freedom.md) (your operating system being able to be set up anywhere without some corporation's proprietary driver or hardware unit is pursued by many), robustness, simplicity, ability to bring existing software to new platforms and so on, i.e. things that are practical even in current world.
**[Forth](forth.md) has traditionally been used for making bootstrapping environments**; [Dusk OS](duskos.md) is an example of such project. Similarly simple language such as [Lisp](lisp.md) and [comun](comun.md) will probably work too.
**How to do this then?** To make a computing environment that can bootstrap itself you can do it like this:
1. **Make a [simple](kiss.md) [programming language](programming_language.md) L**. You can choose e.g. the mentioned [Forth](forth.md) but you can even make your own, just remember to keep it extremely simple -- simplicity of the base language is the key feature here. The language will serve as tool for writing software for your platform, i.e. it will provide some comfort in programming (so that you don't have to write in assembly) but mainly it will be an **[abstraction](abstraction.md) layer** for the programs, it will allow them to run on any hardware/platform. The language therefore has to be **[portable](portability.md)**; it should probably abstracts things like [endianness](byte_sex.md), native integer size, control structures etc., so as to work nicely on all [CPUs](cpu.md), but it also mustn't have too much abstraction (such as [OOP](oop.md)) otherwise it will quickly get complicated. The language can compile e.g. to some kind of very simple [bytecode](bytecode.md) that will be easy to translate to any [assembly](assembly.md). At first you'll have to temporarily implement L in some already existing language, e.g. [C](c.md). NOTE: in theory you could just make bytecode, without making L, and just write your software in that bytecode, but the bytecode has to focus on being simple to translate, i.e. it will e.g. likely have few opcodes, which will be in conflict with making it at least somewhat comfortable to program on your platform. However one can try to make some compromise and it will save the complexity of translating language to bytecode, so it can be considered ([uxn](uxn.md) seems to be doing this).
2. **Write L in itself, i.e. [self host](self_hosting.md) it**. This means you'll use L to write a [compiler](compiler.md) of L that outputs L's bytecode. Once you do this, you have a completely independent language and can throw away the original compiler of L written in another language. Now compile L with itself -- you'll get the bytecode of L compiler. At this point you can bootstrap L on any platform as long as you can execute the L bytecode on it -- this is why it was crucial to make L and its bytecode very simple. In theory it's enough to just interpret the bytecode but it's better to translate it to the platform's native machine code so that you get maximum efficiency (the nature of bytecode should make it so that it isn't really more diffiult to translate it than to interpret it). If for example you want to bootstrap on an [x86](x86.md) CPU, you'll have to write a program that translates the bytecode to x86 assembly; if we suppose that at the time of bootstrapping you will only have this x86 computer, you will have to write the translator in x86 assembly manually. If your bytecode really is simple and well made, it shouldn't be hard though (you will mostly be replacing your bytecode opcodes with given platform's machine code opcodes).
3. **Further help make L bootstrapable**. This means making it even easier to execute the L bytecode on any given platform -- you may for example write the bytecode translators for common platforms like x86, ARM, RISC-V and so on. At this point you have L bootstrappable without any [work](work.md) on the platform you have translators for and on others it will just take a tiny bit of work to write its own translator.
4. **Write everything else in L**. This means writing the platform itself and software such as various tools and libraries. You can potentially even use L to write a higher level language for yet more comfort in programming. Since everything here is written in L and L can be bootstrapped, everything here can be bootstrapped as well.
## Booting: Computer Starting Up
Booting as in "staring computer up" is also a kind of setting up a system from the ground up -- we take it from granted but remember it takes some [work](work.md) to get a computer from being powered off and having all RAM empty to having an operating system loaded, hardware checked and initialized, devices mounted etc.
Starting up a **simple computer** -- such as some [MCU](mcu.md)-based [embedded](embedded.md) [open console](open_console.md) that runs [bare metal](bare_metal.md) programs -- isn't as complicated as booting up a mainstream [PC](pc.md) with an [operating system](operating_system.md).
First let's take a look at the simple computer. It may work e.g. like this: upon start the [CPU](cpu.md) initializes its registers and simply starts executing instructions from some given memory address, let's suppose 0 (you will find this in your CPU's data sheet). Here the memory is often e.g. [flash](flash.md) [ROM](rom.md) to which we can externally upload a program from another computer before we turn the CPU on -- in game consoles this can often be done through [USB](usb.md). So we basically upload the program (e.g. a game) we want to run, turn the console on and it starts running it. However further steps are often added, for example there may really be some small, permanently flashed initial boot program at the initial execution address that will handle some things like initializing hardware (screen, speaker, ...), setting up [interrupts](interrput.md) and so on (which otherwise would have to always be done by the main program itself) and it can also offer some functionality, for example a simple menu through which the user can select to actually load a program from SD card to flash memory (thanks to which we won't need external computer to reload programs). In this case we won't be uploading our main program to the initial execution address but rather somewhere else -- the initial bootloader will jump to this address once it's done its work.
Now for the PC (the "IBM compatibles"): here things are more complicated due to the complexity of the whole platform, i.e. because we have to load an [operating system](operating_system.md) first, of which there can be several, each of which may be loadable from different storages ([harddisk](hdd.md), USB stick, [network](network.md), ...), also we have more complex [CPU](cpu.md) that has to be set in certain operation mode, we have complex peripherals that need complex initializations etcetc. Generally there's a huge [bloated](bloat.md) boot sequence and PCs infamously take longer and longer to start up despite skyrocketing hardware improvements -- that says something about state of technology. Anyway, it usually it works like this:
{ I'm not terribly experienced with this, verify everything. ~drummyfish }
1. Computer is turned on, the CPU starts executing at some initial address (same as with the simple computer).
2. From here CPU jumps to an address at which **stage one [bootloader](bootloader.md)** is located (bootloader is just a program that does the booting and as this is the first one in a line of potentially multiple bootloaders, it's called *stage one*). This address is in the [motherboard](motherboard.md) [ROM](rom.md) and in there typically **[BIOS](bios.md)** (or something similar that may be called e.g. [UEFI](uefi.md), depending on what standard it adheres to) is uploaded, i.e. BIOS is stage one bootloader. BIOS is the first software (we may also call it [firmware](firmware.md)) that gets run, it's uploaded on the motherboard by the manufacturer and isn't supposed to be rewritten by the user, though some based people still rewrite it (ignoring the "read only" label :D), often to replace it with something more [free](free_software.md) (e.g. [libreboot](libreboot.md)). BIOS is the most basic software that serves to make us able to use the computer at the most basic level without having to flash programs externally, i.e. to let us use keyboard and monitor, let us install an operating system from a CD drive etc. (It also offers a basic environment for programs that want to run before the operating system, but that's not important now.) BIOS is generally different on each computer model, it normally allows us to set up what (which device) the computer will try to load next -- for example we may choose to boot from harddisk or USB flash drive or from a CD. There is often some countdown during which if we don't intervene, the BIOS automatically tries to load what's in its current settings. Let's suppose it is set to boot from harddisk.
3. BIOS performs the *power on self test* (POST) -- basically it makes sure everything is OK, that hardware works etc. If it's so, it continues on (otherwise halts).
4. BIOS loads the **[master boot record](mbr.md)** (MBR, the first sector of the device) from harddisk (or from another mass storage device, depending on its settings) into [RAM](ram.md) and executes it, i.e. it passes control to it. This will typically lead to loading the **second stage bootloader**.
5. The code loaded from MBR is limited by size as it has to fit in one HDD [sector](sector.md) (which used to be only 512 bytes for a long time), so this code is here usually just to load the bigger code of the second stage bootloader from somewhere else and then again pass control to it.
5. Now the second stage bootloader starts -- this is a bootloader whose job it is normally to finally load the actual operating system. Unlike BIOS this bootloader may quite easily be reinstalled by the user -- oftentime installing an operating system will also cause installing some kind of second stage bootloader -- example may be **[GRUB](grub.md)** which is typically installed with [GNU](gnu.md)/[Linux](linux.md) systems. This kind of bootloader may offer the user a choice of multiple operating systems, and possibly have other settings. In any case here the OS [kernel](kernel.md) code is loaded and run.
6. Voila, the kernel now starts running and here it's free to do its own initializations and manage everything, i.e. Linux will start the [PID 1](init.md) process, it will mount filesystems, run initial scripts etcetc.

@ -0,0 +1,21 @@
# CSS
TODO
**Correct, [LRS](lrs.md) approved attitute towards this piece of [bloat](bloat.md)**: as a minimalist should you avoid CSS like the devil and never use it? Usual LRS recommendations apply but, just in case, let's reiterate. Use your brain, maximize [good](less_retarded_society.md), minimize damage, just make it so that no one can ever say "oh no, I wish this site didn't have CSS". You CAN use CSS on your site, but it mustn't become any burden, only something optional that will make life better for those using a browser supporting CSS, i.e. your site MUSTN'T RELY on CSS, CSS mustn't be its [dependency](dependency.md), the site has to work perfectly fine without it, not be just a crippled version, i.e. firstly design your site without CSS and only add CSS as an optional improvement. Do not make your HTML bow to CSS, i.e. don't let CSS make you add tons of divs and classes, make HTML first and then make CSS bow to the HTML. Light CSS is better than heavy one. If you have a single page, embed CSS right into it ([KISS](kiss.md), site is self contained and browser doesn't have to download extra files for your site) and make it short to save bandwidth on downloading your site. Don't use heavy CSS features like animation, blurs, color transitions or wild repositioning, save the [CPU](cpu.md), save the planet (:D). Etcetc.
## CSS Gore And Pissing People Off
A user running bloatbrowser that implements CSS and has it turned on by default is openly inviting you to freely remotely manipulate what his computer is showing to him, so let's take this opportunity to do some lighthearted [trolling](trolling.md) :) Here are some possible approaches:
- `cursor`: Change or even hide the mouse cursor :D You can set it to `none` (hide), `progress` (make the user think something's loading indefinitely, see how long it takes for him to realize), `wait`, `col-resize` or even specific image with `url(...)`.
- Make the site work only without CSS :D For example: `body * { display: none; } body:before { content: "This site only works without CSS." }`.
- CSS can do animation! This can be used to induce seizures. E.g.: `@keyframes lul { 0% { background-color: red; } 100% { background-color: green; } } body { animation-name: lul; animation-duration: 0.1s; animation-iteration-count: infinite; }`.
- Animate `<body>` size so that the scroll bars keep resizing.
- `a:hover { display: none; }`: Makes links disappear when their pointed at with the cursor :D Can also be used for buttons etc.
- Make some huge clusterfuck of divs that get arranged in some intricate way, then make each div change its size with `:hover`, or better yet use `transform` to rotate or skew it, triggering a spectacular domino effect. You have to make it so that if one div reshapes on mouse over, another one gets under the cursor, triggering reshape of that one, which pushes another one under the cursor etc.
- Alternative to the previous: make one huge ass div covering the whole screen and make it resize to 1x1 pixels on `:hover`, this will cause some vomit inducing blinking whenever mouse is moved.
- Use animation to very slowly alter the site, e.g. keep making text more and more transparent, so that it can't be noticed immediately but will become apparent after having the site open for 15 minutes, or maybe just have the site normal but after 10 minutes just immediately rotate it 180 degrees, the user will be like WTF :D or maybe instead of this after 10 minutes just replace the site with some porn image -- there is a chance someone will open the site, then leave the computer for a while, leaving the innocent site open but in the meanwhile it will change to porn and suddenly he will look like the biggest pervert :D
- TODO: some shit that makes CPU burn aka bitcoin miner without bitcoin
- TODO: make the page 1 light year long or something
- TODO: more

@ -1,6 +1,6 @@
# Go (Programming Language)
Go (also golang) is a compiled [programming language](programming_language.md) advertised as the the "[modern](modern.md)" successor to [C](c.md) and is co-authored by one of C's authors, [Ken Thompson](ken_thompson.md). Of all the new language go is one of the least [harmful](harmful.md), however it's still quite [shit](shit.md). Some reasons for this are:
Go (also golang) is a compiled [programming language](programming_language.md) advertised as the the "[modern](modern.md)" successor to [C](c.md), it is co-authored by one of C's authors, [Ken Thompson](ken_thompson.md), and has been worked on by [Rob Pike](rob_pike.md), another famous Unix hacker (who however allegedly went insane and has been really doing some crazy shit for years). Of all the new language go is one of the least [harmful](harmful.md), however it's still quite [shit](shit.md). Some reasons for this are:
- It is developed by [Google](google.md) and presented as "[open-source](open_source.md)" (not [free software](free_software.md)).
- It downloads additional [dependencies](dependency.md) during compilation, a huge defect due to which it's been rejected e.g. from [HyperbolaBSD](hyperbolabsd.md) (https://wiki.hyperbola.info/doku.php?id=en:philosophy:incompatible_packages).

@ -2,7 +2,7 @@
*This article is a part of series of articles on [fascism](fascism.md).*
LGBT, LGBTQ+, LGBTQIKKAWANSQKKALQNMQW (lesbian [gay](gay.md), [bisexual](bisexual.md), [transsexual](tranny.md), [queer](queer.md) and whatever else they're gonna invent), also TTTT (transsexual transsexual transsexual transsexual) is a toxic [pseudoleftist](pseudoleft.md) [fascist](fascist.md) political group whose ideology is based on superiority of certain selected minority sexual orientations. They are a highly [violent](violence.md), [bullying](bully.md) movement (not surprisingly centered in the [US](usa.md) but already spread around the whole world) practicing [censorship](censorship.md), Internet lynching ([cancel culture](cancel_culture.md)), discrimination, spread of extreme [propaganda](propaganda.md), harmful [lies](soyence.md), culture poison such as [political correctness](political_correctness.md) and other [evil](evil.md).
LGBT, LGBTQ+, LGBTQIKKAWANSQKKALQNMQW (lesbian [gay](gay.md), [bisexual](bisexual.md), [transsexual](tranny.md), [queer](queer.md) and whatever else they're gonna invent), also FGTS or TTTT (transsexual transsexual transsexual transsexual) is a toxic [pseudoleftist](pseudoleft.md) [fascist](fascist.md) political group whose ideology is based on superiority of certain selected minority sexual orientations. They are a highly [violent](violence.md), [bullying](bully.md) movement (not surprisingly centered in the [US](usa.md) but already spread around the whole world) practicing [censorship](censorship.md), Internet lynching ([cancel culture](cancel_culture.md)), discrimination, spread of extreme [propaganda](propaganda.md), harmful [lies](soyence.md), culture poison such as [political correctness](political_correctness.md) and other [evil](evil.md).
LGBT is related to the ideas of equality in a similar way in which crusade wars were related to the nonviolent teaching of [Jesus](jesus.md), it shows how an idea can be completely twisted around and turned on its head so that it's directly contradicting its original premise.

@ -18,6 +18,7 @@ WORK IN PROGRESS
| code of conduct ([COC](coc.md)) | code of coercion, code of censorship |
| consume | consoom (see also [coom](coom.md) |
| [copyright](copyright.md) | copywrong, copyrestriction |
| [CSS](css.md) | cascading style shit |
| [democracy](democracy.md) | democrazy |
| digital rights management ([DRM](drm.md)) | digital restrictions management |
| [encryption](encryption.md) | bloatcryption |
@ -38,6 +39,7 @@ WORK IN PROGRESS
| [iPhone](iphone.md) | spyPhone |
| job | slavery |
| "left" | [pseudoleft](pseudoleft.md), SJW |
| [LGBT](lgbt.md) | FGTS, TTTT |
| "[Linux](linux.md)" | [GNU](gnu.md), loonix |
| Macintosh | Macintoy, Macintrash, Maggotbox |
| [Microsoft](microsoft.md) | Microshit |
@ -60,7 +62,7 @@ WORK IN PROGRESS
| software as a service ([SAAS](saas.md)) |service as a software substitute (SAASS)|
| subscription | [microrape](microrape.md) |
| [systemd](systemd.md) | shitstemd, soystemd |
| United States of America | United Shitholes of America |
| United States of America |United Shitholes of America, burgerland |
| user (of a proprietary system) | used, lusr |
| voice assistant | personal spy agent |
| [wayland](wayland.md) | whyland |

@ -1,17 +1,17 @@
# Luke Smith
Luke Smith was -- before becoming a crypto [influencer](influencer.md), scam promoter and a generic turd in a suit (around 2022) -- an Internet tech mini pseudocelebrity known for making videos about [suckless](suckless.md) software, independent living in the woods and here and there about historical, political, linguistic and religious topics. He played a big role in making suckless more popular, however he later started to behave in hugely retarded ways and now isn't worth following anymore.
Luke Smith was -- before becoming [crypto](crypto.md) [influencer](influencer.md), scam promoter and a generic turd in a suit (around 2022) -- an an [American](american.md) [Internet](internet.md) tech mini pseudocelebrity known for making videos about [suckless](suckless.md) software, independent living in the woods and here and there about [historical](history.md), political, linguistic and religious topics. He played a big role in making suckless more popular, however he later started to behave in hugely retarded ways and now isn't worth following anymore.
His look has been described as the *default Runescape character*: he is bald, over 30 years old and lives in a rural location in Florida (exact coordinates have been doxxed but legally can't be shared here, but let's just say the road around his house bears his name). He has a podcast called *Not Related!* in which he discusses things such as alternative historical theories -- actually a great podcast. He has a minimalist 90s style website https://lukesmith.xyz/ and his own [peertube](peertube.md) instace where his videos can be watched if one doesn't want to watch them on [YouTube](youtube.md). He is the author of [LARBS](larbs.md) and minimalist recipe site https://based.cooking/ (recently he spoiled the site with some shitty web framework lol).
His look has been described as the *default Runescape character*: he is bald, over 30 years old (probably born around 1990) and lives in a rural location in Florida (exact coordinates have been doxxed but legally can't be shared here, but let's just say the road around his house bears his name). He is a [Christian](christianity.md) (well, the [militant](military.md) [fascist](fascism.md) USA "Christian") he goes to the church etc. He has a podcast called *Not Related!* (https://notrelated.xyz/) in which he discusses things such as alternative historical theories -- actually a great podcast. He has a minimalist 90s style website https://lukesmith.xyz/ and his own [peertube](peertube.md) instance where his videos can be watched if one doesn't want to watch them on [YouTube](youtube.md). He is the author of [LARBS](larbs.md) and minimalist recipe site https://based.cooking/ (recently he spoiled the site with some shitty web framework lol).
He used to be kind of based in things like identifying the harmfulness of [bloat](bloat.md) and [soyence](soyence.md), but also retarded to a great degree other times, for example he used to shill the [Brave](brave.md) browser pretty hard before he realized it was actually a huge scam all along xD He's a crypto fascist, also probably a Nazi. In July 2022 **he started promoting some shitty [bloated](bloat.md) [modern](modern.md) [tranny](tranny_software.md) website generator that literally uses [JavaScript](js.md)**? WHAT THE FUCK. Like a good [capitalist](capitalism.md) (to which he self admitted in his podcast) he instantly turned 180 degrees against his own teaching as soon as he smelled the promotion money. Also he's shilling [crypto](crypto.md), he let's himself be paid for promoting extremely shitty webhosts in his web tutorials, he's anti-[porn](porn.md), anti-[games](game.md) and leans towards medieval ideas such as "imagination and boredom being [harmful](harmful.md) because it makes you search for porn" etc. He went to huge [shit](shit.md), you wouldn't even believe. Though he even now still probably promotes [suckless](suckless.md) somehow, he isn't a programmer (shell scripting isn't programming) and sometimes doesn't seem to understand basic programming ideas (such as branchless programming), he's more of a typical [productivity](productivity_cult.md) retard. For Luke suckless is something more akin a brand he associated himself with and a bit of personal convenience rather than something of a deeper value. As of 2023 he seems to have become obsessed with adopting a new identity of a turd in a very cheap suit, he literally looks like the door-to-door scam seller lol. All in all, a huge letdown.
Luke is a [type B fail](fail_ab.md).
He used to be kind of based in things like identifying the harmfulness of [bloat](bloat.md) and [soyence](soyence.md), but also retarded to a great degree other times, for example he used to shill the [Brave](brave.md) browser pretty hard before he realized it was actually a huge scam all along xD He's openly a rightist fascist, [capitalist](capitalism.md), also probably a Nazi etc. In July 2022 **he started promoting some shitty [bloated](bloat.md) [modern](modern.md) [tranny](tranny_software.md) website generator that literally uses [JavaScript](js.md)**? WHAT THE FUCK. Like a good [capitalist](capitalism.md) (to which he self admitted in his podcast) he instantly turned 180 degrees against his own teaching as soon as he smelled the promotion money. Also he's shilling [crypto](crypto.md), he lets himself be paid for promoting extremely shitty webhosts in his web tutorials, he's anti-[porn](porn.md), anti-[games](game.md), anti-fun and leans towards medieval ideas such as "imagination and boredom being [harmful](harmful.md) because it makes you watch porn" etc. He went to huge [shit](shit.md), you wouldn't even believe. Though he even now still probably promotes [suckless](suckless.md) somehow, he isn't a programmer (shell scripting isn't programming) and sometimes doesn't seem to understand basic programming ideas (such as branchless programming), he's more of a typical [productivity](productivity_cult.md) retard. For Luke suckless is something more akin a brand he associated himself with, something he plays a mascot for because it provided him with a bit of personal convenience, this guy doesn't even care about deeper values it seems. As of 2023 he seems to have become obsessed with adopting a new identity of a turd in a very cheap suit, he literally looks like the door-to-door scam seller lol. All in all, a huge letdown. Of course, Luke is a [type B fail](fail_ab.md).
His videos consisted of normie-friendly tutorials on suckless software, rants, independent living, live-streams and podcasts. The typical Luke Smith video is him walking somewhere in the middle of a jungle talking about how retarded modern technology is and how everyone should move to the woods.
Luke studies [PhD](phd.md) in linguistics but is very critical of academia -- he "speaks" several languages (including [Latin](latin.md)), though many of them to a low level with bad American accent and he can't sometimes even speak English correctly (using phrases such as "the reason is because", "less people" etc.). He is a self described [right-winder](left_right.md), retarded [capitalist](capitalism.md) and talks in meme phrases which makes his "content" kind of enjoyable. He despises such things as [soydevry](soydev.md), [bloat](bloat.md), "consoomerism" (though he loves money he makes off of it) and [soyence](soyence.md).
There seems to be a guy who could very well be Luke's brother, Jacob W Smith -- he has a website at https://jacobwsmith.xyz/index.html, he shares many Luke's opinions, writes about him, is a member of Christian webring, seems of similar age, also the name etcetc.
## See Also
- [Mental Outlaw](mental_outlaw.md): Luke's black brother

@ -2,7 +2,7 @@
{ Open consoles are how I got into [suckless](suckless.md) programming, they taught me about the low-level, optimizations and how to actually program efficiently on very limited hardware. I recommend you grab one of these. ~drummyfish }
Open consoles (also indie handhelds etc.) are tiny [GameBoy](gameboy.md)-like [gaming](game.md) consoles mostly powered by [free software](free_software.md) and [free hardware](free_hardware.md), which have relatively recently (some time after 2015) seen a small boom. Examples include [Arduboy](arduboy.md), [Pokitto](pokitto.md) or [Gamebuino](gamebuino.md). These are **NOT** to be confused with the [Raspberry Pi](rpi.md) (and similar) handhelds that run GameBoy/PS1/DOS [emulators](emulator.md) but rather custom, mostly [FOSS](foss.md) platforms running mostly their own community made [homebrew](homebrew.md) games.
Open consoles (also indie handhelds etc.) are tiny [GameBoy](gameboy.md)-like [gaming](game.md) consoles mostly powered by [free software](free_software.md) and [free hardware](free_hardware.md), which have relatively recently (some time after 2015) seen a small boom. Examples include [Arduboy](arduboy.md), [Pokitto](pokitto.md) or [Gamebuino](gamebuino.md). These are **NOT** to be confused with the [Raspberry Pi](rpi.md) (and similar) handhelds that run GameBoy/PS1/DOS [emulators](emulator.md) but rather custom, mostly [FOSS](foss.md) platforms running mostly their own community made [homebrew](homebrew.md) games. Open consoles are also similar to the old consoles/computers such as [NES](nes.md), [GameBoy](gameboy.md) etc., however again there is a difference in being more indie, released more recently and being "open", directly made for tinkering, so it's e.g. much easier to program them (old consoles/computers very often require some unofficial hacks, obscure libraries, gcc patches etc. to just get your code working).
In summary, open consoles are:
@ -41,18 +41,18 @@ Some notable open consoles (which fit the definition at least loosely) are liste
- `+` = many games/programs
- `-` = discontinued
| name | CPU |RAM (K)| ROM (K)| display | notes |
| --------------------------- | --------- | ----- | ------ | ------------ | ------------------- |
|[Arduboy](arduboy.md) |8b 16 MHz | 2.5 | 32 | 64x32 1b |* A C +, tiny |
|[Gamebuino](gamebuino.md) |8b 16 MHz | 2 | 32 | 84x48 1b |+ A -, SD |
|[Pokitto](pokitto.md) |32b 48 MHz | 36 | 256 | 220x176 |* C +, ext. hats, SD |
|[ESPboy](espboy.md) |32b 160 MHz| 80 | 4000 | 128x128 |A |
|[GB META](gamebuino.md) |32b 48 MHz | 32 | 256 | 168x120 |A + -, SD |
|[Nibble](nibble.md) |32b 160 MHz| 80 | 4000 | 128x128 |A, AAA bat. |
|[UzeBox](uzebox.md) |8b 20 MHz | 4 | 64 | 360x240 |C, + |
|[Tiny Arcade](tiny_arcade.md)|32b | | | |A |
|[Thumby](thumby.md) |32b 133 MHz| 264 | 2000 | 72x40 |RPI (RP2040) |
|[Agon](agon.md) |8b 18 MHz | 512 | | 640x480 | |
| name | CPU |RAM (K)| ROM (K)| display | year | notes |
| --------------------------- | --------- | ----- | ------ | ------------ | ---- | ------------------- |
|[Arduboy](arduboy.md) |8b 16 MHz | 2.5 | 32 | 64x32 1b | 2015 | * A C +, tiny |
|[Gamebuino](gamebuino.md) |8b 16 MHz | 2 | 32 | 84x48 1b | 2014 | + A -, SD |
|[Pokitto](pokitto.md) |32b 48 MHz | 36 | 256 | 220x176 | 2018 |* C +, ext. hats, SD |
|[ESPboy](espboy.md) |32b 160 MHz| 80 | 4000 | 128x128 | 2019 |A |
|[GB META](gamebuino.md) |32b 48 MHz | 32 | 256 | 168x120 | 2018 |A + -, SD |
|[Nibble](nibble.md) |32b 160 MHz| 80 | 4000 | 128x128 | 2021 |A, AAA bat. |
|[UzeBox](uzebox.md) |8b 28 MHz | 4 | 64 | 360x240 | 2008 |C, + |
|[Tiny Arcade](tiny_arcade.md)|32b | | | | |A |
|[Thumby](thumby.md) |32b 133 MHz| 264 | 2000 | 72x40 | 2022 |RPI (RP2040) |
|[Agon](agon.md) |8b 18 MHz | 512 | | 640x480 | | |
TODO: Retro Game Tiny, Adafruit PyGamer, ... see also https://github.com/ESPboy-edu/awesome-indie-handhelds

@ -1,6 +1,6 @@
# Plan 9
Plan 9 (from Bell Labs, reference to the movie *Plan 9 from Outer Space*) is a research [operating system](os.md), now [FOSS](foss.md), that was started by many of the original [Unix](unix.md) developers as the next project of this kind, i.e. kind of a "new and updated Unix". It works with [Unix philosophy](unix_philosophy.md) ([minimalist](minimalism.md) software philosophy) but tries to expand and modify it so as to fit "new/evolved" [computers](computer.md) -- though Plan 9 developers claim the system is "more Unix than Unix itself", the validity of such claim is questionable as Plan 9 brings in a more complicated paradigm of [distributed computing](distributed_computing.md), [dependencies](dependency.md) (such as requiring [GUI](gui.md) and mouse) and therefore [bloat](bloat.md) (though still being super minimal compared to mainstream operating systems). Besides the original Plan 9, which is apparently dead now, there exist active [forks](fork.md) such as 9front.
Plan 9 (from Bell Labs, reference to the movie *Plan 9 from Outer Space*) is a research [operating system](os.md), now [FOSS](foss.md), that was started by many of the original [Unix](unix.md) developers as the next project of this kind, it was supposed to be the "new and updated Unix". It tries to work with [Unix philosophy](unix_philosophy.md) ([minimalist](minimalism.md) software philosophy) but expands and modifies it so as to fit "new/evolved" [computers](computer.md) -- though Plan 9 developers claim the system is "more Unix than Unix itself", the validity of such claim is questionable as Plan 9 brings in a more complicated paradigm of [distributed computing](distributed_computing.md), [dependencies](dependency.md) (such as requiring [GUI](gui.md) and mouse) and therefore [bloat](bloat.md) (though still being super minimal compared to mainstream operating systems). Besides the original Plan 9, which is apparently dead now, there exist active [forks](fork.md) such as [9front](9front.md); BEWARE, **9front has a [COC](coc.md) and is a fascist [pseudoleftist](pseudoleft.md) project**. One famous guy working on Plan 9 is [Rob Pike](rob_pike.md) who really went super crazy lately; originally a true Unix hacker he later on started saying things like "I want no local storage on my computer" and "the world should provide me my computing environment and maintain it for me", which seem to reflect what Plan 9 is about.
On one hand Plan 9 sounds good and its idealism is admirable, nevertheless **Plan 9 is [SHIT](shit.md)** due to the following fact: **it [requires](dependency.md) what isn't necessary, for example [GUI](gui.md), [mouse](mouse.md), file system and networking** and **forces computers and users to be certain way**. This is absolutely unforgivable and violates the basic premise of [good, freedom offering, minimalist nondiscriminatory software](lrs.md); in fact it violates the [Unix philosophy](unix_philosophy.md) which it is supposed to be building on top of -- an operating system should do one thing well: that of offering and environment for programs and their resources, user interface is a nontrivial extra task that should be separated. If you ask how to use Plan 9 without a mouse, the fans respond with telling you how stupid you are for not wanting to use mouse ("here is a study that says mice are better than keyboards: checkmate!") and that using mouse is actually what you want (hey bro, everyone's using a mouse, just accept it) -- they try to force a specific way of how computers should be and how they should be operated, just as [Microsoft](microsoft.md) and [Apple](apple.md), without taking into account that computers can (and should be allowed to) be wildly different, very small, with tiny displays (or no displays at all), with no pointing devices (game consoles, voice operated computers, ...) etc. Sure, it may be possible to make the system work without a mouse or GUI, but these concepts form the very basis of the code and its philosophy, they will be carried as a dead weight if you're not using them and you will probably encounter great issues such as many programs simply relying on the existence of GUI and mouse and not working without them. The philosophy is similar to that of "[smart](smart.md)" devices which assume that "Internet is everywhere" and so "let's put Internet into everything", even things that don't need any Internet at all (like hammers and teaspoons), and by the way they will no longer work without Internet (let's hope it doesn't go down lol). In this way **Plan 9 is a dictatorship** and [we](lrs.md) don't approve of it.

@ -11,6 +11,8 @@ In 1978 [Douglas McIlroy](mcilroy.md) has written a short overview of the Unix s
This has later been condensed into: do one thing well, write programs to work together, make programs communicate via text streams, a universal interface.
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:
```

@ -70,7 +70,7 @@ syntax on
*See also a nice big list at http://texteditors.org/cgi-bin/wiki.pl?ViFamily.*
Of course there are alternatives to Vim that are based on different paradigms, such as [Emacs](emacs.md), its biggest rival, or plan9 editors such as [Acme](acme.md). In this regard any [text editor](text_editor.md) is a potential alternative. Nevertheless people looking for Vim alternatives are usually looking for other vi-like editors. These are for example:
Of course there are alternatives to Vim that are based on different paradigms, such as [Emacs](emacs.md), its biggest rival, or plan9 editors such as [acme](acme.md). In this regard any [text editor](text_editor.md) is a potential alternative. Nevertheless people looking for Vim alternatives are usually looking for other vi-like editors. These are for example:
- **[vi](vi.md)**: While you probably won't use the original ancient vi program but rather something like [nvi](nvi.md), vi is a [POSIX](posix.md) standard for a text editor that's much simpler and universal than Vim. It lacks many features one may be used to from Vim such as tabs, [autocompletion](autocomplete.md), [syntax highligh](syntax_highlight.md) or multiple [undos](undo.mf). But limiting yourself to only using the features specified by the standard makes you more likely to be able to operate any vi-like text editor you encounter. (List of features added by Vim to vi can be found in `runtime/doc/vi_diff.txt` in Vim source tree.)
- **[neovim](neovim.md)**: Tries to be the "[modernized](modern.md)" ([refactored](refactoring.md)) fork of Vim, it removes some code, adds a new plugin system but also [bloat](bloat.md) like [CMake](cmake.md). One of its self-stated goals is to be more "community driven". It is also written in C99 (while Vim is in C89, more portable). { At least I think. ~drummyfish }

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: 547
- number of commits: 680
- number of commits: 681
- total size of all texts in bytes: 2873219
longest articles:
@ -24,6 +24,14 @@ longest articles:
latest changes:
```
Date: Tue Feb 6 07:30:19 2024 +0100
corporation.md
debugging.md
lrs_dictionary.md
optimization.md
programming_language.md
wiki_pages.md
wiki_stats.md
Date: Mon Feb 5 13:10:19 2024 +0100
feminism.md
free_culture.md
@ -44,17 +52,6 @@ programming_language.md
wiki_pages.md
wiki_stats.md
Date: Sun Feb 4 07:54:26 2024 +0100
books.md
brainfuck.md
c.md
cc0.md
forth.md
golang.md
programming_language.md
progress.md
wiki_pages.md
wiki_stats.md
youtube.md
```
most wanted pages:

Loading…
Cancel
Save