Welcome! 🙂

This is both a wiki (a website editable by all) and a blog (an online diary about the stuff Alex Schroeder reads and does). If you’re a friend or relative, you might be interested in reading Life instead of this page. If you’ve come here from an RPG blog, you might want to head over to RPG. There are other similar categories to be found on the SiteMap.

Für Rollenspieler gibt es ebenfalls eine eigene RSP Kategorie.

2020-08-14 Uses this

Somebody asked me for a “uses this” page… The short answer is: I use Emacs.

But here’s the long version. Because I’m vain. 😆

Alex Schroeder

Who are you, and what do you do?

I’m a code monkey for a Swiss and German company. We do business software using Java and databases. It used to be mostly Oracle, these days it’s mostly PostgreSQL. This is still my first job. I’ve been doing it for more than twenty years. That is to say, the programming is boring, the tech isn’t exciting, and I’m old. But the part I love is switching projects, again and again. New team members, new project managers, new clients, new faces, new industries, I love that. I mean, it’s also a bit devoid of meaning, of course. In the grand scheme of things, who cares for car leasing, investment banking, furniture, call centers and credit cards? Nobody I love, that’s for sure.

And yet: I love to program. The world of programming is where I can make things. Like people tinkering with their cars, woodworking, knitting, sewing, playing music, baking, cooking, painting, I want to make things. Making things online comes easy to me and so I do it a lot. I only work a 60% job so that I have long weekends and long summer breaks, allowing me to follow my whim. One year it’s a local IRC server that acts as a gateway to Mastodon, the next year it’s a wiki using the Gemini protocol and markup as much as possible. I fall into projects in summer.

What hardware do you use?

I use a Purism Librem 13v2.

I have a bunch of external keyboards (Atreus, Keyboardio Model 01, Touchstream, Ergo Kinesis) but I don’t use them. I got used to laptop keyboards. And if my hands hurt, I know that I should just stop, not switch keyboards.

I also don’t use a mouse. I use the trackpad. When I’m drawing, I use an Apple Pencil and the iPad Pro. I rarely draw.

When I make music, I use various emulators on the iPad Pro, or the OP-1 or PO-33 K.O! by teenage engineering. I rarely make music.

For my podcasting I started recording voice memos with my phone; later I bought a second hand Snowball by Blue.

When I’m in the office, I use a regular Sennheiser Momentum for headphones. No wireless. No noise cancelling. I tried some noise cancelling headphones earlier and felt like it surpressed the background noise but not the voices and what I hate about the open plan office is the voices of my coworkers. A long time ago I had Shure in-ears. True plugs. Maybe I should get some in-ears again.

And what software?

The laptop runs PureOS, a Debian derivative. I picked a laptop that came with a Debian preinstalled. I hate installing software. I also dislike how out of date Debian can be, and I don’t like how they think the GNU manuals are not free, but overall, I still like package managers. Thank you so much!

In general, though, I’m not a operating system or distro hopping nerd. I used Slackware in the very old days and would not mind going back. I like to use Debian because I also use Debian on my server. My wife has an Apple laptop that I used for a long time, with Homebrew. Over the years I got angry about all the complications with iMovie, iTunes, iPhotos… it was difficult to get the stuff out again. The iTunes interface degraded over the years. Importing pictures into iPhotos led to crashes. It all started to feel like a thin veneer of sugar that was made to entrap me, and still didn’t deliver the stability I wanted. Instead I got mental models that didn’t fit the underlying models, if you know what I mean. The “events” and “playlists” cannot be found in the folders on disk, but the “rolls” are “importing events” and the “albums” are “folders” except when they’re “compilations”… Eventually I decided that I wanted to just use the filesystem again. Have files in folders. This I can understand. And on this level, Emacs can be used for practically everything.

Actual music playback is a command line tool like mpg321. When I look at PDFs, I use Evince because I find that Emacs’ document viewer mode is too slow. Or perhaps I just haven’t gotten used to it? Or is it the missing links? I don’t know. Maybe soon I’ll do without an external PDF viewer. 😁

When importing images from the iPhone, “Files” (is it still Nautilus? I have no idea) and whatever it invokes (gThumbs?) just work. It’s amazing that I don’t even know what this software is. Gnome something. It just works. This makes me happy.

When I’m organizing my images, I need a quick, keyboard driven user interface. Sadly, Emacs isn’t quick in this regard. I use Geeqie instead. The ability to use the ten digits for quick tagging is perfect. Go through the images and use 1 for album, 2 for delete, 3 for review, 4 for family, whatever, and then when you’re done, move the images around based on those temporary tags. ♥

When I’m editing my podcast, I use Audacity. I tried other programs, but most of the time their user interfaces are all tiny. I use a small laptop and I like big fonts and big icons. Audacity is the limit.

For graphics, I use Inkscape and Gimp (I hope to see Gimp replaced by Glimpse, soon!) – what a name. Yuck! It reminds me of that Quentin Tarantino movie and I hate Quentin Tarantino movies. On the iPad, the only app that I actually like using is Zen Brush 2. I somehow can’t get used to Procreate or Art Set or any of the other apps.

For making music, I use the iPad. The apps I like to use are PixiTracker (which is also available for other platforms), the iVCS3 emulator, the Model D emulator, the Animoog emulator, Synth One, and GarageBand (mostly for instruments like the Pipa, Erhu, Koto and Guzheng). I’d love to know more about music and must resist the temptation to buy more music making hardware without having taken full advantage of the things I already have. The temptations of capitalism…

The projects I work on in my spare time often use Perl 5. I sometimes try other languages: Python, Raku, Go, Scheme… but I always come back to Perl. Perhaps people just like to stick to their first language because that’s where their experience lies. You have made all the mistakes in the distant past and now everything comes naturally.

All the Perl projects I work on use the web as the universal user interface. I know, I know. I hate the web. It’s big and bloatet. And yet, the browser is the universal client. Huge, and bloated, and requiring a thousand engineers, I know. But none of the alternatives are great, either. I still haven’t written a GTK or Qt application, let alone something using X11, wxWidgets, or Tk. HTML and SVG it is, for me.

What would be your dream setup?

I have no idea. I want everything to just work, with no installation, and I love Emacs.

I’m fascinated by the Plan 9 concept of everything being a file, but at the same time, why can’t we have a system where everything is a file, and Emacs? Plan 9 has no Emacs. Emacs is like a universal Lisp machine: it provides a universal user interface to the underlying operating system and thus to the machine. It’s not perfect, yet. It often relies on tools that aren’t immediately available on Windows, for example – grep, find, sed – and you need external tools to play MP3 files and to edit their metadata.

Now that I use the Apple Pencil on the iPad Pro, I imagine how hard it is to draw on a traditional computer, even with a good tablet. And how would all of that work within Emacs? I would love to see all the Gimp stuff gobbled up by Emacs.

Comments on 2020-08-14 Uses this

I am really digging the love for EMACS that everyone is pouring out at the moment!! It’s probably because of its new release. I really enjoyed this gemini post 🙂 ~VIDAK

– elpherwVSLR9 2020-08-14 14:10 UTC

Haha, yeah! Emacs is great. I love it, too. And Elpher and Emacs together... my favourite way to comment on my wiki!

Karl Voit sent me a message on Mastodon about the naming and tagging he does using Geeqie with the addition of a small number of nifty scripts. An interesting workflow! And I totally agree with him: file names and folder structure is the kind of metadata that lasts a lifetime. Everything else is tricky.

– Alex

Add Comment

2020-08-14 How to comment using Elpher

If you visit this site using Elpher, you can leave a comment using Gemini. The comment can’t be too long. I think the total URL should be limited to about a thousand bytes, some of that is the URL without the query, and the query itself is going to be encoded… Who knows. Perhaps this server doesn’t actually check URL size? I have no idea and I have never tried. Ooops!

Here’s a video demonstrating it:

(Emacs using the Brutalist Dark theme…)

The video was recorded using Peek. It was edited and the audio was added using Pitivi. The audio was made on a tiny toy, the PO-35 speak. Basic recording was done using Audacity.

Add Comment

2020-08-13 The kind of tax I hate

You know I want to tax the rich. In the comments of a recent blog post we talked about hating to pay tax for corrupt governments. Today I was reminded of another kind of tax I hate. For the purpose of this discussion I’m going to use a broad definition of tax: “a charge, especially a pecuniary burden which is imposed by authority.” (Webster 1913)

Here’s what happened: many moons ago I participated in the kickstarter for the Ultraviolet Grasslands by Wizard Thief Fighter. It got delivered by DHL. The VAT was apparently CHF 6.70 (currently a Swiss Franc is about a US Dollar). OK, that’s an astonishing amount of VAT to pay but if I remember correctly, they simply assess it by weighing the goods and books are heavy. But here’s the kicker: DHL paid this tax for me, and for this service, they are charging me CHF 19, so now I had to pay CHF 25.70.

That’s close to half of what the thing itself cost me.

Just to be clear: I’m not against all taxes. I do think that VAT is thoroughly anti-social, though. It’s not a progressive tax. If a poor person and a rich person both buy the same bread, they both pay the same VAT. This is not “each according to their means.” And it gets worse: I need to pay a fee for them to collect the tax – and the fee is about three times as high as the tax itself. Uuuuugh!


Comments on 2020-08-13 The kind of tax I hate

It gets worse. The big and established shops will actually pay the VAT for you when you check out, letting you completely avoid that “manipulation fee”. That makes it very hard to compete with them.

– Radomir Dopieralski 2020-08-13 10:54 UTC

What the hell, man. How can DHL pull that off? In which world is that fee legitimate?

– Enzo 2020-08-13 14:31 UTC

I think this is simply an artefact of how the system is set up. If you get the parcel from some other service, such as the Swiss Post, you still need to pay those CHF 19. Somebody in government agreed that CHF 19 was a fair fee to pay for that service, and at the same time, somebody agreed that all VAT below CHF 5 are waived but all VAT of CHF 5 and higher have to be paid in full. At least that’s what I remember. Now all I’m wondering is if this was a measure designed to kill imports from the European Union or whether it was simply accidental. As it stands, it’s cool if your VAT is waived, then it’s punishing and makes you mad as hell, and then at much higher levels you get into VAT bureaucracy and regular people no longer care.

I wonder what they were thinking. I’d say that the fee needs to make sense compared to the tax, so if the tax is CHF 5 and the fee is CHF 1 I’d be happy to pay it. If the tax is CHF 50 and the fee is CHF 5 I’d be happy to pay it. But if the tax is CHF 6 and the fee is CHF 19, it makes me want to cheat the system.

Or rather: I think I’d rather buy a PDF or an ebook, and not print, not ship, not pay tax, and not pay a fee. Perhaps I should agree to this terrible setup because it’s better for the environment…

– Alex 2020-08-13 14:45 UTC

Add Comment

2020-08-13 Short fiction I didn't write

Yesterday I was running through the forest and thinking about a remark I had recently heard: apparently humans are extremely good at smelling. The reason we don’t use our nose like dogs do is because we have them so far up in the air. We smell different things. But apparently we’re very sensitive. It reminded me of another story I had read where a father and a son decided to live like moles for a few days, blindfolded. They would leave the house, blindfolded, looking for food, on their hands and knees, nose to the ground. Soon, they could smell the mushrooms. They could eat. I have no idea whether that’s a true story. I started thinking of aliens keeping humans as poison detectors. Train them, like we train dogs to find drugs.

Here’s a room, human. Find the illegal substance and you’ll get some nice strawberries. I’ve been listening too much about cruel old times, about slavery in Rome and worse. If you had a nose-human, why would you teach it to read, to talk? I was reminded of kids growing up in a dead and mute household, inventing their own language. A simple one. My thoughts turned to toki pona, the constructed language with just 123 words.

Could I write a short story from the perspective of the nose-human, using just 123 words? The reveal that the main character is not a dog but a human would come at the end. I hated it. I hate slavery. I hated this story idea. Disgusting.

That’s not a story I want to write.

Comments on 2020-08-13 Short fiction I didn't write

Did you read Deepness in the Sky? It’s not written from the point of view of the dog — not entirely at least — but it has this idea of making people obsessive about something to make them work for you. It raises a lot of moral questions. It also has very cool non-human aliens in it.

– Radomir Dopieralski 2020-08-13 14:01 UTC

Yes I did! Both A Deepness in the Sky and A Fire Upon the Deep were excellent books as far as I remember. Both the spider aliens and the dog pack aliens were well written from an internal perspective, which I liked.

– Alex 2020-08-13 14:39 UTC

It made me wonder about the difference between inspiring people and/or teaching them a job you want them to do, and compelling them as in the book. What’s the difference? In both cases they are happy to do it. The only thing is one method is more reliable than the other.

– Radomir Dopieralski 2020-08-13 17:40 UTC

This makes me think of that Richard Feynman essay about smelling books at a party – referenced in this Salon article: https://www.salon.com/1999/07/28/smell/

Basically, he went out of the room, had people handle books (pick them up, thumb through them, put them back), and he came back and could smell not only which books had been handled, but by whom! I’ve always wanted to do that experiment myself.

But yes, the story idea is ... strange. Haha!

Case Duckworth 2020-08-14 16:31 UTC

Wow, that is a weird story! And it’d be awesome if true. I guess I want it to be true! 😆

– Alex 2020-08-14 20:10 UTC

Add Comment

2020-08-12 Mozilla fires 250 engineers

In a blog post, Mozilla announced that it was firing 250 engineers: “Sadly, the changes also include a significant reduction in our workforce by approximately 250 people.” Ouch.

Then again, as @aral recently said:

We could fork Firefox and have an independent EU org develop it. No need for the rest of Mozilla.

The criticism stems from the fact that 90% of Mozilla’s revenue is paid for by… Google!

Or, as Katyanna Quach writes in The Register:

Mozilla gets the vast, vast majority of its funding from Google, Yandex, and Baidu, who pay to be the default search engine in Firefox in their regions. In 2018, Moz had a $451m cash pile, 95 per cent of which, some $430m, was provided by these web giants. Those deals will expire in November 2020 unless renewed or renegotiated.

With an ever decreasing market share, those deals are surely going to be renegotiated.

But, I guess what I’m more concerned about is this: think about how big Mozilla is. They had a thousand engineers!

What fascinates me about seemingly retro tech is the dream of having these tools be feasible in the human realm. People like us can use them and make them, without having to form a company, without business plans and lawyers and project managers. The web browser project is so big, so monstrous, it needs hundreds of people to get right, to implement all the features, because we kept adding them and adding them, letting corporations out-organize us.

This is what happened. We used to have so many browser engines. Now you need a thousand engineers to compete, apparently.

And yes, I know, this is never going to stop: people see business opportunities and jump in, and with venture capital it is possible to out-organize us, again and again. Welcome to capitalism. But there’s hope: the grim reaper that cuts down enterprises in a pandemic, in an economic crisis. When profits are gone, we’re still there. Gopher is still there. RSS is still there. Plan 9 is still there. Emacs is still there. (Vim, too.) Forth is still there. Email is still there.

True, a crisis is never the tabula rasa one might wish. Many companies are better off after the war. As @sqwishy reminded me:

Business are affected negatively but some few benefit; Zoom has almost become a household name for conference calls in the way that the word “Powerpoint” is used in place of “slideshow”. That is not better for tech.

And yet, remember IBM? There were huge. Huge! “Nobody ever got fired for buying IBM equipment.” And yet, here we are. IBM is a shadow of its former self. DB2 is still around. I can’t think of any other IBM product these days. The giants will come down one day.

The resistance is never big. In the movies, underdogs are the main characters. We never see the sea of people that’s going along with the system. The resistance is small. The resistance isn’t pure. I still use Firefox. I still use the web. But I use it less. I use text browsers when I can. I use simple Mastodon clients. I know IRC, Bitlbee, Brutaldon, Lynx and Gemini are not strictly “better” than the modern web; to my coworkers all these things seem very retro. But they’re my scale. I am not a thousand developers. I’m human scale.

Or, as @Shufei puts it:

Stepping back, I see I hardly go on the mainstream web anymore. Half of my Wikipedia reading is via Gopherpedia. Archive.org. Libgen. Git-tub. What else is there? The rest is corpo caca. And yet, that is what most people seem to like. Why else would they be on FB? I do think it’s time to recognize that what we have is a demimonde, a resistance, and invest energy in it accordingly. This is it.

Indeed. I still use Wikipedia on the web. But I also feel like I’m using less and less of the mainstream web. It’s all corpo caca.

If we’re the resistance, then we need to think in terms of propaganda. What are our posters? Our jokes? What new names do we give the things we like, the things we dislike? In German, we call this process “Wortschöpfung”, word creation.

Let’s not be coprophages, let’s not be dung eaters. We don’t want the corpo caca.

Comments on 2020-08-12 Mozilla fires 250 engineers

I’ve noticed this too! You know how with search engines you can filter out a word by putting a minus sign in front of it? Is there a way to filter out websites that have javascript from search results? Because that’d do the trick. Bye bye corporate top 10 lists of weird tricks, hello somebody’s weird passion project homepage.

– Anonymous 2020-08-13 02:25 UTC

I think that’s basically why Gemini is not simply HTTP1.0 with a simple HTML subset and no scripts: because you can never tell which links go back to the corpo caca web. Perhaps there’s an extension that unlinks the biggest corporate sites from all web pages? That would be interesting.

– Alex 2020-08-13 07:25 UTC

Sounds like http://wiby.me/ is what you’re talking about. http://wiby.me/about/

– Anonymous 2020-08-13 08:18 UTC

Wiby sounds very interesting! Thanks.

– Alex 2020-08-13 09:17 UTC

Good comment regarding standards growing in complexity. Whenever a committee meets to talk about new developments, there’s the danger of capture. They start adding features because they can, and everybody adds them because they must. And over the years, the number of competitors starts to dwindle. How many C++ compilers are there?

– Alex 2020-08-13 18:01 UTC

I really enjoyed this post! I am absolutely enjoying the longform gemini posts lately 🙂

– elphermVSbpm 2020-08-14 09:44 UTC


– Alex Schroeder 2020-08-14 15:07 UTC

“As a non-profit open-source operation, Mozilla spends as much as it receives; its 2018 staffing bill was $286m with a headcount of about 1,000, or about $286,000 per person, on average.”

Well, they’re certainly making more money than I am. But so do the Google engineers, of course.

– Alex Schroeder 2020-08-14 15:08 UTC

Add Comment

2020-08-11 Oddmuse6 and Raku

Strange, but today seems to be the day: I updated my Oddmuse 6 project to run on Raku.

If anybody else ever runs into this very niche use case, here’s what I had to do:

  • rename all the .p6 files to .rakumod
  • rename all the .t files to .rakutest
  • change the names in the META6.json file
  • install CPAN::Uploader, App::Prove6
  • update the Makefile (prove6 -j argument takes no equal sign anymore)
  • update all the tests and add “use lib $PROGRAM.parent.add(”lib”);” at the top
  • install Algorithm::Diff from source, again (even though my fix has been in the repo for two years)

I think everything works!

  • I ran raku -Ilib t/.rakutest (running them individually, with -I lib)
  • I ran make test (which runs prove 6, running the tests in parallel)
  • I ran zef uninstall Oddmuse6 followed by zef install . (which tests and installs it again)
  • I followed the quickstart documentation to get a wiki up and running

I think I’m good!

Add Comment

2020-08-11 Mediocre Men

Got an email today:

We’re excited to let you know that Amazon Music and Audible will be adding podcasts to our respective services, including Amazon Music’s free tier. Please note that this information is confidential. In advance of launch, we would like to invite you to make your podcast(s) available on our services. Agreeing to add your content ensures your podcast(s) will be available to Amazon Music’s rapidly growing audience of over 55 million customers. Both Amazon Music and Audible will stream your content directly from wherever you host it; we will not rehost your content.

Here’s Amazon sending me an email about Audible “adding” podcasts and telling me that this is “confidential”. I guess if it was confidential, you shouldn’t send it via unsolicited email. This makes me wonder about confidentiality, though: how does information become confidential? It must be a contract: a non-disclosure agreement, maybe hidden inside a work contract… or if based on mutual trust. But why would I trust Amazon and Jeff “$3000/s” Bezos?

So here is this service, made for the richest man on earth to earn more money by letting other people listen to the podcasts you make – but they don’t share your burden, they don’t cover your expenses, they don’t pay for your equipment, they don’t cover your hosting. “We’ll be your middle man, we’ll help you reach 55m people!” You do it for the exposure while we do it for the money. Ah, capitalism.

Truly, this is the attack of the middle men: mediocre men, inserting themselves everywhere, taking your stuff. To think that we believed the Internet would help us get rid of them.

Add Comment

2020-08-11 Hazard system

Lich Van Winkle wrote a blog post about his experience using wandering monsters.

In the comments, Ruprecht mentioned hazard rolls and I was reminded of the Hazard system as described by Necropraxis. I don’t use it, but I like it every time I read it. Something for the time keeper in a game, I guess. Lich Van Winkle then replied and said he felt “this system is more suitable to a fantasy board game than a narrative-generating role-playing game” – and perhaps he’s right.

I think the attraction for me is that I don’t actually have to do any tracking: I roll the die, and that’s it. This is as true for wandering monsters as for many other things: assuming that monsters are moving about, I could either try and know whether the various groups are, or I could just have them show up at random, which is nearly as good from a player perspective, a lot less work from the referee perspective, and also more exciting for the referee since you also get to be surprised by encounters. At least those are the benefits to me.

To illustrate, I sometimes feel like I have to balance many things as a referee: tell my players to scratch off some light resources; tell my players to recompute encumbrance; tell my players to scratch off rations; remind them of nearby dangers by occasionally remarking on spoors left by monsters; run occasional encounters; scratch off ammunition used, and so on. Now, if I had a process that would tell me “now do this, now do that” without me feeling like a servant to a machine, allowing me to delay, to improvise and to change as required but still suggest something like “how about some spoors to be found” or “how about some monsters now” or “how about they’re exhausted now” (let’s have some inter-character small talk as the characters rest and readjust), then that would seem ideal. It doesn’t solve all my problems, but it linearises and randomises all these things that are on my mind, all of them at the same time. That’s what I like about the Hazard System, that’s why it doesn’t feel like a boardgame to me.

Now, perhaps you don’t want to run such a game, and that’s fine. Personally, I rarely worry about arrows spent or encumbrance, for example. I do feel like I’d like more inter-character small talk (like those flashbacks in Lady Blackbird!) or more spoors and other hints about the environment, and the Hazard System would provide all that.

Comments on 2020-08-11 Hazard system

I too like reading the Hazard System.

However, I also feel like the problem it tries to solve first and foremost (reduce book-keeping) can be mitigated by having a cheat sheet that outlines all the necessary procedures. In other words, I think people tend to forget marking rations, torches, and whatnot is because no reminders are in front of them. Of course, once the procedures are ingrained, there’s less need to have cheat sheets, but sufficient boxes where you can mark resources would still be necessary (I mean, you need dedicated space on your character sheet for recording HP and XP, too, right?).

Ynas Midgard 2020-08-11 18:09 UTC

Nice link, I guess that’s where Megadungeon got it. It felt awkward to point something out that required someone to buy the magazine to understand the point. Plus your link has far more detail.

I like the hazard table because I can add things such as torch goes out (why? Water from the roof, someone keeps dropping it and it got wet, etc) in addition to normal tracking of torches. Rations disappearing doesn’t have to mean they were eaten, they might mean that someone just noticed (small hole in the backpack indicates it was sliced and rations stolen, the backpack is covered by spiders Indiana Jones style and they left some liquid on the rations, etc). The idea really opens up the Encounter Table to enable a living breathing environment.

Plus noises, smells, and footprints should be on encounter tables.

Ruprecht 2020-08-11 19:00 UTC

Add Comment

2020-08-09 GPG and ProtonMail

I recently sent an email to somebody and got back an encrypted reply. That’s amazing! This is great! 😍

But wait a minute… How do I write them back? Like many people (like me!) they didn’t include their public key in their reply. Evolution told me that the mail was signed and encrypted, so I wondered. How was Evolution able to verify the signature without having their public key? But then I spotted that little help text: “This message is signed, but the public key is not in your keyring.” (I am using a dark theme and that particular help text uses black on nearly black…)

OK. I saved the email in mbox format and opened it in my favourite text editor. And there, on line 16:

Received: from mail-40131.protonmail.ch …

Right, so they have a ProtonMail account. But surely ProtonMail makes the public keys of their users … public? I found an answer on Reddit: use hkps:api.protonmail.ch.

How does that work?

gpg --keyserver hkps://api.protonmail.ch --search-key foo@bar

Remember that the reply I had received didn’t use the protonmail.ch domain for their email address. This is therefore still an absolute usability nightmare. But at least now I know. 😁

Comments on 2020-08-09 GPG and ProtonMail

Nice! Do you use proton mail yourself?

Josh Rollins 2020-08-09 19:41 UTC

I switched my mail to Migadu because I wanted to use regular email clients.

– Alex Schroeder 2020-08-10 04:26 UTC

@sheogorath said that WKD should take care of key discovery:

gpg --locate-keys foo@bar

I’ll have to try it. If it works I’ll hate the fact that there are now two commands: search keys, which I have used for years, and locate keys.

– Alex Schroeder 2020-08-10 04:28 UTC

Add Comment

2020-08-07 Plan 9

There is quite some love for Plan 9 to find online. And I find it fascinating. My main problem is that I love Emacs and they make fun of Emacs. Instead, we get acme. In any case… I went to the 9front website…

I downloaded the amd64 torrent from the ISO section…

I wrote the iso to my USB stick…

sudo dd bs=4M if=9front-7781.38dcaeaa222c.amd64.iso of=/dev/sdb conv=fdatasync

I rebooted my computer and hit the right key as it was booting so that I could choose to boot from the USB stick…

I saw lots of output about IRQ 11 issues and listings of my disk partitions…

I was asked for the bootargs…

Uh, what?

I escaped to a shell and looked at shr but didn’t find my 9front.iso. I did see the shr/usb folder and all that, but all the folders were empty.

I looked around for a while, and then I rebooted into my regular system.

That was my Plan 9 adventure.


Let’s try again.

Make a new directory called 9front, and move the ISO you downloaded in there. We’ll use Qemu.

sudo apt install qemu qemu-utils qemu-system
qemu-img create -f qcow2 9front.qcow2.img 30G
qemu-system-x86_64 -cpu host -enable-kvm -m 1024 \
-net nic,model=virtio,macaddr=52:54:00:00:EE:03 -net user \
-device virtio-scsi-pci,id=scsi \
-drive if=none,id=vd0,file=9front.qcow2.img \
-device scsi-hd,drive=vd0 \
-drive if=none,id=vd1,file=9front-7781.38dcaeaa222c.amd64.iso \
-device scsi-cd,drive=vd1,bootindex=0

And it boots! And I can keep hitting Return and the defaults all work. Yay!

Gotta work on that screen resolution, though. Or on the default font size. This stuff is tiny.

Comments on 2020-08-07 Plan 9

Tried it again. I don’t know how to scroll up and down in the terminal. I just use random clicks on the scrollbar. After a while I discovered that the terminal window doesn’t scroll (or stopped scrolling?) as I type at the bottom. I tried to find the file where I get to change the initial screen resolution but failed. I was able to maximize the Qemu window regardless but was unable to undo this. Gnome tells me something about “wants to something-something shortcuts” but apparently it doesn’t matter what I answer. I don’t quite understand how the mouse inside and the mouse outside the Qemu window works. Something about Ctrl-Alt-G changes this. When I closed the terminal, I did not know how to open a new one. As I can’t undo the maximizing of the Qemu window, I managed to have Gnome show me all the windows and there I just killed the Qemu window. I think I learned absolutely nothing about 9front today.

– Alex Schroeder 2020-08-09 18:26 UTC

Today, I tried again. I tried to say 1920x1080x32 but it was too big and the bottom was off screen. I used an external mouse where the middle mouse button is a scroll wheel. That was awkward, but at least I could now use the right mouse button to call up a menu with which to start new shell windows and to resize them. I still don’t know where I could increase the font size. There is a font setting in the rc file but I don’t know how to pick a font size. I was able to read some man pages but I didn’t understand what they were trying to tell me (init, boot). I tried to edit a file using sam, thinking that maybe with a bit of ed and vi experience I might be able to insert some text and write it to disk, but somehow that also didn’t work. Half knowledge is not going to cut it, I fear.

– Alex Schroeder 2020-08-10 09:27 UTC

Later the same day, I tried resolutions like 1280x1024x32 and 1400x1050x32 and that worked. Still don’t know how to increase font size, though. I noticed an IRC client called ircrc and tried to run it. It said something about no IP number, which makes sense. There’s a section on adding networking to Qemu. I tried sections - Linux VDE but that didn’t work. After installing vde2, there still isn’t a tunctl command. The vde_switch and slirpvde commands “worked” without it, but I don’t know how much that means. Replacing the -net user option with -net vde didn’t allow ircrc to work. there is no ping command to test basic networking. No progress was made.

Current startup script:

cd ~/9front/
exec qemu-system-x86_64 -cpu host -enable-kvm -m 1024 \
     -net nic,model=virtio,macaddr=52:54:00:00:EE:03 -net user \
     -device virtio-scsi-pci,id=scsi \
     -drive if=none,id=vd0,file=9front.qcow2.img \
     -device scsi-hd,drive=vd0 \
     -drive if=none,id=vd1,file=9front-7781.38dcaeaa222c.amd64.iso,format=raw \
     -device scsi-cd,drive=vd1,bootindex=0

Appending format=raw to the second -drive silenced a warning I kept getting.

@glenda pointed me at a blog post by Nicolas S. Montanaro.

It starts with instructions on how to build the amd64 kernel.

cd /
rc /sys/lib/rootstub
objtype=amd64 mk install
6c -FTVw auth.c
<eof> cannot open auth.6 - 'auth.6' no creates

Oh well.

– Alex Schroeder 2020-08-10 22:00 UTC

Today I noticed that the file /cfg/plan9.ini exists. I fired up acme and edited it. It took me a while to realize that I needed to double-click on “Putall” and middle-click to execute it in order to save the file. When I figured it out, I noticed that I didn’t have the permissions to overwrite that file. At least I managed to quit the editor. I was fascinated by the idea of putting the commands into a buffer and have them be executable. It reminded me of Jef Raskin’s book, The Humane Interface. Coming from Emacs, I guess it’s not so bad as long as you know there are only a dozen commands or so that you really need. Whether that’s true, I don’t know.

– Alex 2020-08-11 17:50 UTC

Today I discovered that the Plan 9 ISO image I downloaded isn’t actually what you would use. It’s the image of the CDROM that you use to install Plan 9. That’s why the plan9.ini is read-only and why 9fs 9fat fails. My problem was that I had started reading section “4.3 - Performaning a simple install” and stopped once I got something that looked like a working system. I had not run the actual installer (“inst/start”).

It is only now that I understand what the “post-install” section was referring to when I was reading the Qemu section. Once you did the “real” installation from the CDROM ISO to the virtual disk partition, you change the Qemu startup so that it doesn’t use the CDROM ISO anymore:

exec qemu-system-x86_64 -cpu host -enable-kvm -m 1024 \
     -net nic,model=virtio,macaddr=52:54:00:00:EE:03 -net user \
     -device virtio-scsi-pci,id=scsi \
     -drive if=none,id=vd0,file=9front.qcow2.img \
     -device scsi-hd,drive=vd0

And now “9fs 9fat” also works and I can edit /n/9fat/plan9.ini. I now use vgasize=1440x900x32. I changed the font in lib/profile to /lib/font/bit/terminus/unicode.18.font.

I’m starting to wonder how I’d best use Plan 9. Do I really want to run it from a USB stick? I guess I could… But perhaps it would be better to run it from Qemu for a few years. A maximized Qemu running on the second virtual desktop? I never use virtual desktops. I usually just use a small number of maximized windows: Emacs, Tilix, Firefox, and each of these comes with their own set of buffers, windows, panes, tabs, and whatever they are called. For that to work I need to figure out what my display resolution is, I think… I looked around, looked at the Qemu man page, discovered that -display sdl doesn’t work, discovered that -full-screen was unnecessary, all I needed was to use Ctrl+Alt+f to toggle full-screen. OK, and now my only problem is that 1440×900 is not quite my laptop’s display resolution, I need 1920x1080x32! Perhaps the problem I had previously (bottom off-screen) disappears when I go full-screen. So that’s what I did.

9fs 9fat
acme /n/9fat/plan9.ini

Change the resolution… use “Put” to save (doubleclick using the left mouse button, execute using the middle mouse button), then “Exit”.


Just checking…

And now in Gnome I open the terminal emulator, run 9front, which runs qemu, which opens a bug Plan 9 window, which I maximise using Ctrl-Alt-f and send to the next virtual desktop using Ctrl-Alt-Shift-Down. Now I can switch between Gnome and Plan 9 using Ctrol-Alt-Up/Down. 😄

– Alex 2020-08-12 07:57 UTC

Here’s a screenshot of Plan 9 with mothra showing my website:


– Alex 2020-08-12 11:21 UTC

Add Comment



You probably want to contact me via one of the means listed on the Contact page. This is probably the wrong place to do it. 😄

– Alex Schroeder 2020-05-22 12:19 UTC

Referrers: Bat in the Attic: Keeping track of the OSR and Old School Gaming Diary Diary Diary