Diary SiteMap RecentChanges About Contact Calendar

Search:

Matching Pages:

Page Collection for ^2010-06

2010-06-02 Second Clojure Attempt

I’m trying to implement something like GridMapper using Clojure. The software appears to be simple to use, and requires a GUI. I know nothing of Clojure, very little Java, and nothing about Swing. A perfect setup to learn the new language. Let’s go! 😊

Some googling showed me the way to Heating Up Clojure & Swing by Stuart Sierra. Unfortunately I still have problems generating a 20 × 20 grid. Because I seem to be incapable of building lists the way I’m used to do it:

(let (result)
  (dotimes (x 20)
    (setq result (cons x (cons :gridx result)))
    (dotimes (y 20)
      (setq result (cons '(empty-tile) (cons y (cons :gridy result))))))
  (apply 'grid-bag-layout (nreverse result)))

Or is there a simpler solution not using Stuart’s grid-bag-layout?

Tags: RSS

Add Comment

2010-06-03 Ein bitterer Anfang

Ich fand Zornhaus Bericht Der Tod kam nach 36 Metern ... und er wollte nicht gleich wieder gehen auf dem Blutschwerter Forum ziemlich gut. Nachdem ich vor einiger Zeit mal den Palast der Silberprinzessin geleitet hatte, war mich klar geworden, dass D&D alter Schule auf den tiefen Stufen verdammt tödlich ist. Der einzelne Spielabend wird garantiert nicht zu einem Heldenfilm. Wenn man geschickt ist, schlau spielt und alles überlebt, dann können einzelne Charaktere vielleicht im Rückblick das Leben eines Helden geführt haben. Die meisten aber sind völlig unnötig und banal gestorben.

Tags: RSS

Add Comment

2010-06-03 Fight On Hardcover Selections

Apparently Fight On magazine is participating in yet another Lulu sales contest. And again hardbound compendiums collecting four issues each will be available. They usually are not. And apparently there’s free shipping within the US. But not for Europe. Grrrr!

Anyway.

  • Fight On! Compendium, issues 1-4. Hardbound!
  • Fight On! Compendium, issues 5-8. Hardbound!

Awesome.

More info on the boards:

Tags: RSS RSS RSS RSS

Comments on 2010-06-03 Fight On Hardcover Selections

We had free Shipping in Europe too (even in France). I got my 2 books a few days ago !

– Philippe Tromeur 2010-07-11 11:56 UTC


Whaaaat!? I missed that!

AlexSchroeder 2010-07-11 19:13 UTC

Add Comment

2010-06-05 Clojure Mouse Input Adapter

It turns out that the MouseInputAdapter is the best class to use for drawing by toggling the icons. It took me forever to get the mouse button code right. Aaargh!

I’m happy about the little code reorganization, reusing the instances of ImageIcon and MouseInputAdapter.

The result already allows me to toggle between floor tiles and empty tiles:

My next plan: Use ‘d’ to switch to drawing a door tile. I’ll need to figure out how to rotate the door tile, and how to display the current ‘mode’ in some sort of status bar.

(import '(javax.swing JLabel JPanel JFrame ImageIcon)
	'(javax.swing.event MouseInputAdapter)
        '(java.awt GridBagLayout GridBagConstraints)
	'(java.awt.event InputEvent))

(def EMPTY_TILE (ImageIcon. "empty.png"))
(def FLOOR_TILE (ImageIcon. "floor.png"))

(defn empty-tile []
  (JLabel. EMPTY_TILE))

(defn floor-tile []
  (JLabel. FLOOR_TILE))

(defn get-tile []
  "Return the tile the user wants to place.
By default this will be a FLOOR_TILE."
  FLOOR_TILE)

(defn edit-grid [e]
  "Draw a tile at the position of the event E.
If the button is pressed, and the tile is empty, use GET-TILE
to determine which tile to draw. Otherwise, erase the current
tile and place an EMPTY_TILE."
  (let [cell (.getComponent e)]
    (if (.equals (.getIcon cell) EMPTY_TILE)
      (.setIcon cell (get-tile))
      (.setIcon cell EMPTY_TILE))))

(defn mouse-input-adapter []
  "A MouseInputAdapter that will call EDIT-GRID when the mouse is clicked
or dragged into a grid cell."
  (proxy [MouseInputAdapter] []
    (mousePressed [e]
		  (edit-grid e))
    (mouseEntered [e]
		  (let [mask InputEvent/BUTTON1_DOWN_MASK]
		    (if (= mask (bit-and mask (.getModifiersEx e)))
		      (edit-grid e))))))

(defn simple-grid [panel width height]
  "Creates a grid of WIDTH + 1 columns and HEIGHT + 1 rows
where each cell contains the result of a call to (EMPTY-TILE)
and adds it to the PANEL."
  (let [constraints (GridBagConstraints.)
	adapter (mouse-input-adapter)]
    (loop [x 0 y 0]
      (set! (. constraints gridx) x)
      (set! (. constraints gridy) y)
      (. panel add (doto (empty-tile)
		     (.addMouseListener adapter)
		     (.addMouseMotionListener adapter)) constraints)
      (cond (and (= x width) (= y height)) panel
	    (= y height) (recur (+ x 1) 0)
	    true (recur x (+ y 1))))))

(defn app []
  (let [frame (JFrame. "Grid Mapper")
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.setContentPane panel)
      (.pack)
      ;; (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

(app)

Tags: RSS

Comments on 2010-06-05 Clojure Mouse Input Adapter

I need to look into Leiningen and Clojars. There is a nice tutorial available from Alex Osborne.

I managed to add a keyboard adapter to switch between floor and door drawing.

Next I need to figure out whether drawing a door at the current position is legal, and whether it should be a north-south or an east-west door. Right now the cells on the grid have no understanding of neighborhood. Interesting times! :D

Grid Mapper! 😊

– Alex

Add Comment

2010-06-05 Clojure Mouse Listener

Ok, so I got a bit further compared to last time. As you can see I got rid of that fancy macro and decided to just write simple code that works for this particular situation. And it works. :)

(import '(javax.swing JLabel JPanel JFrame ImageIcon)
	'(java.awt.event MouseListener)
        '(java.awt GridBagLayout GridBagConstraints))

(defn empty-tile []
  (JLabel. (ImageIcon. "empty.png")))

(defn floor-tile []
  (JLabel. (ImageIcon. "floor.png")))

(defn simple-grid [panel width height]
  "creates a grid of WIDTH + 1 columns and HEIGHT + 1 rows
where each cell contains the result of a call to (EMPTY-TILE)
and adds it to the PANEL"
  (let [c (GridBagConstraints.)]
    (loop [x 0 y 0]
      (set! (. c gridx) x)
      (set! (. c gridy) y)
      (. panel add (empty-tile) c)
      (cond (and (= x width) (= y height)) panel
	    (= y height) (recur (+ x 1) 0)
	    true (recur x (+ y 1))))))

(defn app []
  (let [frame (proxy
		  [JFrame MouseListener]
		  ["Grid Mapper"]
		(mouseClicked [e] (println e)))
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.setContentPane panel)
      (.pack)
      ;; (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

(app)

My problem right now is that the mouseClicked code is never called. I wonder why. [1] [2]

It turns out that I needed to call addMouseListener at some place. So app changed:

(defn edit-grid [e]
  "placeholder"
  (println e))

(defn mouse-listener []
  "A mouse listener that will call EDIT-GRID when the mouse is clicked"
  (proxy [MouseListener] []
    (mouseClicked [e] (edit-grid e))
    (mouseEntered [e])
    (mouseExited [e])
    (mousePressed [e])
    (mouseReleased [e])))

(defn app []
  (let [frame (JFrame. "Grid Mapper")
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.addMouseListener (mouse-listener))
      (.setContentPane panel)
      (.pack)
      ;; (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

If I don’t implement all of the MouseListener interface, I end up getting a ton of exceptions whenever the mouse entered or exited the frame and whenever the button was pressed or released. It felt weird adding all those empty methods.

I think I should start thinking about getting a working SlimeMode. :)

Tags: RSS

Comments on 2010-06-05 Clojure Mouse Listener

Hi, extending MouseListener from the JFrame is not sufficient. This provides a “host” class for your implementation of the listener code, but you still have to register the MouseListener to the JFrame ! In your case, you’ll add the JFrame itself as a MouseListener of itself, something like (not tested) (.addMouseListener jframe jframe)

Laurent Petit 2010-06-05 11:13 UTC


Thanks! I got some help on the #clojure channel and rewrote the code. Will update the page! :)

I think your code would have worked, but somehow making the JFrame a MouseListener is way too weird. I was confused.

And you’re working on a Clojure Eclipse plugin! Awesome. At work I’ve been using Eclipse a lot, lately. :)

AlexSchroeder 2010-06-05 11:36 UTC

Add Comment

2010-06-09 Work Work

There’s a lot of work to do in the office. But this is the last week before summer break, so I’m willing to put in the extra effort. I can’t wait. I want to work on this Clojure stuff. I want to ride on all the trails with my new Bike. I want to practice my Aikido diligently and finally sign up for my 1st Dan test. I want to do a lot of hiking all over Switzerland. I want to enjoy the warm air, light rains, bumblebee buzz, and sunshine of summer. I want to join my wife for lunch in a restaurant when she’s working. I want to do some decent cooking for dinner. I thirst for time!

Dirt

Tags: RSS

Add Comment

2010-06-10 Clojure Einführung

Im Geschäft habe ich auf dem Firmenblog drei Artikel geschrieben, welche Clojure/Swing kurz vorstellen.

Tag 1

Clojure ist eine Lisp Sprache, welche auf der Java Virtual Machine läuft. Wir können alle Java Klassen verwenden. Ein Beispiel:

(import '(javax.swing JLabel JPanel JFrame ImageIcon)
        '(java.awt GridBagLayout GridBagConstraints))

(def EMPTY_TILE (ImageIcon. "empty.png"))

(defn empty-tile []
  (JLabel. EMPTY_TILE))

(defn simple-grid [panel width height]
  "Creates a grid of WIDTH + 1 columns and HEIGHT + 1 rows
where each cell contains the result of a call to (EMPTY-TILE)
and adds it to the PANEL."
  (let [constraints (GridBagConstraints.)]
    (loop [x 0 y 0]
      (set! (. constraints gridx) x)
      (set! (. constraints gridy) y)
      (. panel add (empty-tile) constraints)
      (cond (and (= x width) (= y height)) panel
	    (= y height) (recur (+ x 1) 0)
	    true (recur x (+ y 1))))))

(defn app []
  (let [frame (JFrame. "Grid Mapper")
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.setContentPane panel)
      (.pack)
      (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

(app)

In einem Arbeitsverzeichnis muss folgendes vorhanden sein:

  1. der obige Code in einem File namens gridmapper-1.clj
  2. aus dem aktuellen Zip muss man das clojure.jar extrahieren
  3. das kleine Bild empty.png muss im gleichen Verzeichnis liegen

Aufruf nun wie folgt: java -cp clojure.jar clojure.main gridmapper.clj

Es erscheint ein kleines schwarzes Quadrat in einem Fenster, das man wieder schliessen kann.

Was ich hier interessant finde:

  1. wie ganz natürlich FRame, JPanel, und JLabel integriert werden
  2. wie man doto verwendet, um sich die ständige Wiederholung des Objektes zu sparen (beispielsweise ganz am Schluss wo diverse Funktionen auf dem frame aufgerufen werden
  3. wie man mit loop und recur eine Schlaufe aufbaut, die Tail Recursion simuliert (eigentlich wird der Code so in seine iterative Form umgeschrieben)
  4. wie Clojure eigentlich unveränderliche Objekte hat, mittels set! aber die Eigenschaften der Java Objekte gesetzt werden

PS: Wer keinen Emacs verwendet, kann ja mal das Eclipse Plugin Counterclockwise ausprobieren und im Kommentar Bericht erstatten. 😊

Tag 2

Nun wollen wir drauf zeichnen! Hierfür brauchen wir ein zweites Bild: floor.png.

Und hier der Source Code für gridmapper-2.clj:

(import '(javax.swing JLabel JPanel JFrame ImageIcon)
	'(javax.swing.event MouseInputAdapter)
        '(java.awt GridBagLayout GridBagConstraints)
	'(java.awt.event InputEvent))

(def EMPTY_TILE (ImageIcon. "empty.png"))
(def FLOOR_TILE (ImageIcon. "floor.png"))

(defn edit-grid [e]
  "Draw a tile at the position of the event E."
  (let [cell (.getComponent e)
	here (.getIcon cell)]
    (if (.equals here EMPTY_TILE)
	(.setIcon cell FLOOR_TILE)
	(.setIcon cell EMPTY_TILE))))

(defn mouse-input-adapter []
  "A MouseInputAdapter that will call EDIT-GRID when the mouse is clicked
or dragged into a grid cell."
  (proxy [MouseInputAdapter] []
    (mousePressed [e]
      (edit-grid e))
    (mouseEntered [e]
      (let [mask InputEvent/BUTTON1_DOWN_MASK]
	(if (= mask (bit-and mask (.getModifiersEx e)))
	  (edit-grid e))))))

(let [mouse (mouse-input-adapter)]
  ;; share the mouse input adapter with every other tile
  (defn empty-tile []
    (doto (JLabel. EMPTY_TILE)
      (.addMouseListener mouse)
      (.addMouseMotionListener mouse))))

(defn simple-grid [panel width height]
  "Creates a grid of WIDTH + 1 columns and HEIGHT + 1 rows
where each cell contains the result of a call to (EMPTY-TILE)
and adds it to the PANEL."
  (let [constraints (GridBagConstraints.)]
(loop [x 0 y 0]
      (set! (. constraints gridx) x)
      (set! (. constraints gridy) y)
      (. panel add (empty-tile) constraints)
      (cond (and (= x width) (= y height)) panel
	    (= y height) (recur (+ x 1) 0)
	    true (recur x (+ y 1))))))

(defn app []
  (let [frame (JFrame. "Grid Mapper")
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.setContentPane panel)
      (.pack)
      (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

(app)

Was ist neu?

  1. empty-tile ist nun eine Closure, welche jedem JLabel eine Kopie des immer gleichen MouseInputAdapters hinzufügt
  2. der MouseInputAdapter reagiert auf Button drücken und herumfahren (aber nicht auf das traditionelle Drag & Drop)
  3. der Code für den MouseInputAdapter zeigt, wie man in Clojure eine Klasse erstellt, welche den MouseInputAdapter implementiert und die beiden Methoden mousePressed und mouseEntered überschreibt
  4. der MouseInputAdapter bestimmt die betroffenen JLabel über den InputEvent und ruft edit-grid auf
  5. edit-grid wechselt nun das ImageIcon aus

Resultat:

Tag 3

Wir brauchen ein drittes Bild: trap.png.

Und hier der Source Code für gridmapper-3.clj (nun schon 90 Zeilen):

(import '(javax.swing JLabel JPanel JFrame ImageIcon)
	'(javax.swing.event MouseInputAdapter)
        '(java.awt GridBagLayout GridBagConstraints)
	'(java.awt.event KeyAdapter InputEvent))

(def EMPTY_TILE (ImageIcon. "empty.png"))
(def FLOOR_TILE (ImageIcon. "floor.png"))
(def TRAP_TILE  (ImageIcon. "trap.png"))

(def current-tile (atom FLOOR_TILE))

(defn get-tile []
  "Return the tile the user wants to place.
By default this will be a FLOOR_TILE."
  @current-tile)

(defn set-tile [tile]
  "Set the tile the user wants to place.
This must be an ImageIcon."
  (println tile)
  (reset! current-tile tile))

(defn edit-grid [e]
  "Draw a tile at the position of the event E."
  (let [cell (.getComponent e)
	here (.getIcon cell)
	tile (get-tile)]
    (cond (.equals here EMPTY_TILE)
	  (.setIcon cell FLOOR_TILE)
	  (and (.equals here FLOOR_TILE)
	       (.equals tile FLOOR_TILE))
	  (.setIcon cell EMPTY_TILE)
	  (.equals here FLOOR_TILE)
	  (.setIcon cell tile)
	  true
	  (.setIcon cell FLOOR_TILE))))

(defn mouse-input-adapter []
  "A MouseInputAdapter that will call EDIT-GRID when the mouse is clicked
or dragged into a grid cell."
  (proxy [MouseInputAdapter] []
    (mousePressed [e]
      (edit-grid e))
    (mouseEntered [e]
      (let [mask InputEvent/BUTTON1_DOWN_MASK]
	(if (= mask (bit-and mask (.getModifiersEx e)))
	  (edit-grid e))))))

(let [mouse (mouse-input-adapter)]
  ;; share the mouse input adapter with every other tile
  (defn empty-tile []
    (doto (JLabel. EMPTY_TILE)
      (.addMouseListener mouse)
      (.addMouseMotionListener mouse))))

(defn simple-grid [panel width height]
  "Creates a grid of WIDTH + 1 columns and HEIGHT + 1 rows
where each cell contains the result of a call to (EMPTY-TILE)
and adds it to the PANEL."
  (let [constraints (GridBagConstraints.)]
    (loop [x 0 y 0]
      (set! (. constraints gridx) x)
      (set! (. constraints gridy) y)
      (. panel add (empty-tile) constraints)
      (cond (and (= x width) (= y height)) panel
	    (= y height) (recur (+ x 1) 0)
	    true (recur x (+ y 1))))))

(defn keyboard-adapter []
  (proxy [KeyAdapter] []
    (keyTyped [e]
       (let [c (.getKeyChar e)]
	 (condp = c
	     \t (set-tile TRAP_TILE)
	     \n (set-tile FLOOR_TILE)
	     true)))))

(defn app []
  (let [frame (JFrame. "Grid Mapper")
	panel (doto (JPanel. (GridBagLayout.))
		(simple-grid 5 5))]
    (doto frame
      (.addKeyListener (keyboard-adapter))
      (.setContentPane panel)
      (.pack)
      (.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
      (.setVisible true))))

(app)

Neu sind:

  1. current-tile ist ein Clojure Atom; Clojure kennt verschiedene Referenztypen, mit denen Werte gespeichert und geändert werden können (was ja sonst nicht geht weil Clojure nur unveränderliche Werte kennt); Atom verwendet man für einfache, synchronisierte Zugriffe innerhalb desselben Threads
  2. Mit set-tile und get-tile wird auf das Atom zugegriffen. Insfern nichts neues.
  3. edit-grid enthält nun etwas Logik, mit der das passende Element gemäss get-tile gewählt wird
  4. Neu ist der KeyboardAdapter auf dem JFrame, welcher set-tile aufruft; mit T kann man “trap” auf den “floor” zeichnen

Das aktuelle Projekt ist auf GitHub erhältlich.

Tags: RSS

Add Comment

2010-06-10 Edition War

@RobertsonGames says
Wow, there’s a lot of #Pathfinder 3rd party products! http://bit.ly/bUBOgQ - Are many people playing it? [1]

Looking at the ten sessions per month I play (→ MyCampaigns), I see the following trend:

system session per month
D&D 3.5four
Mongoose Traveller two
Various Indie games two
Pathfinder one
Labyrinth Lord one

Tags: RSS

Comments on 2010-06-10 Edition War

Jealous. I admire your variety. Mine for last month looks like this:

system session per month
DBA four
4e D&D three
M&M one

This month an ICONS playtest replaced our regular M&M game (good timing - we were down a player so needed a fill-in anyhow) but trying to get my group to play different systems is usually like pulling teeth.

greywulf 2010-06-10 14:33 UTC


Yeah, the trick is to create new groups with different people. :) There is significant overlap between the various groups. That results in an excellent environment with ten or twenty people I game with in different combinations.

AlexSchroeder 2010-06-10 16:18 UTC

Add Comment

2010-06-11 Game Day With The Kids

Once a month I play Labyrinth Lord with my godchild, her siblings, and her dad. The picture shows dad working on the treasure sheet with sections for each player character and sections for the two buried treasure chests. The adventure we’ve been on is Tomb of the Iron God. I’m starting to think that maybe the adventure is a tiny bit too long, but we’ve explored about 80% of the entire thing, so the Sword of Iron will soon be found, I assume.

Kids

As far as I can tell, the stuff they enjoy is

  1. fart jokes ;)
  2. bashing the heads of undead – today the youngest went on to detail brain flight trajectories when hitting zombies with a flail… 8-)
  3. bashing the heads of anything, actually
  4. they really liked talking to the enchanted zombie goblin head that never said anything but “Turn back, grave robbers, or you’ll all die!”
  5. they laugh when ghouls throw around the hands of victims
  6. they laugh when dad’s character falls into a pit
  7. they hate it when three of them are down and paralyzed by the ghouls and the lone elf continues fighting, hoping for the party to reawaken in time
  8. they seem to like it when I mention how many hitpoints a monster has left, how many rounds a character will remain paralyzed, what AC monsters have – I’m not hiding it from them if that makes rolling the dice more enjoyable
  9. they like rolling for group initiative
  10. they all like to shout at the same time (dad included)
  11. they like to read Elfquest comics before and after the game, and to borrow some to take home between games
  12. there are no XP to be gained and there is no level advancement; they all just create characters with 5001 XP

I think we’re having a good time!

We play for about two hours. By the end they’re usually really tired. The oldest two want to continue playing but the youngest one is already sitting on the couch and looking at Elfquest instead of playing. But that’s ok. :)

Anyway… the Sword of Iron. I think they’ll have to bring it to Captain Mithika in Curnithia somewhere in the Faris Hills. Yeah, this will move the campaign into the Wildlands described in Points of Light by Robert Conley.

Previous entries in the series: 2010-01-11 Playing With Kids.

Tags: RSS RSS RSS RSS

Comments on 2010-06-11 Game Day With The Kids

Excellent. Fart jokes and zombies ftw!

Just like my adult players, then.

greywulf 2010-06-11 20:46 UTC


Hahaha!

AlexSchroeder 2010-06-12 06:35 UTC


I like the original Das Schwarze Auge GM screen on the table …

Harald Wagener 2010-06-12 11:16 UTC


I put the most important tables for players on the outside of the screen:

  • hearing or spotting enemies
  • finding and disarming traps, finding secret doors
  • death & dismemberment when your character reaches zero hitpoints (no negative hitpoints)
  • morale and reaction rolls

Sometimes I feel bad for having mutilated this perfectly pristine screnen by sticking self made tables all over it.

AlexSchroeder 2010-06-12 22:10 UTC

Add Comment

2010-06-15 Indie Games

Back in October 2009 my D&D 3.5 Monday game went biweekly and I decided to find some people interested in playing all these games on my shelf that I had bought but not played. And I hoped that these other people might also have some cool games that I had heard about but didn’t want to buy because I was afraid of collecting even more gaming detritus.

It has been a great experience!

What we would do is try a game and if we liked it, we’d schedule a follow-up session. This is what we have played:

I think the two games I have enjoyed most are Mountain Witch (the setup involving trust and betrayal, and the idea that more and more of our dark fate needs to be revealed before the story can progress) and Dogs in the Vinyard (how to solve conflict with nothing but your rifle, the bible, and mechanics that reward escalation of violence).

The two games I was most disappointed in were Spirit of the Century (we had great fun but I was shocked when I saw how big the rulebook was; I’m not going to buy another fat FATE book anytime soon) and Blossoms Are Falling (the setup was unbalanced in hindsight [1]).

Tags: RSS RSS

Comments on 2010-06-15 Indie Games

Running The Mountain Witch with you guys was awesome. You were lenient when I goofed up the rules, took the road trip movie vibe of the whole endeavor AND we had quite the ending, I’d like to say …

Harald Wagener 2010-06-15 11:45 UTC


Should look into ICONS. Super hero gaming without the bulk of HERO or even M&M. I really like the random character generation. If you ever read or played Marvel Super Heroes, it is very reminiscent of that.

– Adrian 2010-06-17 07:33 UTC

Add Comment

2010-06-15 My Car and BP

I don’t often post about politics anymore, having turned HomoLudens a few years ago. But sometimes things still catch my eye. I’ve become a BoingBoing reader via @boingboing. Recently I found an interesting comment regarding the 2010 oil-spill in the Gulf of Mexico.

OhStevie
Funny how people that drive cars think this is BP’s fault. [1]
Lobster
I agree.
It is specifically my car that made BP executives demand the engineers drill faster. So fast that it compromised the integrity of the hole and required it be drilled twice.
It is specifically my car that made BP executives hire Halliburton for the well seals, which were too structurally weak to handle the top kill.
It is specifically my car that made BP executives fiddle around letting the oil leak into the gulf while they tried to find a way to stop it with the least damage to their investment.
MY CAR is to blame for this, even though I have NEVER bought from BP and even if we used a tenth of the gasoline we do today it would still be profitable, and they’d still be drilling exploratory sites.
Also it’s Obama’s fault for not fixing BP’s mess faster, right? Privatize gains, subsidize losses, that’s the American way. [2]

I had read similar comments before. Thank you Lobster, for saving me the time to formulate a response. And I don’t even drive a car.

Tags: RSS RSS RSS

Add Comment

2010-06-15 Velos für Afrika

Ich habe herausgefunden (D’oh!), dass man an extrem vielen Orten in der Schweiz seine alten Velos zu spenden. Bei Velos für Afrika gibt’s eine Liste der permanenten Sammelstellen.

Jetzt muss ich nur noch überlegen, ob ich den alten Renner vom Schwiegervater mit den gebrochenen Speichen nun spenden soll oder nicht… Heute war ich in der Velowerkstatt der Stadt Zürich. Ich wollte schauen, ob ich etwas für mein Velo bekomme (nein), wieviel es kosten würde, alles neu zu machen (etwas zwischen 390.- und 540.- je nachdem ob ein oder zwei Räder ersetzt werden), und wieviel neu malen kosten würde (etwa 200.- zum sandstrahlen und 200.- für die Farbe). Neue interessante Velos fangen hier in Zürich bei 1000.- an (single-speed); interessante occasion Velos findet man so um die 500.- und sind damit etwa gleich teuer wie die Instandsetzung des alten Velos. Also habe ich beschlossen, das alte Velo wieder instand setzen zu lassen.

Tags: RSS RSS RSS RSS

Add Comment

2010-06-18 Generational Game

In my Alder King game I’ve been using the following two rules:

  • Name Level: Characters reaching level 9 must build a stronghold or be ready to retire their character when they reach level 10. (Ordinary adventures will take place in the level range from one to nine; higher level adventures may involve mass battles.)
  • Charisma: There is no Leadership feat. Instead, players build an entourage using roleplay within the limits of their Charisma score (as given in the Labyrinth Lord rules, for example). Players can take two characters on an adventure. The lower level character gets half a share of XP (with no bonus for being lower level). (Inspired by David Bowman’s Entourage Approach.)

The defining elements of what I call a generational game are the following:

  1. there are generations of characters
  2. as characters leave the party, they remain active in the game world
  3. new characters join the party all the time
  4. one way to allow a player to contribute is to encourage them to run two characters at the same time, one powerful character that can contribute to combat, and a low-level character to contribute to the plot
  5. an ongoing game cannot run on an adventure path alone; there can be adventure arcs but the game must eventually return to the 3rd-8th level range

The goals for my campaign in particular were the following:

  • There were very few powerful wizards and priests in the area. The highest level evil priest in the area was level 12, the highest level wizard in the area was level 5. There was no way to buy magical items. I wanted the players to play characters that would end up being the powerful wizards and priests to go to for the next generation of characters.
  • The game region is a jungle with three settled areas: a small village, a town, and a fortress. Everything else is wilderness. I wanted the players to play characters that would end up ruling some of the settlements – or found new ones.
  • As old players leave the game, their characters remain behind as NPCs. I wanted to encourage this in order to provide more interesting people to interact with, and for players to know that they are having an impact on the game world.
  • As new players join the game, their characters push existing plots or introduce new plots to the sandbox. I need this input to keep the sandbox going. Not every player needs to contribute, but having two or three players contribute new plots is great.
  • Players pick character goals early in the game and actively pursue them before reaching name level. This determines some of the plots and quests in the sandbox. It helps players to make the game their own. By making in-game decisions they shape the kind of adventures they want to play.

Has it worked? Perhaps it’s too early to say. The first session report was written 2008-12-14 and we’ve been playing on a biweekly schedule ever since. We’re currently playing through the Caverns of Thracia with the second generation of characters. Let’s look at the players:

  1. One player is playing only shadow elves that are actively pursuing the conquest of the underground city. She’s very actively introducing new quests into the game.
  2. One player wanted to bring “balance” to the jungle and founded a village in its midst. The player is currently no longer active because she didn’t want to start over with low-level characters.
  3. One player wanted to play a necromancer and his undead army played a decisive role in the big battle that ended the big war between humans and lizard folk plot. The player is currently no longer active because he didn’t want to start over with low-level characters.
  4. One player comes across as happy but more passive than the others. His gnome rescued the big secret library his father had to abandon in the hills. His next character was a sorcerer gnome that recently died, a gnomish druid, and now a dwarf fighter. I’m not sure there are any long term plans.
  5. One player had a dwarf barbarian that founded a mercenary group. His other two characters are both goblins, a wizard and a cleric. I think that maybe the goblin wizard is interested in taking over the goblin city where the game started.
  6. One player had a goblin rogue-turned-assassin and is currently murdering and pillaging the country side. I suspect that he is also interested in taking over the goblin city where the game started. His other two characters are a goblin bard that was created to boost the fame and influence of the assassin and a kobold “ninja” rogue-sorcerer.
  7. A new player has introduced an autumn elf from another plane.
  8. Two potential new players I’ve talked to might be joining the game next month bringing the number of active players back up to seven.

The first generation of characters is currently on 7th level. I also doubled all XP requirements for this game. We’re using D&D 3.5 and this slows leveling up down to once every four or five sessions, which seems about right for what I like.

I think that the setup is certainly working as a mechanism to keep the sandbox alive. I don’t want to stop this generational game anytime soon.

Tags: RSS

Add Comment

2010-06-18 History of Egypt

I was looking for images of Set and Nergal to add to our campaign wiki. After hours of surfing I ended up on the Project Gutenberg site. This site is awesome. I still remember downloading a simple ASCII copy of Milton’s Paradise years ago and realizing that there was a source of free texts available online. But what I was interested in was the History of Egypt – you should do a search for it right now. I found some good quotes in the History Of Egypt, Chaldæa, Syria, Babylonia, and Assyria by Gaston Maspero.

“Nergal united a crafty fierceness to his bravery: not content with being lord of battles, he became the pestilence which breaks out unexpectedly in a country, the death which comes like a thief, and carries off his prey before there is time to take up arms against him.” – Volume III, Part B

Notice the subtitle: “containing over twelve hundred colored plates and illustrations”. Check out the instructions for downloading all the volumes. Once you have all the images in a single directory, picking them for your blog, campaign wiki, or PDF project is so much simpler.

Some finds in Volume III:

  • One of the eagle-headed genii – notice the wrist-watch and the handbag! 😊
  • The South-West Wind – who doesn’t love to shout “Pazuzu! Pazuzu! Pazuzu!” when the going gets tought? Ah, the joy of uttering the name Pazuzu three consecutive times… Also note the following sentence on the same page: “Imps haunted the houses, goblins wandered about the water’s edge, ghouls lay in wait for travellers in unfrequented places, and the dead quitting their tombs in the night stole stealthily among the living to satiate themselves with their blood.” Straight from the history books!
  • Plan of the existing buildings of Telloh – it looks like an old school dungeon map down to the symbol used for the stairs!
  • Egyptian slave merchant

Tags: RSS RSS

Add Comment

2010-06-19 Firefox Plugins

I just added the EFF’s HTTPS Everywhere to my FireFox extensions. That reminded me of the following annoying fact: On my Ubuntu machine I have seven English dictionaries installed and I don’t know how to get rid of them. I switch a lot between English and German – having to pick the right English variant annoys me, specially since I don’t have to do it on other Firefox installations. But where can I deinstall them?

Extensions lists only “German (Switzerland)”. Languages only lists “Firefox en-GB” which I cannot uninstall. Disabling appears to have no effect. Is this something outside of Firefox?

Tags: RSS RSS RSS

Add Comment

2010-06-19 Meaningful Choice

When character open a door in a dungeon, when characters approach a monster lair in the wilderness – how stingy are you with information?

In the old days I used to test players’ adherence to smart routines. If they didn’t say their characters tried to move silently then obviously they were making a lot of noise. If they didn’t listen at the door then obviously they just barged in.

Little did I know what a fool I was. I was training my players to state the obvious, to repeat it again and again, I trained them to be paranoid, cautious, meticulous, and boring.

Remembering to do the obvious is not an interesting choice to make. These days I try to rid myself of these bad habits. I’m assuming the characters are smart and competent by default. Dice get rolled when ordinary precautions have already failed.

That’s why forgetting to listen at a door doesn’t happen, that’s why the giant footsteps on the trail leading up the mountain are not missed.

Once players have the basic info meaningful decisions can be made.

Tags: RSS

Comments on 2010-06-19 Meaningful Choice

I absolutely agree with this. I can’t stand it when a gaming session is taken up by the rogue repeating endlessly, I try to move quietly and check the door for traps, then I listen at the door, then I try to pick the lock, then I try to open the door quietly. That’s five rolls being made that I already KNOW the rogue is going to make. That’s his JOB.

I know a lot of people hark back to those old modules where every door was trapped, and every square covered a 10’ pit. HORRIBLE PLAY! I want a story, not a quick succession of saving throws against death. I want my players to feel like they can try something new for a change, and I want to reward them for coming up with something interesting.

That’s why I tell the rogue player in my party that I will always assume he is trying to move quietly unless he tells me specifically that he is hurrying. I assume that the fighter ALWAYS has a crossbow loaded unless there is a specific reason why he might not. I assume that every mage in the entire world who has the capacity casts Mage Armor on himself the first thing in the morning.

Why weigh down your game with that tedium?

– Zandari 2010-06-20 02:25 UTC


Agreed. I assume that the heroes are working intelligently all the time. Unless they’re doing something stupid, of course.

greywulf 2010-06-20 03:26 UTC


Maybe it was because we were immature teenagers when I played BECMI and 1st/2nd AD&D, but a lot of the old-school dungeon crawls seemed predicated on stating the obvious, and when you didn’t, it was “GOTCHA!”

– Adrian 2010-06-20 10:32 UTC


Yeah, I hope it was an experience problem. When Marcel, Mircea, and I talk about the old days we often remember “you hear heavy breathing from around the corner.” The dwarf looks, gets blasted by the black dragon, and dies. Uhm… Great game!?

AlexSchroeder 2010-06-20 10:45 UTC


Hey, I remember that!

– Sektat 2010-06-21 11:24 UTC


Great game, right!? :D

AlexSchroeder 2010-06-21 13:17 UTC


On a related note, Rusty wonders about the level of detail provided by the referee. How much is enough? How much is too much? Food for thought. Thinking About Details, Clues and Herrings.

AlexSchroeder 2010-06-22 12:20 UTC

Add Comment

2010-06-21 Terms and Conditions

The terms and conditions of the iTunes app store have changed. I need to agree to them. There’s 110 fucking pages of legal mumbo jumbo to read. I click the button to get on with the show, thinking that this can’t possibly be a contract I’m signing.

Idiots.

Tags: RSS RSS RSS

Comments on 2010-06-21 Terms and Conditions

I have only one word to say about all that iPhone crap: Jailbreakjailbreakjailbreakjailbreakjailbreak

– Marco 2010-06-22 07:11 UTC


Grrrr. New Apple terms allow them to collect and share your “precise, real-time location”.

AlexSchroeder 2010-06-22 09:54 UTC

Add Comment

2010-06-22 Campaign Feedback

I recently sent the following email to the players of my biweekly Monday D&D game. I’m sure many other referees have done the same thing in the past. Any links you want to suggest? I’m also interested in what feedback these people got and what changes they implemented based on that feedback.

You’ll note that the questions are unsorted and unstructured. I did that on purpose thinking that a more organic, conversational style would read more personal, with answers read by a nice person rather than a typical questionaire asking you to rate stuff on a scale from bla to blargh to be fed to a computer.

I guess I should answer these questions as well. :)

Anyway. Here we go:

Hi all

We’ve finished 4/6 of the Rise of the Runelords Adventure Path. I’d like to get some feedback on how we’re doing. I’m particularly interested if your ideas changed from previous feedback when we talked about the game in the past. Some questions to let you know how about the stuff that I’m thinking of:

  • Do you like the game? This is the most important one. In other words, you still think this is a great way to spend your Monday evenings.
  • Would you prefer to play every Monday or only once a month? If the campaign ends, do you plan to keep playing or do you think you might be quitting?
  • Do you think we should use less battlemaps and less combat tactics? Should we have less rules (looking in a book) and more rulings (DM just makes shit up and we can discuss via email, if at all)?
  • Do you think we should allow less non-core spells & feats? Is the discussion itself a source of frustration? In other words, would you be happier if I just decided without lengthy discussions?
  • Do you have house rule changes you want to propose?
  • Would you prefer different rules altogether? Would you quit the game if we changed the rules?
  • Do you think we should have more atmosphere? Some people want me to skip over the descriptions, some people might like more of them.
  • Do you think we should have more interactions with NPCs? Some people might miss simply interacting with people.
  • Would you like more riddles?
  • Would you like to explore of the world, see more, travel more, learn more?
  • Would you like combat to be tougher or easier?
  • Would you like there to be less combat?
  • Do you think some powers or qualities characters have are being nerfed or are being abused? For example, do you think diplomacy or bardic knowledge is too powerful, or not powerful enough?
  • Is there something you want me to discuss with other players without letting them know who started it, something you feel uncomfortable in bringing up but at the same thing something that needs to be changed? I could try and handle it.
  • Do you think we should have more in-character speech? One thing I’ve heard often is that a group will designate one language such as high German for in-character talk and some other language such as Swiss German for out-of-character talk. I’m not sure how that would work, but we could think of something.
  • Did I forget an important question? Please let me know.
  • Would you prefer to abandon the Adventure Path? Is it too linear? * Would you prefer a different Adventure Path? Would you prefer a more open, sandbox campaign where characters determine their own goals and adventures flow more naturally without a constant big bad boss somewhere?
  • Do you think we shouldn’t change a thing?
  • Should we play somewhere else? Do you have a  bigger table?
  • Would you prefer less players? Less players can make it more intimate, but it will also make it calmer and reduce some of the chaos.
  • Would you prefer one more player? I think seven is my upper limit.
  • Would you like to run a few sessions or the next campaign?
  • You can write back to me individually or to everybody in the group.

Thanks for taking the time to write back.

Update:

Tags: RSS

Comments on 2010-06-22 Campaign Feedback

Stellst Du noch in ein paar Stichworten die Resultate der Umfrage rein? Solche Dinge interessieren mich immer.

– Peter 2010-06-28 20:19 UTC


Ist gemacht!

AlexSchroeder 2010-07-03 01:14 UTC

Add Comment

2010-06-23 Traditional Role-Playing Game Defined

There’s currently a discussion regarding gamers being a bad business target group or something. I don’t really care that much. But I really liked the following paragraph by James Edward Raggi IV of Lamentations of the Flame Princes:

Pencil. Paper. Dice. Imagination. A traditional role-playing game requires all of these, and traditional role-playing is my hobby. I don’t care if you have an app for that, if you show up to my games without any of the first three, they will be provided for you and you will use them. If you don’t have the fourth, well, shit, wrong hobby for you! [1]

Haha, I see that one of the commenters on that blog post also felt like quoting the above lines. [2] ok :)

I’m sure there are other quotes out there involving roleplaying games and using your imagination – instead of more rules, I guess.

It reminds me of the Swords & Wizardry blurb by Matt Finch of Mythmere Games:

If you can imagine it, you can do it in Swords & Wizardry. The rules are simple and quick to learn, and they are infinitely flexible and expandable. Take the basic framework and “Imagine the hell out of it!” [3]

I guess this one also works, but it’s a bit longer:

It’s our goal to rebuild an old approach to fantasy gaming; where imagination tends to replace rules, where rules are easily customized, and where there’s less “procedure” intruding on the fantasy. We’re supplying a toolkit for fantasy gaming, and what you do with it is up to you - there are no “official” answers, and no “official” procedures, and not even any “official” rules if you’re in the mood to tinker. You just take the game’s basic elements and then, as we say, “Imagine the hell out of it.” [4]

Wasn’t there a good quote by Rob Conley of Bat in the Attic making the rounds a while back? Something about the definition of old school gaming? Or was it A Definition of Sandbox Gaming… There’s also the EN World thread What is OSR about? Hm… Where was it…

Update: Rob helped me find what I was looking for in a comment. Thanks! :)

To me the Old School Renaissance is not about playing a particular set of rules in a particular way, the dungeon crawl. It about going back to the roots of our hobby and see what we could do differently. What avenues were not explored because of the commercial and personal interests of the game designers of the time. [5]

Tags: RSS RSS

Comments on 2010-06-23 Traditional Role-Playing Game Defined

To me the Old School Renaissance is not about playing a particular set of rules in a particular way, the dungeon crawl. It about going back to the roots of our hobby and see what we could do differently. What avenues were not explored because of the commercial and personal interests of the game designers of the time.

This what you looking for?

Robert Conley 2010-06-23 22:28 UTC


That’s the one! Thanks. :)

AlexSchroeder 2010-06-23 22:36 UTC

Add Comment

2010-06-24 Character Generation Shortcuts PDF

Last year I presented a little table with character backgrounds for the players of a Labyrinth Lord one-shot.

I’ve been feeling inspired and worked on it some more. It is now available as a PDF.

Attention conservation notice:

Should I expand the tables on the last page or are they good enough?

I’ve called the entries “subclasses” – ie. bandit is a subclass of fighter, hermit is a subclass of cleric. Theoretically it would be possible to provide real class abilities for them all. I’m not sure this is required, however. Instead, I might eventually add one or two spells for each wizard and cleric to cut character generation time down even more.

Tags: RSS RSS RSS RSS RSS RSS

Comments on 2010-06-24 Character Generation Shortcuts PDF

I love it! Very colourful, and it’s not “balanced”.

I will use this as a starting point and expand on it for my own group.

Tim 2010-06-25 04:34 UTC


Fantastic. Simple and evocative.

Harald Wagener 2010-06-25 09:14 UTC


Thanks! :)

As for “balance” – I guess if I wanted to be obsessive about it, I could check whether the average equipment cost was about the average starting gold you would get.

AlexSchroeder 2010-06-25 12:28 UTC


Don’t know if you still look back here, but I used this for some Swords and Wizardry games and my players love it. Very flavourful, very fun, and very quick to use. It helped get some of our brand new players right into the game and establish a character identity.

– Joe K 2013-06-18 01:40 UTC



AlexSchroeder
I always keep an eye on old posts. Thanks for the feedback! Knowing it helped at the table makes it all worth while. :)

AlexSchroeder 2013-06-18 18:38 UTC

Add Comment

2010-06-25 Compile Bitlbee UI-fix branch on Mac OS 10.4

Yeah, I know. Why the hell am I still using Mac OS 10.4 instead of upgrading – or moving to a Debian system? I dunno!

So I was trying to compile the ui-fix branch for BitlBee. It includes the killerbee branch, so it uses libpurple and all that.

I wasted a lot of time on this.

This is so sad.

The sun was shining, too.

I was unable to find something prepackaged for me. So I started to follow the instructions in DocBook XSL: The Complete Guide.

Installing the DocBook DTD – xmlto doesn’t use the latest one so I got version 4.2 – http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip and unpacked it. I wanted everything in /usr/local/share/xml so that’s what I did – sudo mv docbook-xml-4.2 /usr/local/share/xml

Installing the DocBook stylesheets – so now we need stylesheets to create the manpages. I got the following file: http://sourceforge.net/projects/docbook/files/docbook-xsl-ns/1.75.2/docbook-xsl-ns-1.75.2.tar.bz2/download and used sudo mv docbook-xsl-ns-1.75.2 /usr/local/share/xml

How to write an XML catalog file – next I needed to write the catalog for the minimum stuff I needed. I created a the file /usr/local/share/xml/docbook.cat with the following content:

<?xml version="1.0"?>
<catalog  xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
  <group  prefer="public"  xml:base="file:///usr/local/share/xml/" >
    <public
       publicId="-//OASIS//DTD DocBook XML V4.2//EN"
       uri="docbook-xml-4.2/docbookx.dtd"/>
    <rewriteURI
       uriStartString="http://docbook.sourceforge.net/release/xsl/current/"
       rewritePrefix="docbook-xsl-ns-1.75.2/" />
  </group>
</catalog>

I set the environment variable in my .bashrc: export XML_CATALOG_FILES=/usr/local/share/xml/docbook.cat.

And with that, make xmlto and make bitlbee worked!

Tags: RSS RSS RSS RSS RSS

Add Comment

2010-06-27 Docbook Mess

I was looking for an alternative to LaTeX. I recently learned how to setup DocBook. There’s a book explaining what DocBook is and how to use it; the old version of the book is available online. I also followed the instructions in the DocBook XSL book on how to install FOP, so in theory I had the entire tool chain to write an XML file, translate it to FO format using xsltproc and translating that to PDF format using fop.

It looked very ugly. I felt like going back to LaTeX – and that’s pretty ugly, too!

I found that by default, FO processors only know about Times Roman, Helvetica, and Courier by default. So I decided to try and get the article font switched to Garamond before continuing my delve into Docbook. I got followed the instructions on adding a font and wasted some time tracking down jar files that were not needed and tracking down a copy of the Garamond font I could embed. In the end I got it all working! I had an ugly document, but it was A4, two columns, had some bold, and some italic, and my name on it.

But I also felt that maybe – just maybe – LaTeX and OpenOffice were not such a bad ideas after all.

Maybe I should just stick to OpenOffice and focus on getting things done.

Technical Details

Makefile:

all: test.pdf

%.fo: %.xml Makefile
	xsltproc \
	--output $@ \
	--stringparam fop1.extensions 1 \
	--stringparam paper.type A4 \
	--stringparam column.count.body 2 \
	--stringparam body.font.family Garamond \
	/usr/local/share/xml/docbook-xsl/fo/docbook.xsl \
	$<

%.pdf: %.fo
	fop -c garamond.xml -fo $< -pdf $@

# Garamond
# curl http://garamond.org/font/urw/GaramondNo8.Files.txt | xargs wget

fonts: GaramondNo8-Ita.xml GaramondNo8-MedIta.xml GaramondNo8-Med.xml GaramondNo8-Reg.xml

GaramondNo8-%.xml: GaramondNo8-%.ttf
	java -cp "/usr/local/share/xml/fop/build/fop.jar:/usr/local/share/xml/fop/lib/commons-io-1.3.1.jar:/usr/local/share/xml/fop/lib/commons-logging-1.0.4.jar:/usr/local/share/xml/fop/lib/xmlgraphics-commons-1.3.1.jar" \
	org.apache.fop.fonts.apps.TTFReader \
	$< $@

/usr/local/share/xml/fop is a symlink to fop-0.95.

The garamond.xml I also had to write:

<fop version="1.0">
  <renderers>
    <renderer mime="application/pdf">
      <fonts>
	<font metrics-url="GaramondNo8-Ita.xml" kerning="yes" embed-url="GaramondNo8-Ita.ttf">
	  <font-triplet name="Garamond" style="italic" weight="normal"/>
	</font>
	<font metrics-url="GaramondNo8-Med.xml" kerning="yes" embed-url="GaramondNo8-Med.ttf">
	  <font-triplet name="Garamond" style="normal" weight="bold"/>
	</font>
	<font metrics-url="GaramondNo8-MedIta.xml" kerning="yes" embed-url="GaramondNo8-MedIta.ttf">
	  <font-triplet name="Garamond" style="italic" weight="bold"/>
	</font>
	<font metrics-url="GaramondNo8-Reg.xml" kerning="yes" embed-url="GaramondNo8-Reg.ttf">
	  <font-triplet name="Garamond" style="normal" weight="normal"/>
	</font>
      </fonts>
    </renderer>
  </renderers>
</fop>

I also got fop-hyph.jar from OFFO and I got jai_codec.jar and jai_core.jar from the Java Advanced Imaging Downloads. I copied all three into /usr/local/share/xml/fop/lib.

Uhm… That’s it, I think.

My test file:

<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<article>
<artheader>
  <title>My Article</title>
  <author><firstname>Alex</firstname>
  <surname>Schroeder</surname></author>
</artheader>
<sect1><title>Testing</title>
<para>This is an ordinary paragraph with some <emphasis role="bold">bold</emphasis>
and <emphasis>italic</emphasis> words.</para>
</sect1>
</article>

Oh, and this required the installation of the DocBook 4.5 XSL files and an entry in my catalog file. I got it from here: http://www.oasis-open.org/docbook/xml/4.5/ and followed my own instructions on how to update the catalog file.

All of this seems mighty complicated compared to just starting OpenOffice and writing a document or two. Sure, I don’t like working with it. But I don’t like working with all these arcane files and formats either. I can already see myself trying to get a title page or a little table just right in a three page document. It’ll never be worth my time. I’d be a gazillion times faster using Emacs and plain text! :)

Tags: RSS RSS RSS

Comments on 2010-06-27 Docbook Mess

Check out docutils and rst2pdf. And yes, as soon as images are in the mix, you may want to consider something with a UI.

Harald Wagener 2010-06-27 07:19 UTC


Rst is definitely a good idea for 90% of articles. Also, if you want to publish it online, check out Sphinx.

RadomirDopieralski 2010-06-27 12:54 UTC


Or have a look at a Wiki-based solution, for example Confluence+Scroll Wiki Exporter.

– Stefan Kleineikenscheidt 2010-06-28 15:54 UTC


Thanks for all the suggestions. I guess I just need to start producing a few small PDF documents for me to evaluate the various solutions.

AlexSchroeder 2010-06-28 23:45 UTC

Add Comment

2010-06-27 Gaming History

Many people seem to be posting their gaming history these days…

Back when I was about 12 we lived in Portugal and anything from Germany was “hot” and passed around in the community. My mother brought a boxed set of something she had gotten from friends: Das Schwarze Auge first edition aka. The Dark Eye. I was supposed to run it for her, the couple she had gotten it from, and their older foster children, if I remember this correctly. We played some classic modules until it fell apart. Scheduling problems? I can’t remember.

I had returned to Switzerland when I was 14, and when I switched schools around 15 I talked some friends into playing it again. We loved it and played it in a public room associated with our school. One of these guys still plays with me! On a school trip I discovered that the Canadian guy in our class played D&D – and I vaguely knew that this was related to what we were playing. We decided that AD&D 1st edition was cooler than this German game we were playing. We never played a single module, however. We figured they must all be lame.

That must have been 1989 and AD&D 2nd edition arrived in the stores. I saw no need for change. Already being conservative with my gaming, I see. The others bought the cool aid and the new books. We switched.

Then I left for Thailand, and by the time I returned two years later gaming had disappeared, life caught up… I bought some games that I never played. Amber Diceless, Paranoia, Gatecrasher (Fudge). I think we tried the GURPS quickstart rules, we tried DM-less pure-storytelling, a friend and I tried to write our own short rules, but nobody else wanted to play them.

Years passed.

In 2006 I decided I wanted to try gaming again. I think greywulf did it! He used my software and talked about the Rules Cyclopedia. I bought it online and discovered the PDF market. He wrote M20 and I started reading EN World. I learnt about D&D 3.5. I bought the rules. And I started gaming again! [1] [2] [3] [4]

Last year I think I started getting interested in the Old School Renaissance. But I had and still have a hard time finding players for it. My godchild, her siblings, and her father are playing a monthly Labyrinth Lord game with me. Nice! In my other campaigns we mostly play D&D 3.5. One campaign has moved to Pathfinder RPG. I’ve managed to arrange for a biweekly Indie game night. Yay!

I guess that’s it.

Thanks, Robin! :)

Tags: RSS

Comments on 2010-06-27 Gaming History

You’re very welcome!

greywulf 2010-06-27 21:52 UTC

Add Comment

2010-06-27 Kabelfernsehanschlüsse

Wohnungen sind nicht für WLAN ausgerüstet. Ab zwei diagonal entgegengesetzten Enden der Wohnung hat es Kabelanschluss, und wenn man dort die Basisstation hinstellt, hat man in der anderen Ecke keinen Empfang. Bei uns ist in der einen Ecke das Büro, in der anderen Ecke der Balkon. 😟

Tags: RSS

Comments on 2010-06-27 Kabelfernsehanschlüsse

Ich empfehle von der Balkonseite aus 10m Ethernet und die Basisstation auf das Bücherregal zu stellen.

– Harald Wagener 2010-06-27 16:58 UTC


Habe ich versucht und hat nicht bis zum Mac Mini im Büro gereicht. Habe jetzt im Büro die Basisstation zur Türe hin verschoben und das geht gerade noch bis ins Wohnzimmer aber nicht bis zum Balkon. Mal schauen!

AlexSchroeder 2010-06-27 18:10 UTC

Add Comment

2010-06-27 Pathfinder Is For Wusses

Today we played some Pathfinder RPG. I laughed when two of our characters failed their massive damage rolls with a natural 1 and everything seemed to point to a narrow escape by the sorceress and maybe the rogue. But using a contingency spell she was able to get everybody out in a single round, and we got teleported to back to a temple, raised, restored, teleported back “a few days later” and just continued the same fight, with no penalties what so ever, no levels lost. In fact, with all our hit points restored and all our spells back.

That felt a bit cheap. Apparently Pathfinder RPG has even less penalties for getting raised than D&D 3.5 had – namely none. I still remember the days where getting raised cost you a point of Constitution. And in my D&D 3.5 game people still loose levels. I think that without the pain, there is no tragedy, no moaning over “meaningless” death, no fear – things I need in my D&D for me to enjoy it. As we say in German: Viel Feind, viel Ehr’! “Many enemies, lots of honor!” Something was lost when practically all the pain got removed. Negative levels are only temporary. Essentially that sets us up for a total party kill. Any interesting and challenging situation will now have to threaten a TPK in order to put fear back into the experience.

I also remember playing a paladin once that rolled a 1 for hit points gained as she leveled up. The DM had me roll again. “What?” I thought. That’s cheap! If the dice want me to play a low hit point paladin, so be it. I accept the challenge. But everybody at the table was expecting me to reroll. And I got another one. And another. And a fourth. And a fifth! I laughed so hard I cried. I got more hit points on the last roll, but the dice had certainly made it clear that they wanted Rhysalis Eina to have below average hit points!

The adventure we played, by the way, was very enjoyable: It was the old Dungeon Crawl Classic about sphinxes for level 14 and 15 characters, Lost Tomb of the Sphinx Queen. I liked it! Riddles, fights, playing smartly. The labyrinth was a bit too big, and the two last fights at the end too long. If you ever run it, try eliminating the “daughter” encounter. And think about the rules you’re going to use. Will they be for wusses? ;)

Tags: RSS RSS RSS

Comments on 2010-06-27 Pathfinder Is For Wusses

Dude…AD&D. Come back home….

Joethelawyer 2010-06-27 03:12 UTC


Well, that Pathfinder campaign may be but I would not blame the rule set for the game the GM wants to run and, presumably, most of the players want to play. I run PF but ‘return to life’ magic is nearly unobtainable (and teleportation is extremely restricted) and my players are cool with that. If you want a down and dirty game, convince the group you are playing with it will be more fun than one filled with cheap victories.

Sean Holland 2010-06-27 13:48 UTC


@Sean Holland

I run 3.5/PF the same way. Ressurection is nearly impossible and teleportation magic is severely restricted. And my players have always been happy.

Nice to know I’m not alone in that…

Rhetorical Gamer 2010-06-27 16:42 UTC


Nothing good and worthy comes easy, and this goes for RPGs too.

Tim 2010-06-27 19:36 UTC


Do people just play with their friends and try to find a compromise that works for everybody over the years or do people start picking and choosing with whom to play after some years in order to play with people that are on the same page with respect to many such issues? All this social contract stuff – it’s not enough to just say “this is how we play” if that’s not what everybody really wants. We have to bring everybody to the same page, first.

Well, all these thoughts are cruising through my head as I think through the campaign feedback I got in the last few days and some people have suggested moving from D&D 3.5 to Pathfinder RPG where as I would love to move from D&D 3.5 to Labyrinth Lord.

AlexSchroeder 2010-06-27 19:53 UTC


Awww … c’mon now. To each their own - I fully support everyone having their own preferences - but Pathfinder isn’t in the Old School paradigm. It’s throughly New School / D&D from a PCs have some Awesome from Day 1. I don’t think that’s for wusses - it’s for people who enjoy a more heroic vs. hard scrabble bend. Measured from the same yardstick - sure, it’s a lot softer on PCs.

Brian 2010-06-28 20:13 UTC


To each their own – oh absolutely. :)

I just have to articulate stuff in writing every now and then in order to think stuff through. What exactly did I dislike? Was it the adventure? Was I tired? Was it the DM’s call? Was it the rules? I decided it was a difference in what play experience the rules afford (invite, encourage) and my own thoughts on the nature of heroism (against all odds, futility, tragedy, hard toil). Once this difference is identified we can talk about solutions – house rules. But those also depend on the rest of the group which leads to thoughts on social contract, play experience expectations, and how to handle differences at the table. There’s still food for thought for me in this subject.

As for the adventure itself, I see that DM Adrian wrote a Lost Tomb of the Sphinx Queen Review. Thanks!

AlexSchroeder 2010-06-28 23:31 UTC

Add Comment

2010-06-29 Indie Campaigns

I really wanted to like Polaris after listening to Canon Puncture 89: Game Advocates – Polaris, but it fell a bit flat at the table. I would have liked to see more free roleplay, and more epic tragedy, but somehow the magic didn’t happen. The other players have scheduled a second session a few weeks from now, but I’m not so sure whether I want to join. For the moment Harald has lent me his Polaris book, and I’ll have a read through the book.

Regarding that Canon Puncture link above… That’s an RPG Podcast with Indie game focus I really recommend.

In their own words:

“Game Advocates is a miniseries of interviews about a single game, not with the game designers but with people who have thoroughly played the game. In Game Advocates, we ask about how the game plays, what’s fun about it and what players enjoy about it. We also chat about possible pitfalls for new players.”

At the end of the Polaris session Harald, Lior, and I were talking about our plans and I mentioned that I was starting to see the end of the line of Indie game one-shots for me. It was an excellent opportunity to quickly play through a lot of games that are being talked about online, and that was good. I was also looking for a new game to play for a longer time, and testing various systems is going to help me make an informed decision. Unfortunately that also limits my interest in games that cannot be played long-term. My Life With Master, Mountain Witch – I guess not.

Twelve hours later, I’m listening to Podcasts and as luck would have it, Canon Puncture is talking about using Indie games for longer campaigns! Canon Puncture 96: Indie Campaign Games. I agree with the suggestions of Burning Wheel, Dogs in the Vinyard, and The Shadow of Yesterday. We haven’t played Prime Time Adventures, yet.

I’m still bummed that my Burning Wheel / Blossoms are Falling one-shot didn’t work out. I still want to like the game! Perhaps if I just started a campaign and pushed! … Irrational, I know. braindamaged

What I’m really afraid of is contracting Gamer ADD. :)

For more on that topic, I recommend the following recent blog posts:

I think that’s key. Deciding on six sessions in my Burning Wheel Campaign:Krythos game worked but at the same time it made clear that we were not serious about the game, that we were just trying to experience some of it instead of making it our own.

I don’t mind a campaign folding after half a year, but I fear the encouragement of Gamer ADD.

Tags: RSS RSS

Comments on 2010-06-29 Indie Campaigns

Gamer ADD – I like that term and it resonates somewhat. I feel I like the Traveller game – it may be moving slowly, but it’s moving and ongoing for about a year now. IMHO, there’s no reason to stop it. Change characters? Find another focus? Sure, why not. But that wouldn’t be the end of the Traveller game.

Harald Wagener 2010-06-29 11:51 UTC


I’ve read the Polaris rules by now. I still want to like it. :)

  • I think the play experience involves a lot more free play.
  • Perhaps we tried getting to a conflict to soon, too quickly. There are few or no examples of free play in the book because those don’t require rules, but that doesn’t mean that the scene opens with a conflict.
  • Players proposing scenes as soon as the previous scene ends instead of us going in a circle helps to keep the camera on the threads that matter.
  • Using less protagonists as suggested for a first game would have helped where we got confused by the disjoin story-lines.
  • Not sure whether having a one-sentence plan per protagonist would have helped from a story-telling perspective before delving into the minutiae. As it was, I felt the disjointed fragments didn’t deliver a good story. Then again, that takes away a bit of the surprise element.

AlexSchroeder 2010-06-29 15:42 UTC


Alex, thanks for the kind words about Canon Puncture. I agree that Gamer ADD can creep up on you when you have so much you can choose and such limited time to play.

Rich Rogers 2010-06-30 13:01 UTC

Add Comment

2010-06-30 LaTeX vs. Docbook

I installed both a Docbook and a LaTeX tool chain on my laptop recently. I’ve used LaTeX for my thesis – nearly fifteen years ago. I remember forgetting more and more about it in the years that followed until I finally decided that it was just easier to write stuff on a wiki, work on the CSS stylesheet, and print to PDF if required. I got curious again and decided to make an experiment:

  1. Using my own wiki – which I like because I use it every day and know how to change it
  2. Open Office – which I don’t like because it’s user interface is very similar to Microsoft Word
  3. Docbook – which I don’t like because I need to write XML which is verbose and ugly
  4. LaTeX – which I don’t like because it’s arcane and by the time I need it again I have forgotten 90% of everything

Here’s how it went: I quickly wrote up some stuff using my wiki. Getting it ready for the web took a few minutes, maybe half an hour of fiddling with CSS; I’m assuming I can just keep this CSS for the next time I need to convert one of my wiki pages to PDF. On the other hand, there are many things it doesn’t do: hyphenation, orphan protection when paginating, quick and easy floating boxes and images (it always needs a lot of CSS fiddling).

Using Open Office, things went just as quickly. I’m not sure I’ll be able to reproduce the exact output when I look at making my next PDF file, but it was more or less intuitive. Installing and using the Behrens-Schrift font by Dieter Steffman was trivial. The file doesn’t use quite the same font and it’s landscape instead of portrait, but my conclusions are – I hope – independent of these small differences.

Docbook was a pain to setup, but at least there were some books available online. It turns out that the one book that explains all the tags is a dry technical reference that is practically unusable when you’re starting out. When I looked at the output, I realized how tricky it was to fiddle with it. The large table at the beginning needs some more space between the cells, the four smaller tables need to be more compact. I found XSLT fragments that allowed me to set the padding for all tables, but didn’t figure out how to do this for one table only. If you look at the source file (which I edited with nXML Mode and Emacs), you’ll note that looking at the table markup is a pain. I wasn’t sure how to have two columns or floating tables for the four compact tables, so I nested tables. The markup got a lot worse. The output looks good, so that’s a plus.

LaTeX was easy to setup because my GNU/Linux distro already comes with excellent packages. LaTeX documentation for beginners, however, is hard to find. Where do I learn about the basics? I see that the texlive-doc-en package has a “gentle” document somewhere. Maybe someday! I fell back to my “LaTeX Einführung Band 1” by Helmut Kopka – the second printing, 1996 – it has a price in Deutsche Mark instead of Euros, that’s how old it is. I was surprised to see how ugly the table turned out, and I have no idea on how to improve that. The source doesn’t look too hot either. Very cryptic. (I edited it using AUCTeX and Emacs.)

Conclusion?

I will be using Open Office! attention

It hurts my markup sensibilities, but if I want to get stuff done, I can’t waste it on Docbook and LaTeX. :(

Update: I returned to rst2pdf again and tried it. It took me quite a while to get the font importing right. But I think it finally worked! The command used: rst2pdf chargen.rst -s style.json --font-path ~/.fonts (the font-path is where I installed the fonts I got from elsewhere).

Suddenly I’m no longer sure. ReST seems quite a viable solution. And I’ve started playing around with the style sheet… Not bad! The only question I could not answer was how to center the first column of my tables.

Update: I’ve returned to LaTeX in 2013.

Tags: RSS RSS RSS

Comments on 2010-06-30 LaTeX vs. Docbook

Have you tried txt2tags? It’s easily my favourite light text formatting system and converts cleanly to pretty much everything including LaTeX, html and MediaWiki. This makes it an ideal “write once, publish anywhere” format.

To create a .pdf, use

 txt2tags -t lout file.t2t
 lout -Z file.lout > file.pdf

Easy!

greywulf 2010-06-30 17:50 UTC


Surprising verdict. I thought for sure you’d go Wiki. At least you were impartial: Seems you’ve consistently held a strong bias against OO.org and it still won the shootout.

AaronHawley 2010-06-30 19:50 UTC


As for txt2tags and similar formats: I suspect that they won’t do for the kind of documents I’d like to typeset – it’s a wiki-markup but not quite. Lightweight markup languages like Markdown, Textile, or Creole still have no hyphenation and final layout happens in a target environment like HTML/CSS or LaTeX – while that solves the hyphenation issue it just returns me to the issues I have with LaTeX itself: If I want to fiddle with it, create new document classes, new styles, understand images, positioning, pagination, table formatting, then I have to understand the arcane intricacies of TeX. Given that choice, I think I’d rather use my own wiki for these situations.

AlexSchroeder 2010-06-30 22:40 UTC


The canonical beginner text to LaTeX is the (Not So) Short Introduction to LaTeX. Though I have found TUGIndia’s LaTeX primer very useful. LaTeX does have a bunch of neat packages that sort of bring it into mainstream typesetting (as opposed to academic publications). TeXlive has made it easier to manage various packages. But to overrule LaTeX’s idea of what is right demands you to get your hands really dirty.

Personally, I just type in org-mode and publish in HTML or PDF (via LaTeX).

Have fun with Openoffice. Damn thing needed Java for macros when I last used it.

AlokSingh 2010-07-01 03:03 UTC


Ever considered using something like LyX? I wrote my diploma thesis with that one the results were really impressive. Its still LaTeX in the end so I dont know if the table would look better but you at least dont have to remember any cryptic tags and whatnot…

– Florian 2010-07-01 07:12 UTC


I’m trying to reformat this LaTeX document… This could be an interesting alternative. But after searching for quite a while I was unable to pick an arbitrary font for the title, for example. I guess that makes sense given that LaTeX requires some setup before new fonts become usable to the system.

I decided to give rst2pdf another try. Emacs comes with Table Mode which allows me to edit rst grid tables. It doesn’t look bad at all! So now I wanted to try to font embedding. I have trouble understanding the rst2pdf stylesheet. The following no longer produces errors, but appears to have no effect. :(

{
    "embeddedFonts" : ["Blackwood Castle"],
    "heading1" : { 
            "parent": "normal", 
            "fontName": "Blackwood Castle", 
            "fontSize": 18, 
            "keepWithNext": true, 
            "spaceAfter": 6 
            }
    }

The manual provides the following as an example: ["heading1" , { ... }] which results in an “non-string key” error. I noticed I didn’t have fc-match available and reinstalled fontconfig on this Mac OS 10.4 – which now results in a different error. Whenever the stylesheet contains the embeddedFonts directive, I get the error “findfonts.py:317 Error registering font: VeraBd from /usr/X11R6/lib/X11/fonts/TTF/VeraBd.ttf” – ugh. And of course my fonts are not in the X11 directory… Maybe I’ll try that again on my laptop running Ubuntu.

AlexSchroeder 2010-07-02 09:00 UTC


Brad Murray aka @bradjmurray said on Twitter:

@kensanata I discovered that what I am really doing when trying to select a technology is avoiding writing because tech is fun. :D Pick one.

The time I wasted proves him right! :)

AlexSchroeder 2010-07-02 11:41 UTC


Updated the main article with rst2pdf results…

AlexSchroeder 2010-07-04 03:24 UTC


This is definitely not the right way to deal with DocBook. The point of DocBook is to deal with it using some IDE that helps you as you go along. I am pretty sure Emacs already has an extension to help deal with DocBook markup.

In some sense, if you have trouble with LaTeX/DocBook, the problem is with you. LaTeX, which I am versed in, is very much about helping the user, the terseness of which is because it is in high demand. It is appalling that you had difficulty finding good documentation for it, since it is one of the best documented stuff out there on the web. Of course, if you use them so rarely as to forget about them, it is understandable that you would fallback upon wiki/OO.o.

Please do repeat your experiment – it is really important to understand the differences between LaTeX/DocBook when proficient.

– burning, 2010-11-20 18:02 UTC


So what IDE is recommended for DocBook?

PierreGaston 2010-11-22 07:12 UTC



AlexSchroeder
Next time I should look at markdown + pandoc.

AlexSchroeder 2014-06-23 08:29 UTC

Add Comment

2010-06 Book Club

What: Atomised by Michel Houellebecq

When: June 23

Where: Movie

A french book from a very well known french author, touted to be a cult-book. This is a (shortened) amazon review which matches the review I just got at lunch time: This is a difficult book but a necessary one and, I have no hesitation in now saying, a brilliant one. The book is full of some extraordinary ideas and incisive commentary on humanity in the late 20th century, especially that of European society. The ending--it goes into (very plausible) hard science fiction territory--the erudition of the writer, his eye for detail, and his twin obsessions of sex and violence, and his ability to be brave enough to write what he sees without any thought for political correctness or any of the other sops of the liberal left, is breathtaking and his racism, makes this book essential reading especially after the tragic events of 9/11 and those in London on 7/7 and after. This book has more important and accurate things to say about the human condition of contemporary European man than any number of the dry academic essays on sociology and anthroplogy you can care to read. Understand Houllebecq and you understand what people nowadays really care about and think. I don’t think I’d like the man but to ignore him and what he is saying would be to do so at our own peril. I haven’t read a book full of such big and radical ideas for a long time.

Also on Wikipedia: Michel Houellebecq,  Atomised.

Tags: BookClub

Add Comment

Define external redirect: TeXlive NxmlMode BitlBee AUCTeX PierreGaston MediaWiki SlimeMode RobertsonGames