# Diary

Welcome! 😊

This is both a wiki (a website editable by all) and a blog (an online diary about the stuff AlexSchroeder 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.

# 2015-03-01 GPG makes me want to cry

I’m currently reading Creating the perfect GPG keypair and it makes me want to cry. Keeping them master key on an encrypted USB stick. Where will I keep it? How will I make sure I won’t loose it over the next five years? Keeping a revocation certificate—somewhere else! How will I make sure I won’t loose that?

Perhaps it’s easier no to rely on all that. I’m sure there’s a different set of requirements out there that would fit me. A set of requirements that doesn’t require me to do all that. A set of requirements for ordinary people.

Consider this: If you’re my friend, how do you know that I’m the person I claim to be? We keep in contact. We exchange messages every now and then. Thus, if my keys expire every now and then, shouldn’t that work just the same? I will have to rebuild my web of trust, but to be honest, I don’t have a web of trust. If you want to make sure that I’m the person you think I am, you will have to verify this by other channels. Compare fingerprints on the phone, using a different channel.

Tags:

Comments on 2015-03-01 GPG makes me want to cry

Moxie Marlinspike just did a similar blog post about this: http://www.thoughtcrime.org/blog/gpg-and-me/

I find GPG pretty painful to use in general, although the integration with Emacs is exceptional. I store a lot of .gpg files around and it’s very nice to have those automatically decrypted with emacs.

I like what Keybase.io is doing. I don’t store my private key with them but nowadays, I “trust” people online by their various social media accounts and I think keybase is leveraging that better than the web-of-trust.

Josh 2015-03-01 18:24 UTC

So, what I did was revoke my old key, and then I opened my ~/.authinfo.gpg file which is encrypted to my home key and to my work key. My revoked, old key, of course. No problem, provided the passphrase, decoded it. Made a change, tried to save. Ah, but gpg no longer wants to use the revoked, old key. I understand. But how to tell Emacs to use the new key? What a mess. Messing around with epa-list-keys and studying the keys available. Setting epa-file-encrypt-to. Trying it a few more times. Setting epa-file-select-keys to a different value, trying it a few more times. Seeing the a list of keys and not recognizing one of the keys. Finding the revoked key in the list. All in all it was totally not straight forward. In hindsight, I could explain the behavior. But when it happened, I was confused. Gah!

Thanks for the link to the Moxie Marlinspike blog post. He makes a good point!

And thank you for the Keybase.io link. I didn’t know about it and it sounds like the sort of web of trust replacement I’m thinking of!

– Alex Schroeder 2015-03-01 22:38 UTC

# 2015-02-26 Gridmapper Library

Gridmapper can now save maps to and load maps from the Gridmapper Campaign Wiki. Perhaps we could start building a library of dungeon maps!

My current project is “The Sewer Prison”.﻿

And since I didn’t find any new bugs and since I didn’t need to implement any new features, I decided to call it a day and tag it version 1.0! Not bad, from nothing on Feb 9 to release 1.0 on March 1.

Gridmapper makes me happy.

If you have questions about the code, extensions, features, whatever. Let me know! Plus me into a conversation on Google+, or send me an email (see Contact).

Tags:

# 2015-02-24 Gridmapper To Do

I think we’re getting closer to a version 1.0!

Thinks I’m still interested in implementing:

• rubble, trees (that should be easy)
• water (tricky? have a water tile? a blue tile? a blue tint over an existing tile? what about statues that rise above the water level?)
• Google Hangout app? (not sure how much effort I want to invest in something that will disappear sooner or later – I don’t have much faith in Google keeping infrastructure around)
• Campaign Wiki Save? ✓
• Campaign Wiki Load? ✓ (I will investigate scrolling and multiple columns when we that many submissions!)

The new help element no longer shows up in IE 11. I spent so much time getting moving from a pure SVG help to a mixed SVG/XHTML help that I don’t really feel like fixing this. This is frustrating. This also means that Text Import and Text Export won’t work. This relies on a XHTML textarea the user can edit. This also means that arbitrary labels (using " or l) won’t work. This relies on a XHTML text input field the user can edit.

Tags:

Comments on 2015-02-24 Gridmapper To Do

I am reminded of my lousy Google Wave bot experience. Following the Google Hangouts App developer Getting Started document. Uploading the XML to a public server. Registering my project. Enabling the Hangouts API, entering the URL for my project, clicking the Save button, clicking the “Enter a hangout in developer sandbox” link, and… “404. That’s an error. The requested URL was not found on this server. That’s all we know.”

Thanks. I think this will not be a Google Hangouts App. I’m already frustrated and I didn’t even get their Simple App to work.

– Alex Schroeder 2015-02-24 21:30 UTC

As I’m turning to creating a dungeon, I’m wondering about “no floor” – how to indicate that this corridor is in fact a bridge? There currently is no tile for “empty”.

– Alex Schroeder 2015-02-24 21:52 UTC

As I’m working on my dungeon, I’m noticing the following:

• I need a fireplace: ▛▜ ?
• I need a shelf: ◲◱ ?
• I was able to express “void” by walling off a section—I guess that’s good enough?
• drawing using Shift + Arrows was sometimes weird and Shift Down in particular selected the help screen, which is silly.

– Alex Schroeder 2015-02-24 22:38 UTC

I was too lazy to add a decent form for saving so now I’m just reusing the text area for dungeon name, username and summary when saving to the Gridmapper Wiki. The link above, for example, now lives on as The Sewer Prison.

– Alex Schroeder 2015-02-25 10:49 UTC

I think I want more stuff for walls, too: open archways, windows, arrow slits.

– Alex Schroeder 2015-02-25 16:41 UTC

– Alex Schroeder 2015-02-26 07:44 UTC

# 2015-02-24 Gridmapper Maps

Contributions I’ve seen:

Gridmapper is a neat little classic-style dungeon mapping utility: It outputs to SVG, which is a vector format supported by many programs, including Blender, a 3D graphic program. I thought it would be simple to import one into the other, and for someone more experienced with SVG and Blender, it probably would’ve been easy. For me, it was messy, but I’m still happy with the results.”

“And I didn’t see any maps created with Gridmapper yet (expect for the test maps). So here is one of mine: The Aquarium.”

“Takie rzeczy wychodzą na szybko.﻿” (Google translate: “These things go on a fast.”)

Tags:

# 2015-02-20 Gridmapper Variant Madness

A difficult decision! Many people had reported using Chrome on Windows and not getting the $ keypress. Sam’s patch finally fixed that. Now I’ve had reports of somebody using Chrome on GNU/Linux and not getting the $ keypress. What a mess!

So: Is it possible to get rid of $? Yes it is. But replace it with what? s for secret doors? What about s for stairs? The solution is to use variants. Place a door and cycle through the variants using v and you’ll get a secret door, a concealed door, a double door (a gate). Same thing for stairs: cycle through the variants using v and you’ll go from a 2×1 stair to a very short 1×1 stair, to a cramped 1×1 spiral staircase, to a large 2×2 spiral staircase, to a broad 2×2 stair fit for an opera house. It’s a trade off. Any map symbol you are using multiple times on your map are better on dedicated keys. Are traps, pilars and statues valuable enough to have separate keys? There is one additional problem I have. Such changes also break existing links. To give you an example, the sequence $$ would place a secret door and rotate it to the north wall. That needs to be replaced by ddv. Yikes! 1. replace every $ by a d and append v
2. replace every c by a d and append vv
3. replace every g by a d and append vvv

I still feel that we’re early enough in Gridmapper’s development to make such changes, but still, it feels unfair to those who have maps with many secret or concealed doors, or gates.

Also, the help screen looks terrible, now.

In fact, I made further incompatible changes to parsing the link’s query string. The trap, pillar and statue no longer advance the position. Thus, if you’re suffering from that problem, you need to append a space (%20) to every t, p, and b in your query string.

1. replace every t by a t%20
2. replace every p by a p%20
3. replace every b by a b%20

Why! Why!?

Well, I wrote a section in the README with instructions on how to extend Gridmapper and add variants for existing tiles! The example I gave was for how to add a well as a variant of a statue.

That’s pretty cool, I think.

An update on my todo list:

• a text area for copy and paste of level data ✓
• tablet support ✓ (somewhat!)
• furniture? (shelves, tables, chairs, chests) ✓
• rubble?
• fountains or wells? perhaps just donut shaped things ✓
• make sure you can place traps on top of stairs? (does this look good?)
• quarter circle, perhaps in 1x1, 2x2 and 3x3 variants to create towers (as variants of diagonals) ✓
• better labels (press a key to show text field) ✓

I decided to drop the PNG export. This would have required canvg to implement, it would have been tricky, people can already take screeshots, and I’m not sure how useful this would have been. It would never have been good enough to link to, for example. Without running some Javascript, this would never have worked.

If you’re curious about the code and would like to read blog posts about aspects of it, feel free to ask. I might write something up.

Tags:

– Alex Schroeder 2015-02-21 12:27 UTC

Trap variants: open pit, trap door in the ceiling, the floor, and a secret trap door. Redrawn from Moldvay’s B58.

– Alex Schroeder 2015-02-21 12:51 UTC

I love this thing! And every time I come back here, some great advance is done. I think the variants are a great improvement and it opens space for additional stuff. Thanks a lot again!

To bring my old maps, which I had just as links, back to live, I wrote a simple sed script:

s/$$[tpb]$$/\1%20/g
s/%24/$/g s/$$*$$/\1v/g s/$$cc*$$/\1vv/g s/$$gg*$$/\1vvv/g s/$$[cg]$$/d/g Save these lines to “gridmapper_convert.sed”, the part behind the ? from the URL in “link.txt” and run: sed -f gridmapper_convert.sed link.txt – Sam 2015-02-22 16:17 UTC I added altars, dais and a round dais. Next up: curtains! – Alex Schroeder 2015-02-22 17:45 UTC Done. I really should use this tool to write a dungeon instead of improving the tool further! – Alex Schroeder 2015-02-22 18:21 UTC How to add a layer above layer one? This worked: Use “Text Export”, Copy the export to a new gridmapper, add “(0,0)fz” to the very beginning, hit “Text Import”. And I didn’t see any maps created whit Gridmapper yet (expect for the test ones). So here is one of mine: The Aquarium – Sam 2015-02-22 17:59 UTC Yeah, I would also use Text Export and Text Import. Was a simple “z” at the beginning not enough? I think that should have done the job. And I love the Aquarium map! – Alex Schroeder 2015-02-22 18:35 UTC An interesting discussion on reddit. Some ideas: 1. Better mouse support: left-click on an icon on the right to pick an item and left-click on the map to place it. No dragging, no need to pick it again from a menu if you want to place something multiple times. 2. Better text labels: no scaling, no word wrap, best for one liners and a small number of words (“orcs”). Would that be enough? The alternative would be to link the numberic labels we already have to wiki pages. Since I run Campaign Wiki, it would be trivial. Put the name of your wiki somewhere, and all the numbers will automatically link to it. 3. Above ground features? Trees and mushrooms are the only ones I can think of. Maybe windows, arrow slits, archways. – Alex Schroeder 2015-02-23 06:53 UTC I’ve noticed another Chrome problem. Assume the following script to draw a round 4x4 room: nvv nnvv[-1,1]nnnnvv nnnvv. Paste it into the text area and hit Ctrl Enter. One Chrome, this looks messed up. On Firefox, you get a nice round 4x4 room. – Alex Schroeder 2015-02-23 09:15 UTC Added chest, bed, table. We’re getting to a size where I feel like we should increase the tile size! – Alex Schroeder 2015-02-23 10:30 UTC Added better labels. – Alex Schroeder 2015-02-23 22:04 UTC > Was a simple “z” at the beginning not enough?  It got messy and the first layer didn’t work any more, but wen I try now whit a small map, it works… – Sam 2015-02-25 12:11 UTC Add Comment # 2015-02-20 Gridmapper Scripting OK, I wasn’t happy with the link export. It’ll work for a while, but I want it to work for a MEGADUNGEON. There are limits imposed on the length of URLs – the browser imposes some, the webserver imposes some, it’s a mess. In comes Text Export and Text Import – also known as executing Gridmapper code, scripting style! So, you start working on your megadungeon. Then you click the Text Export link and the text area beneath it fill up with your Gridmapper code. Save it in a text file. The next day you want to work on it some more. Paste the code into the same textarea and hit Ctrl Enter. Of you go! Try it: (0,0) f f fff f f fff f f f f f f f f f fff ff f f f f f f f f f f f f f f fff fff fff fff b (Result.) I wrote some more about scripting Gridmapper in the README file. Add Comment # 2015-02-16 Gridmapper To Do With the extra layer – “the map below” – finally implemented, it’s time to look for other Gridmapper challenges. This little project makes me so happy. It looks cool, changes are fast to make. I love those early phases of projects that are going well. So, here’s some stuff that I still want to do: • rewrite the internal data structure ✓ • labels or at least numbers – I’m thinking typing a number key will start or append to a label in that square, backspace will shorten the existing label, I’m thinking of adding a little white background circle to those numbers to make it more readable ✓ • export as PNG (will require canvg?) (also not sure how useful this will be) • furniture? (shelves, tables, chairs, chests) • rubble? • make sure you can place traps on top of stairs? (does this look good?) • investigate key issue involving$ and ? – Chrome/Windows only ✓ (resurfaced)
• make it run on IE 11 ✓ (but no download of the data URI?)
• multiple levels? A rolodex like interface where you can move up or down, a large level indicator somewhere, the ability to select an area and move it in any of the six directions (x, y, z). ✓
• use v for variants: 1x1 stairs, 2x1 stairs, 2x2 stairs, as well as 1x1 and 2x2 spiral staircase? ✓
• quarter circle, perhaps in 1x1, 2x2 and 3x3 variants to create towers ✓
• fountains or wells? perhaps just donut shaped things ✓
• tablet support ✓
• a text area for copy and paste of level data ✓
• making gates a variant of doors ✓
• allow the rotation of variants; currently you can press s v to get a stair variant, but if you then press s again, you’re back at the standard stair ✓
• stop using $and c for secret and conceiled doors; instead, use door variants for these two ✓ Tags: Comments on 2015-02-16 Gridmapper To Do What do you think about the option to hold the f-key and create multiple tiles by navigating with the arrow keys instead of pressing arrow-f-arrow-f-arrow-f a.s.o? I would find that useful. – Stefan 2015-02-16 20:04 UTC Did you try Shift Arrows? – Alex Schroeder 2015-02-16 20:30 UTC This is getting excitingly better! – Enzo 2015-02-19 08:20 UTC Thanks! – Alex Schroeder 2015-02-19 09:01 UTC Add Comment # 2015-02-15 Upgrading a Local Gridmapper How to upgrade a local copy of Gridmapper containing a dungeon of yours? The following procedure should work: 1. click on Prepare Link and click on the Link this creates – save it somewhere 2. this URL should now contain a little script to recreate the current state (see example below) 3. now replace the file with a new copy of Gridmapper 4. reload the URL you saved – this should recreate the current state Example of such a URL: file:///Users/alex/Source/gridmapper/gridmapper.svg?%0A%20w.dfwwfwwfw%0A%20wftfw.wfwwfww.dddfw%0A%20wfffwnnnn%20nn%20wfwwfwwfw%0A%20ww%20ww%20w.dfffwfn%20nnn%20w%0A%20%20%20ww%20ww%20ww%20wfnnnn%20fd%0A%20%20%20%20%20%20ww%20ww%20ww Everything after the questionmark is a script: 1. %0A encodes Enter (moves one down) 2. %20 encodes Space (moves one right) 3. w is wall (to the left) 4. . is a micro-pause 5. d is a door (at the top, because there’s already a wall to the left) 6. f is floor 7. etc. You can take this URL fragment and recreate your map elsewhere, too! To take the example above: https://campaignwiki.org/gridmapper.svg?%0A%20w.dfwwfwwfw%0A%20wftfw.wfwwfww.dddfw%0A%20wfffwnnnn%20nn%20wfwwfwwfw%0A%20ww%20ww%20w.dfffwfn%20nnn%20w%0A%20%20%20ww%20ww%20ww%20wfnnnn%20fd%0A%20%20%20%20%20%20ww%20ww%20ww If you use Gridmapper on a public server, you can prepare those links and share them with your friends. Automatic map sharing without storing anything on the server. The link contains all the info. Tags: Comments on 2015-02-15 Upgrading a Local Gridmapper A lot more documentation got written. – Alex Schroeder 2015-02-15 23:47 UTC Add Comment # 2015-02-14 Lack of Internet Culture Remember former Mozilla CEO Eich? I recently read How One Stupid Tweet Blew Up Justine Sacco’s Life and started reconsidering. Where do I stand on this issue? The thoughts turned from society and how we react as mob down to the individual and questions of guilt and ethics. Where’s Internet Ethics when we need it. On Google+, Marcel Schnau said that he thinks it basically comes down to a lack of moderation. I left a comment saying that I’m not sure. My experience on Twitter, Facebook and Google+ has been very positive. Personally, USENET was where I learned how to wear Asbestos Underwear. I still think we’ll need a lot more reflection on these topics in order to get a grip on this Internet thing, as a society. We lack Internet culture.﻿ I'm using culture in the sense of shared practices, common assumptions, etc. In the days of Netiquette, for example, I don’t remember people talking about “forgive and forget”. I still remember how surprised I was when I first stumbled upon it. At the same time, people are rightly concerned about the EU law concerning the Right to be forgotten. So clearly, as a society, we have not yet learned to know how to deal with past shame. To give you another example: We all know how to deal more or less with thorny issues. Some people have problems concerning their looks and still we want to treat them like everybody else, for example. We know that it’s not OK to have our decisions influenced by the acne on somebody’s face. Do we know that it’s not OK to have our decisions influenced by the pictures of a party on Facebook? How long ago does it have to be? This doesn’t come naturally to use, because our parents taught us about acne but not about Facebook. Dealing with social media, perfect records, searchability, big data – it’s not part of our shared practices, it’s not part of our culture. Yet. Did you know that RFC 1855 is about Netiquette? Comments on 2015-02-14 Lack of Internet Culture I think that if we ever find a solution to this, it will be related to using several, strictly separated personas, with additional provisions for making connecting them costly (possibly through social means, that is, for example, considered extremely rude). A different account for your family to share your birthday photos with, a different one for your coworkers, other for professional contacts, and one for every hobby you indulge in. With very few shared contacts. An anonymous user account automatically gives you the right to be forgotten – you just jettison it, together with all (most) of its connections and history. This lets you learn on your own mistakes and come back with a clean slate. Of course, it’s costly, as you lose all the social capital that you might have earned. On the other hand, this can be problematic for communities that give a large credit of trust to new members – those newbie-friendly ones, as they can be flooded by a single person who refuses to learn. Some kind of rate limiting or cool-down mechanism would require defeating the anonymity, so I don’t know a good solution here. USENET actually worked pretty well, with everyone being semi-anonymous by default (you could be traced to an account you used to connect to the server, but it was possible, although somewhat costly, to change those). Radomir Dopieralski 2015-02-15 00:46 UTC Anonymity is obviously the way to go. It blows my mind that people use their real names on the internet. Social networks have made a business out of selling our info to advertisers. They made a play for our info and people bought into it. Now people are screwing themselves over by over sharing online and everyone suffers because of it. Like chimps with guns, joe average just don’t know how to handle it. tl;dr Just say no to social networks. Problem solved. anonymous and proud 2015-02-15 01:03 UTC I disagree. Kris Köhntopp wrote a great article on why we publish data online and what we gain thereby: Wieso wir uns veröffentlichen. It’s exactly about the social capital we gain. If Joe average can’t handle it, well that’s a problem society has had whenever we were introduced to new phenomena requiring a change in behaviour: printing press, photography, AIDS, … To me, anonymity is like wearing a veil in order to handle the problem of ugly and beautiful faces. It’s a possibility, but I much prefer another solution. – Alex Schroeder 2015-02-15 12:01 UTC Stupidity is the problem. Indeed, think about all of the examples! Stupidity was involved in all of them. Lets just focus on making our kids, our friends, our society, but most importantly ourselves smarter. Things will become so much better in a long run. AlexDaniel 2015-02-16 23:32 UTC Add Comment # 2015-02-14 Gridmapper with Demo Gridmapper now comes with a demo built in. I wanted to write some documentation, so I considered adding it to the README file. It can be read over on GitHub. But I know how it is. If you need to read a separate document in order to understand a user interface, people will not be coming back to the application. I decided I wanted a screencast or something equivalent. Short, sweet, stuff moving around on the screen, but I didn’t want to use a separate video. A separate video poses the same problem: Once you’re done viewing the video, will you remember it all and return to the application? Maybe you will, maybe you won’t. And what about updates to the software? Editing those videos and bringing them up to date is a major pain down the line. That’s when I decided to write a demonstration within the application. I already had the code to recreate a map from a string of commands. I needed that in order to recreate a map from the URL. The OSR Logo is an example of this. I just needed a few more things. Positioning. Wall Mode. Pausing. Slow moves accross the screen. The hardest thing to explain is Wall Mode, I think. Yeah, why Wall Mode? At first, I tried to do something that would allow me to use the mouse on the walls. But getting this right was tedious. I can’t really draw straight lines using a mouse. Can you? This was terrible, That’s when I decided that Gridmapper needed much better keyboard support. That was going to be a real win as far as I am concerned! So now we basically have scripting. I felt like I was writing a byte code interpreter. I’m not sure where to go next. Things on my mind. • labels or at least numbers • Google Hangouts (?) • two layers (the lower layer being shaded, toggling between the two layers) • spiral staircases (tricky) • furniture (shelves, tables, chairs, chests) • investigate key issue involving$ and ? on Chrome/Windows and Pale Moon/Windows? (could not confirm)
• export as PNG (will require canvg?) (also not sure how useful this will be)

Tags:

Comments on 2015-02-14 Gridmapper with Demo

The new features look really sweet! But…

I assume this issue is on my end, because there’s no way you wouldn’t notice this. Maybe it’s that outdated browser I was talking about.

I can’t use any of the features anymore: the doors, the traps, none of the letter keys are doing anything at all. Neither is undo, redo, the arrow keys. It doesn’t seem to be getting any keystrokes from me at all.

The link thing, if it does what I think it does, this could become essential for online RPG. You could have the next roll20 on your hands!

guest 2015-02-15 01:14 UTC

Ugh! That’s bad. The next version will log to the console when it receives keyboard input it can’t handle. That will allow me to learn of issues people are having on browsers I have no access to.

– Alex Schroeder 2015-02-15 12:03 UTC

Holy shit, I’ve never thought that you can do such things in SVGs.

AlexDaniel 2015-02-16 23:26 UTC

It’s awesome!

If only browser devs could get their act together when it comes to handling keyboard events. Backspace on Chrome is like the back button!? Who thought this was a good idea…

– Alex Schroeder 2015-02-17 07:31 UTC