A Flotilla of Shit

Modern software is junk. Almost every program uses vastly more resources than it needs, and does its main task worse than older, more focused programs.

I don't think I have a single "new" program that's as good as the thing it replaced, not a single program as good and light as the stuff we had 30 years ago. So where possible I use 30-40 year old software, and I resent the complex stuff I have to deal with. It's polluting the planet, literally boiling the oceans.

Case 1

This blog is in WordPress, which is in PHP on a giant tower of shitty software, like 20 "plugins" to fix things that are inadequate and wrong in it. I've done what I can to lighten it some, streamline layout, but that's lipstick & yoga pants on a pig. 25 years ago I had a simple blog (uh, actually also in PHP, tho I had another one in Perl, so that's not any better). But that was <1000 LOC, it just needed a tiny local database, and really could've just used flat files. And before the blog, I had just my hierarchical web site, and before that I had Gopher.

Gopher was basically perfect. Just a structured tree of documents, accessed by raw socket connections or manually by telnet. If you wanted to make a journal ("web log" -> "blog" was a decade away), you put links to plain text entries on a Gopher menu.

iMark's Gopher Hole _   _   0
gMugshot    /images/mark.gif    example.com 70
1Games  /games  example.com 70
iJournal    _   _   0
01990-09-01 /journal/1990-09-01.txt example.com 70
01990-08-25 /journal/1990-08-25.txt example.com 70
.

etc. Actually at the time I probably would've done chronological order, not reverse.

We have Gemini now trying to be like Gopher, but it has TLS, and a complex connection protocol, and error messages (Gopher just responded "3" if something went wrong, possibly followed by a message), and then the page you get is presentation, not a menu; it doesn't tell you the content type of any link, it tries to style content in-line, like a lower-resource WWW. But to run Gemini, you need a web server to update TLS, it won't stay up without constant maintenance, and it uses more resources than just serving a web page.

Case 2

Mastodon is a giant database that constantly messages other databases to tell them about posts… and it still sometimes takes a while to propagate messages, or fails utterly. There's no markup except URLs, and either polls or images (can't have both, and aren't inline). The only control you have over your experience is blocking people, and crude text-match filters.

30 years ago, we had USENET, email, and IRC/ICB chat. USENET was often slow, some servers would only connect once a day, others every hour, some every 15 minutes or so. You might need a couple hops to get to someone. But your message length was unlimited, most clients handled some markup with *bold*, /italic/, _underline_, and <URLs and FTP hostnames>. Images had to be UUEncoded, but most clients could insert them easily, graphical ones could display them inline, and download them; I used text-only strn so I'd download and run xv to see images. But the power we had in those clients was so much better. strn did scoring, I had thousands of lines of regular expressions and header lines to match with scores up or down. I'd go into a newsgroup, and the best stuff would be at the top, mediocre stuff below it if I cared, junk and spam and assholes deleted.

If you wanted to immediately contact someone, email or chat existed. There's an experimental chat system on Pleroma, but not on Mastodon yet/ever. Or you can use the modern equivalent of that, burn 1GB of RAM and a CPU core running Slack or Discord. Madness.

Case 3

Emacs. Eight-hundred Megs And Constantly Swapping. Is emacs the original sin, or were there flotilla-of-shit programs before it? Back in the day, you could start micro-emacs ("me" on Atari ST, later uemacs) in milliseconds, or emacs in many tens of seconds or even minutes. The emacs people would just leave this giant blob of an interpreter, editor, half an operating system but not really, running all day, eat most available RAM and CPU, and load files into it. The me and vi people would instantly open a file, edit, and close, barely a blip on the system resources. 30 years later, uemacs starts in nanoseconds, and emacs starts in seconds, but it's just as obnoxious.

Today I use BBEdit, which is svelte for an IDE, but it's a giant pig compared to what "a text editor" needs to be; I keep trying other IDE-types like Sublime Text or Atom, and they're too heavy for me to tolerate. And in console, I run Vim, which isn't as bloated as emacs, but it's fat. None of these make me happy. STeVIe was much lighter, and I've repeatedly considered going back to it if I can recompile it. I did manage to compile Linus' build of uemacs and it's nice, but I can't get used to it again after 25-ish years off it; my console habits are vi, it seems.

Resolved

The end goal of software is not to put everything in it, a flight simulator in your spreadsheet (fucking Excel!); a computer in your fridge for playing ads; a web server, email client, and text editor in your math program "notebook"; a fucking NTFS miner in your MS Paint clone.

The end goal of good software is to do ONE THING. To do it fast, efficiently, and correctly, in the least resources you can.

Re-evaluate your use of flotilla of shit software, and dump it.

Computer Lib/Dream Machines

Someone has finally uploaded a (possibly legal?) copy of to archive:

Read it from either end, there's two coherent books written back-on-back like an Ace Double, happily you don't have to turn your monitor upside down.

The first personal computer book (before the Altair came out!), though the PCC Newsletters predates it (and he mentions them). Fascinating time capsule, political tract about use of computers to control you (CYBERCRUD as he puts it).

Any nitwit can understand computers, and many do.
Unfortunately, due to ridiculous historical circumstances,
computers have been made a mystery to most of the world. And
this situation does not seem to be improving. You hear more
and more about computers, but to most people it's just one big
blur. The people who know about computers often seem unwilling
to explain things or answer your questions. Stereotyped
notions develop about computers operating in fixed ways--and
so confusion increases. The chasm between laymen and computer
people widens fast and dangerously.

This book is a measure of desperation, so serious and abysmal
is the public sense of confusion and ignorance. Anything with
buttons or lights can be palmed off on the layman as a
computer. There are so many different things, and their
differences are so important; yet to the lay public they are
lumped together as "computer stuff," indistinct and beyond
understanding or criticism. It's as if people couldn't tell
apart camera from exposure meter or tripod, or car from truck
or tollbooth. This book is therefore devoted to the premise
that

EVERYBODY SHOULD UNDERSTAND COMPUTERS.

Computers are simply a necessary and enjoyable part of life,
like food and books. Computers are not everything, they are
just an aspect of everything, and not to know this is computer
illiteracy, a silly and dangerous ignorance.

In many ways as relevant as ever. Just because you have a computer or "smart" phone, doesn't mean you know anything about its operation, purpose, and purposes you can put it to. Most people just use them as glorified TV sets and newspapers, mass media delivering people.

Unredacted 1st ed, includes some very… Ted Nelson is a white male born in the 1930s, his language about race and sex are, uh… not acceptable sometimes. Be aware.

Also, cover price $7 in 1974 is $37.61 in 2021, not $120, as Ted currently charges for a photocopy on his website. But at least he managed to publish this, unlike Xanadu which took 50 years to ship nothing.

I have a much longer draft of notes about it, that I'll probably finish up at some point. Now that I can just point you at the original, that gets easier.

BASIC at 57

We had a lingua franca, including the first 15 years of personal computing, that could be taught in a few hours and immediately used practically, and then it vanished almost utterly in the late '90s. Two generations are completely illiterate in the language of their ancestors.

Now, there's a couple of heirs to BASIC.

Python mostly took that role. For a while it looked like every computer would have a good version, but then between the Python 2/3 fiasco and hardening systems, you mostly get an old Python shipped on platform, and have to manually install from Python.org. IDLE (with my IdleStart shortcut ) is still a pretty great REPL, editor, and runner. import turtle as T; T.reset() and you can start doing turtle graphics in 10 seconds. The Raspberry Pi Beginner's Guide has a lot of Python as starting language (and Scratch, which is more a cruel joke than a language), which isn't great at graphics on a low-power computer but it is possible. The problem is it's considerably slower than a good BASIC, can't make use of multi-core, and relies on Tkinter for most graphics, which is even slower. Python's an evolutionary dead-end.

JavaScript is everywhere, and trivial to get started with… except you immediately run into a security wall, so you have to run a web server (easiest is, ironically, python3 -m http.server -b 0.0.0.0 8000 which serves all files in current directory). Edit file, reload browser page. And then doing anything in JS is a big hike up the mountain of JS, HTML, CSS. But it does run. Teaching everything you need to do interactive programs in it is hard bordering on a semester's coursework.

Scheme and LISP can be used this way, as seen in the Land of Lisp book, and Racket, but SBCL is a complex and terrible runtime for an ugly dialect of LISP (IMO, don't throw bombs at me), Racket has a broken REPL and their focus is on language experiments, not so much being useful. The other Schemes vary from hard engineering to even launch, to easy enough but poorly supported like my favorite Chez Scheme. I've been working on a "Beginner's Scheme" book for a while, and it's hard to compress what you need to know to get anything done, into small, fun parts.

It's actually easier to do Programming on Your Phone.

But there's still nice enough BASICs, in particular Chipmunk BASIC, and the old BASIC books & magazines work fine in it:

Just make a BASIC folder, download all those PDFs into it, and read them to see how quickly they go from "here's the BASIC commands" to "write a real program". And how you can make computing fun, not a chore.

I've been spending a little "non-productive" time hacking on my BASIC CRPG that'll run on the SpecNext when it arrives later this year… I do my work for now in Chipmunk; because NextBASIC has some strict limitations, I keep those limitations in my program, like single-letter array names. Graphics will have to be totally rewritten (but most of the UI is text-mode and portable), some data storage, too. Happily NextBASIC does have named functions (PROC, or SUB in Chipmunk), local variables, and loops (REPEAT:WHILE x:...:REPEAT UNTIL x, verbose but usable), so there's less GOTO and no GOSUB in my code.

I thought the line numbers and other limitations would kill me when I started doing it again, but in practice it hasn't bothered me much. I start each logical section at multiples of 10 or 100, add 1 per line, indent function and loop bodies, rarely have to renumber them. Since I don't GOTO/GOSUB much, finding them is less of a problem, only time I need specific line numbers is RESTORE xxx for DATA.

I'm starting to see BASIC as an interesting language again: Low-level enough to do something on simple machines, and reveal exactly how your algorithms work, high-level enough that you can get something done (much easier than ASM). You wouldn't want to build a large system in it, but focused problems, "tunnels through rock" as Chris Crawford wrote in De Re Atari, are well suited to it.

The original home computers having "turn on, maybe hit one key, you're in BASIC" interaction was amazing, unparalleled in any other system since, and we need to get back to as close to that as possible.

Raspberry Pi 400 Setup

I got my RasPi400 after weeks of delay. WEEKS! What is this, 1980? (I wish)

Keyboard is almost precisely the size & layout of the Apple Magic Keyboard, which is fine with me. The key travel's bad, like the lawsuit butterfly keyboard. I'm moderately unpleased with the keyboard touch, but it's definitely usable. I switch over here to my Magic Keyboard, and it's night and day in quality. Mouse is nice enough; it's not a hi-DPI gaming mouse, but it's a good workstation mouse. Aesthetics are fine, I'd prefer black to white, but the raspberry red highlights are pleasing.

It is so nice to have a really usable little computer in a keyboard again. Literally the best thing since the Atari 800 (and that cost $899 in 1980, $2,869.53 in 2021's inflated currency; this is 28x cheaper!).

I've grown accustomed to Raspberry Pi OS (née raspbian). It's still a lame linux, but they've mostly got pulseaudio working(!) after 20 years of it being not functional, wifi mostly stays up, the desktop environment isn't awful. It's no Mac OS X Tiger, but nothing is anymore. There's less complaining from me using it, than hours of playing sysadmin would cause.

Not RasPi's problem, but I got a new, overly large portable LCD for use with this, FANGOR 15.6"; it's basically impossible to find any LCD >7" but <15" which has a decent rez (1920x1080) and color reproduction; the random-Chinese-fake-company plastic 10" on my RasPi4 is just awful, the worst screen I've ever used. RasPi4 is now on my bookshelf, waiting to be moved into a closet where it will live forever as a headless server that I don't have to hear the fan whine.

Checklist

  • "Recommended software"
    • Keep: Geany, Mathematica, WolframAlpha, VNC Viewer
    • Currently errors when I try to remove LibreOffice, which is bullshit!
    • I don't use Claws Mail, I use webmail on the pi. I should install mutt or alpine. But if you like graphical mail, leave it.
    • Minecraft Pi is ridiculous, tiny world, creative mode only, tiny window you can't resize. Don't bother.
    • Remove everything else.
  • Remove the unremovable crap and like half an SD card of dependencies!
    % sudo apt-get purge "libreoffice*"
    % sudo apt-get purge "scratch*"
    % sudo apt-get clean
    % sudo apt-get autoremove
    
  • Add/Remove Software: zsh, gauche, vim. Put zsh in the correct place:
    % cd /bin
    % sudo ln -s /usr/bin/zsh
    % chsh /bin/zsh
    
  • Fix mouse scroll direction!
    % sudo vi /usr/share/X11/xorg.conf.d
    
    Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        # add this:
        Option "NaturalScrolling" "true"
    EndSection
    
  • Fix capslock to be ctrl:
    % sudo vi /etc/default/keyboard
    XKBOPTIONS="ctrl:swapcaps"
    

    Or ctrl:nocaps if you don't want any capslock, but I find it somewhat useful.

  • Create local user, not pi:

    % sudo adduser mdh
    % sudo usermod -aG sudo mdh
    
  • login as mdh
    % chsh /bin/zsh
    % mkdir bin
    % mkdir tmp
    
  • vi .profile:
    export EDITOR=vim
    export TMP="$HOME/tmp"
    export LESS="-C -i -M -g -e -y4"
    export PATH="$HOME/bin:$PATH"
    
  • vi .zshrc:
    umask 022
    
    unsetopt NOMATCH
    setopt APPEND_HISTORY
    setopt COMBINING_CHARS
    setopt EXTENDED_HISTORY
    setopt HIST_IGNORE_DUPS
    setopt HIST_REDUCE_BLANKS
    setopt INC_APPEND_HISTORY
    setopt INTERACTIVE_COMMENTS
    setopt NO_BANG_HIST
    setopt PROMPT_SUBST
    
    bindkey -e
    
    export HISTFILE=~/.zhistory
    export HISTSIZE=10000
    export SAVEHIST=$HISTSIZE
    
    autoload -U zmv
    autoload -U colors && colors
    export PS1="%{$fg[red]%}%n@%m:%~%#%{$reset_color%} "
    
    zmodload zsh/mathfunc
    zmodload zsh/regex
    
    function mcd() {
        mkdir -p "$1"
        cd "$1"
    }
    
    function cdcd() {
        while [ $# -gt 0 ]; do
            cd "$1"
            shift
        done
    }
    
    function hd() {
        hexdump -C "$1"|less
    }
    
    alias ..='cdcd ..'
    alias ...='cdcd ../..'
    alias ....='cdcd ../../..'
    alias .....='cdcd ../../../..'
    alias c='clear'
    alias grep='egrep'
    alias l='ls -FsCk'
    alias la='ls -FsCka'
    alias ll='ls -al'
    alias md='mkdir'
    alias rd='rmdir'
    alias sd='screen -d -r'
    alias v='vim'
    alias x='exit'
    
  • Reboot, should be nice now.

Outstanding Issues

  • No multimedia keys
  • xscreensaver auto-locking; I have a hacky manual way but I don't like it.
  • Hook into (see fediverse)

Raspbian from the Keyboard

Doing some maintenance and setup on my RasPi4, I struggled to find keyboard shortcuts. Where I did find them online, they were slightly obsolete or just not correct for my keyboard.

Some of these are specific to my Rii keyboard/trackpad combo, which has a Fn key and F-keys are "under" the media keys and arrows. A normal keyboard doesn't need to type Fn.

Key Effect
Ctrl-Alt-Fn-Del Shutdown menu
Ctrl-Esc System menu
Alt-Space Window menu
Alt-Fn-F2 Run Program dialog
Alt-Fn-F11 Fullscreen window
Alt-Tab Cycle windows
Ctrl-Q Quit most programs
Alt-Fn-F4 Kill any program
Ctrl-Alt-Arrow Left/Right packs window to side, Up fullscreen, Down not-fullscreen.
Ctrl-Alt-Fn-F1-6 Virtual Console 1-6
Ctrl-Alt-Fn-F7 GUI

I love Ctrl-Alt-Arrow keys now that I know them. It's not quite Ratpoison or other anti-mouse window managers, but it's so handy on a small screen.

If you use virtual consoles, I cannot recommend highly enough learning to use screen, so you only need to remember that one of them is open, and can restore that session in any terminal later.

I still don't know what the Chromium program menu key is, it won't tell me and the docs are useless. I loathe that every Linux program chooses a different place to put menus. It shouldn't be allowed.

Useful Shell Commands

  • lxterminal: Standard Terminal
  • omxplayer: Audio/Video player
  • scrot: Screenshot, dumps into ~ in format Y-M-D-HMS_REZ_scrot.png (which is terrible, but whatever, man). I can't generate its printscreen keycode, supposedly I can edit openbox config to add a keycode for it. Later. I can always run scrot from the Run Program dialog, or sleep 10; scrot from lxterminal and switch windows.
  • gpicview: Image viewer
  • mousepad: Simple GUI text editor. Has line numbers, paren matching, and different themes, so if you don't want to use GVim or Geany, or nano or vim from Terminal, this is nice and starts nigh-instantly.
  • leafpad: Shitty Gtk text editor. You should hit Ctrl-Esc, Preferences, Main Menu Editor, Accessories, Text Editor, Properties. If it says leafpad, change that to mousepad.

I don't have Dropbox on it, and that'd be awkward anyway, so I'm still pondering how to easily get files off it. sftp or scp works, but I'd rather have a general-purpose, auto-syncing share folder.

RasPi 400: Adorable New Keyboard Computer

This is very nice, at least in principle.

Classic home computers – BBC Micros, ZX Spectrums, Commodore Amigas, and the rest – integrated the motherboard directly into the keyboard.
No separate system unit and case; no keyboard cable. Just a computer, a power supply, a monitor cable, and (sometimes) a mouse.

Hm, the naming is obviously after the Atari 400 (so 800 will be the 8GB model?), but they don't mention Atari. Well, the criminals now doing business as "Atari SA" aren't people you want to associate with. And these are English, who couldn't afford nice computers back then.

It's not really $70, it's $100 plus a monitor, because the cabling is unusual, you should not get the no-cables computer-only box. When I got my RasPi4 I had to email them to get my micro-HDMI cables (which they did supply), and the cheapo monitor is still terrible but I haven't found a good cheap replacement. The RasPi400 also doesn't have a power switch; the CanaKit set at least gave me an inline power clicker.

Having the keyboard & computer in one gets you much closer to a nice clean cyberdeck than the current maze of wires; there's no battery pack, but in most cases what you want is a small computer in your satchel you can set down, plug in, and work. I'm dubious of using a mouse with this in most space-constrained areas (machine rooms, or cafés—in the distant future when we can go back to cafés), but trackpads and trackballs are expensive, too.

RasPi4 is critically heat-constrained, the fan runs all the time on mine or it dies. El Regerino does a teardown and review, and the giant heat sink plate seems to solve the problem. I could probably justify getting this just to have silence! Or a fedi-pal has suggested the Argon One heat-sink case, which is a much cheaper fix.

Software's still an issue. Raspbian is a relentlessly mediocre Linux variant; I said earlier I'd switch it to BSD, but that hasn't happened yet. I should update to the newer "Raspberry Pi OS" and see if it's better. … Later: Not really. You can set some better scaling options now so it's not unreadable. WOO. (I shouldn't mock, scalable UI is really fucking hard, and they've got at least most of the stock software configured for it; notably Chromium yes, but not Firefox).

Dev tools are not great on RasPiOS. Ludicrously, they suggest Python, the slowest modern language on the slowest modern hardware. Their free "Create GUIs with Python" book uses a fat layer on top of Tkinter, which is awesome for portability, totally awful for going through now 3 layers to reach hardware. No. Almost anything will be better on it. As I noted, Gauche runs, it's fine for porting small tools, and has industrial-strength (and industrial-ugly) GTK.

A much better IDE will be sudo apt-get install vim-gtk3 (gvim runs faster than vim in lxterm, though it pulls in a preposterous set of dependencies)

Just as a sanity test ("maybe a 4GB, 1.5GHz, heat-constrained computer is OK for Python!"), I wrote a tiny 10 PRINT maze program in both. Gauche fills the terminal instantly; I can see the lines being drawn by Python, and it's even slower in any IDE. That's just one random number per char, imagine doing real work!

All their programming books and the new Beginner's Guide are up for free as PDF on their MagPi books page, or now in-OS from Raspberry menu, Help, Bookshelf. Looking thru the guide, it covers:

  • Hardware tour so you can identify ports
  • Software setup
  • Programming in Scratch for kids. As I was raised on BASIC and assembly, I roll my eyes at programming by drag-and-drop instead of interactive text editing, but Scratch isn't awful, just cutesy, bulky (a 10-statement program will fill a page of the book) and very slow.
  • Programming in Python. Thonny IDE looks OK, for what it is, with integrated REPL, tabbed editing, and debugger. But IDLE does as well; both use Tkinter, and are non-fun slow on the little device.
  • A starter chapter on using the GPIO, doing wiring, digital circuits, and Scratch to blink an LED. Then controlling the Sense Hat, which is maybe the worst peripheral I've ever seen. There's plenty of other small-screen interfaces or sensor devices that'd be better, surely.
  • Appendices on how to install software, and finally an extremely inadequate tutorial on using the terminal.

For $100, it's a cute little portable computer, but the way they suggest using it will make it seem like a 1K RAM ZX-80, not the reasonably fast secondary machine (or kid's first Scheme terminal) it can be if you're not working under multiple layers of mud.

Software Principles for 2020

This is both for myself, and to decide what software I'll tolerate in my presence in the future.

  1. No lag. All UI must respond and be responsive again within 100ms. Most everyone has many cores in their CPUs and a massively parallel GPU not doing that much, you can spare ONE to run your work thread. Stop with the long animation shit. 100ms is plenty to see a shadow moved from one place to another, where there is now an interactive UI.
  2. No load screens. If you can't preload "instantly", be functional, show a usable menu while background loading. Media streaming needs to buffer, but you can show a poster frame instead of empty space.
  3. No ads or spyware. If you can't subsidize your software some other way, don't ship software. Or as the late very lamented Bill Hicks said, "If anyone here is in advertising or marketing, kill yourself!" (and of course there's ads on youtube; so maybe I need to find a better video hosting system? I know there's a fediverse-based video thing)
  4. No custom binary formats. Save your data in JSON or some other common system (plist on Mac, etc), so users can export & manipulate it from their own tools.
  5. No sites without syndication. If you have a web site or blog, you MUST support RSS or Atom, or both. Failure to do so should have you removed from the Internet.
  6. No unsecure connections. I know it's hard to add https the first time, and some older services can't be easily wrapped, but every http connection is a chance for false information to be fed to you, your computer compromised, your information to be stolen.

Raspberry Pi 4 Setup

In my long-running cyberdeck-building saga, I've tried a few variations. Now trying the new RasPi4-4GB from CanaKit, Rii K12 keyboard, and a very cheap terrible Elecrow 10.1" monitor. When I first got the shipment, the MicroHDMI-HDMI cable was missing, but CanaKit quickly shipped me two, in case I want to run two monitors on my very tiny computer. And then when I got everything hooked up… nothing happened. Turns out, the recommended format tool formats SD cards in ExFat, and RasPi only boots from FAT32. OS X's "new" Disk Utility is awful but did let me pick the right option, copied NOOBS, and was able to boot Raspbian! Yay!

Protip with the Rii keyboard: Little radio adapter is hidden in one of the feet. Took me a bit to figure out why it wouldn't pair. It's a weird layout, keys are a little mushier than I like (I like either classic buckling spring IBM or Northgate keys, or the thin super-crisp "Apple Magic Keyboard" keys), but it's attractive, great for the size, and the trackpad works better than I expected as a real mouse; I do have to hit the left-click keyboard button sometimes to wake it up. I may or may not stick with this forever.

I won't be staying in Raspbian, I hate Linux more than anything, but I don't want to fight with setting up BSD on a new device just yet. What I'd love is if Haiku worked on it, but BSD is probably a saner choice.

Uninstalled all the stupid stuff that's preloaded. LibreOffice can suck it, 10 different "simple IDEs" can fuck off. Mathematica and Wolfram Alpha can stay. "vi" is actually Vim, but "vim" is not installed; anyway I won't be working full-time in Vim. Did an adduser, installed zsh and chsh to zsh; fucking Lintwats still use bash after all the security holes! After some advice from Mastodon, Geany seems tolerable as a GUI editor, and it's cross-platform, good option.

There's a Chez Scheme package, but it didn't install anything and apparently is long out of date. Chicken only has the compiler, not a REPL. But Gauche installs, the "gosh" REPL runs fine, and seems to have working GL & GTK+ libraries, which may be a reasonable way to make some GUI tools for it.

Chromium is the standard browser, which whatever man, but it keeps bugging me to sign in, and I will never do that. It plays Youtubes OK, which is likely to be 75% of its runtime. I'm kind of impressed the sound works and I won't touch anything about that except volume because Linux + sound = 9th level of Hell.

I loathe the very simplistic Windows-like wm it starts with, haven't seen any "setting" to change that, probably have to go fight config files and Raspbian won't be here that long.

Now I need to finish the keyboard box, so I can make this portable, but as just a little desktop computer it's pretty sweet, and my setup cost me $220 total (plus some earlier experiments).

The Machine Stops

The problem with the Internet… and here I'm referring to (sweeps hand across everything in view) all of this, but to take just current events Google blocking ad-blockers in Chrome, Google downtime locking people out of their Nest thermostats and "Home"-controlled security systems, horrible prisons of the mind like Twitter and Facebook, and the cacophony of Fediverse drama over Eugen adding features (better features are already in Pleroma and glitch-soc Fediverse servers), Gab forking Mastodon, client devs making unilateral decisions to block domains despite helpless users complaining, or anyone having "free speech" (which Eugen in particular is opposed to; I strongly advise against using mastodon.social, find another instance). These are just a point-in-time examples, it's been going on for decades (oh, USENET, how we don't miss your flamewars) and will only end with us.

… is people using software they didn't write themselves. No understanding, education, or discipline required. Just install something and it works! It's a product, not a skill! But they don't know how, or why, or why they should not.

"It didn't take any discipline to acquire", in the words of Ian Malcolm/Michael Crichton.

Until the software they rely on shuts down, literally like E.M. Forster's "The Machine Stops", and then weak unskilled mole-people crawl out of the wreckage of machines they never learned to understand, make, or repair, and then die.

My solution is drastic but logically unavoidable: No more software installs. As a child, you get a bare machine with nothing but a machine-language monitor. You learn ML first. You type in a language compiler or interpreter. You build up your own tools. We return to type-in program listings like Compute!, but no binary blobs, it must all be readable, comprehensible source, with design and implementation documentation.

If you want to share software, you need to build up your toolchain to that point yourself. Hopefully by then you've learned to read all patches you install.

Should this be extended to all technology? Information technology has the unique ability to coerce how and what you think; an automobile or an antibiotic does not. There's an argument (in "The Notebooks of Lazarus Long", for instance) that a citizen should be able to make all their own things, "specialization is for insects". But insects are the most successful clade on Earth, and will long outlive us; some specialization is probably acceptable, as long as it's not in the part that controls how you think.

I don't think this civilization can ever do that, it will not make hard changes that inconvenience anyone. I think this horrible Machine will lumber on a few more decades and then we'll all die from it. But maybe isolated tribes will survive, or intelligence will arise in the Machines, or in a few million years another intelligence will evolve, and build new things the right, responsible way. Their history books will describe us as being as foolish and self-destructive as the Easter Islanders.

What I'm Watching: TempleOS Down the Rabbit Hole

A long, in-depth documentary on the late Terry A. Davis, author of LoseThos (pun of Win-Dows), later called TempleOS.

I'd seen Davis online for a couple decades, but never got far into following him. Davis was an aggressive, bizarrely incoherent "speaking in tongues" Christian racist who hated atheists, the CIA, and "N----rs", so you'd see his posts online and then he'd get downvoted or banned.

His OS, however, is fascinating. 64-bit, limited to VGA graphics, mostly but not solely single-tasking, no Internet or other networking, has a reasonably efficient Norton-style UI with hypertext everywhere, but constant scrolling, blinking, pop-up Bible quotes and hymns which would be maddening. All of which makes it weird but not that interesting, except it was written in assembly by one guy.

In college CompSci classes, you may "write an OS" which mostly means copying Andrew S. Tanenbaum's Minix piece-by-piece until you have a working Minix; which is great, Minix is fun, but this is a far more impressive feat.

LoseThos is for programming as entertainment.
It empowers programmers with kernel privilege because it's fun.
It allows full access to everything because it's fun.
It has no bureaucracy because it's fun.
It's the way it is by choice because it's fun.
LoseThos is in no way a Windows or Linux wannabe -- that would be pointless.
—Terry A. Davis

That's one of the most coherent explanations of the appeal of retrocomputing and low-level programming anyone's ever stated.

There's some interesting features, which are hard to get in modern OSs:

His long downward spiral of trying to be noticed online, then going off his anti-psychotic meds, his conspiracy theories, his embarrassing video streams, and then his final homeless wandering and death, are very troubling. For a long time he appeared to be getting by on donations from 8chan members simultaneously trolling him and supporting him. We do nothing to help these people, and let online gangs take advantage of them.

★★★★☆