Chad Perrin: SOB

29 January 2009

What do I like about Firefox 3?

Filed under: Geek,Mezilla — apotheon @ 01:28

I’ve been using Firefox 3 for a while now. I have to ask:


Nothing comes to mind as a reason to use Firefox 3 instead of Firefox 2. What are the benefits? Is there something it does for me that I just don’t remember is lacking in Firefox 2?

I know version 3 was supposed to make things faster and more stable and so on, but from what I’ve seen . . . it doesn’t. It’s just bigger, and its “awesome bar” violates the POLS. Please, tell me why I’m using Firefox 3 instead of Firefox 2.

Is version 2 still getting security updates?

. . . and what the hell is taking so long getting Chromium ported to Linux? Once it gets to Linux, maybe it’ll get ported more quickly to FreeBSD (where it belongs, being a mostly-BSD-licensed Web browser anyway).

26 January 2009

notes for building cities

Filed under: Geek,RPG — Tags: , , — apotheon @ 05:18

This is part of my RPG series of entries here at SOB. See the inaugural entry in the series for more details.

GMs who prefer to create their own game worlds, rather than using published campaign settings, sometimes run up against some pretty significant challenges if they want to be prepared for what their PCs are going to do. Some of us are better at creating details in advance, providing significant coverage of the aspects of the setting PCs will see and with which they’ll interact so that we’re (almost) never caught off-balance. Others of us are better at making things up as we go along. Most fall somewhere between the two.

I’m one of those that falls somewhere between the two. I like to come up with some general structure for features of the campaign world, and some specifics of how they affect character creation — then make up low-level details as the players encounter them. I wouldn’t do it that way if it were easier to flesh out the details in advance, but after working at something for a while it starts feeling like tedious scut-work, and I want to just get on with the game and (if necessary) make up stuff on the fly.

I decided to take some implicit advice from my own writings, and work on things from a higher level of abstraction. It would be nice to have more stuff figured out about (for instance) city design before I have to deal with PCs wandering through a city encountering features of it I haven’t yet figured out. Toward that end, I started making notes about how to organize the process of city building. Between examples of cities in several game setting books, a couple of books with information about city building, and my own experience and knowledge of what makes both game setting cities and real-world cities work, I worked up a list of details that should be addressed in the creation of a detailed game world city:

City Building Notes

That page will be edited as I come up with more information to include. It isn’t intended as a static document, but rather as an up-to-date reference that incorporates my latest ideas about how things should be done. It’s more for my benefit than anyone else’s, but I don’t see any reason I shouldn’t share it with the rest of the world.

If you have any ideas for how I might improve on my notes or otherwise move forward to develop better city building (or, more broadly, world building) tools, please share them either in comments here or by way of my contact page (see the link in the right-hand column here).

To wrap things up, I’ll share an excerpt from an IM conversation I had with a friend about these notes, because I found this part of the conversation amusing (when it went slightly off-topic). The names have been changed to protect the guilty:

@: I’ll probably develop a workflow process for defining a city, and maybe eventually even write a program to automate it somewhat. If I do write such a program, I’ll probably include some randomization capability, too.

BMB: That would be kind of awesome actually to have a random city generator for a campaign.

@: It’ll be kind of an interesting challenge to write the program, since I’d want to make sure that the stuff it randomly selects actually fits together. I’d probably need some kind of hierarchical dependency system for probabilities. . . .

BMB: Hmm yeah

BMB: Eg have different weights or ‘Tech levels’ [to borrow from gurps] assigned to each level of complexity, eg stratified labor, standing army, &c, and then build up from the basics

@: Yeah — and more subtle stuff like tying different economic conditions and governmental monetary polices together (such as the fact that exotic imports shouldn’t be really cheap and widely available if there are import tariffs, and industry should take a hit for high levels of commerce taxation, and so on).

@: Standard of living would be affected by economic conditions, agriculture would be affected by the “external holdings” stuff . . .

@: . . . and agriculture would in turn affect the local foods stuff.

BMB: Definitely. Sounds like it could be a pretty fascinating project.

@: The hard part is non-programming related — figuring out the relationships between the various factors.

BMB: True. Though depending how fantasy you want, you can sort of invent variables that may not be quite realistic economically

@: Come to think of it, I guess the US government is playing the economy like a fantasy game.

@: “Hey — if we impose tariffs on imports, that won’t have any effect on exports at all!”

@: “Maybe if we tax the crap out of people later to pay for economic stimulus packages, we can improve the economy now without suffering the side-effects later!”

BMB: Roll 3d10 against a dc of 44 to see if it works..

I think I’d rather just go with a standard d20 roll using a Profession(Politician) skill once per day to see how well it’s working. A DC of 44 appears to be about right, though. No “take 20” would be allowed, of course, though I guess you could “take 10” all you like. Each point by which you succeed or fail causes a 1% change in economic circumstances — so if you take 10 with a 5 skill total, you end up with a -29% penalty to economic prosperity for that day. It wouldn’t reset the next day, of course; you’d just apply that day’s percentage variance to whatever resulting number you get from today’s damage to prosperity.

What do you think the chances are that a mayor (or whatever the chief executive office of the city is called) would have a Profession(Politician) skill total greater than 24?

25 January 2009

entering special characters in Xorg

Filed under: Geek,Writing — apotheon @ 11:49

In MS Windows, if you hold down the rAlt key while typing 0164 on your keyboard’s number pad, then release the rAlt key, you’ll get the ¤ character. People sometimes miss that capability on Unix-like systems (read: Linux or *BSD). There’s a solution to the problem, however: the compose key.

The keyboard section in my xorg.conf file looks something like this:

Section "InputDevice"
       Identifier  "Keyboard0"
       Driver      "kbd"
       Option      "XkbOptions"  "compose:ralt"

That line that starts Option sets the rAlt key as my compose key. With that I can produce any of a dizzying array of digraphs and other special characters that don’t actually appear on my keyboard in just about any application in my X session. For instance, to produce that ¤ character, I would use the following key combination:

<rAlt>x o

In other words, I would hold down the Alt key to the right of my spacebar, press the x key, then release the Alt key, and finally press the o key. Thus, holding down the compose key (set to rAlt) for the first character of a combination of characters like xo produces a non-keyboard character like ¤. Similarly, I can use "A for Ä, "o for ö, ~n for ñ, oo for °, and ss for ß.

This, to me, seems like an improvement over the MS Windows way of doing it. The key combinations used are more mnemonically effective than simply trying to remember hundreds of numeric values. They’re also more “discoverable”, in that after learning a few one might begin to recognize patterns that allow one to accurately guess at combinations one doesn’t yet have memorized.

(edit: The following notes about setxkbmap and .xinitrc were added on Thursday, 7 October, 2010.)

If you are using a more recent version of, it is entirely possible your system is working fine without any xorg.conf file at all. You can use the setxkbmap command to specify a compose key instead:

setxkbmap -option compose:ralt

If you use startx to start your X session, you can use the .xinitrc file in your user account’s home directory to automatically execute this every time X is started. To do so, just add that command to the file before the line that specifies which window manager to fire up. You just need to add an ampersand at the end of the line.

The following is an example of the contents of an .xinitrc file — actually, the contents of my .xinitrc file at present:

xbattbar -at 1 top &
setxkbmap -option compose:ralt &
exec ahwm

The first line gives me a nifty line across the top of my screen that tells me how the laptop’s battery is doing. The last line tells X to use a window manager called AHWM.

A complete listing of default compose key sequences can be found in a file called Compose somewhere on most Unix-like systems. On FreeBSD, it should be located in a subdirectory of:


The subdirectory corresponds to the character set used in your user environment. On my laptop, I’m using the US English UTF-8 character set; that information is stored in the LANG variable:

> printenv LANG

Thus, my default compose key sequences are defined in:


Your mileage may vary.

This kind of thing is increasingly useful to me, especially since I’ve been using diereses more often when spelling out words where tonal shifts are not necessarily obvious from spelling, as in the cases of coöperation and naïve. The occasional desire for other special characters, such as ¥ or ñ, also rears its ugly head when writing speculative fiction or making a point about economics (for instance) — and not always in a context where HTML entities (e.g., &ntilde; for ñ) can be used.

Older Posts »

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License