# 2013-12-01 Anonymizing the Oddmuse log files

I’ve just implemented a new non-optional Oddmuse feature. I’m removing all hostnames and IP numbers of older log entries. The log entries older than 90 days are stored in a different log file in order to speed up the generation of RecentChanges. During maintenance, these log entries are copied from one file to the other and I’m now taking advantage of this copying to remove the hostname or IP number.

Basically I find that as a person, I dislike invasions of privacy and I feel that in some small form, software engineers are inviting it because often it’s easier to do. We often model things to never forget, e.g. version control.

One of the important pages on Meatball was ForgiveAndForget. Forgetting is human.

At the same time, with Snowden and the NSA, I feel that as a hoster I’m more comfortable if I cannot provide the logs an agency is looking for.

Furthermore, I’ve had a very small number of emails from users asking me to remove their hostnames from the log files because they had accidentally edited the wiki from work. Pages containing their hostname will eventually be deleted but log entries were not. Now they’re anonymized and people can feel safer knowing that the traces will eventually disappear again.

The idea is that you would only need hostnames or IP numbers to fight spam and vandalism: Add regular expressions matching either hostname or IP number of spammers or vandals to your list of banned hosts and prevent the attack from continuing. After a few days, however, this information is no longer required. In this day and age of privacy invasion, I think software should take a pro-active stance. The log entries must be anonymized.

The existing log file for the older entries is not changed. If you want to do the right thing, there’s a script called anonymize.pl in the contrib directory to do just that.

Just call it in your data directory. Example:

alex@psithyrus:~/oddmuseperl ~/src/oddmuse/contrib/anonymize.pl Wrote anonymized 'oldrc.log'. Saved a backup as 'oldrc.log~' See Oddmuse:Upgrading Issues for a more technical explanation of what’s going on. Tags: Add Comment # 2013-12-02 Emacs Defaults I saw Andrew Hyatt post on Google+: From the emacs-devel list comes a query for builtin packages that would be useful to enable by default. They are interested in getting feedback from the community. If you have a builtin package you think should be enabled by default, add a comment, and we circulate this back to the emacs-devel list.﻿ Check it out via Gmane, and now a survey on Emacs Wiki. I skimmed my ~/.emacs and looked at all the little settings I think would make better defaults… For the complete file, see my current config file for Emacs on Windows. (show-paren-mode 1) (winner-mode 1) (windmove-default-keybindings) (column-number-mode 1) (savehist-mode 1) (iswitchb-mode 1) (global-set-key (kbd "C-x C-b") 'bs-show) (require 'dired-x) (setq dired-recursive-deletes 'top dired-recursive-copies 'top dired-dwim-target t) (setq sentence-end-double-space nil) (dolist (hook '(emacs-lisp-mode-hook lisp-mode-hook rcirc-mode change-log-mode texinfo-mode-hook)) (add-hook hook (lambda () (eldoc-mode 1) (set (make-local-variable 'sentence-end-double-space) t)))) (setq eshell-save-history-on-exit t) (setq cperl-hairy t cperl-electric-parens 'null) (add-hook 'cperl-mode-hook (lambda () (local-set-key (kbd "C-h f") 'cperl-perldoc))) (add-hook 'rcirc-mode-hook (lambda () (rcirc-track-minor-mode 1))) (defun describe-hash (variable &optional buffer) "Display the full documentation of VARIABLE (a symbol). Returns the documentation as a string, also. If VARIABLE has a buffer-local value in BUFFER (default to the current buffer), it is displayed along with the global value." (interactive (let ((v (variable-at-point)) (enable-recursive-minibuffers t) val) (setq val (completing-read (if (and (symbolp v) (hash-table-p (symbol-value v))) (format "Describe hash-map (default %s): " v) "Describe hash-map: ") obarray (lambda (atom) (and (boundp atom) (hash-table-p (symbol-value atom)))) t nil nil (if (hash-table-p v) (symbol-name v)))) (list (if (equal val "") v (intern val))))) (with-output-to-temp-buffer (help-buffer) (maphash (lambda (key value) (pp key) (princ " => ") (pp value) (terpri)) (symbol-value variable)))) (define-key isearch-mode-map (kbd "C-h") 'isearch-highlight-phrase) (put 'narrow-to-region 'disabled nil) (put 'not-modified 'disabled t) (put 'upcase-region 'disabled nil) (put 'downcase-region 'disabled nil) Tags: Add Comment # 2013-12-02 New Creative Commons Licenses November 25, 2013. Creative Commons released 4.0 versions of their licenses. Yeah! More info on their blog. Cory Doctorow says the following on BoingBoing, which is where I learned about the new versions: The new licenses represent a significant improvement over earlier versions. They work in over 60 jurisdictions out of the box, without having to choose different versions depending on which country you’re in; they’re more clearly worded; they eliminate confusion over jurisdiction-specific rights like the European database right and moral rights. They clarify how license users are meant to attribute the works they use; provide for anonymity in license use; and give license users a 30 day window to correct violations, making enforcement simpler. Amazingly, they’re also shorter than the previous licenses, and easier to read, to boot. I must say, I was always a bit annoyed when I saw the local versions of Creative Commons licenses. What does it mean for me, when I live in Switzerland, host stuff in the US, and said stuff is based on the Canadian port of the license? The FAQ now says: “Unless you have a specific reason to use a ported license, we suggest you consider using one of the international licenses.” :ok: I also often wondered about additional rights we have here in Europe. For example, I might allow you to make copies of my face, but I can still control the use of said copies here in Switzerland using my “personality” rights. The blog post announcing the 4.0 versions of the licenses now says: “Where the licensor has publicity, personality, or privacy rights that may affect your ability to use the material as the license intends, the licensor agrees to waive or not assert those rights.” :ok: Tags: Add Comment # 2013-12-06 Organizing PDFs I recently visited RPG Now and decided to visit the list of updated PDFs. Unspeakable rites of the ancients—that many!? I think the reason I have so many PDFs is that I bought two bundles for a fistful of dollars destined to help charities years ago. I went through the list and only downloaded the products I felt I was interested in. I skipped Pathfinder products. I skipped paper miniatures. I skipped floor plans. So many things that I’d love to have, but there is just not enough time! I clicked on Traveller stuff, Fate stuff, OSR stuff like Sine Nomine, Labyrinth Lord, Dungeon Crawl Classics (DCC), and since I can never download more than ten files, and since I cannot automatically deselect all the files I selected for download I manually deselected the ten entries I just downloaded, selected another ten entries, downloaded, downloaded—I downloaded 77 updated files. Wow. We are definitely living in plentiful times. So now I had eight zip files in my download folder and I realized another problem: There’s a folder on my external disk for RPG PDFs and its directory hierarchy is multiple levels deep. Dungeons & Dragons or Pendragon? TSR or Frog God Games? Basic D&D accessory or module? Sorting all the PDFs into the folders is driving me nuts. And what’s worse: my iPad has a PDF reader (Good Reader) with it’s own, separate copy of a subset of these files. And in my idiocy I used a different directory structure on the iPad. So now I need to figure out what to do, and how to keep the two in sync without my Repeated Strain Injury flaring up. Tags: Comments on 2013-12-06 Organizing PDFs You could organize them all in Dropbox. That’ll let you sync across devices. Derik 2013-12-06 14:49 UTC Unfortunately there are various issues I see: I don’t think I have enough quota left for those files (some of these RPG files are 50MB and more). I don’t trust these companies so I will still need backups. On a crippled device like my iPad, having Good Reader access Dropbox involves copying the files again, which still leaves me with the question of keeping it all in sync. And finally, US copyright exceptions are different from Swiss copyright exceptions (fair use vs. Eigengebrauch) so I feel like I’m inviting trouble by trusting a US company. I guess I could use Wuala, but it’s interface with Good Reader would be even more cumbersome. AlexSchroeder 2013-12-06 16:22 UTC This is how I do it. All my RPG PDFs are in ~/Dropbox/RPG/ and sorted into subfolders one level deep. No hierarchy beyond that, unless a single product happens to be a directory. One of the subdirectories is named “Tablet” which I sync to my ipad using !GoodReader directly (so no copying, really). That directory only contains copies of the PDFs that I want always on my tablet (currently, 142 files). I could sync the entire RPG hierarchy, but don’t see the need. This involves no trust of Dropbox, as the files are also in my home directory on both my laptop and desktop, and they get backed up to external media. Brendan 2013-12-06 23:36 UTC I like the simple structure you propose, and I like the idea of keeping all the files for the tablet in a separate directory which is easy to sync. If you use a simple structure, moving files in to and out of the “tablet” directory is no hassle. I see it clearly now: my directory structure is complicating things. I need to get rid of it. AlexSchroeder 2013-12-07 00:08 UTC Wow, two months later and I have finally merged all the crap on the iPad with the stuff on my hard disk. As I keep buying more and more stuff (D&D Classics!), I get more and more updated products when I visit the site again. But I think I figured it out, now. On my Mac, the folders are shared using the File Sharing settings and the Option “Share files and folders using AFP”. I keep the directory structure very flat. On my iPad, !GoodReader is sync’ing some selected folders from this hierarchy. When I download stuff on the iPad, these files all stay in either in the root folder or in the My Downloads folder. No renaming and moving of these files! When it’s time to “clean up”, the files are moved to the Mac, filed appropriately, and if they’re in the right directory, they will get sync’ed back to the iPad. It seems to work. I’m happy. AlexSchroeder 2014-02-20 17:51 UTC Add Comment # 2013-12-08 Old School RPG Planet Going Down Recently John Payne talked about distributing RSS feeds in eBook form on Google+. Interesting idea, and the resulting discussion of copyright and feed aggregation soon touched upon the Old School RPG Planet. Ian Borchardt correctly said “Just because the authors post their work to the web doesn’t mean they forfeit their copyright. If you collect this work into another form, you are violating their copyright.” Andy Standfield replied “This has all already been covered by many courts and legal experts. This is all considered fair use.﻿” I started to wonder. Many courts? I decided to google for some more information and found What’s the law around aggregating news online? A Harvard Law report on the risks and the best practices. This 2010 article said that all the parties settled before a finding was made. In the US, that would mean we don’t really know. The article also has a longer section about the Fair Use test and how to apply it. In addition to that, the situation would be different outside the US – possibly more restrictive here in Switzerland, for example.﻿ Drinking my coffee I thought about it some more and finally decided to take the Old School RPG Planet offline. I wasn’t really using it anymore and I really dislike the idea of further discussions with annoyed blog authors. I also didn’t feel like contacting a hundred bloggers, most of whom don’t have their email address on the front page of their blog. The site should now redirect to the Legacy D&D section of the RPG Bloggers Network. It supposedly does more or less the same thing, except that the authors have to register their own sites. Too bad the RPG Blog Alliance doesn’t have categories. Tags: Comments on 2013-12-08 Old School RPG Planet Going Down Hey Alex, Too bad that some idiots ruined the good thing you started. Thanks for all the hard work. Tedankhamen 2013-12-08 16:12 UTC Don’t worry, I don’t think that a particular person is to blame. I blame it on the copyright system we have and the companies and individuals pushing it, extending it, spreading their interpretation of it until we end up in the society we are living in. AlexSchroeder 2013-12-08 17:14 UTC Alex, This is a real bummer. I used your OS RPG Planet exclusively to keep me informed of what was going on. Legacy doesn’t seem to contain the same coverage of blogs and it was always handy using the Planet to check out those old dormant blogs. Well, it was good while it lasted. Thanks for keeping me up to date on the OSR. – derv 2013-12-08 18:16 UTC Perhaps there are some alternatives available out there? This is what I had listed on the wiki. Wow, the list contained a lot of dead links and a spam link, too. If anybody knows more, leave a note! AlexSchroeder 2013-12-08 18:23 UTC I just want to say, it’s a gradation, right? I follow several law and copyright blogs, and this is why we need them, because a lot of these situations aren’t clear cut. It’s a complicated issue. -C 2013-12-09 08:32 UTC Yes, of course. In addition to the situation not being clear cut, the particular elements I considered are particular to just me. There was my own lack of use, first of all, which made me unwilling to fight the slightest non-technical problem. As far as I can see, there were two big non-technical problems: The bigger problem was the law itself. I already knew that I was unwilling to fight a legal battle. I was unwilling to serve as a precedent. Let somebody else drink this cup. With me not being a US resident, the situation is even trickier. No thanks. The lesser problem was the possibility of people complaining. Many months ago I already got a terse email from Alexis, telling me to remove his blog. The possibility of having my name dragged down into the gutters, of people calling a project of mine seriously a dick move or saying that it wasn't fair or honest currently make me very unwilling to do anything at all for people playing role-playing games. And not everybody would have had Alexis’ calm. M. W. Schmeer didn't want a private conversation at the time, for example. Ugh. No thanks. I think I’m just going to run my games, write my blog… « Il faut cultiver notre jardin. » But: if anybody is interested in running their own site, I can help! The first step is installing Planet Venus which requires an installation of Python. The config file is also easy. Here’s what I used. The example config file in the Planet Venus distribution also comes with a commented config file. When I first started, I used the “musings” theme; later I wrote my own. [Planet] name = Old School RPG Planet message = Collecting Old School RPG blog feeds for the curious. link = http://campaignwiki.org/planet owner_name = Alex Schroeder owner_email = kensanata@gmail.com cache_directory = /home/alex/planet/rpg log_level = INFO output_theme = /home/alex/src/old-school-planet-theme output_dir = /home/alex/campaignwiki.org/planet items_per_page = 100 activity_threshold = 120 filters = excerpt.py [excerpt.py] omit = strong em b i u width = 1000 If you are running Venus for yourself only, you might consider deleting the filters setting. What follows is the list of blogs you want to subscribe to, with their names: [http://nilisnotnull.blogspot.com/feeds/posts/default] name = ((nil) is (not(null))) [http://www.msjx.org/feeds/posts/default] name = . . lapsus calumni . . [http://www.theskyfullofdust.co.uk/feed/] name = ...and the sky full of dust. ... AlexSchroeder 2013-12-09 08:57 UTC Ok, I know I’m not the best person to reply, due to my own knee jerk reaction. But I have this to say. Your work is appreciated by the silent many. Also, me personally. I cannot tell you the impact your comment to me about how many blog posts of mine you had favorited had. I still recall it clearly. My point is, is that the people who are a--holes, also have that kind of impact. If you recall, there were a few dudes who were ON FIRE about the fact I was talking about how to run traps. Not Loomis, the guy behind Grimtooth, not any of the other publishers who made traps that I talked about. But just some person on the internet. His random negative comment sapped more of my enthusiasm for blogging then anything before or since. But I learned something from it. The more successful you are, the more certain insecure, jealous, and often untalented people will hate you for it. So what it means when you get a comment like that is that you are really doing something that is meaningful. Not that greatness is applicable, but every great thing ever done was hated by thousands. The hate isn’t what they remember. People don’t talk about that one guy who was pissed off. When my traps get mentioned, its as an appreciated resource. What I’m saying is that what I learned, was a reaction like that is a sign that you are doing well, not poorly. I mean, as long as you are remaining introspective as the tone of this post indicates you are. Thanks for your reply and the time it took to link those arguments. That situation sucked. I’m telling you thank you, and water off a duck’s back. -C 2013-12-09 09:47 UTC Thanks, -C. Very much appreciated. AlexSchroeder 2013-12-09 09:54 UTC Wow. OSRPG Planet was one of the first sites I checked every day. Sad to see it go. And, since I never said it: thanks for providing that service for so long, I really enjoyed it. – Max 2013-12-09 12:37 UTC Thanks. I just had another thought: It should be possible to filter the RPGBA feed for blogs I consider to be OSR and republish that. Then again, somebody is probably going to say they only intended the RPGBA to republish their feed. I’d have to ask Jeff. Perhaps he’d host something. Update: I asked Jeff and he said, he’d prefer to get the bloggers’ permission or consent to do it. Which brings me back to square one. Too much hassle. AlexSchroeder 2013-12-09 12:58 UTC I am incredibly sad to see this happen. OSRPlanet was one of my daily go-to sites for what was going on. It will be missed greatly. Thanks for all the hard work, Alex. Sniderman 2013-12-10 14:03 UTC Sorry to see it go - i get plenty of unauthorised feed sites leeching me your was only one i liked chris 2013-12-10 15:45 UTC Thank you. AlexSchroeder 2013-12-11 08:56 UTC On The Nine and Thirty Kingdoms there is a blog post talking about the situation. I totally understand all the points about copyright, licensing and all that. The only point I want to pick up is the closing paragraph: In other words, you’d have to ask me first. And really, why wouldn’t you ask someone first before publishing their work? What is everyone afraid of? I think the short answer is that asking for permission just doesn’t scale. It’s OK to ask one person, but asking a hundred people is not how I want to spend my time. The long answer is in the pages of the Free Culture book. Just search for the word “permission” and learn about the differences of permission culture and free culture. Here’s a paragraph from page 192f: The building of a permission culture, rather than a free culture, is the first important way in which the changes I have described will burden innovation. A permission culture means a lawyer’s culture—a culture in which the ability to create requires a call to your lawyer. Again, I am not antilawyer, at least when they’re kept in their proper place. I am certainly not antilaw. But our profession has lost the sense of its limits. And leaders in our profession have lost an appreciation of the high costs that our profession imposes upon others. The inefficiency of the law is an embarrassment to our tradition. And while I believe our profession should therefore do everything it can to make the law more efficient, it should at least do everything it can to limit the reach of the law where the law is not doing any good. The transaction costs buried within a permission culture are enough to bury a wide range of creativity. Someone needs to do a lot of justifying to justify that result. I recommend the book. It’s a long read, but I liked it. It also made me unwilling to spend time asking people for permission to do anything. I’d rather spend my time elsewhere. So that’s my answer to “What is everyone afraid of?” I’d rather spend my time elsewhere. AlexSchroeder 2013-12-18 08:59 UTC Add Comment # 2013-12-10 Writing Your Own RPG Rules I started thinking about it when Johnn Four said on Google+ that he was interested in designing his “own little OSR game”. Like Joseph Bloch, I wondered. It doesn’t sound like Johnn really wants to run and play an OSR game. He’s just interested in designing the rules? There are already so many of them out there! All these Fantasy Heartbreakers… What is a Fantasy Heartbreaker? I learned about the term from Ron Edward’s essay. They are “truly impressive in terms of the drive, commitment, and personal joy that’s evident in both their existence and in their details” and “but a single creative step from their source: old-style D&D.” Since I like classic D&D, that’s not a problem for me. Here’s how Ron ends his essay: They designed their games through enjoyment of actual play, and they published them through hopes of reaching like-minded practitioners. […] Sure, I expect tons of groan-moments as some permutation of an imitative system, or some overwhelming and unnecessary assumption, interferes with play. But those nuggets of innovation, on the other hand, might penetrate our minds, via play, in a way that prompts further insight. Let’s play them. My personal picks are Dawnfire and Forge: Out of Chaos, but yours might be different. I say, grab a Heartbreaker and play it, and write about it. Find the nuggets, practice some comparative criticism, think historically. Get your heart broken with me. This essay, I think, mentions all the important parts: • actual play is the basis for your game • publish it in the hopes of reaching like-minded gamers • make sure to strip all the material that you aren’t using yourself • focus on the innovations I also like to read the design decisions somewhere, on a blog for the game, perhaps. Why add skills? Why drop Vancian magic? Why drop descending armor class? Why use fewer saving throws? Why add bennies? Why rework encumbrance? As for myself, I’m basically using Labyrinth Lord. I’ve been thinking about skills, magic, spells, armor class, saving throws, bennies, and writing about these issues on this blog. And as I’ve said on Johnn’s post: “I just kept running my game and started putting my house rules on a wiki. Then I copied the missing elements from the book. Then I put it all into a LaTeX document. And I keep running my game and I keep making changes to the rules. And that’s it.﻿” For a while I had an English and a German copy of these rules on a wiki. After a while I abandoned the wiki and the English rules and moved the German text to LaTeX. I think the important part was thinking about the rules, writing about the rules, changing the rules, reassembling the rules, having something to show others, a place to collect the house rules… and with all that achieved, there’s just nothing to do but make the occasional update. I’m not trying to convince anybody else to use the rules. But if you’re looking for something a bit different, perhaps you can find “those nuggets of innovation” in my rules, too. • 💔 • What are those those nuggets of innovation you ask? I think the only thing that’s truly new is how I write the document making full use of a sidebar to comment the main text. And I keep track of my player’s reputation with the various gods of the setting. Everything else I have seen somewhere else: Death & Dismemberment, using 1d6 for thief skills, using a d30 once a night, using 1d6 for weapon damage, limiting the repertoire of arcane casters… Nothing new under the sun. But I’d be happy to pontificate talk about all these points. Tags: Comments on 2013-12-10 Writing Your Own RPG Rules Thank you for all of this. It’s very validating. Dither 2013-12-10 20:43 UTC Great points, Alex, thanks. – Johnn 2013-12-18 19:58 UTC Add Comment # 2013-12-12 Treasure for an Elven Sorceress My players finally returned to the Elfenburg, the halfling village at the most beautiful waterfall of the Wilderlands of High Fantasy. I had previously established that the village was built around a green glass tower which was later found to have been built by elves, and down in the dungeon there was a room with 86 petrified elves and a gorgon bull (the kind with petrifying breath). The story was this: The elven sorceress used earth magic to erect the glass tower. Something poisoned the earth blood and caused the building to turn evil. The sorceress decides that she needs to boost her spell casting power and leaves, looking for a power-up. Since elves cannot reach the level necessary to cast stone to flesh I decided that all this stone magic had to be based on long and elaborate rituals. The sorceress decided that the Aakom of Qelong would do and disappears. Before leaving, however, she decides to use the gorgon bull to petrify her people “for storage” and to keep them safe against the ravages of time. I occasionally force myself to make elves strange and alien. Before she does that, one of the elves decides to leave a note basically explaining the situation and asking for help “just in case the sorceress doesn’t return”. The party does eventually find the sorceress and she—having partaken of way too much Aakom and on the way to immortality—has more or less forgotten about her people. She gives the party 50 scrolls of stone to flesh and a magic ring with which to claim her glass tower as their own because she couldn’t care less. Another attempt of mine to make elves and immortals alien and basically indifferent to human concerns. The party returns, depetrifies half the elves, they are grateful, some setting background is revealed, the elves join the party’s domain (since we’re using An Echo Resounding), and so on. I was left with the question of treasure. What to do? I had already decided that the sorceress’ many books had been carried off by a floating, round monster… This is cool, because now I have more plot hooks for future adventures: 1. the earth blood is still poisoned and it would seem that looking for the Tomb of Abysthor would make a nice follow-up adventure 2. the other half of the elven tribe is still petrified so if we feel like doing an all-elven road-trip adventure on the side, we can always sail for Tula and its School of Chromatic Magic and find a high-level human magic-user to get some scrolls 3. if we want to challenge the high level player characters we can always go and hunt for the notes on the various rituals used to build the living glass tower 4. the elves told the party what it would take to revive the dead elven god Arden… one my the player characters is very interested in this particular plot line… I decided that the only treasure to be found beyond ownership of the tower and the service of the elves was the wardrobe of the sorceress. 1. an anti-gravity shawl made of the finest silk, floating freely in the air 2. a spectacular white and cyan dress of air and sky, constantly trailing clouds and having occasional blinding spots of sunlight 3. a dark sea green dress of the deep, a magic train of illusionary ocean following the wearer 4. a brown dress of stone and metal, of crystals growing from your back and spikes growing from your shoulders, a golem dress of enchanted earth The room being a giant loft under a fortified glass dome in art nouveau style, guarded by ten nearly invisible glass tentacles to prevent unauthorized landing (as long as the earth blood is poisoned these tentacles are evil and attack everybody), a random distribution of little mirrors such that there is one exact spot near the wardrobe where all the mirrors align giving you a perfect view or yourself… My wife loved it. But is it treasure? I’m not sure. I don’t plan on granting simple mechanical benefits. I do plan on it impressing and awing the common folks, if my players ever want to use it like that. Or of granting boons with other elf lords if given away as a present. I also didn’t plan on giving it monetary value and therefore not granting any XP. My players seemed happy enough. If I wanted to award some XP I’d probably say that the four items I listed could be sold for 10,000 gold pieces each for a grand total of 40,000 XP. Except that my players got to the end of a different story arc last session and ended up with 171,000 gold pieces (this included the sale of a Neogi spelljammer ship and the treasure of its captain) and the part about the elven sorceress and her tower was essentially dénouement. That’s why it didn’t grant any gold or XP. Tags: Add Comment # 2013-12-13 Session Preparation Process Over on The Rusty Battle Axe the author says “Megadungeons were all the rage in the tabletop RPG blogsphere back in 2008-2009. There are plenty of posts on megadungeon dating back to the period.” I still haven’t run a Megadungeon, even though I have bought several: Stonehell, Rappan Athuk (twice), Castle Whiterock, Tomb of Abysthor, … I feel like I would like big dungeons. When I prep for my games, however, that’s not how it works. If you look at my Swiss Referee Style Manual you’ll note that it is practically without advice for dungeon adventures. That’s because my dungeons are small. Usually they are one page dungeons. How come? When I prepare a game, I usually start from the answers I got at the end of the last session. I almost always end by asking: “So, what are we going to do next time?” I write down the relevant non-player characters: people to meet, people to oppose, people with jobs to hand out, with quests that need resolving. I usually end up with one to four characters. The bad guys are usually in a defensible position so I prepare spells, minions, rooms, a map… a one page dungeon, a ship deck plan or a village with a few important buildings (in which case I won’t prepare floor plans for the buildings). I usually end up with four or five buildings or ten to twenty rooms, a sketch of a map. I think of complications. This is usually something that works in layers. Every two or three days I have a lame idea that I mentally add to the adventure. After two weeks, however, five lame ideas make a cool complication. I usually don’t think of a solution. The gargoyles want the player characters to leave, consider themselves to be Übermenschen… The elves are petriefied by a gorgon bull and the players have neither the saves nor the spells to survive a direct encounter. As it turns out they managed to get the gargoyles to accept their commands and the gargoyles brought all the petrified elves to the survace. I think of rewards. I usually start by rolling on the appropriate treasure tables and embellish the magic items, if any. A armor +1 and shield +1 turn into the golden halfling armor of Priamus Bullfighter who disappeared 21 years ago from Elfenburg. The sword +1 turns into the blade of the herring knight, smells of fish allows the wearer to feel how far away the next air bubble is… I make a mental note to add the remaining equipment of said knight to the dungeon or future adventures… If my players decide to follow up I will place his city or temple on the map, and add the protector saint of all fish, and his paladins, and their special abilities, and there will be rescue missions, and favors to be granted… Working iteratively is important for my process. I try to pull in non-player characters from very old sessions. Wespenherz, the new hireling, is an elf that they had rescued from bad guys in a previous campaign up in the north. This ring they just found was forged by Qwaar the Axiomatic and didn’t Muschelglanz write a book about the rings of Qwaar? Yes he did and as far as he know he had decided to investigate the Barrowmaze and never returned… It gives depth to the campaign, some players remember and start digging through the campaign wiki, older players explain newer players what happened back then, … I love it! This sort of thing doesn’t come easy. As I said, every two or three days I have a lame idea, but after two weeks I’ve had enough lame ideas that together they make the game better. Much better. The process also shows why it’s hard to integrate megadungeons. When I look at them, I want to skim them for interesting non-player characters my players would want to contact, for prison cells my players would want to rescue interesting non-player characters from, for interesting rewards my players might want to be looking for. And that’s so damn hard. I still remember placing the Barrowmaze in my campaign and having an important non-player character flee towards it. I was using Nualia, an evil fighter with an evil sword from a Pathfinder adventure and decided that her dad was a priest of Nergal who lived in the Barrowmaze and was involved in the power struggle. Then I had an evil authority person from Kerealia fleeing towards the Barrowmaze because the players had ousted him. The dungeon itself was ok, not overwhelming. We rescued a dwarf from a pit and he’s still with us. Once the players fell into a bottomless pit and dropped into the astral sea, they never had the urge to return, hower. Having Muschelglanz disappear in the Barrowmaze is my new attempt at letting the Barrowmaze play a role in my campaign. It hasn’t managed to make itself important. I was unable to find or emphasize anything in the megadungeon itself that would motivate my players to return again and again. The reason I thought of using the Barrowmaze again was that one player decided to offer a reward for the return of Muschelglanz. I proposed to my players to play a random party of first level dudes trying to claim this reward by going into the Barrowmaze and finding Muschelglanz. They liked the idea so that’s what we’re going to do. When I started preparing for the next session, I did what I usually do. I looked for cells to put him in. I looked for the headquarter of a faction that held him prisoner. I tried to find the important non-player characters and I tried to find a thing that Muschelglanz might have been looking for. I know that there is supposed to be a tablet somewhere. But everyhing else has been tricky. I really need to skim it again. Gaaah. Now you know what I would appreciate in a megadungeon. Just in case you’re writing a megadungeon. Update: Check out this example of adventure prep a year later. Add Comment # 2013-12-17 Boxed Text -C from Hack & Slash has a blog post on the definitive inadequacy of boxed text. I agree with the points made. A few days ago I mentioned how I usually run one page dungeons. There is not enough PDF for these dungeons to have boxed text! I need my notes on my map. About a month ago I mentioned Bryce's Adventure Design Contest (deadline is Dec 31, 2013!) and I think my To Rob A Witch submission illustrates how I like to do it, even if there is no map but a sort of loose flowchart. To Rob a Witch by kensanata, on Flickr Andreas Davour recently said that he’d like to run the Saturday Night Specials, all the time. I think my format does that. As I said in a comment on his blog post: “A flow chart that only mentions the interesting locations and the random encounters between them? It’s what I try to do theses days.” And no boxed text. ;) Tags: Add Comment # 2013-12-17 PDF Button I’m experimenting with a PDF button for this website. In the past, I suggested Print Friendly & PDF. Yesterday I learned about wkhtmltopdf, which does the same thing without depending on a remote service and their ad revenue. On a typical Debian host, you need to apt-get install wkhtmltopdf. This installs a binary and all the required libraries. The problem is that this version needs an X11 server in order to work, which you don’t have when using it on your website. In addition to a regular installation, you need to install a statically compiled binary which has been compiled with a patched version of Qt and no longer requires an X11 server. In your Oddmuse config file: Action{pdf} = \&DoPdf;
push(@KnownLocks, 'pdf');

sub DoPdf {
my $id = shift; RequestLockDir('pdf'); local$StyleSheet = 'http://alexschroeder.ch/alex-2012.css';
my $html = PageHtml($id);
my $source = "$TempDir/document.html";
my $status = '500 INTERNAL SERVER ERROR'; open(HTML, '>:utf8',$source)
or ReportError("Cannot write $source:$!", $status); # see GetHeader print HTML GetHtmlHeader(NormalToFree($id), $id); print HTML$q->start_div({-class=>'header'});
print HTML $q->h1({-style=>'font-size: x-large'}, GetPageLink($id));
print HTML $q->end_div(); # header print HTML$q->start_div({-class=>'wrapper'});
# get rid of letter-spacing
my $sperrung = '<em style="font-style: normal; letter-spacing: 0.125em; padding-left: 0.125em;">';$html =~ s/$sperrung/<em>/g; my$newthought = '<em style="font-style: normal; font-variant:small-caps; letter-spacing: 0.125em;">';
$html =~ s/$newthought/<em style="font-style: normal; font-variant:small-caps">/g;
print HTML $html; # see PrintFooter print HTML$q->end_div(); # wrapper
print HTML $q->start_div({-style=>'font-size: smaller; '}); print HTML$q->hr();
print HTML $FooterNote; # see DoContrib SetParam('rcidonly',$id);
SetParam('all', 1);
my %contrib = ();
for my $line (GetRcLines(1)) { my ($ts, $pagename,$minor, $summary,$host, $username) = @$line;
$contrib{$username}++ if $username; } print HTML$q->p(Ts('Authors: %s',
join(', ', map { GetPageLink($_) } sort(keys %contrib)))); print HTML$q->end_div(); # footer
print HTML $q->end_html; print HTML "\n"; close(HTML); my$target = "$TempDir/document.pdf"; my$error = /home/alex/bin/wkhtmltopdf --print-media-type --quiet '$source' '$target';
ReportError("The conversion of HTML to PDF failed", $status) if$error;
open(PDF, '<:raw', $target) or ReportError("Cannot read$target: $!",$status);
local $/ = undef; my$pdf = <PDF>;
close(PDF);
ReportError("$target is empty",$status) unless $pdf; binmode(STDOUT, ':raw'); print GetHttpHeader('application/pdf'); print$pdf;
ReleaseLockDir('pdf');
}

sub PrintMyContent {
my $id = UrlEncode(shift); if ($id and $IndexHash{$id}) {
print qq{
<form action="$FullUrl"><p> <input type="hidden" name="action" value="pdf" /> <input type="hidden" name="id" value="$id" />
<input type="submit" value="PDF" />
</p></form>
}
}
};

Let me know if it works for you while I try to figure out whether I need this at all. The position of the PDF button at the very bottom of the page is probably less than ideal.

As you can tell, the markup using increased Wikipedia:letter-spacing is messing it all up, which is why I had to fix it.

Tags:

Hi Alex, Long time ago, I wondered about to include a patch like this for my wiki, but eventually most browsers have an utility like this, and others like breadcrumbs, etc.. Is there any advantage?. Thanks.

JuanmaMP 2013-12-19 08:52 UTC

On my Mac, I don’t need it. Printing to PDF is simple. On Windows, however, I need to install a software PDF printer if I want to do this. Just recently my sister asked me for help converting a Word document she had written. She didn’t manage the installation of the PDF printer software. That reminded me of the fact that for some users, a PDF button might still be necessary. I personally don’t like the “save as HTML” feature of most browsers because it results in HTML + a directory of CSS files, images, ads, scripts, and so on. PDF feels “safe”.

AlexSchroeder 2013-12-19 09:03 UTC

# 2013-12-19 Über die Bildung

A note to English readers: If this post showed up in your feed, you should probably switch to a different feed. Some suggestions: RPG only, just English.

In der WOZ las ich gerade Wer profitiert von der Uni im Netz? Was als gratis Bildung im Netz für alle begann, wird nun zum Werkzeug für Einsparungen an den Universitäten und damit für die Verschlechterung der nicht kommerzialisierbaren Eigenschaften des Studentenlebens: interessante Komillitonen, Politisierung, Engagement…

Auch für die Entwicklungshilfe hat man sich Unis am Netz gewünscht. Bezeichnend fand ich diese Passage:

Wie eine Studie der Universität Pennsylvania kürzlich nachwies, gehören achtzig Prozent der KursteilnehmerInnen auf der Plattform Coursera aus Ländern wie China, Indien oder Brasilien zu den Reichsten und am besten Ausgebildeten ihres Landes.

Die Zahlen zeigen ausserdem: Regelmässig schliessen weniger als zehn Prozent aller ursprünglich Eingeschriebenen einen MOOC ab – und nur rund die Hälfte davon erfüllt dabei auch die notwendigen Anforderungen für ein Zertifikat

Ich bin mir nicht sicher, wie das zu verstehen ist. Auch hier in der Schweiz gehen Kinder von Akademikern tendenziell eher studieren. Auch hier beenden sehr viele ihr Studium frühzeitig, fallen durch, wechseln… Jeder, der schon einmal online etwas organisiert hat, weiss, dass die Hemmschwellen für das nichts tun und das zu spät kommen weg fallen.

Grundsätzlich kann man vielleicht nur sagen, dass die Zahlen auf alle Fälle zeigen, dass Unis am Netz für viele Probleme keine Lösung sein können. Es ist schwieriger. Dies muss man wissen, auch wenn die Technologiegläubigkeit und der Optimismus unter den Verantwortlichen nicht erstaunen.

Wer sich noch nie mit online Kursen beschäftigt hat, kann sich ja mal die Khan Academy anschauen. “Learn for free about math, art, computer programming, economics, physics, chemistry, biology, medicine, finance, history, and more.” Tönt gut!

Hierzu habe ich zufälligerweise gerade auf Google den Artikel Comcast, Khan Academy Aim Multimillion-Dollar Partnership At Low-Income Families gesehen. Dort spricht Kahn das selbe Problem an. Die Mittleklasse nutzt die Angebote, die sie der ganzen Welt anbieten will, auch selber, und so bleiben die alten Strukturen erhalten.

Vermutlich ist es schwierig, den Armen zu helfen, sich selber zu helfen, ohne ihnen etwas zu geben. Umverteilung, Mindestlöhne, eine Reduktion der Wohlstandsschere scheinen mir langfristig bessere Massnahmen.

Was natürlich nichts daran ändert, dass ich Khan Academy ähnlich gut finde wie Wikipedia. Mehr Wissen, mehr Bildung! Dies allerdings als Entwicklungshilfe zu verkaufen, ist – wie gesagt – Technologiegläubigkeit und überzogener Optimismus.

Tags:

# 2013-12-22 Sepulchre of the Clone

Notes for a session:

As you can see, the magic user was not yet a high-level Vivimancer when I ran the adventure. I had to push him up to 15 if I wanted the clone to be based on the actual spell-casting ability of the dude. At the time I justified the clone with rituals and machinery… You might also notice the notes on snow apes, rocket men and shark men. Indeed, I ran this as the tower in the middle of the lake of The Forgotten Depths.

At the time the baboons were “blood monkeys” and the player characters forced one of them to cross the blue room and mash buttons. They didn’t realize that this would revive the clone and once they monkey came back, they killed it. Cruel!

They stole the clone’s spell book and still befriended the clone (who didn’t know that it was they that had stolen the book). Once befriended, they decided to “help” him retrieve his spell book and “hunt” for the blood monkeys that must have done it. And strangely enough they soon found it “in the forest”. All is well that ends well, I guess.

In my game, the clone wasn’t a Vivimancer but a Polymorpher. The spell selection for Vivimancers is cooler, though. It explains the dense plant life, the mushrooms, the degenerate humans, the intelligent monkeys, the minotaurs, and so on.

Resulting second draft:

Sepulchre of the Clone.pdf

It still needs some proof reading. The idea is to submit this for Gavin Norman’s upcoming Vivimancer Supplement. Today I learned that a one page adventure for A5 paper is harder than it looks.

The strange “polymorph other into human for a limited time span” is magic item I wanted to keep. I felt that perhaps a player would be able to take advantage of it, or maybe they’d feel like dismantling it and taking it on to their own ship. They never did, however.

Tags:

# 2013-12-23 Verfolgungsjagd

Gerade machte ich mir wieder Gedanken über Verfolgungsjagden für meine Helme & Hellebarden Regeln. Die komische Tabelle bei Labyrinth Lord und Basic D&D kann ich mir nicht merken. Da erinnerte ich mich an Skills bei Apocalypse World und machte mich an eine 2W6 Tabelle, die von Erin Smales Kommentar auf meinen Google+ Artikel inspiriert ist.

Verfolgungsjagd: Wer verfolgt wird, muss 2W6 würfeln. Bei 2 haben die Häscher euch überrascht. Bei 3–6 kommt es zum Kampf. Bei 7–9 wähle zwei Punkte, bei 10+ wähle drei Punkte aus der nachfolgenden Liste.

• ihr konntet zusammen bleiben
• es ging schnell
• ihr wisst, wo ihr seid
• ihr habt Schilde und Rucksäcke noch

Optionale Modifikatoren: Je +1 für die Gejagten, falls es doppelt so viele Verfolger gibt, für eine höhere Bewegungsrate, für Schilde fallen lassen, für Rücksäcke fallen lassen, wenn ein Dieb dabei ist, bei Regen, bei Dunkelheit. Je -1 für die Gejagten, falls ein Elf oder ein Jäger bei den Häschern ist, mit Verwundeten, bei Schnee.

Vincent Baker verwendet in Apocalypse World selber ja keine Modifikatoren für die Moves. Ich vermute, das wird bei mir ähnlich sein. Vielleicht sollte ich noch hinzufügen, dass man bei 12+ einfach entkommt.

Tags:

Sieht doch gut und merkbar aus

– Harald 2013-12-24 12:53 UTC

Nach Tim Franzkes Kommentar auf Google+ werde ich das umformulieren:

Verfolgungsjagd: Wer verfolgt wird, muss 2W6 würfeln. Bei 2 haben die Häscher euch überrascht. Bei 3–6 kommt es zum Kampf. Bei 7–9 wähle zwei Punkte, bei 10–11 wähle einen Punkt. Bei 12 seid ihr ohne Wenn und Aber entkommen.

• ihr wurdet getrennt
• es hat lange gedauert
• ihr habt euch verirrt
• ihr musstet Schilde und Rucksäcke fallen lassen﻿

AlexSchroeder 2013-12-24 14:35 UTC

# 2013-12-28 Looking Back

The end of the year is always a good opportunity to look over the year’s posts—RPG posts, to be exact. The year itself started on a sad note: Fight On! is going down. The writing was already on the wall in 2012 and the adventure I had submitted for the last issue is available as a free PDF, Caverns of Slime.

But on to positive things! I tried to list the Old School Fanzines I knew, hoping to find a magazine “for me”. It’s weird. What about Fight On! Magazine made me want to contribute? What I remember best are the early levels of The Dismal Depths and the Fomalhaut material by Gabor Lux.

I still use my classic D&D character generator, for non-player characters and for character sheets on my Campaign Wiki. Some examples: Waran and Rinathil using ACKS, Stefan and Garo (this one belongs to my wife) using B/X D&D, Sir Guy (this one by a former player) and Sir Sewolt (another one belonging to my wife) using Pendragon.

Next session we will be assaulting the Barrowmaze using a party generated by drawing from a pile of random first level characters generated by this character generator. Electronic vat men!

I was looking for an alternative to creating a hex map using Inkscape (something I have been doing for my Sea of the Five Winds campaign) and so I wrote Text Mapper. I wrote a post comparing the two methods.

To be honest, however, I haven’t been using it. My Sea of the Five Winds campaigns already has a map, my Pendragon game uses the maps from the book, DM Florian uses Hexographer, DM Harald uses the maps from the book.

It felt weird to return to [RedHandOfDoom Red Hand of Doom]. I was running it for the kids and using Labyrinth Lord instead of D&D 3.5. I enjoyed it very much. We skipped two chapters, though: no fighting the druid lich and no confronting of Tiamat’s avatar at the end. We used the mass combat rules from JB’s B/X Companion.

I wrote two one page adventures in 2013 that are based on my actual prep notes, To Rob A Witch and Sepulchre of the Clone.

That reminds me. Last spring I ran the One Page Dungeon Contest 2013 and all the posts are tagged 1PDC. I’m currently not planning to run the contest in 2014. Do you know anybody who would like to do it? I wrote How To Run A Contest to help you get started.

I also discontinued the Old School RPG Planet. If you’re willing to do the actual leg work of asking people to submit their sites, talking to bloggers, answering questions, I could set it up again. I am willing to handle the technical aspects of it. I just don’t want to deal with angry dudes on the Internet.

But on to more positive things again!

I still use my Spell Book Notation. That’s because I use a strict reading of the magic system such that elves and magic-users have a repertoire equivalent to their spells per day (to use the Adventure Conqueror King System terminology) and neither elves nor magic-users can copy spells from scrolls and spell books.

In my campaign this means that all the elves of a particular elf settlement will have a subset of the spells available to the elf lord. What I do is this: I write down the elf lord’s spell book using the notation above and whenever we meet a minion of a particular level, it’s easy to figure out which spells they have available by looking at the second column.

In a similar vein, I wrote about using 1d20 instead of 2d6 for dungeon stocking. As it turns out, however, I do this so rarely that I keep forgetting about it. I just don’t run enough dungeon adventures.

Still in the same vein, I was also comparing old school dungeon stocking to other methods of adventure location creation and found the traditional way of doing things to be very quick and the result just as good as the new ways. I’m a gaming traditionalist at heart, I guess.

I thought about using skills inspired by Apocalypse World in my games but ended up not doing it. DM Harald does it in his campaign, but I remain sceptical.

I wrote a bit about running the game. There was a post on my session preparation process for old school games, how to run Fate, how to run settlements in sandbox campaigns, how to let players introduce facts into your traditional campaign, how to use treasure, group initiative and when to roll.

In addition to that, I quoted a Google+ comment by Ian Borchardt on wilderness encounters and a comment by Kevin Crawford on urban campaigns.

And with that, here’s to the blogs, conversations with strangers on the Internet, and freedom, justice and peace for us all.

Tags:

Suffice to say I’m not using skills based on Apocalypse World per se, but based on reaction rolls plus a modicum of GM arbitration. It looks somewhat like AW, but I don’t feel like I need a system as rigid.

– Harald 2013-12-29 15:30 UTC

# 2013-12-31 Scanner Again

We decided to switch from the Apple Mac Mini running Mac OS 10.6.8 (since it’s such an old machine it cannot be upgraded) to Claudia’s 13” Powerbook running the latest Mac OS 10.9.1.

And, as always, the old CanoScan LiDE 25 doesn’t work. The latest drivers are for Mac OS 10.6 – yay. I found a blog post, fixed: use unsupported scanner in OSX 10.9 Mavericks, which had me install some promising libs. But it didn’t work. The Printer & Scanner preference pane never found the old scanner, and on the command line I didn’t get the scanner listed.

I decided to give Homebrew a try and installed sane-backends. This required a painful and slow uninstalling of libusb and the sane-backends installed by the promising libs I had just installed.

Using the sane-backends installed by Homebrew, I can now scan from the command line. Oh well, better than nothing.

alex@Megabombus:~$scanimage -L device plustek:libusb:004:002' is a Canon CanoScan LiDE25 flatbed scanner Trace/BPT trap: 5 alex@Megabombus:~$ scanimage --device=plustek:libusb:004:002 --format=tiff --mode=color --resolution=300 -l 0 -t 0 -x 215 -y 297 > Desktop/scan.tiff
Killed: 9
alex@Megabombus:~\$ open Desktop/scan.tiff `

It works.

Since the scanner is not supported by Image Capture, I can’t use it to scan from Gimp.

The TWAIN-SANE-Interface and the SANE-Preference-Pane I installed appear to be useless. Oh well.

And now that I have scanned the picture I just need to reinstall Tex Live 2013 since the migration appears to have failed.

Tags:

The latest SANE binaries provided on the site work, but still do not result in a functional Image Capture..

– Anonymous 2014-01-23 01:06 UTC

You can use xsane from Homebrew, it’s a graphical frontend for SANE.

– Anonymous 2014-03-22 20:13 UTC

Wow, xsane works! At first I was confused because I got a low-resolution image every time. Then I saw the menu item “show resolution list” and managed to switch to 300 dpi. Thanks for the pointer!

AlexSchroeder 2014-03-30 21:49 UTC

# 2013-12 Book Club

When: 18 December, 19:30 – RSVP on Meetup (optional ;))

Where: Bistro Lochergut (tram 2+3 ‘Lochergut’)

Description by Amazon: When Tom Courtenay left his home in Hull to study in London his mother Annie wrote him letters every week. In them she would observe the world on her doorstep. A world of second-hand shoes and pawnshops, where all the men worked “on Dock” and Saturday nights were spent down the Club. It was a world in which Annie often felt misplaced. Having always longed to write, the letters to her son gave Annie a creative means of escape. “It’s after tea now, your father is examining the bath, I’m awaiting Ann and outside it’s India”. Like his mother, the young Courtenay also felt he was supposed to be elsewhere. Unlike his mother, he was given the opportunity to educate himself and chase his dream. In Dear Tom: Letters From Home Courtenay intersperses recollections of his days as a student actor in the early 1960s with his mother’s engaging and enchanting correspondence. Raw but real, her prose not only paints a graphic and gritty picture of everyday drudge, it displays an inquisitive insight into a life that denied a fishwife her dreams. In a world where working-class women learnt to make do, Annie felt at odds with her artistic aspirations. “Just lately I have had the feeling that I am more than one me. It is very strange. There’s the me that goes careering off writing, thinking, Then there is the ordinary me that mocks the writing me and thinks she is silly and a boring fool”.

After his mother’s untimely death, her letters became Tom Courtenay’s most treasured possessions. Dear Tom: Letters From Home is a memoir of a mother’s love that pays posthumous homage to a creative spirit stifled by circumstance. “What magic if, after all these years, people read her letters and are affected by them”, writes Courtenay. It would be impossible not to be. A beautiful book that won’t fail to touch. – Christopher Kelly – This text refers to an out of print or unavailable edition of this title.

First suggested: May 2013 (Richie)

Supporter(s): Richie, Rene, Dani