Diary

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.

2017-04-28 Markdown vs Wiki Creole

Remember Creole, the markup language for all wikis? These days, I’m starting to think that we should just move on and simply switch to Markdown.

I would like to switch this wiki and see how it goes. If it turns out to be necessary, I will publish a migration script. When I tried it, there were immediate problems regarding numbered lists, headers, and tables. Ugh!

For now, here are some of the global search and replace operations I’m considering.

Numbered lists, and nested numbered lists.

  • (?m)^#(?=\s)1. (affects 565 pages, some of them with code where the hash was used for comments, this is a major pain and requires manual review!)
  • (?m)^(?=\s)## → ## 1.## (11 matches; not sure this is supported, actually)

UseMod style headings.

  • (?m)^=(\s.*?)\s*=+$# $1 (1 match)
  • (?m)^==(\s.*?)\s*=+$## $1 (170 matches)
  • (?m)^===(\s.*?)\s*=+$### $1 (10 matches)
  • (?m)^====(\s.*?)\s*=+$#### $1 (2 matches)
  • (?m)^=====(\s.*?)\s*=+$##### $1 (0 matches)
  • (?m)^======(\s.*?)\s*=+$###### $1 (0 matches)

Creole style headings. These are much more lenient so I am expecting more trouble.

  • (?m)^=\s# (1 match, watch out for math stuff; this requires manual review)
  • (?m)^==\s## (46 matches)
  • (?m)^===\s### (9 matches)
  • (?m)^====\s#### (1 match, which required manual review because it was about markup)
  • (?m)^=====\s##### (0 matches)
  • (?m)^======\s###### (0 matches)

Source code. This requires some manual interverntion because ##### turn into `#` and the like.

  • (?m)^(\{\{\{|\}\}\})$ (449 matches)

Tables: The first row already gets the th element instead of the td element, so I think we should be fine just changin |= to |.

  • \|=| (72 matches, some of them used in Perl code and thus also requires manual review!)

Quoted text using ##hashes## is also tricky.

  • ##(\S.*?)## → = `$1`

Tags:

Comments on 2017-04-28 Markdown vs Wiki Creole

Not sure if that’s the best move. Sure, most things support Markdown (kinda), but Markdown does not even have tables… oops.

There’s CommonMark, and that’s what you should use, but it has its own problems.

There’s just no way to win :|

– AlexDaniel 2017-04-28 22:56 UTC


Also, perhaps it’s worth mentioning that Github renders markdown comments, markdown wiki pages and .md files differently, so you’re dealing with three different markdowns…

– AlexDaniel 2017-04-28 22:57 UTC


Sadly, you are correct. But all the text editing stuff on iOS I have used is either plain text or Markdown, e.g. iA Writer. GitHub and its large family of friends uses GitHub Flavored Markdown. Have you seen The Homebrewery? If you write stuff for D&D 5 or if you like the looks of it, here’s a tool to create awesome looking PDFs using Markdown, online, with menus to insert tables for classes, spells, monster stat blocks, and so on. And it is so beautiful and fast, it nearly makes me want to cry. Even the sample text used to fill the templates is great. This is just great.

(Still fiddling with the formatting rules.)

– Alex Schroeder 2017-04-28 23:02 UTC


The Common Markup spec raises interesting questions. Curious minds want to know about the corner cases. But as far as I can tell, it doesn’t have tables, right?

– Alex Schroeder 2017-04-28 23:15 UTC

Add Comment

2017-04-27 Rulings

One of the defining statements for the Old School Renaissance is often said to be “rulings, not rules”. So what are rulings? How do they come to pass?

One fascinating document is the discussion of Eero Tuovinen’s D&D campaign. There, he treats D&D rules as oral tradition. If people remember a rule, it is applied. If a new rule is proposed on the spot, it is applied and if it remembered the next time such a situation comes up, it is applied again. The rules are what people can remember. Slowly, rules fade out and new ones fade in. It’s a living, mutual understanding of how the game will be played.

I want to talk about the process that leads to the proposal of rules. Here is something that happened recently in one of my games:

The party is fighting ghouls at a tunnel entrance. The last ghoul looses initiative but survives. On its turn, it paralyses a party member. Nobody objects, it’s by the book.

The next round, the ghoul wins initiative and drags the helpless character into the tunnel to kill them. The players object and I relent: it drags the paralyzed character into the tunnel and whoever wants to follow the ghoul and attack can do so. (More about the ensuing discussion on G+.)

What exactly happens when I say “the players objevted?” The way I run my game is I often suggest a plan of action and some of my players like to then think of ways to prevent it. I start by saying what happens: “OK, so ghoul hits and you roll a save vs. paralysis.” Some dice are rolled and then I provide a suggested course of action: “OK, so the ghoul is going to drag the unconscious Ishirou into the tunnel.” And since ghouls killed a character in those very same tunnels last session, the players all know what’s coming and they’re groaning and interjecting: “Hey, it can’t drag a corpse” or “But it can’t kill Ishirou”. I make my argument or propose an alternative to resolving this: “Sure, he’s helpless. But OK, let’s say that retreating and dragging a body prevents it from attacking, sounds fair?” So what happens is a short negotiation. When I say “the players object and I relent” then this is what is happening at the table: I propose how this is going to fall out and there’s a little moment of silence where players can interject or propose a different ruling until we’re all as happy as can be, and play proceeds.

How did it turn out? The players follow the ghoul into the tunnel and since the ghoul wasn’t fleeing but making a retreat, they can all reach it and attack, but they all miss. Then we roll initiative again. The ghoul wins and the players object again and we agree to make a morale check (9) but the ghoul makes it and therefore decides to not flee. Instead of retreating any further, it kills the helpless character for a little snack. The rest of the party then hacks the ghoul to pieces in a bloody fury.

Should the ghoul have fled? The cavern it had retreated into was a dead end and the players controlled the exit. Sadly, I forgot to have the ghoul talk. It was a murderous killer ghoul and those are boring compared to murderous smooth-talking ghouls.

But really I think the question boils down to this: here we have a monster that eats characters. If it only ever eats characters once they’re all dead, then the character eating part isn’t all that scary. In this situation I think I favor a monster that does the thing that’s less smart and more scary.

Tags:

Comments on 2017-04-27 Rulings

On G+ I just had another discussion on this topic. Aaron asked: What are your favorite pieces of OSR games? And I think that’s a weird thing to say.

For one, many referees online turn into part time authors. This is great. We can all play more or less the same game and still make something. I think the do-it-yourself aspect of easy desktop publishing and print on demand and sites like RPG Now made a huge difference. +Rob Conley said it in a blog post, recently: What everybody forgets about the OSR.

That is why I have no actual favorite pieces. It’s the act of enthusiastically presenting them to the world that makes all the difference. Spells, monsters, house rules, advice. I just love being part of the conversation without having any particular favorite words.

You already know that I think the discussion of Eero Tuovinen’s D&D campaign is the best. There, he treats D&D rules as oral tradition. If people remember a rule, it is applied. If a new rule is proposed on the spot, it is applied and if it remembered the next time such a situation comes up, it is applied again. The rules are what people can remember. Slowly, rules fade out and new ones fade in. It’s a living, mutual understanding of how the game will be played.

Just read the first three posts by Eero in the thread and you’ll have the gist of it.

“My viewpoint on this ultimately indicates that most of D&D writing is necessarily of secondary concern, as most of that writing focuses on mechanical resolution concepts. This means that these writers, starting with Gygax, have failed to actually address the first-order concerns that gamers need to be able to overcome to play the game successfully: instead of telling us how he set up his sandbox campaign and how his group negotiated challenges, Gygax tells us about the outcome of this process of play. He tells us that after playing the game their group had established these sorts of character classes, and this is how their thieves picked pockets, and this is how shields worked vs. polearms. However, he never tells us the bit that I’m absolutely convinced about today after playing the game myself, that the GM’s referee position cannot work without a clear system of precedent. He also doesn’t tell us how these rulings need to be rooted in the fictional concerns of the group, and how there are no absolutely right or wrong choices for how to handle the individual resolution details. What we get instead is this myth where a long playtest has stabilized a genius rules system, and you’re not really playing AD&D if you don’t follow every brainfart rules subsystem written down by Gygax. I think that history has amply shown that the way D&D uses rules means that these rules are necessarily tied into a time and a place, into specific nuances of how people play and what they care about their fiction.”
– Eero Tuovinen

So this is where I get my position that I care about how rulings get made. I am much less interested in the actual rules themselves, the “pieces of the OSR.”

– Alex Schroeder 2017-04-29 21:18 UTC

Add Comment

2017-04-27 Record Keeping

Remember Record Keeper, the Meatball Wiki page on people who keep records of our textual lives? Those who have records of our chat logs, email archives and social media posts have power over us. They take conversation more seriously than others. They prevent forgiving an forgetting. This started a discussion on Mastodon.

What I hate about social media sites is that all the data is kept but I can’t find anything I need. The admins, or new owners, however, can always comb through the data. Given that I can’t find shit, I’d be better off if old data got deleted. Delete inactive accounts after 90 days. Delete Toots after 90 days. Delete media after 30 days. Data is a liability. Make it easy for people to export threads (share a thread as HTML mail attachment, or save as HTML page for example).

Allowing me to download my own data is just part of the story. Luckily we can do that often enough: Google Takeout, Twitter Download, Facebook Download. But data is still a liability. If the bad guys take over, all your secrets are revealed, basically. Data is a liability because we cannot predict the future. And then there is the sheer scale of it. Once I realized that my GMail archive was more than 2G of mail, I decided to archive the file and delete the data on the servers because I don’t have the tools to work with the data offline. Better to delete it.

Now, this was relatively easy to do using a mail client and some free time. And yes, I can always go back and delete all the tweets, all the Facebook posts, all the Flickr photos, all the Instagram pics, but have you tried doing it? Deleting old stuff is a sad chore and nobody does it. Forgive and forget? You wish. The search engine indexes would forget, if only you’d delete, but you effectively can’t.

I was reminded of this talk by Maciej Cegłowski, Haunted By Data, where data is compared to nuclear waste. “In a world where everything is tracked and kept forever, like the world we’re for some reason building, you become hostage to the worst thing you’ve ever done.”

As you can see in the thread, some people claimed that I was making it easy for evidence to disappear, for nazis to hide, for white supremacists to hide. But I disagree. If the solution to old Nazis hiding somewhere is setting up the Stasi, I’m not sure we’re getting the best deal that we could. I’m not saying all records should be destroyed, videos should self destruct, newspapers should disappears, libraries should burn down, or archives be dissolved. No! I’m saying that Facebook and Twitter and G+ and Mastodon should make it easy (or: the default behaviour) to forget stuff. It’s not the same thing. Facebook posts and Tweets are not history, books, archives and newspapers.

Some people claimed that using social media is like printing pamphlets. You’ll never get them back. The information will stay out there, forever. And this is true, in a way. There is no protection from snoops and crooks. But this is not an all or nothing decision. The inability to create a perfect solution does not prevent us from making baby steps in the right direction, though. Some ISPs must keep meta data around. Secret services keep our data. And still, I can prefer an admin who doesn’t keep my data around. I can prefer the Mastodon implementation that forgets by default.

Let’s not forget: software is the way it is because that’s how we decided to implement it. Forgetting everything or forgetting nothing are two simple solutions for engineers. But we don’t have to do it that way. We could also implement it like printing on very cheap newspaper. These pamphlets will fall apart sooner or later and special efforts might be required to preserve them.

My wiki replaces all IP numbers in the log file with Anonymous after a while and it has an option to delete old page revisions after a while. Yes, somebody can still set up a feedreader and keep a copy of all the stuff. But I am not keeping a copy of the stuff. And if you’re a nice admin, perhaps you’re also trying to limit the stuff you keep. Data is a liability. We need to design software to minimise the footprint.

I think we need a general change in attitude. Software needs to be built such that it will allow us to forget.

And finally, now that we are living in a world where forgetting keeps getting harder: is that something you agree with? If David Duke deleted all his posts, and provided more clues to his white supremacist opinions, and we no longer remember them, is this not the sort of forgiving and forgetting that makes public life bearable? We can set up monuments to remind us of war crimes, or crimes against humanity, of tragedies and mistakes, but do we really need remember all the names, link them, trace them?

Is it not ridiculous when presidents have to claim on TV that they did not inhale when confronted with old pictures? I think the only alternative is something straight our of David Brin’s The Transparent Society. Since we can’t beat the snoops, we should join them and the ensuing balance of terror will keep us all quiet. If everybody posts pictures of the misdeeds as a teenager on Facebook then there is no reason to attack others for them. We will have made us vulnerable to the communities we live in. And perhaps this kind of trust and openness is something that will grow over time.

These days we accept kids doing stupid things and say to ourselves, we were kids once, we did stupid things too. Let’s not call the cops.

I don’t know. I think a society we have not learned to deal with this kind of openness. On the contrary. When people are released from prison, we accept them back into our midst and consider it unfortunate when they can’t find their way back into society. We want them to work and pay taxes, we want them to be good citizens again and we don’t want to remind them of their crimes whenever their name comes up.

As a society, in the non-digitised world, we have designed mechanisms to strike a balance between record keeping an forgetting. But you know Lawrence Lessig’s book, Code is Law, c.f. Code and Other Laws of Cyberspace. The software we build that never forgets is the software that disrupts our ability to forget. Right now, we no longer have the choice.

I want to make that choice. We are built to forget the information that is not relevant. Forgetting is important.

Tags:

Add Comment

2017-04-25 Equipment List

I like my equipment list small. For every item I ask: how is it’s presence or absence going to change the game? The point being that the list should be short and suggestive of the setting. Anything else just costs 1gp and needs no suggesting.

That’s why I like the Moldvay list: the things I remember all have a specific use.

  • mirror vs. medusas and basilisks
  • wolfbane vs. werewolves
  • silver dagger vs. werewolves
  • garlic vs. vampires
  • stakes vs. vampires

Similar ideas:

  • salt vs. ooze and snails
  • goat, for sacrifice
  • bird vs. gas trap
  • marbles or caltrops vs. pursuit
  • thread vs. labyrinth

More such useful items would have to go hand in hand with new monsters, I think. The thought process would be: the monster we care about is goblins. What would “help” against goblins? Do they flee from dogs, unconditionally? What would help against manticores? Do they hate the sound of trumpets? What would help against shadows? Would a room full of candles eliminate all shadows and thus prevent them from emerging?

Arnold started it all by collecting stuff for his equipment list on G+. Comment there, if you have additions. I wrote a post about how I would expand on the equipment list, also on G+. Comment there if you want to talk about the criteria to include or exclude items. Or leave your comment here, on the blog. :)

Tags:

Add Comment

2017-04-23 Cut, Copy and Paste

I wanted to add copy & paste to Gridmapper. But how? With access to the clipboard? And what kind of data would I use? I decided to leverage the existing text export and import functionality.

I wanted to use something like the selection on typical graphical user interfaces. Shift and the arrows keys extends the selection. But I have used Shift for other things:

  • Shift and the mouse doesn’t drag the pointer along, which is nice when trying to use the application with just the mouse; I switched that to Alt
  • Shift and the arrow keys draws the floor, which is nice when you’re using just the keyboard; I switched that to Alt as well
  • I allow Escape to get rid of the active selection
  • Do you think Delete and Backspace should delete the selection if it is currently active?
  • Mouse users: hold Shift while moving the mouse.
  • Also, no documentation. How to mention this on the help pane? How to integrate this into the demo?

Tags:

Add Comment

2017-04-21 Armor Pieces

A long time ago, I ran an M20 game in fantasy Japan. The weapon rules are available in English. The armor rules are available in German. This blog post is supposed to fix this.

Shields

Shields are hardly ever used. But you can use a tessen to defend yourself for AC +1 if you don’t attack this round.

Medium or Heavy Armour

If you care about how heavily armoured an opponent is, use the following:

Type AC
light armour AC +1 to +2
medium armour AC +3 to +4
heavy armour AC +5 and up

Simple Armor

Ashigaru are common soldiers and militia men. Their armour provides AC +3 and costs 25 gp.

Shinobi are assassins and spies. Their light armour allows them to move silently and hide in shadows. It provides AC +2 and costs 15 gp.

Armour

Warriors use various pieces of armour. Japanese armour consists of various pieces. Having a full set is rare. Armour is usually kept in a wooden box.

Armour AC Price
Dō (chest) +2 20
Kote (sleeves and gauntlets) +1 20
Suneate (shin guards) +1 20
Kusazuri (thigh, requires dō) and haidate (upper legs) +1 20
Sode (shoulder, requires dō) +1 20
Nodowa (throat and neck, requires sode) +1 20
Wakibiki (armpit, requires sode) +1 20
Kabuto (helmet) +1 20
Mempo (face mask, requires kabuto) +1 20

A full set grants AC +10 and costs 180 gp.

Low AC Games

If you prefer low AC games, and you use a Death & Dismemberment table, I have a solution for you.

Armour Effect
Dō (chest) AC +2
Kote (sleeves and gauntlets) arms cannot be cut off
Suneate (shin guards) legs cannot be cut off
Kusazuri (thigh, requires dō) and haidate (upper legs) AC +1
Sode (shoulder, requires dō) AC +1
Nodowa (throat and neck, requires sode) head cannot be cut off
Wakibiki (armpit, requires sode) AC +1
Kabuto (helmet) no fainting
Mempo (face mask, requires kabuto) no loss of eyes or teeth

The best armour now provides just AC +5. Remember: no shields! But you’re still hard to kill because you are now immune to many injuries.

Best case, using the table from Halberds and Helmets:

2d6
2 decapitation /avoided/
3 fatal wound 💀
4 severed limb /avoided/
5 broken bone
6 ⅔ of painful losses /avoided/ (nose, eye, ear, teeth)
7–8 knock out /avoided/, just stunned
9 stun avoided, just knocked down
10 knocked down
11 no effect
12 adrenaline surge

Discussion on G+.

Tags:

Add Comment

2017-04-13 Mastodon API

Testing the API with cURL provides a start.

Get a token for the imaginary app “Oddmuse”:

curl -X POST -d "client_name=Oddmuse&redirect_uris=urn:ietf:wg:oauth:2.0:oob&scopes=read" -Ss https://octodon.social/api/v1/apps

Get back a JSON thing that looks as follows:

{
  "id":1878,
  "redirect_uri":"urn:ietf:wg:oauth:2.0:oob",
  "client_id":"CLIENT_ID_HERE",
  "client_secret":"CLIENT_SECRET_HERE"
}

Use them, with your username and password:

curl -X POST -d "client_id=CLIENT_ID_HERE&client_secret=CLIENT_SECRET_HERE&grant_type=password&username=YOUR_EMAIL&password=YOUR_PASSWORD" -Ss https://octodon.social/oauth/token

Get back a JSON thing containg the auth token:

{
  "access_token":"ACCESS_TOKEN_HERE",
  "token_type":"bearer",
  "scope":"read",
  "created_at":1492100523
}

Now put that access token in a header and request a URL based on the ID you can see in the URL of a status, e.g. for https://octodon.social/web/statuses/504676, based in info in the API documentation.

curl --header "Authorization: Bearer ACCESS_TOKEN_HERE" -sS https://octodon.social/api/v1/statuses/504676/context

You’ll get a lot of JSON, so let’s save it in a file.

curl --header "Authorization: Bearer ACCESS_TOKEN_HERE" -sS https://octodon.social/api/v1/statuses/504676/context > context.json

Get the status itself and save it in a file:

curl --header "Authorization: Bearer ACCESS_TOKEN_HERE" -sS https://octodon.social/api/v1/statuses/504676 > status.json

Get jq. Test it online.

Let’s extract the HTML from the JSON and build a thread.html file.

jq ".ancestors|map(.content)|.[]" < context.json|sed -e 's/^"//' -e 's/"\r$//' -e 's/\\"/"/g' > thread.html
jq ".content" < status.json|sed -e 's/^"//' -e 's/"\r$//' -e 's/\\"/"/g' >> thread.html
jq ".descendants|map(.content)|.[]" < context.json|sed -e 's/^"//' -e 's/"\r$//' -e 's/\\"/"/g' >> thread.html

Turn it into text using w3m:

w3m -T text/html < thread.html | fmt > thread.txt

Result:

@lewisnyman Very much. I'd like to see "channels", on a /defined/ basis,
not / just/ definable by posters. That would let you filter content
by source and/or topic.  That should include a "personal" or "social"
context. And more than on channel might apply to a topic, e.g., "japan"
/and/ "politics", say.

@dredmorbius @lewisnyman ... but how would you handle individual users who
are posting about various topics (e. g. I post about financial economics
as well as other stuff)? Hashtags?

@stefanieschulte @dredmorbius @lewisnyman back on Usenet (for those who
are old enought to remember ;-) you didn&apos;t "follow" individuals,
but topics (aka newsgroups) instead. Which, IMO, was (and is) the better
concept, as I more often are interested in a topic than in all postings
by some individual.

@cynix @lewisnyman @dredmorbius @stefanieschulte Regarding USENET and
groups: remember the discussions regarding new newsgroups? The global
namespace, the kill lists, the trolls? It wasn&apos;t always great. No
need to repeat those mistakes.

@kensanata @stefanieschulte @dredmorbius @lewisnyman of course do I
remember all of Usenet, as I managed one of the largest German sites
during the 90s. And while there where certain problems, I don&apos;t see
where these are solved in todays fragmented infrastructure of social
sites, bulletin boards (yuck) or walled gardens. And I doubt that the
ephemeral "streams of consciousness" here are better either. We need
mix of the best from old and new, not just "new"

@cynix @kensanata @stefanieschulte @lewisnyman I also want to
disintermediate the underlying characteristics and systems of Usenet. Most
especially the technical and social, and not confounding them.

Realising also that Usenet and the early Internet operated within the
walled garden of academia and technology companies. It selected a subset
of a subset of society.

Joseph Wood Krutch, "A bad road is a good filter" is another useful idea.

@lewisnyman @stefanieschulte @kensanata @cynix
https://en.m.wikipedia.org/wiki/ Joseph_Wood_Krutch

@dredmorbius @lewisnyman @stefanieschulte @cynix I guess my main
point is this: an observable bad was trolls on Usenet but also toxic
people in local special interest groups (what Stefanie mentioned). I
see the common thread being namespace competition. There is only one
comp.lang.lisp. There is only one LUG Zürich, and so on. Which is
why federation of servers, name spacing of hashtags, multiplicity of
Communities and Collections on G+.

@kensanata @stefanieschulte @lewisnyman @dredmorbius to make that clear:
I favor the technical infrastructure of Usenet, because here (or even
worse on bulletin boards, which are a rather nasty kind of walled garden)
I have little chance of archiving an interesting thread for later or
offline reading or condensing the information contained.

BTW, I still can connect to e.g. News.Individual.DE for lively and
friendly discussions in various newsgroups.

@cynix @kensanata @stefanieschulte @lewisnyman I suspect you /can/
d/l / archive threads on Mastodon / OSocial, if only by running your
own instance.

There are several console / CLI clients already, a Mastodon / OSocial
front-end based on, say, rtin or mutt, might be feasible, and could
be interesting.

Though that takes technical chops for now. Building that into the Web
clients / chat tools would be a plus.

Especially a "grab thread" feature.

@dredmorbius @cynix @stefanieschulte @lewisnyman A simple bookmarklet
should allow you to download a thread as a document?

@kensanata @cynix @stefanieschulte @lewisnyman Probably. Hrm.

It’s not bad. All it’s missing is the author, I think? With a bit of Perl instead of jq it should be easy to fix this. Here’s how to get the usernames posting the status...

jq ".ancestors|map(.account.username,.content)|.[]" < context.json

Oh well, endless joy! :)

Tags:

Comments on 2017-04-13 Mastodon API

Bookmarks:

  1. Mastodon Caching Strategy Issue #legal #caching #mastodon
  • - AlexSchroeder 2017-04-15 21:30 UTC
  • ---

Trying to compile Don on my laptop:

fknsrs.biz/p/don
--> Building server JavaScript bundle
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
make: *** [build/entry-server-bundle.js] Error 125

See Docker via Homebrew.

brew install docker docker-machine webpack
brew cask install virtualbox
docker-machine create main
eval $(docker-machine env main)
npm install --save-dev webpack
make

That doesn’t work. I also tried to install webpack using Homebrew, but got the same error:

--> Building server JavaScript bundle
yarn run v0.22.0
$ NODE_ENV=production webpack -p --bail --config webpack.config.server.js 
sh: 1: webpack: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
make: *** [build/entry-server-bundle.js] Error 1

And with that, I have decided that the infrastructure required for this project is too complicated for my liking.

  • - Alex Schroeder 2017-04-17 19:34 UTC

Add Comment

2017-04-12 Preise für Rollenspielbücher

Weil auf G+ jemand einen Kommentar von mir mit +1 markiert hat, bin ich wieder auf die Diskussion zu den Preisen in Rollenspielmarkt gekommen und wollte meine Kommentare noch auf den Blog retten.

Diejenigen unter euch, die unglücklich mit der aktuellen Situation sind, leiden meiner Meinung nach einfach unter dem Kapitalismus unserer Zeit. Was nützt es jetzt, hier über die fehlende Grösse des Marktes, die unerbitterliche Preisbildung über Angebot und Nachfrage, die Selbstausbeutung, den Zwang zur Arbeit und zum Geldverdienen oder die ungerechte Verteilung von Erfolg in einem globalisierten Markt zu klagen? Das ist eine interessante, politische Diskussion, hat aber mit Rollenspiel im Besonderen nichts zu tun. Den Musikern geht es ja nicht besser. Eine Lotterie, wo ein paar wenige gewinnen, und die anderen an der Armutsgrenze oder Teilzeit oder halt eben als Amateure mitmachen – und genau so wie wir alle klagen. Aber ich für mich überlese all diese Kommentare und Diskussionen gerne, da ich davon ausgehe, dass es fruchtlos ist. Genau wie die Hobbymusiker, Hobbymaler, Hobbytänzer und Hobbyrollenspielschreiber, schreibe ich meine freie Software und verteile diese gratis an jeden, der sie möchte, auch wenn meine Frau es nicht fassen kann, wenn so viel Gratisarbeit hier geleistet wird. Was soll ich sagen? Was nützt es jetzt, über die fehlende Grösse des Marktes, die unerbitterliche Preisbildung über Angebot und Nachfrage, die Selbstausbeutung, den Zwang zur Arbeit und zum Geldverdienen oder die ungerechte Verteilung von Erfolg in einem globalisierten Markt zu klagen? Es wiederholt sich alles. Es ändert sich nichts. Mit dem Kapitalismus muss man sich arrangieren oder eine politische Diskussion führen.

Ich kann halt nur von mir auf andere schliessen. Wenn Kevin Crawford ein PDF macht, welches mir passt, zahle ich $10. Wenn es ein altes D&D PDF gibt, welches ich haben will, zahle ich $5. Wenn Blogger wie Courtney Campell oder Brendan S aber ihre PDFs für $10 verkaufen wollen, denke ich schon, ach was, eigentlich brauche ich das ja nicht wirklich. In den letzten Jahren ist meine Zahlungsbereitschaft ständig gesunken, weil meine Regal voller ungelesenem Material stehen, weil ich nichts mehr gedruckt haben will, und so weiter. Deswegen vermute ich, dass ich schon gar nicht mehr zur Zielgruppe der 70€ Verlage gehöre. Aber was für Schlussfolgerungen kann ich aus dieser Anekdote ziehen? Keine, vermutlich. Es gibt immer einige wenige, welche für ein schönes Buch viel zahlen, es gibt immer viele, welche ein Buch nicht kaufen, weil sie die Preise zu teuer finden, Monte Cook und John Wick können unglaubliche Beträge mobilisieren, andere nicht… Aber diese Leute haben halt auch schon vorher (bei mir) einen sehr viel höheren Bekanntheitsgrad gehabt. Irgendwie habe ich das Gefühl, aus diesen Beobachten könne man genau gleich keine Schlussfolgerungen ziehen, ausser vielleicht: “alles ist möglich” oder vielleicht auch: “das lässt sich alles nicht miteinander vergleichen”. Monte Cook ist da eher wie Michael Jackson: Glück gehabt! Alle anderen: Weiter mit der brotlosen Kunst. Ja, es wäre theoretisch möglich, dass jemand ein Rollenspielbuch auf Deutsch für 70€ herausbringen kann und keiner der Beteiligten sich selber ausbeuten musste. Die Chancen scheinen mir aber klein zu sein. Und hier meine ich eben, dass es sich nicht lohnt, auf die Details zu schauen: Was macht Kevin Crawford im Detail genau richtig? Was für Vorleistungen musste Monte Cook genau erbringen? Denn: Was genau haben alle anderen gemacht? Warum sind so viele alte Hasen in die Videospielindustrie abgewandert? Am Ende bleibt eben nur die Systemkritik. Ein globaler Markt, winner takes all, die Lotterie der ganzen Sache, die Bereitschaft zur Selbstausbeutung, weil es eben auch ein Hobby ist, nicht wie Strassenputzen und Kellnern und all die anderen schlecht bezahlten Jobs, die wenigstens nicht unter das Existenzminimum fallen (hoffe ich). Wenn jemand mir also sagt, 70€ Rollenspiele sind möglich, dann höre ich nur, es ist möglich, die Lotterie zu gewinnen. Wie viele Leute dabei aber auf der Strecke bleiben, weiss niemand. Wir, die normalen Leute, die Hobbyisten, diejenigen, welche dem Traum nachhängen, von einer Arbeit, die wir lieben, zu leben, wir werden nicht gezählt. Der amerikanische Traum, from rags to riches, ist eben nur ein Traum. Eine Lotterie. Da nützt weder Klage noch Aufruf. Um mich zu überzeugen, müsste man ein Argument aufführen, welches für alle anderen Künstler auch gilt – für Musiker, Maler, Tänzer, Schauspieler.

Ich bin immer skeptisch, wenn ich höre, dass irgendwelche Produkte für irgendwelche anderen Produkte den Markt kaputt machen. Gilt das Argument in der Musik auch? All die schlechten Bands machen den Markt für die super guten Bands kaputt? Überschwemmen uns mit Billigsongs? Ersticken die schlechten Bands die Liebhaber der guten Musik? Nein. Die Schwemme der Heartbreakers sind keine Erklärung für die finanzielle Misere, und der Unterschied zwischen Sammlern und Spielern ist auch keine Erklärung für die finanzielle Misere. Fakt ist nur, dass der Markt für Spieler klein ist (da die Sammler nicht dazu gehören), und das erklärt ja schon alles: geringe Umsätze, geringe Löhne.

Das Herumhacken auf den Sammlern bringt gar nichts. Wo betreffen die mich denn? Wenn die Sammler Briefmarken sammeln würden, wäre der Effekt genau gleich. Es gibt Produkte für Sammler, welche mich als Spieler nicht interessieren. Vielleicht entstehen so natürlich Erwartungen bei den Spielern. Wie beispielsweise, dass die Bücher etwa gleich teuer sein könnten. Aber der Blick auf andere Märkte bringt nichts und hat noch nie etwas gebracht. Warum ist Putzen schlecht bezahlt und CEO sein nicht? Da gibt es endlose Diskussionen aber für unsere Diskussion ist nur relevant, dass unsere Wirtschaftsordnung keinen Gerechtigkeitsanspruch hat. Wir haben einen Rechtstaat, keinen Gerechtstaat. Deswegen ist es müssig, die Preise von Videospielen und Rollenspielen zu vergleichen. Selbst wenn die Stunden aller Entwickler messen würde, bliebe die Welt ungerecht. Ausser wir wollen für eine gerechtere Welt kämpfen oder über Grundeinkommen oder Kultursteuer oder den Kommunismus reden.

Fakt ist einzig: das Markt ist so winzig, gemessen an der Zahl der Kunden bin ich ganz mit dir einig, wir haben eine absolute Überproduktion und entsprechend auch tiefe Preise (ausser für die wenigen Gewinner der Lotterie). Und mehr gibt es dazu nicht zu sagen, denke ich. Das Schimpfen lohnt sich nicht. Will man den Hobbymusikern das Musizieren verbieten? Den Hobbyprogrammieren das veröffentlichen ihrer freien Software? Natürlich nicht. Den Rollenspielern will man also das veröffentlichen der Heartbreakers auch nicht verbieten.

Schlechte Qualität? Ist doch kein Problem, du musst ja nicht alles kaufen! Ich will auch nur den besten Wein trinken, und kaufe deswegen selten Wein. Ich will auch nur den besten Tee trinken, und kaufe deswegen selten Tee. Ich will auch nur gute Kinofilme sehen, und gehe deswegen selten ins Kino. Ist doch super? Rezensionen lesen, Schrott nicht konsumieren, dem ständigen Kaufen! Kaufen! Kaufen! einfach etwas Behäbigkeit entgegensetzen. Das machst du natürlich auch, und ich verstehe auch, dass man sich wünscht, dass Lipton Yellow Label oder Twinings Green Tea vom Markt genommen wird, dass man empört unter Freunden über den miserablen Dreck schimpft, der mit riesigen Budgets im Kino landet, und dann lachen wir alle ein wenig, aber so wirklich bringt die Diskussion natürlich nichts. Denn uns ist ja allen klar, wie die Welt funktioniert. Naja, manche träumen vielleicht davon, dass der Rollenspielmarkt anders sei, als es aussieht. Grösser, zum Beispiel. Oder von qualitätsbesessenen Lektoren bevölkert. Aber das ist natürlich nicht so, war nie so, und ist auch sonst nirgends so.

Rezensionen, Aufrufe, Diskussionen über die Qualität im Guten wie im Schlechten, absolut. Der Markt braucht natürlich gut informierte Kunden. Was auch legitim ist: einfach nicht konsumieren. Wenig kaufen. Oder: Bei der Frage nach Haben oder Sein die richtige Entscheidung fällen. Ich bin vor allem Rollenspieler, nicht Rollenspielbesitzer. Ich schreibe wenig Rezensionen, weil ich kaum etwas verwende. Die Lektionen der letzten zehn Jahre habe ich gelernt.

Klar, hoher Preis heisst nicht automatisch hohe Qualität. Aber wir drehen uns auch ein wenig im Kreis, hier. Der Markt ist verdammt klein. Vielleicht gibt es schlicht und einfach kein günstiges, schönes und nützliches Rollenspielbuch für den deutschen Markt. Wenn es das gäbe, würde es sich herumsprechen, da bin ich überzeugt. Deswegen: Es könnte ein solches Buch geben, das 70€ wert wäre. Es könnte ein paar Leute geben, die sich für ihr Buch nicht selber ausgebeutet haben. Aber aus den weiter oben dargelegten Gründen ist es verdammt unwahrscheinlich. Und weder mehr Kunden noch höhere Zahlungsbereitschaft lassen sich herbeireden, genau so wenig wie wir den Dschinn des desktop publishing und des print on demand wieder zurück in seine Lampe kriegen.

Tags:

Add Comment

2017-04-10 GPG Key Expiration

Today, I was greeted with the following as I was trying to save an crypted file from Emacs:

Error while encrypting with "gpg2":

gpg: XXX: übersprungen: unbrauchbarer öffentlicher Schlüssel
gpg: [stdin]: encryption failed: unbrauchbarer öffentlicher Schlüssel

What? Confirmation was easy. The key had expired.

$ gpg --list-keys XXX

Superuser to the rescue. Edit the key, change the expiration date, save, verify, and send to key servers.

$ gpg --edit-key XXX
gpg> expire
(follow prompts)
gpg> save
$ gpg --list-keys XXX
$ gpg --keyserver pgp.mit.edu --send-keys

Tags:

Add Comment

2017-04-08 Well Meaning Google Plus Spam

I’m a moderator in a handful of G+ Communities. Sometimes I’ll visit one them and see a bright green dot inside the green “MODERATE” button. I click the link and see G+ decided that a bunch of posts looked like spam. Sometimes they look like spam to me, too. The rest of them look like something that seems like on-topic spam if there is such a phrase. People post a few words and a link to their blog post. This is not cool because a few more words would be way cooler. In addition to that, however, when I check their profile I see that these people have posted the same link post to plenty of communities.

What is a moderator to do in this situations? My personal preference would be for people to be more specific. Just post it in one community. Or if you can’t quite decide between RPG, OSR, B/X or any of the others, then perhaps it doesn’t actually belong in a community but it should simply be a public post by yourself. People who are interested will start following you.

As a reader, I think I prefer a Community that has less link posts and that has less repeats I’ve already seen. That’s why, as a moderator, I’ll just delete posts that G+ flagged as spam if they’re the kind of repeated link posts. What do you think?

Also: does this need to be in some sort of “intro” post for each community? Or should I tell people whose flagged posts I’m not going to approve?

As the discussion on G+ showed, people seem to agree that these posts are considered spam and that I should say as much in the introduction to the community.

Tags:

Add Comment

More...

Comments


Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. See Info for text formatting rules. You can edit this page if you need to fix typos. You can subscribe to updates by email without leaving a comment.

To save this page you must answer this question:

Please say HELLO.

Referrers: Gothridge Manor An Abominable Fancy: Holmes/AD&D/B/X: Spells Known ZENOPUS ARCHIVES: The Hermit Fortress An Abominable Fancy: Missing in Battersea: A Five-Node Mystery for Maz... ... in der Mitte der ZauberFerne Planet Emacsen Dreams of Mythic Fantasy Akiyama's Blog Troll and Flame: Barrowmaze For 5th Edition mastodon.weaponvsac.space/@kensanata The City of Iron