Less Retarded Software

   Less [1]retarded software (LRS) is a specific kind of [2]software aiming
   to be a truly good technology maximally benefiting and respecting its
   users, following the philosophy of extreme [3]minimalism ([4]Unix
   philosophy, [5]suckless, [6]KISS, ...), [7]anarcho pacifism, [8]communism
   and [9]freedom. The term was invented by [10]drummyfish.

   By extension LRS can also stand for [11]less retarded society, a kind of
   ideal society which we aim to achieve with our technology.

   LRS is a set of ideas and kind of a mindset, a philosophy, though it tries
   to not become a traditional movement or even something akin a centrally
   organized group; by [12]anarchist principles it sees following people and
   groups of people as harmful, it always advocates to only follow ideas and
   to associate loosely. Therefore it tries to only be a concept that will
   remain pure, such as for example that of [13]free software, but NOT an
   organization, such as for example the [14]FSF, which will always become
   corrupt.

   As a symbol of LRS we sometimes use heart ([15]love), the peace symbol
   (pacifism, nonviolence) and A in circle ([16]anarchism), but these only
   serve as a universal identifier of the philosophy, not as a flag or
   anything similar -- as flags are a sign of [17]fascism -- for this the
   official LRS flag is defined to be a completely transparent square which
   has side length of one billion light years times the [18]busy beaver
   function of the current 64 bit [19]Unix time -- this is so that the flag
   cannot practically be manufactured and even scaled down versions will
   hardly serve the purpose of a flag (only the ideal version of the flag is
   acceptable, i.e. that which is completely transparent and invisible). The
   official international LRS day is every day in the year and it always
   takes precedence over any other cause whose day it is supposed to be (as
   long as it is aligned with LRS the other cause may be acknowledged too,
   but only in second or lower place).

   { TODO: official currency? }

   But please don't be fooled -- despite occasional [20]joking being part of
   LRS, it is in indeed a [21]serious effort. It sincerely seeks increasing
   good in the world, just not by traditional means (which LRS usually
   identifies as harmful) -- that's why it may seem confusing, weird or
   satirical. LRS is not a company, it's not a non profit, it's not a
   political party, people aren't paid for it, there are no bosses, therefore
   correctness and seriousness gives way to sincerity and humanity. Sometimes
   a joke has blurry borders, sometimes the author himself can't tell if what
   he said is a joke or not, sometimes something sounds like a joke simply
   because it truthfully reflects a ridiculous state of society, sometimes
   something said as a joke turns out to actually be a good idea.

   { In case the previous paragraph still seemed like joke itself: yes, it IS
   a serious effort. ~drummyfish }

Definition

   The definition here is not strict but rather [22]fuzzy, it is in a form of
   ideas, style and common practices that together help us subjectively
   identify software as less retarded.

   [23]Software is less retarded if it adheres, to a high degree (not
   necessarily fully), to the following principles:

     * Being made with a [24]truly selfless goal of maximally helping all
       living beings who may use the software without any intent of taking
       advantage of them in any way.
     * Trying to follow the [25]Unix philosophy (do one thing well, use text
       interfaces, ...).
     * Trying to follow the [26]suckless philosophy (configs as source files,
       distributing in source form, mods as patches, ...).
     * Being [27]minimalist ([28]single compilation unit, [29]header-only
       libraries, no build systems, no [30]OOP languages, simple [31]version
       numbering, ...), [32]countercomplex, [33]KISS, [34]appropriate
       technology. Any project has to be solo manageable if that's at all
       possible.
     * Minimizing [35]freedom distance, i.e. trying to offer freedom to as
       many people as possible.
     * Being [36]free software legally but ALSO practically (well commented,
       not [37]bloated and [38]obscured etc., so as to truly and practically
       enable the freedoms to study, modify etc.). This may also include
       attributes such as [39]decentralization.
     * Being [40]free culture, i.e. LRS programs are free as a whole,
       including art assets, data etc.
     * Minimizing [41]dependencies, even those such as standard library or
       relying on OS concepts such as files or threads, even indirect ones
       such as build systems and even non-software ones (e.g. avoiding
       [42]floating point, GPU, 64bit etc.).
     * Very [43]portable, hardware non-discriminating, i.e. being written in
       a portable language, minimizing resource usage (RAM, CPU, ...) and so
       on.
     * Being written in a good, [44]suckless programming language -- which
       languages are acceptable is debatable, but some of them most likely
       include [45]C (C89 or C99), [46]comun, [47]Forth, [48]Lisp, maybe even
       [49]Brainfuck, [50]False, [51]Lua, [52]Smalltalk, [53]Pascal etc. On
       the other hand bloated languages like [54]Python, [55]JavaScript or
       [56]Rust are absolutely unacceptable.
     * [57]Future-proof, [58]self-contained (just compile and run, no
       unnecessary config files, daemons, database services, ...),
       [59]finished as much as possible, not controlled by anyone (should
       follow from other points). This may even include attributes such as
       physical durability and design that maximizes the devices life.
     * [60]Hacking friendly, repairable and inviting to improvements and
       customization, highly adhering to [61]hacker culture.
     * Built on top of other LRS or LRS-friendly technology such as the
       [62]C99 language, comun, Unix, our own libraries etc.
     * Simple permissive licensing (being suckless legally) with great
       preference of [63]public domain, e.g. with [64]CC0 + patent
       [65]waivers.
     * Elegant by its simple, well thought-through solutions. (This is to be
       contrasted with modern rapid development.)
     * No [66]bullshit such as [67]codes of conduct, furry mascots, tricky
       licensing conditions, [68]ads etc.

Further Philosophy

   Here are a few bullet points giving further ideas about what LRS is about,
   also serving as advice for creating such technology:

     * [69]Do one thing well.
     * [70]Keep it simple, no [71]bullshit. Less is more, worse is better,
       small is beautiful. Don't overengineer.
     * Users are programmers. This means users can fiddle with their
       programs; instead of going to request a feature from the developer,
       the user can many times implement it himself thanks to simple design
       of the program, EVEN if the user is not an actual programmer (anyone
       can ctrl+F keywords and rewrite values in source code).
     * Bug reports are [72]patches.
     * Customization is [73]forking. A software tool is customized by
       applying personally selected patches and making personal changes to
       the source code (configuration is also part of source code) -- this
       creates a personal fork of the tool.
     * Forking is good.
     * Users compile their programs. Compilation is trivial and fast.
     * Programs are distributed in source form.
     * Be [74]selfless, program's goal is only to help its user.
     * Programs are efficient and take long time to make, they aren't
       consumerist products, they can't be made on schedule but they should
       aim to be [75]finished.
     * No one owns programs, no one owns [76]data, no one owns [77]art, no
       one owns [78]information and ideas. Everything is [79]free, legally
       AND [80]in any other ways.
     * Use universal interfaces (text), be compatible
     * No capitalist style [81]usercentrism: a user is NOT above programmer
       or any other living being (as it is in [82]capitalism). This means
       that if e.g. a feature can make user's life 1% better but will enslave
       additional 10 programmers with perpetual [83]maintenance, it should
       NOT be added.
     * Code is reusable.
     * [84]Hacking is good. Allow hacking, allow breaking and raping of your
       program in ways you didn't intend, do not artificially prevent
       anything.
     * Be [85]portable, respect weaker platforms and platforms of other
       types.
     * Programs are technology (NOT brands, franchises, weapons, political
       grounds, social networks, work opportunities, property, platforms,
       ...).
     * [86]Work is [87]shit, laziness is [88]good.
     * [89]Secrets are bad, [90]encryption is stupid.
     * [91]Low level is good, use only minimum necessary [92]abstraction.
     * ...

Why

   LRS exists for a number of reasons, one of the main ones is that we simply
   need better technology -- not better as in "having more features" but
   better in terms of design, purpose and ethics. Technology has to make us
   more free, not enslave us. Technology has to be a tool that serves us, not
   a device for our abuse. We believe [93]mainstream technology poses a
   serious, even existential threat to our civilization. We don't think we
   can prevent [94]collapse or a dystopian scenario on our own, or even if
   these can be prevented at all, but we can help nudge the technology in a
   better direction, we can inspire others and perhaps make the future a
   little brighter, even if it's destined to be dark. Even if future seems
   hopeless, what better can we do than try our best to make it not so?

   There are other reason for LRS as well, for example it can be very
   satisfying and can bring back joy of programming that's been lost in the
   modern toxic environment of the [95]capitalist mainstream. [96]Minimalist
   programming is pleasant on its own, and in many things we do we can really
   achieve something great because not many people are exploring this way of
   technology. For example there are nowadays very few programs or nice
   artworks that are completely [97]public domain, which is pretty sad, but
   it's also an opportunity: you can be the first human to create a
   completely public domain software of certain kind. Software of all kind
   has already been written, but you can be the first one who creates a truly
   good version of such software so that it can e.g. be run on embedded
   devices. If you create something good that's public domain, you may even
   make some capitalist go out of business or at least lose a lot of money if
   he's been offering the same thing for money. You free people. That's a
   pretty nice feeling and makes you actually live a good life.

   { Here and there I get a nice email from someone who likes something I've
   created, someone who just needed a simple thing and found that I've made
   it, that alone is worth the effort I think. ~drummyfish. }

Specific Software

   see also [98]LRS projects needed

   The "official" LRS programs and libraries have so far been solely
   developed by [99]drummyfish, the "founder" of LRS. These include:

     * [100]Anarch: Game similar to [101]Doom.
     * [102]comun: LRS [103]programming language.
     * [104]raycastlib: Advanced 2D [105]raycasting rendering library.
     * [106]SAF: Tiny library for small portable [107]games.
     * [108]small3dlib: Simple software rasterizer for 3D rendering.
     * [109]smallchesslib: Simple [110]chess library and engine ([111]AI).
     * [112]microtd: Simple [113]tower defense game written with [114]SAF.
     * [115]tinyphysicsengine: Very simple 3D [116]physics engine.
     * smaller projects like [117]dumbchat and [118]shitpress

   Apart from this software a lot of other software developed by other people
   and groups can be considered LRS, at least to a high degree (there is
   usually some minor inferiority e.g. in licensing). Especially
   [119]suckless software mostly fits the LRS criteria. The following
   programs and libraries can be considered LRS at least to some degree:

     * [120]brainfuck: Extremely simple [121]programming language.
     * [122]dwm: Official [123]suckless [124]window manager.
     * [125]Collapse OS and [126]Dusk OS: Extremely minimalist [127]operating
       systems.
     * [128]LIL: Tiny embeddable [129]scripting programming language.
     * [130]lisp: Programming language with a pretty elegant design.
     * [131]st: Official [132]suckless [133]terminal emulator.
     * [134]badwolf: Very small yet very usable [135]web browser.
     * [136]netsurf: Nice minimalist web browser.
     * [137]FORTH: Small programming language with very nice design.
     * [138]surf: Official [139]suckless [140]web browser.
     * [141]tcc: Small [142]C [143]compiler (alternative to [144]gcc).
     * [145]musl: Tiny [146]C standard library (alternative to [147]glibc).
     * [148]FALSE: Extremely small programming language.
     * [149]vim (kind of): [150]TUI text/[151]programming [152]editor. Vim is
       actually relatively big but there are smaller builds, flavors and
       alternatives.
     * [153]Simon Tatham's portable puzzle collection: Very portable
       collection of puzzle [154]games.
     * ...

   Other potentially LRS software to check out may include [155]TinyGL,
   [156]bootleg3d, [157]scc, [158]ed, [159]chibicc, [160]IBNIZ, [161]lynx,
   [162]links, [163]tcl, [164]uClibc, [165]miniz, [166]Lua, [167]nuklear,
   [168]dmenu, [169]sbase, [170]sic, [171]tabbed, [172]svkbd, [173]busybox,
   [174]darcs, [175]raylib, [176]IRC, [177]PortableGL, [178]3dmr,
   [179]openbsd, [180]mtpaint and others.

   Another idea: search for very old versions of "[181]modern" FOSS software,
   from the times before things like [182]CMake, [183]Python and [184]QT got
   popular (or even existed) -- many such projects got bloated with time, but
   their earlier versions may have been more aligned with LRS. You can get
   the old source code, it's present either in the git, on the project's
   website, on Internet Archive etc., compiling it should probably be much
   easier than compiling the "modern" version. This won't help with things
   like web browsers (as it won't understand the new formats and protocols),
   but will be fine text editors, drawing programs, 3D editors, games etc.
   You can also [185]fork the old version and make it a little better,
   customize it or publicly turn it into a new program, helping the whole
   world.

   It is also possible to talk about LRS data formats, [186]protocols,
   standards, designs and concepts as such etc. These might include:

     * [187]ASCII: Text encoding.
     * [188]fixed point: Fractional number format, as opposed to
       [189]floating point.
     * [190]RGB332, [191]RGB565: Simple [192]RGB formats/palettes.
     * [193]bytebeat: Simple and powerful [194]procedural music technique.
     * [195]farbfeld: [196]Suckless image format.
     * [197]flatfile: Using files instead of [198]database.
     * [199]rock carved binary data: Way of recording binary data for ages by
       manually carving them into rock, plastic or similar durable material.
     * [200]gopher: Simple alternative to the [201]Web.
     * [202]json: Simple [203]data text format.
     * [204]lambda calculus: Minimal [205]functional language.
     * [206]markdown: Very simple document format.
     * [207]ppm: Simple image format.
     * [208]qoi: Lossless [209]compression image format in < 1000 LOC,
       practically as good as [210]png.
     * [211]reverse polish notation as opposed to traditional expression
       notation with brackets, operator precedence and other [212]bloat.
     * [213]set theory: Basis of all [214]mathematics.
     * [215]textboards, [216]imageboards and pure [217]HTML personal websites
       as opposed to [218]forums (no registration, no users, simple
       interface) or even [219]social networks
     * [220]Turing machine: Minimal definition of a [221]computer.
     * [222]txt2tags: Very simple document format.
     * ...

   Other technology than software may also be aligned with LRS principles,
   e.g.:

     * simple and cheap [223]bicycle without changing gears, as opposed to
       e.g. a [224]car
     * [225]sundial, [226]hourglass, ...
     * old technology such as toys, alert and cars (e.g. the 1980s toy "See
       n' Say") used to play back prerecorded sounds without using any
       electronics or requiring batteries, using only a plastic disc that
       span on needle (in the same way vinyl records work)
     * [227]knives are pretty less retarded
     * [228]rocks
     * [229]tangram, [230]chess, [231]go, [232]backgammon, ...
     * simple flute or a home-made drum kit as musical instruments (as
       opposed to e.g. grand piano)
     * street [233]football as a cheap, simple and accessible sport (unlike
       for example ice hockey)
     * [234]less retarded hardware
     * ...

Politics/Culture And Society

   See also [235]less retarded society and [236]FAQ.

   LRS is connected to a pretty specific political beliefs, but it's not a
   requirement to share those beliefs to create LRS or be part of the
   community centered around LRS technology. We just think that it doesn't
   make logical sense to support LRS and not the politics that justifies it
   and from which it is derived, but it's up to you to verify this.

   With that said, the politics behind LRS is an [237]idealist [238]anarcho
   pacifist [239]communism, but NOT [240]pseudoleftism (i.e. we do not
   support political correctness, [241]COCs, [242]cancel culture,
   Marxism-Leninism etc.). In our views, goals and means we are similar e.g.
   to the [243]Venus project, even though we may not agree completely on all
   points. We are not officially associated with any other project or
   community. We [244]love all [245]living beings (not just people), even
   those who cause us pain or hate us, we believe love is the only way
   towards a good society -- in this we follow similar philosophy of
   nonviolence that was preached by [246]Jesus but without necessarily being
   religious, we simply think it is the only correct way of a mature society
   to behave nonviolently and lovingly towards everyone. We do NOT have any
   leaders or [247]heroes; people are imperfect and giving some more power,
   louder voices or greater influence creates hierarchy and goes against
   anarchism, therefore we only follow ideas. We aim for true social (not
   necessarily physical) equality of everyone, our technology helps everyone
   equally. We reject [248]competition as a basis of society and
   anti-equality means such as violence, [249]fights, bullying
   ([250]cancelling etc.), [251]censorship ([252]political correctness etc.),
   [253]governments and [254]capitalism. We support things such as
   [255]universal basic income (as long as there exist [256]money which we
   are however ultimately against), [257]veganism and [258]slow movement. We
   highly prefer peaceful [259]evolution to [260]revolution as revolutions
   tend to be violent and have to be [261]fought -- we do not intend to push
   any ideas by force but rather to convince enough people to a voluntary
   change.

See Also

     * [262]less retarded society
     * [263]suckless
     * [264]Venus project
     * [265]reactionary software
     * [266]KISS
     * [267]Buddhism
     * [268]bitreich

Links:
1. retard.md
2. software.md
3. minimalism.md
4. unix_philosophy.md
5. suckless.md
6. kiss.md
7. anpac.md
8. communism.md
9. free_software.md
10. drummyfish.md
11. less_retarded_society.md
12. anarchism.md
13. free_software.md
14. fsf.md
15. love.md
16. anarchism.md
17. fascism.md
18. busy_beaver.md
19. unix_time.md
20. jokes.md
21. serious_business.md
22. fuzzy.md
23. software.md
24. selflessness.md
25. unix_philosophy.md
26. suckless.md
27. minimalism.md
28. single_compilation_unit.md
29. header_only.md
30. oop.md
31. version_numbering.md
32. countercomplex.md
33. kiss.md
34. appropriate_tech.md
35. freedom_distance.md
36. free_software.md
37. bloat.md
38. obscurity.md
39. decentralization.md
40. free_culture.md
41. dependency.md
42. float.md
43. portability.md
44. suckless.md
45. c.md
46. comun.md
47. forth.md
48. lisp.md
49. brainfuck.md
50. false.md
51. lua.md
52. smalltalk.md
53. pascal.md
54. python.md
55. js.md
56. rust.md
57. future_proof.md
58. self_contained.md
59. finished.md
60. hacking.md
61. hacking.md
62. c.md
63. public_domain.md
64. cc0.md
65. waiver.md
66. bullshit.md
67. coc.md
68. marketing.md
69. unix_philosophy.md
70. kiss.md
71. bullshit.md
72. patch.md
73. fork.md
74. selflessness.md
75. finished.md
76. data.md
77. art.md
78. information.md
79. free_software.md
80. de_facto.md
81. usercentrism.md
82. capitalism.md
83. maintenance.md
84. hacking.md
85. portability.md
86. work.md
87. shit.md
88. good.md
89. secret.md
90. encryption.md
91. low_level.md
92. abstraction.md
93. capitalist_software.md
94. collapse.md
95. capitalism.md
96. minimalism.md
97. public_domain.md
98. needed.md
99. drummyfish.md
100. anarch.md
101. doom.md
102. comun.md
103. programming_language.md
104. raycastlib.md
105. raycasting.md
106. saf.md
107. game.md
108. small3dlib.md
109. smallchesslib.md
110. chess.md
111. ai.md
112. utd.md
113. tower_defense.md
114. saf.md
115. tinyphysicsengine.md
116. physics_engine.md
117. dumbchat.md
118. shitpress.md
119. suckless.md
120. brainfuck.md
121. programming_language.md
122. dwm.md
123. suckless.md
124. wm.md
125. collapseos.md
126. duskos.md
127. operating_system.md
128. lil.md
129. script.md
130. lisp.md
131. st.md
132. suckless.md
133. terminal.md
134. badwolf.md
135. browser.md
136. netsurf.md
137. forth.md
138. surf.md
139. suckless.md
140. browser.md
141. tcc.md
142. c.md
143. compiler.md
144. gcc.md
145. musl.md
146. c.md
147. glibc.md
148. false.md
149. vim.md
150. tui.md
151. programming.md
152. editor.md
153. stppc.md
154. game.md
155. tinygl.md
156. bootleg3d.md
157. scc.md
158. ed.md
159. chibicc.md
160. ibniz.md
161. lynx.md
162. links.md
163. tcl.md
164. uclibc.md
165. miniz.md
166. lua.md
167. nuklear.md
168. dmenu.md
169. sbase.md
170. sic.md
171. tabbed.md
172. svkbd.md
173. busybox.md
174. darcs.md
175. raylib.md
176. irc.md
177. portablegl.md
178. 3dmr.md
179. openbsd.md
180. mtpaint.md
181. modern.md
182. cmake.md
183. python.md
184. qt.md
185. fork.md
186. protocol.md
187. ascii.md
188. fixed_point.md
189. float.md
190. rgb332.md
191. rgb565.md
192. rgb.md
193. bytebeat.md
194. procedural.md
195. farbfeld.md
196. suckless.md
197. flatfile.md
198. database.md
199. rock_carved_binary_data.md
200. gopher.md
201. www.md
202. json.md
203. data.md
204. lambda_calculus.md
205. functional.md
206. markdown.md
207. ppm.md
208. qio.md
209. compression.md
210. png.md
211. rpn.md
212. bloat.md
213. set_theory.md
214. math.md
215. textboard.md
216. imageboard.md
217. html.md
218. forum.md
219. social_network.md
220. turing_machine.md
221. computer.md
222. txt2tags.md
223. bicycle.md
224. car.md
225. sundial.md
226. hourglass.md
227. knife.md
228. rock.md
229. tangram.md
230. chess.md
231. go.md
232. backgammon.md
233. football.md
234. less_retarded_hardware.md
235. less_retarded_society.md
236. faq.md
237. idealism.md
238. anpac.md
239. communism.md
240. pseudoleftism.md
241. coc.md
242. cancel_culture.md
243. venus_project.md
244. love.md
245. life.md
246. jesus.md
247. hero_culture.md
248. competition.md
249. fight_culture.md
250. cancel_culture.md
251. censorship.md
252. political_correctness.md
253. government.md
254. capitalism.md
255. ubi.md
256. money.md
257. veganism.md
258. slow_movement.md
259. evolution.md
260. revolution.md
261. fight_culture.md
262. less_retarded_society.md
263. suckless.md
264. venus_project.md
265. reactionary_software.md
266. kiss.md
267. buddhism.md
268. bitreich.md