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-05-27 The meaning of software

An interesting blog post by Jesse Li, Where Did Software Go Wrong? It starts with the disillusion many feel about software development (me included), continues on to talk about who writes software, whom they write it for, who benefits, and capitalism.


Comments on 2020-05-27 The meaning of software

The more I work in contact centre projects, where call centre agents make phone calls and answer e-mails, where they use scripts to guide the conversation, in an environment where I suspect that all the counter-arguments have been neatly assembled, where I imagine all responsibility is swiftly deflected, where I read that mistakes are only admitted in private and compensations are always tied to non-disclosure agreements, the more I wonder about the role of software in our society, the more I wonder about the role of programmers in our society. Are we arming corporations as they confront fellow humans, giving them longer lances, better tools? In the end we humans have but one choice, the one that I have made a long time ago: to minimize all contact. I don’t answer the phone for unknown numbers, I unsubscribe from all newsletters or send them straight to the Junk folder, I don’t send feedback, I block ads as much as I can. I try to live in a parallel universe where I don’t see them and they don’t see me because every second spent with corporations are seconds of my life lost. We are not cooperatives organising humans in order to improve our lot, together, and I’m feeling the alienation.

– Alex Schroeder 2020-05-28 11:44 UTC

Add Comment

2020-05-26 Email client

Do people still write email? I certainly don’t write as much email as I used to. I used to be a big Gnus user, spending hours online on net news and mailing lists. I even have the mug to prove it. Not anymore. These days, I feel my mails are just bills and spam. All my friends and family use messenger apps on their phones.

I wanted to get away from Gmail and switched my mail to Migadu. With them, I can use my own domain names. I also figured that I don’t actually need a fancy web client for my email. The simple one they have is more than enough, and most of the time I read my email on the phone anyway, so why bother.

But then I started thinking about Gnus and wanted to try using it again. Sadly, that didn’t really work out too well. Gnus kept getting confused. I would read mail on the phone, hop over to the laptop, fire up Gnus, and couldn’t find the mail. It was still there on the phone, but not to be seen with Gnus. Sometimes I could get the mail by going via the server buffer. It was way too annoying.

So I started looking again.

I knew that I wanted more than basic mail which is what I use on the server to read my admin notifications) because I want MIME support (HTML emails and attachments, basically.

I also knew that I wanted something other than mutt. I’ve tried it twice, I think. I never got a feel for the keybindings, and I never managed to understand the help system.

I also knew that I didn’t want a solution that involved another level of caching: I’m not interested in some sort of offline IMAP sync. One more layer means one more opportunity for bugs, for fiddling, for breakage, for tuning, more packages installed, more attack surface. Please, no. Just IMAP is fine for the phone and it should be fine for the laptop.

I’ve settled on aerc. It’s a mail client for the terminal, written in Go. The problem with that is that I would need the whole tool chain installed to compile something because golang on Debian is too old to compile aerc. @cstrotm offered me a binary build and that worked. Thanks!

So that’s what I use right now. And I already made some changes to the config files, changing some keybindings:

d = :move Trash<Enter>
$ = :move Junk<Enter>
a = :archive flat<Enter>

That’s the level of complication I understand, I’m afraid. aerc it is, for the moment.


Add Comment

2020-05-26 Certificate problems

Today I was informed by various sources that Emacs Wiki was unreachable. Other sites as well. How strange! I use dehydrated via a cron job to keep my certificates from Let’s Encrypt up to date. I checked. They were up to date! The Apache config files point at the correct certificates. The certificates have expiry dates in July.

I wondered: is it possible that Apache caches these certificates and doesn’t notice when they update? After all, dehydrated sets up symbolic links that I refer to in my Apache config, and these always point to the current certificate files.

I reloaded the Apache config file using apachectl graceful and that seemed to work. Later today I got more reports, however and checked it on another laptop and sure enough, same problem. This time I stopped and restarted Apache completely. Once again, everything seems to be fine. Let’s see whether that was good enough.

If not, let me know. 🙂

Then again, if it doesn’t work, you won’t be able to read this... So here I am, hoping for the best.


Add Comment

2020-05-25 Wiki Spam is back!

Ah, wiki life has been so good for many years. The spam seemed to have died down! But recently, the site has been added to some idiot’s database again and so we’re seeing increased spam levels these days. If you’re getting blocked unfairly, let me know. 😀 → Contact.


Add Comment

2020-05-25 The Mediocre Programmer

This book is about helping you along on the journey of being a mediocre programmer. Together we’ll uncover some of common misconceptions we have about programming, failure, and growth and come to understand that the act of programming and development is something we undertake each day and improve in small ways. It’s these small changes that over time transform us from being mediocre programmers into better programmers.” – @craigmaloney

What I like about the book is already visible in the title: a humility in its approach to programming, one of the professions in this world that is rife with rock star press and blogs. We grew up with stories of geniuses that founded empires on programming and turned into the richest men on earth, and its time to see that this is an illusion. Instead of tearing them down, however – easy enough to do! – the book focuses on the things we actually need: dealing with feelings of inadequacy, the joining of communities, and so on.

This book is about the things that aren’t actual programming in the life of a programmer. That alone makes it important to me, makes it into a book I’d like to suggest to newbies entering the profession. We don’t need to read about Jobs, Gates, Zuckerberg, Thorvalds, all the language designers and framework builders. We need to read about people like you and me.


Add Comment

2020-05-25 SLUG

I was just reminded of SLUG by Fudge creator Steffan O’Sullivan, from 1992 & 1993.


Each character is described any way the player wants. … When the GM asks a player to roll some dice, the player should roll some dice. … With the GM’s permission, … traits can be added, or existing traits or skills improved, after the gaming session.

I was quite impressed by that at the time. I was also in love with Fudge and bought my Fudge dice back then.


Add Comment

2020-05-20 Hex Describe to roll up random encounters

Today, @acodispo sent me a link to a blog post he wrote: Random Encounters with Hex Describe. He uses the basic features of Hex Describe without a map – just random tables! – to generate encounters for his game. I like the idea.

Actually, I’ve wondered about a similar thing: should the regular Hex Describe mini settings come with a bunch of random encounter tables? Or just 20 random encounters for each biome which you simply cross off as you use them? I think I’d like that...


Add Comment

2020-05-19 Gridmapper use

I’ve been happily surprised by seeing Gridmapper used on the Ruins of the Undercity blog where the Idle Doodler talks about solo play – something I have never tried. OK, maybe I tried the AD&D 1st ed. random dungeon generator back in the eighties, once.

Anyway: it looks pretty cool!

From Ruins of the Undercity – Solo Playthrough:

a wide map with maybe five rooms

From Putting Together a Solo Dungeon Crawl Generator:

a big square dungeon with maybe 20 or 30 rooms

Gridmapper hasn’t seen a lot of development in recent years, but if you like a web app that’s best used without a mouse to create dungeon maps, maybe could give it a try. My recommendation is to visit the page and click on the Demo link at the bottom.


Comments on 2020-05-19 Gridmapper use

Huh, I hadn’t even clocked that there was a demo!

Great that it’s simple enough for a tech Luddite like myself to get by on.

Idle Doodler 2020-05-19 20:14 UTC

Oh my! I need somebody to think about the user-interface, haha. 😀

– Alex Schroeder 2020-05-19 20:52 UTC

Add Comment

2020-05-16 Witches

Very slowly I’ve been adding old monster posts from Google+ to this site... Recently I’ve been thinking about witches. In the Just Halberds campaign I’m running I use a 300 hex mini-setting generated by Hex Describe. On a whim I decided to count how many witches it placed in the area. Ten witches! And I recently added one due to a random encounter, so now there’s 11 witches in the setting.

What’s their story?

Time to daydream about witches.

Witches can cast spells. But which ones?

They are probably impossibly old, maybe immortal. They probably look shrivelled and old and yet their powers of illusion are such that they are always covered in a glamour that makes them look beautiful and young if they feel this is to their advantage.

I like the image of the three witches at the beginning of Macbeth. For some background, see The Relationship Between Macbeth and the Witches.

I love the short flicker of Thranduil’s face in The Hobbit movie where for a moment the glamour breaks down and we see that his spotless face is in fact scarred by a thousand years of battles.

I hate all the Malleus Maleficarum cruelties. So I don’t want the exploitation of women, the false accusations, the torture, the burning at the stake. Ugh! Not at my table. I hate this stuff.

I like the sexual aspects. In my games, the witches usually live in swamps and charm males of all sorts in order to get pregnant and they use language such as “stealing your child” as if the children the give birth to would have rightfully belonged elsewhere. It touches upon faith and promiscuity and fatherhood, and I like that.

Recently that happened to a friend’s player character. The kids roared with laughter and all mentions of witches, swamps, children, etc were full of innuendo. It was fun. But later, we also had a talk about certain uses of the charm spell being worse than knockout pills. They agreed and it’s decided now: charming people to force them to do stuff is evil.

I also like the Hänsel und Gretel aspect of a witch entrapping travellers and runaways, possibly enslaving or killing them. That is a terrible thing, to prey on the helpless, to be beset by a magic wielding monster when you’re most desperately in need of help.

So witches can be sexy, but also creepy and cruel, can be kind, but also evil.

And what about the children? I’m thinking about the matriarchal Asari species in Mass Effect: they have relationships with men of all species but don’t really need them. All their children are women. So now we can a bit of a Jedi or Sith vibe: witches may have a daughter in the house. They have a master-apprentice relationship.

What happens to the baby boys? Surely they exist. They are killed. Or abandoned. Or given into foster care. They grow up quickly, wild, troubled, violent. Life is hard. It provides opportunities to talk about foster care, adoption, wanting to know your parents, having been abandoned by your parents, all the stories modelled on children being abandoned and being raised by farmers, from Moses to Superman.

A bit like changelings, except that in this case the real child is not taken and raised in the realm of faerie.

The magic witches wield is first and foremost the charm, using their voice to make people do their bidding. As I said above, it’s a mind fuck, a terrible violation, but maybe if you’re under the influence for many days and then you manage to run away into the swamp it all turns into a nightmare, a memory that haunts you, half forgotten. Until you meet your son.

Witches also use glamour, a kind of personal illusion to make their bodies and their homes beautiful and enticing and harmless.

The rest varies: there’s flying, certainly, with or without a broom; there are fertility and harvest related curses, infertility, miscarriages, crop failures, it’s all there.

I’m guessing witches are forced to divide and conquer as they can’t face a mob. There’s no sleep and no fireball.

There’s probably also weirdness, things they found or grew or transformed or animated: animate object and polymorph. How else are we going to get walking huts on giant chicken legs and other such homes? How else are we going to turn sailors into swine?

That reminds me of Circe. I like her.

That’s my daydreaming for today. What are you daydreaming about?


Comments on 2020-05-16 Witches

I like the idea of witches being a sort of medieval conspiracy. Wide-reaching witch organizations has been a plot point in a few comics I’ve read recently (Hellboy and Head Lopper), and it reminds me of Dolmenwood, both the actual witches and the secretive (but more conventionally druidic) Drune. It fits with a lot of the typical traits of witches: covens, sisterhood and motherhood, secrecy, informal alliances and relationships, all stuff that’s interesting to talk about and use.

It does veer into the more uncomfortable witchhunter territory you mentioned wanting to avoid, but I also like the idea of many witches being “secret”. They may not have or even want any magic, or not much more than some simple tricks, but people who are a part of their formal or informal network might share information in return for help or just to be a part of something exciting. Which also fits with the idea of witches being manipulators and illusionists: why risk someone passing their charm save when you could ask your contacts for things to blackmail them with?

I think witches are an underused villain in RPGs. There’s a tendency to delineate between social situations and adventure situations: you go to a dungeon and kill monsters, then go to town and socialize with potential allies and patrons. But a powerful witch probably has her own lair and all sorts of monsters and minions, but also a lot of political control: people who’ve gone to her for curses or charms and don’t want to see her gone, other witches who’ll support or avenge her, and settlements who are unwilling to risk antagonizing her and having their harvest cursed (having the party deal with an angry mob that doesn’t want them fighting the witch would make for an entertaining adventure, if you ask me). You can’t just talk your way past her or just kill her - or at least, you have to be careful about how you handle either approach.

Malcolm 2020-05-23 22:51 UTC

Definitely. I try and treat the temples of evil gods this way: sure, they’re evil, but sometimes somebody in power needs those services. At the Orcus temple, you can get a previous relative raised from the dead. At the Set temple, you can hire those assassins you need once in a generation. At the Nergal temple, you pray for deliverance from the plague. So witches that are useful are definitely something I should add.

– Alex Schroeder 2020-05-24 09:05 UTC

Add Comment

2020-05-09 Ethics and licensing

In 2018, I wrote about ethics in programming and today stumbled on a related thing when @decentral1se mentioned the Hippocratic License:

Politics and software are so tangled that they cannot be reasonably separated. … if those novel situations involve harming other people, we can and should feel responsible. … the Hippocratic License … specifically prohibits the use of software to violate universal standards of human rights

I understand the problem of interoperability, the difficulty of enforcement, the headaches of assembly… and yet! And yet. Remember Code is Law? Software is politics and programming is about making ethical choices. Why should the license be a technocratic decision? We fought proprietary software and while we haven’t won that’s not a reason to avoid a second battle. We are humans. We can juggle many things. Our opponents do, too. We can do this.

As humans, I feel that most of us do not want to be complicit in crimes. We don’t want to be working on weapons. We don’t want to be working for organizations that do evil. If we agree that people can have these goals while working, why should programming be different?

Sometimes a tool is like a shovel and we cannot prescribe what people do with their shovels. But when we can, and when we think this is fact necessary, we do add safety measures to physical tools in order to prevent their use as weapons. And where we cannot, we regulate their use: building regulations, traffic regulations, we have added safety standards everywhere so people don’t manufacture dangerous tools and so people don’t use tools in dangerous ways. Why should complex software be different?

As a human, you have the choice not to participate in crimes (I hope!), and you have the choice to design your products such that it is harder to commit a crime, and you can make contracts that forbid recipients to use products in certain ways – its all there, for good and for evil. Why should programmers relinquish this option which is at their disposal?

Free software activists have used free software licenses to fight back against proprietary software that is hard to audit, hard to study, hard to copy, hard to modify, hard to distribute. We have used copyright and license to guarantee freedom where the powers that be would have had us relinquish that freedom and let capital have its way. And we did it!

Sure, the fight for free software is not yet over but that is not an excuse. We can fight for ethical software at the same time. We can fight for it in politics, we can speak for it on our blogs, and we can push it using our licenses.

It might not be free software as we know it, but it will still be free software. There is no golden standard of freedom. Freedom is a balancing act that needs to be renegotiated again and again. And sometimes a freedom is curtailed for another freedom to flourish. In most democracies, for example, the constitution limits the laws that can be passed such that a simple majority in parliament cannot abuse a minority. This limitation is for the greater good: the consideration of legal interests is an ongoing process.

Here is what I’m talking about:

The freedom to run the program as you wish, for any purpose (freedom 0). – Richard Stallman, The Free Software Definition

I consider the freedom to run the program as you wish to be an important freedom, but it is not an absolute freedom. It can and it must be weighed against other legal interests, other freedoms and other rights – rights like the ones listed in the Universal Declaration of Human Rights.

As I said at the top, more licenses is always a problem, specially if these are more licenses trying to achieve the same thing in incompatible ways, like free software. But there will always be new goals, and therefore there will always be a need for new licenses. We are not going to spend the next millennium without new licenses, for sure. Might as well make it a license that puts Human Rights first.


Comments on 2020-05-09 Ethics and licensing

See also, A Six-Month Retrospective on Ethical Open Source by Coraline Ada Ehmke. Also, her other publications listed on Model View Culture.

– Alex Schroeder 2020-05-09 13:04 UTC

And interesting note by @sir, Thoughts on the subject of ethical licenses. He argues three points:

“Anyone who is prepared to violate human rights is going to have no problem ignoring your software license, too.” This is true. But I believe that it does send a message. Not all laws are necessary or enforced. We recently added sexual orientation to a list of things one may not discriminate against in Switzerland even though some people argued that it was already implicitly illegal due to some other law. Not sure whether the law was therefore unnecessary. I voted in favor of that change.

Sometimes interpretations vary by country. Many people in the US don’t consider water boarding to be torture, for example. And yet, this is having an effect outside of the US. We don’t like to send people wanted in the US to the US for fear of cruel and unusual punishment. Abroad, the US is now viewed as a country that may torture prisoners. So, even if human rights are ignored somewhere, highlighting this fact is going to have an effect. If ICE is violating human rights in the US a developer using a software is now both complicit in what is considered a crime abroad, and in violation of a license. I don’t think people will ignore this.

“It’s difficult to comply with” is a good argument. But that hasn’t stopped other laws from going into effect: enforcing GDPR is hard. Enforcing copyright and DRM is hard. Enforcing ethics is also hard. Perhaps it’s a good thing that we’re outgrowing the simple problems. Time to tackle the hard ones.

“It’s not open source.” I think already discussed this in the blog post. It’s true. Ethical software puts limits on freedom zero, the freedom to use the software for anything. There are limits.

– Alex Schroeder 2020-05-09 13:30 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: Diary Putting Together a Solo Dungeon Crawl Generator Diary Diary Diary