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.
Anil Dash: If Your Website's full of Assholes, it's your fault. (2011)
Robert Niles: If you can't manage comments well, don't offer comments at all. Also: “If the author of an article isn’t willing or able to participate in the discussion about that article, no opportunity for discussion should be offered on the site.” (2010)
Encouraging individual sovereignty and a healthy commons: «It is not the job of a corporation to “develop the social infrastructure for community” as Mark wants to do. Social infrastructure must belong to the commons, not to giant monopolistic corporations like Facebook. The reason we find ourselves in this mess with ubiquitous surveillance, filter bubbles, and fake news (propaganda) is precisely due to the utter and complete destruction of the public sphere by an oligopoly of private infrastructure that poses as public space. […] [T]he sum total of our various aspects as contained within our biological beings as well as the myriad of technologies that we use to extend our biological abilities. Once we understand this, it follows that we must extend the protections of the self beyond our biological borders to encompass those technologies by which we extend our selves.»
My games no longer have any clerics in them. But back when I had them, they turned undead. How exactly, asked Brett Eliot on Google+.
I ruled that LOS is important. I imagine the holy symbol shining some sort of holy light which hurts the undead. It’s that light which disintegrates them, too. Thus, distance is not a problem, in theory. But the undead can always take cover and so it depends. In a flat desert the army of undead will appear over the horizon and immediately freeze when they see the lone cleric, miles away, turning them. And slowly, in the milky twilight his holy light one zombie after another starts to melt, disintegrate. Do they rush forward, hoping to reach the cleric before all being destroyed, or do they build man shields to protect them, or do they take cover and wait for another day? Clearly, that explains why the undead prefer to exist underground. Less exposure to random holy photons.
Noisms recentlz wrote Elementary Principles of Dungeon Drawing and his first point is this: “Snazzy weird shapes and arrangements of rooms look good on paper but in my experience are really hard to explain at the table without ending up with the DM doing lots of drawing, which defeats the purpose of having players do the mapping.”
The longer I run Castle of the Mad Archmage, the more I agree with this assessment.
If I can’t communicate it at the table in a reasonable amount of time, it’s a waste of time.
Check out levels 3 to 5 of Castle of Mad Archmage for an example of what I’m talking about. This is the absolute limit of what I’m willing to communicate to my players.
I get questions by the mapper because they want to get it right and everybody just zones out after “The one in the north western face heads westerly…” it’s not a question of difficulty in describing it. It’s a question of time taken to describe it before the game breaks down.
One could argue about verisimilitude, or how the referee should be drawing maps, or I could just simplify all the maps. After all, it’s a game for all of us to enjoy at the table.
Generally speaking though, I’ve found myself drifting towards node-based dungeon maps. The question of mapping now has a simple answer: draw a beautiful map to represent the nodes and entertain the referee. That’s it.
Back in 2010 I wrote about quality dungeons. Here are some of the points I made regarding the map:
Recent examples from my own games trying to strike a balance between these points and my free time:
+David McGrogan writes on his blog about creativity requiring time off to be creative because you need to balance both free roaming thoughts induced by boredom with focus and attention induced by discipline. If you’re constantly distracted at work by meetings, or at home by social media, it’s hard to get anything done.
Luckily, I only work 60% so I get to have Fridays off and a four month break every year. People sometimes ask me whether this isn’t boring to the extreme. To which I say that most people simply adapt to their current way of life and that’s great. It allows us to be happy under a wide range of circumstances. It also means that we’re never bored, as in spending idle hours contemplating life, the kind of leisure the rich Greek philosophers must have felt without the need to work, when all you had to do was hang out, drink, talk, and some calisthenics to defend your city’s interests on the battlefield every now and then. Anyway, leisure and occasional bouts of boredom are essential, I think. As we’re busy at work and stressed out by family, squeezing in a few hours of playing games with friends, I think it’s easy to forget that something atrophies at the same time. That very source of novelty.
What the hell happened around 18:00 yesterday?
Was it an unusual amount of requests? I don’t think so:
alex@sibirocobombus:~$ sudo cat /var/log/apache2/access.log.1 | bin/time-grouping 15/Feb/2017:06 426 1% 15/Feb/2017:05 949 3% 15/Feb/2017:04 1050 3% 15/Feb/2017:03 1320 4% 15/Feb/2017:02 1292 4% 15/Feb/2017:01 1272 4% 15/Feb/2017:00 1253 4% 14/Feb/2017:23 1205 4% 14/Feb/2017:22 1181 4% 14/Feb/2017:21 1195 4% 14/Feb/2017:20 1161 4% 14/Feb/2017:19 1015 3% 14/Feb/2017:18 965 3% 14/Feb/2017:17 1121 4% 14/Feb/2017:16 1129 4% 14/Feb/2017:15 1022 3% 14/Feb/2017:14 852 3% 14/Feb/2017:13 1085 4% 14/Feb/2017:12 1094 4% 14/Feb/2017:11 1154 4% 14/Feb/2017:10 1115 4% 14/Feb/2017:09 1198 4% 14/Feb/2017:08 1408 5% 14/Feb/2017:07 973 3% 14/Feb/2017:06 531 1%
Nothing unusual in the Toadfarm logs.
I noticed something weird in my Apache logs, though:
alex@sibirocobombus:~$ sudo cat /var/log/apache2/access.log.1 | bin/leech-detector | head IP Number hits bandw. hits% interv. status code distrib. 127.0.0.1 1590 4K 5% 54.3s 200 (99%), 301 (0%), 404 (0%) 184.108.40.206 1255 2K 4% 68.7s 301 (33%), 200 (33%), 302 (32%), 503 (0%) ...
Who is 220.127.116.11 and what are they doing?
communitywiki.org:80 18.104.22.168 - - [15/Feb/2017:06:38:14 +0100] "GET /de?action=rss;rcidonly=OpenWLAN HTTP/1.1" 301 487 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:443 22.214.171.124 - - [15/Feb/2017:06:38:14 +0100] "GET /de?action=rss;rcidonly=OpenWLAN HTTP/1.1" 302 4026 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:443 126.96.36.199 - - [15/Feb/2017:06:38:14 +0100] "GET /wiki?action=rss;rcidonly=OpenWLAN HTTP/1.1" 200 4687 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:80 188.8.131.52 - - [15/Feb/2017:06:39:45 +0100] "GET /en?action=rss;rcidonly=ConservationOfRationality HTTP/1.1" 301 521 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:443 184.108.40.206 - - [15/Feb/2017:06:39:45 +0100] "GET /en?action=rss;rcidonly=ConservationOfRationality HTTP/1.1" 302 4060 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:443 220.127.116.11 - - [15/Feb/2017:06:39:45 +0100] "GET /wiki?action=rss;rcidonly=ConservationOfRationality HTTP/1.1" 200 4698 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" ...
What we see here is that somebody is requesting various pages via HTTP (port 80) and getting redirected permanently (status 301) to HTTPS (port 443) and getting redirected temporarily (status 302) to a different URL (
/wiki instead of
/en). We also see that they are getting the URL in various languages.
Just to make sure, I added the following to my
# idiots downloading every single RSS file order allow,deny deny from 18.104.22.168 allow from all
And now they’re getting something else:
communitywiki.org:80 22.214.171.124 - - [15/Feb/2017:08:51:57 +0100] "GET /cw-fr?action=rss;rcidonly=LackOfReworking HTTP/1.1" 301 507 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36" communitywiki.org:443 126.96.36.199 - - [15/Feb/2017:08:51:57 +0100] "GET /cw-fr?action=rss;rcidonly=LackOfReworking HTTP/1.1" 403 3930 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36"
Their HTTP request gets redirected to HTTPS and then they’re getting an access denied (status 403).
But wait, are they perhaps the cause for all these problems?
alex@sibirocobombus:~$ sudo cat /var/log/apache2/access.log.1 | grep 188.8.131.52 | bin/time-grouping 15/Feb/2017:06 24 1% 15/Feb/2017:05 60 4% 15/Feb/2017:04 54 4% 15/Feb/2017:03 44 3% 15/Feb/2017:02 48 3% 15/Feb/2017:01 48 3% 15/Feb/2017:00 57 4% 14/Feb/2017:23 78 6% 14/Feb/2017:22 38 3% 14/Feb/2017:21 41 3% 14/Feb/2017:20 45 3% 14/Feb/2017:19 42 3% 14/Feb/2017:18 33 2% 14/Feb/2017:17 65 5% 14/Feb/2017:16 46 3% 14/Feb/2017:15 69 5% 14/Feb/2017:14 24 1% 14/Feb/2017:13 45 3% 14/Feb/2017:12 68 5% 14/Feb/2017:11 62 4% 14/Feb/2017:10 69 5% 14/Feb/2017:09 63 5% 14/Feb/2017:08 45 3% 14/Feb/2017:07 48 3% 14/Feb/2017:06 39 3%
Nope, they didn’t start yesterday at around 18:00.
Restarted Toadfarm. Manually killed all the farm processes I found via
top. Restarted Apache for good measure. I think we’re good.
I also checked
/var/log/syslog.1 and found nothing surprising around 18:00. Spamd is checking mails, Munin is running, more spam filtering, and that basically covers the time from 17:00 to 19:00.
Well, things are still not good.
top - 10:39:14 up 29 days, 23:18, 1 user, load average: 5.26, 5.60, 5.69 Tasks: 66 total, 6 running, 57 sleeping, 0 stopped, 3 zombie %Cpu(s): 98.7 us, 0.7 sy, 0.0 ni, 0.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 4194304 total, 2157836 used, 2036468 free, 0 buffers KiB Swap: 1048576 total, 480444 used, 568132 free. 1456564 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 18835 alex 20 0 217104 71452 2284 R 19.0 1.7 20:59.77 /home/alex/farm 17130 alex 20 0 216768 71140 2268 R 18.6 1.7 37:40.49 /home/alex/farm 18286 alex 20 0 217932 72364 2308 R 18.6 1.7 23:40.29 /home/alex/farm 19937 alex 20 0 218128 72652 2332 R 18.6 1.7 16:56.54 /home/alex/farm 22862 alex 20 0 218780 73208 2332 R 18.6 1.7 7:35.41 /home/alex/farm 16345 alex 20 0 209860 68980 3432 S 1.7 1.6 0:52.01 /home/alex/farm 16344 alex 20 0 212272 69720 2180 S 0.7 1.7 0:52.34 /home/alex/farm 16346 alex 20 0 208112 65936 2012 S 0.7 1.6 0:55.12 /home/alex/farm 16347 alex 20 0 210904 68176 2120 S 0.7 1.6 0:52.76 /home/alex/farm
And they keep coming back. I’m slowly taking sites offline to where the trouble lies.
If you’re interested in “deep learning” or neural networks and the identification of handwriting, sooner or later you will run into the MNIST database. (“The MNIST database of handwritten digits, available from this page, has a training set of 60,000 examples, and a test set of 10,000 examples. It is a subset of a larger set available from NIST. The digits have been size-normalized and centered in a fixed-size image.”)
Strangely enough, Americans don’t write their numbers like the people around here do. If I want to train a neural network to identify digits, I’m forced to train and test it on data that is subtly different from what I’d expect from local (Swiss) data.
Unless I collect my own data, that is. Some coworkers and I have started doing just that.
How to help:
Every page gets us 600 digits. Our goal is 10,000 digits. We’re already half way there!
Because I added a bunch of whole words form the Wikipedia page, as well as some more rules (such as v is w and -s disappearing).
Gridmapper now does caves (“grottos”). Click the image to get transported into dungeon mapping heavy.
I’m usually quite happy with our old MacBook Pro. We bought it many years ago and it has served us well. I don’t know when it started to downhill. After some upgrade or other, I guess? Starting up takes forever. It’s not anything in particular that takes forever. It’s just that everything is slow.
Everything is slow. Just now, maybe half an hour ago, the laptop was sleeping on the table and I wanted to get started with some web development. I opened it up and noticed that Firefox was not loading the pages I had open. I just got the spinning rainbow. Killed Firefox, started Emacs, started Safari, and then I noticed that it wasn’t just Firefox that wasn’t actually doing anything. Everything is slow.
Eventually I managed to open a terminal and run
top. Here’s what it says. I’ve been watching it all this time and apparently the CPU is idle around 80% of the time and yet the load was higher than 7. No wonder it’s slow. But how is that possible?
Processes: 261 total, 2 running, 18 stuck, 241 sleeping, 1128 threads 21:35:37 Load Avg: 1.39, 2.19, 7.34 CPU usage: 10.9% user, 12.50% sys, 77.40% idle SharedLibs: 121M resident, 33M data, 47M linkedit. MemRegions: 49527 total, 790M resident, 68M private, 408M shared. PhysMem: 4130M used (1380M wired), 220M unused. VM: 2289G vsize, 623M framework vsize, 790349(0) swapins, 981169(0) swapouts. Networks: packets: 4506731/4815M in, 3142372/731M out. Disks: 17051508/261G read, 2698121/80G written.
I tried to quit it all again. Then I was looking at
sudo top, ordered by
mem, noticed a
firefox, sent it a
TERM signal, noticed some more like Keybase and two Keybase help processes still running, killed those, too. This still feels like a totally lousy approach. How can I get the old startup speed back?