Community Wiki

May 17, 2013

Alex Schroeder

Pendragon RPG

http://farm9.staticflickr.com/8413/8746075723_1d6720b08a_o.jpg

Recently Joshua Petronis-Akins asked in the Pendragon RPG Google+ community: Could anyone sell me on Pendragon? What makes it cool?

Coming from a D&D background, this is what made us want to play Pendragon RPG and The Great Pendragon Campaign:

  • a multi-generation campaign—play your knights, their sons, and their grandsons
  • the annual cycle—every session is about the adventures during the summer and the “levelling up” in winter
  • personality traits—knights have multiple traits that come in opposing pairs such as just vs. arbitrary and usually whenever you increase one, the other decreases; these traits sometimes get used to determine what the character does in spite of what the player might wish

I really like the combat system: your skill is a number; roll below this number to succeed, roll the exact number to succeed critically. In a round, there is no need to roll for initiative. It’s all opposed checks. If you want to fight multiple opponents, you must split your skill between all your opponents and roll for each one. This is devastating. If you hit, roll damage. The opponent checks whether this value is higher than their knockback stat. If so, succeed at a horsemanship test or fall off the horse. Armor reduces damage. You can further reduce damage using a shield, but only if you had a “partial success”—only if you succeeded in your check but lost against an opponent who succeeded with a higher roll.

Critical hits count as 20. If your skill rises above 20, just add that much to your roll. If your skill is 23, you roll 1d20+3. Thus, your crit range in effect is 17–20.

It’s interesting, it’s different, and it still works.

Our campaign is still in the Anarchy period.

There’s a German campaign wiki, if you want to take a look: Ritter von Salisbury.

Things we’re not that much into:

  • the resources game—gaining manors, building fortifications, hiring men, the minutiae of earning your taxes, paying for upkeep
  • the family events—we switched from the table in the rulebook to Telecanter’s Dramarama (with a few changes once we discovered that too many of our relatives kept eloping with butchers and tax men)

I bought the books in 2011 from RPG Now, and they’re still doing fine:

http://farm9.staticflickr.com/8231/8539404868_eaab402d46_n.jpg http://farm9.staticflickr.com/8244/8539409258_dd5be18586_n.jpg http://farm9.staticflickr.com/8101/8538296923_732dc0d2d7_n.jpg

May 17, 2013 07:25 AM

May 15, 2013

Alex Schroeder

Treasure Hunting In Niflheim

http://farm8.staticflickr.com/7282/8739860841_54fe5d2a6a.jpg

The party had just finished The Eternal Boundary and had found a treasure map that would lead them into The Gray Waste. I prepared a very linear adventure that you can see on the on the right. I decided that the map represented an incomplete list of dangers to be overcome:

  • near the roots of Yggrasil sleeps the dragon Níðhöggr…
  • in the woods the “children” of Hekate roam freely, the trolls of Niflheim (I’m claiming that Hel and Hekate are the same)
  • there are big, flightless birds in the swamps with big hands instead of wings and they are called Diakka…
  • there is a plain where nightmares ride, the mighty horses of black riders…
  • the larval petitioners live in the sea of fog…
  • the island of the black trees is the realm of a ghoul-witch

I also had a number of NPCs in mind:

  • Njal, a priest and a drinker and a melancholy man who would act as a guide, if they wanted to pursue their connections with priestess Anja of the Freya temple
  • Raud, another priest and a gloomy, apathetic victim of Hades, who can provide them with information about Hades and who’ll offer to lead them to Hopelessness and through its gate to Hades (but this is a false lead since this gate will lead to the upper layer called Oinos where the Blood War rages)
  • Lissandra “gate-seeker” will contact them if they brag about the portal they know; she is described in Uncaged: Faces of Sigil; she can lead them to Alluvias Ruskin (in the same book) who will sell them “the holy axe with the wooden root-grip of wisdom” which will be required to travel to Niflheim via Yggdrasil

This was the first challenge: figure out whom to trust and discover through questions that Raud would lead them to the wrong layer on Hades since Oinos ≠ Niflheim. This was also the opportunity for them to learn about the apathy of Hades. One player expertly decided to spend 100gp on books with jokes, fart machines and other ludicrous things to drive away apathy and despair.

They don’t contact Njal but they do talk to Raud and end up going with Lissandra. They made such a good impression on her, in fact, that she decides to tell them about a merchant called Kherion Mallibrun (described in the section about Death of Innocence in the Planes of Conflic box). In return, he wants them to protect him from Hekate’s trolls.

This was the second challenge: take along a guide and avoid fighting rock pythons and giant squirrels on the branches of Yggdrasil.

The dragon is easy: the third challenge is simply to be quiet. The cleric is prepared and casts silence. No problem.

The woods and trolls present the fourth challenge: unbeknownst to the players, I had decided that the forest houses both wolves and trolls. Even though the party was silenced, the wolves had picked up their scent and the trolls were following the wolves. One player who plays a character that can fly decided to take a listen and fly overhead. He soon discovers the wolves and using the fillings of a little rocket full of itching powder they disable the wolves’ scent ability and the flying character distracts and enrages the trolls until they break off the chase.

In the village, they see that the merchant is selling colorful textiles and the fifth challenge is finding a guide to the island. They discover that there is a hunter of nightmares who will lead them in exchange for the funny articles one of the characters had bought. This part was all improvised but it worked well.

He warns them of the giant, flightless birds. Luckily they are slow. The party buys horses for the three characters in plate armor and can thus outrun the the sixth challenge, the Diakka birds.

I had thought that the nightmares would be the next challenge but at the table I suddenly felt strange using the nightmares as predators. As I had seen one of the players get really excited about the prospect of catching and taming a nightmare, I decided that the seventh challenge would be the temptation of catching a nightmare. The party would have to start a fight. And they didn’t…

The eight challenge had not been listed on the “treasure map”: flying yeth hounds. The party moved away from their baying (it’s effect only works within 100 ft.) and decided to avoid the dogs. It worked.

At the edge of the sea of fog, they left their guide who, when asked, said that all they had to do was ignore the larva. And they did. No talking, no eye contact, no listening. Again, the party used silence to bypass the ninth challenge. It worked.

Finally, they reached the witch, the tenth challenge. I decided to use witches from the Shark Den section of the Caverns of Slime, Vialashta and Kurmatesha, the four lesser witches, the tengu horn, and my own treasure I had rolled up. As you can see, I had prepared a different night hag in my notes (including a 65% magic resistance)… Oh well. There was a lot of talking, bluffing and haggling involved, a short discussion on the merits of both Odin and Hekate, but in the end, the orc witch has charmed the talking character and disappeared into the tent and the fight was on.

The party consisted of a cleric 5, a fighter 4, an elf 2, and some henchmen: two giant apes, a cleric 4, a fighter 2, and a magic-user 1.

The enemies:

  • Vialashta, the one-eyed crow priestess of the orcs (HD 9; AC 8; Atk 1 orcish hammer (1d6); MV 9; curse at will, roll d6: 1. slowed, 2. blind, 3. stupid like an ox, 4. weak as a baby, 5. contract the plague, 6. crippling pain; save vs. spells to avoid)
  • her four witches (HD 5; AC 8; Atk 1 cudgel (1d6); MV 9; curse 3×/day as above)
  • Kurmatesha, the orc witch (HD 9; AC 9; Atk 1 staff (1d6); MV 9; spells as per her spellbook below); she has the horn of the mountain cedar which summons twelve tengu once per day: crow-headed, flying swordsmen (HD 5; AC 7; Atk 1 two handed glass swords (2d6); MV 9 fly); if attacked she will polymorph into a shadow wolf (HD 9; AC 7; Atk 1 bite (2d6); MV 12; howl of pain (anybody touching the ground within 60 ft. must save vs. petrification or be stunned for a round and save vs. death or suffer 1d6 damage from bleeding ears)
  • the hanging tree (HD 15; AC 3; Atk 8 branches and roots (1d6 each); MV 0); the branches of the hanging tree are loaded with twitching corpses: twelve armless ghouls are hanging up there, unable to free themselves (HD 2; AC 9; Atk 1 bite (1d6); MV 12)

Kurmatesha is reduced to less than 10 hit-points in two rounds. She, in turn, blows the horn and summons the tengus, then polymorphs into a shadow wolf. The party then kills her and have a quick chat with the tengu. They want the horn (and their freedom), but one character is close enough to the horn to blow it again, at which point I decide that the tengu are all dispelled.

The second half of the battle is a running battle as the witches are standing under the hanging tree, cursing all that approach. With a desperate rush, a character delivers the arrow that has silence cast on it to the witches. The witches start releasing ghouls but they are being turned as fast as they are being released. Finally, when the crow witch Vialashta is finally held using magic, the remaining lesser witches flee into the sea of fog.

The witch tells them that the hanging tree is guarding the treasure and since they stocked up on oil and hadn’t used any of it, I decided that burning a 15 HD tree required 15 flasks of oil—and having bought 20 flasks of oil without having to use them against the trolls, that was no problem at all…

  • 20’000 gold pieces
  • 10 gems worth 1980 gold pieces (1000, 10, 50, 10, 10, 500, 100, 100, 50, 100)
  • two pieces of jewelry (“the crown and sceptre of the Ulfides”)
  • a halfling chain +1 and a small shield +1 (“the magic armor of a halfling hero with the heraldry of the Oxwrestler clan”)
  • the horn of the mountain cedar (I already fear that this item might be too powerful!)

Tags: RSS RSS RSS

May 15, 2013 09:29 AM

May 14, 2013

Alex Schroeder

Scrobbling Fail

Ever since I stopped listening to music on iTunes, scrobbling is absolutely broken. I listen to music on at least three different Apple devices, sync them with iTunes every now and then, checked “Enable iPod submissions” using playlist “zuletzt gespielt” which is defined as matching both of these rules: “last played in the last 3 months” and “media kind is not podcast” with live updating. I listen to music practically constantly. If you check my profile, you’ll note huge gaps everywhere. Why is that? Are the devices “overwriting” each other? iScrobbler says 586 items queued. Ok… All I’m seeing is two new items. :(

Update: Apparently I'm an idiot. It just takes a long time (a day?) to process the tracks submitted. Yikes, sorry for the bad press, iScrobbler!

http://farm8.staticflickr.com/7286/8738643028_80349f0e2e_o.png

That’s a lot of titles…

You’ll notice that The Beatles have made a big comeback in 2013. :)

2013

http://farm8.staticflickr.com/7282/8737525023_225628fc02_o.png

2012

http://farm8.staticflickr.com/7281/8737525275_9d48546b9d_o.png

Update: Apparently there's another abandoned scrobbler… ScrobblePod.

Tags: RSS

May 14, 2013 02:13 PM

When To Roll

Recently I left a comment on Philip Watson's thread on Google+ where he wondered whether players should know when their thief failed to hide. I said:

I let them roll in the open but will delay the roll until immediate consequences are at hand. Player says their character is hiding, no roll required. Orcs are coming. Now you roll—and if you fail, they spot you.

Consequences happen right after the result of the die roll is known. As a referee, I have have no “information advantage” and thus the question of unfairness doesn’t come up.

I was reminded of Courtney Campbell’s blog post On Skill Deconstruction: Why Roll for Resolution? He lists five reasons for rolling dice.

  1. time constraints
  2. in conflict with another entity
  3. a serious consequence for failure
  4. impossible to model at the table
  5. (partial results can make the procedure more exciting)

I’m trying to have thieves succeed automatically whenever possible. I’m going to opt for dice rolling when the conditions listed above are true. If the dungeon has wandering monsters, each failed roll to open a door or unlock a chest means one check for wandering monsters. If there are no monsters, we don’t need to know how long the thief takes to unlock the chest. It will succeed eventually.

Tags: RSS

May 14, 2013 01:25 PM

May 13, 2013

Alex Schroeder

Other Favorite Entries

http://farm8.staticflickr.com/7294/8733961353_32f503d211_n.jpg

I just posted my nominations for the One Page Dungeon Contest 2013. I also liked the following entries.

I saw Roger the GS’ recommendations the other day. What about your favorites?

Tags: RSS RSS

May 13, 2013 10:07 AM

My One Page Dungeon Contest Nominations

http://farm8.staticflickr.com/7318/8735009164_dbb6eb8e7c_n.jpg

I’ve finished reading the submissions to the One Page Dungeon Contest 2013. As always, an interesting mix of styles. Less tombs than in previous years. The ever popular “get into the dungeon and trigger a trap” is there. Bandits, undead, but no pirates! This year’s popular rare monster must have been the gibbernig mouther. It showed up in three submissions. :)

Gibbering Mouthers:

I wanted to comment on my nominations for the contest winners. I’ve done this before (2010, 2011, 2012). Writing it all down helps me think it through.

  • Daniel O'Donnell, Down Among the Dead Men: beautiful map; lovely visuals such as a well surmounted by the jaws of a giant shark or acolytes on stilts “tending” the undead in the water. It’s gruesome. It stands on its own and can be placed in my campaign.
  • Gus L., The Brittlestone Parapets: a lovely amalgam of trench warfare, undead soldiers, Beowulf, D&D as an implied post-apocalyptic setting; and it comes with an inspiring map, an interesting list of random encounters, the witch comes with the list of spells prepared, one faction can be hired for a few weeks. It’s fascinating. It stands on its own and can be placed in my campaign.
  • Jobe Bittman, Into The Demon Idol: an iconic image, a beautiful map, the giant grab pincer. Best of all: the option of reanimating it! A potential long-term change for your campaign. It’s tempting. It stands on its own and can be placed in my campaign.
  • Misha Favorov, Court of the King of No Men: a map that allows multiple approaches; the most important notes are on the map itself. That’s what I love! The two simple magic items are interesting without being overengineered: a sword dealing wounds that heal within 24h, a hammer that can be thrown once a day, a rod that allows you to control the movement of an opponent (but nothing else). It’s sylvan. It stands on its own and can be placed in my campaign.
  • Paul Gorman, Faery Ring to Alpha Ari: not the only adventure using myconids and various fungus effects, but what I liked in particular was the strange mix of fantasy and present day space exploration; the observatory and the tiny island on the one hand and a map that looks appropriate for a Mars colony. I also like how enemies come in all sizes from pixies to giant. I’m not sure it would simply fit into my campaign.
  • Ramsey Hong, Something Happened At The Temple Near Glourm: a beautiful map with village and five dungeon levels; multiple stairs and entrances; notes on the map itself. This dungeon is beautiful. It’s terrifying. It stands on its own and can be placed in my campaign.
  • Rob S, Citadel of the Severed Hand: another beautiful map with notes on the map itself; it also features myconids and “shroom effects”. The part I like is the tragic figure of the orc boss with his staghelm who hates the torturer demon because she has his son in her power. The entire setup with the two slaves is genious. It’s evil. It stands on its own and can be placed in my campaign.
  • Roger SG Sorolla, Devil's Acre: when I first read about it on the author’s blog I thought that it was an interesting take on the complex of sin, vigil, prayer, temptation, saint and devils, and all of that in a D&D context. My campaign hasn’t featured these topics, however, so I’m not sure how well it would work for me.
  • S. J. Harris, The Baleful Spring: a small tower always comes in handy. This one has a tower with an evil master and a ship with a neutral captain. I like the framing story: two diplomats trying to secure a peace accord have gone missing. It’s nothing fancy with a functional map. It’s useful. It stands on its own and can be placed in my campaign.
  • Simon Forster, Church of Consumption: a beatiful map; another cult trying to raise a demon. Unfortunately it’s very linear. Strangely enough it appears to be open on both ends with major treasure sitting right next to one of the two entrances. But… it’s so beautiful. And I love the imagery of the cultists eating their dead god, the meat grinder, the ghouls dreaming about eating the same dead god, one day… It’s gruesome. It stands on its own and can be placed in my campaign.

The One Page Dungeon Contest is just so damn useful it amazes me every year.

Tags: RSS RSS

May 13, 2013 09:18 AM

May 08, 2013

Alex Schroeder

Distributing XP With Emacs

This topic ties together two topics that probably don’t see too much overlap.

  1. I play role-playing games of the D&D old school variety.
  2. I use Emacs to help me do simple stuff on a daily basis.

The problem: the party of characters my players run is huge. Even if there are usually only around ten characters that are part of a single session, there are more than thirty primary and secondary characters on the status page. Given the wiki table for the status page, how can I quickly add up the correct XP and gold values? Any XP gained is shared equally amongst the characters that took part in the session but any gold gained is distributed according to each characters share. Primary characters get a full share, secondary characters get a third of a share.

I used Emacs widget mode to create a page like this:

XP total:   805          
Gold total: 7191         
[X] Schalk
[ ] Uluf
[ ] Witschik
[X] Schachtmann
[ ] Sirius
[X] Logard
[X] Arnd
[X] Tinaya
[ ] Pyrula
[ ] Pijo
[ ] Garo
[X] Zeta
[ ] Pipo
[X] Fusstritt
[ ] Thor
[ ] Jack
[ ] Gloria
[ ] Hermann
[ ] Urs
[ ] Alpha
[ ] Beta
[ ] Gamma
[ ] Boden
[ ] Basel
[ ] Bern
[X] Nuschka
[ ] Moranor
[ ] Axirios Hectaxius

[Go!]

And here’s the code to do it:

(defconst fünf-winde-regexp "^\\(|\\[\\[\\(.*?\\)\\]\\][ \t]*|[ \t]*\\(1\\|1/3\\)[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)|\\([ \t]*[0-9]+[ \t]*\\)"
  "Regular expression to parse the Status page.
\(let ((str (match-string 1))
      (name (match-string 2))
      (share (match-string 3))
      (xp (match-string 4))
      (gold (match-string 5)))
    ...\)")

(defvar fünf-winde-buf nil
  "Source buffer.")

(defvar fünf-winde-xp nil
  "XP share.")

(defvar fünf-winde-gold nil
  "Gold share.")

(defvar fünf-winde-party nil
  "Charakters in the party.")

(defun fünf-winde-xp-and-gold ()
  "Hand out Gold and XP."
  (interactive)
  (let ((buf (current-buffer))
	(names))
    (save-excursion
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(setq names (cons (match-string 2) names))))
    (switch-to-buffer "*Fünf Winde*")
    (kill-all-local-variables)
    (set (make-local-variable 'fünf-winde-buf) buf)
    (make-local-variable 'fünf-winde-xp)
    (make-local-variable 'fünf-winde-gold)
    (make-local-variable 'fünf-winde-party)
    (let ((inhibit-read-only t))
      (erase-buffer))
    (remove-overlays)
    (setq fünf-winde-xp
	  (widget-create 'integer
			 :size 13
			 :format "XP total:   %v\n"
			 0))
    (setq fünf-winde-gold
	  (widget-create 'integer
			 :size 13
			 :format "Gold total: %v\n"
			 0))
    (setq fünf-winde-party
	  (apply 'widget-create 'checklist
		 (mapcar (lambda (name)
			   `(item ,name))
			 (nreverse names))))
    (widget-insert "\n")
    (widget-create 'push-button
		   :notify (lambda (&rest ignore)
			     (fünf-winde-process
			      fünf-winde-buf
			      (widget-value fünf-winde-xp)
			      (widget-value fünf-winde-gold)
			      (widget-value fünf-winde-party)))
		   "Go!")
    (widget-insert "\n")
    (use-local-map widget-keymap)
    (local-set-key (kbd "q") 'bury-buffer)
    (local-set-key (kbd "SPC") 'widget-button-press)
    (local-set-key (kbd "<left>") 'widget-backward)
    (local-set-key (kbd "<up>") 'widget-backward)
    (local-set-key (kbd "<right>") 'widget-forward)
    (local-set-key (kbd "<down>") 'widget-forward)
    (widget-setup)
    (goto-char (point-min))
    (widget-forward 1)))

(defun fünf-winde-process (buf total-xp total-gold party)
  (message "(fünf-winde-process (get-buffer \"%s\") %d %d '%S)"
	   buf total-xp total-gold party)
  (switch-to-buffer buf)
  (save-excursion
    (let ((xp-shares 0)
	  (xp-share nil)
	  (gold-shares 0)
	  (gold-share nil))
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(let ((name (match-string 2))
	      (share (match-string 3)))
	  (when (member name party)
	    (setq gold-shares (+ gold-shares
				 (cond ((string= share "1/2") 0.5)
				       ((string= share "1/3") (/ 1.0 3))
				       (t (string-to-number share))))
		  xp-shares (1+ xp-shares)))))
      (setq gold-share (/ total-gold gold-shares)
	    xp-share (/ total-xp xp-shares))
      (goto-char (point-min))
      (while (re-search-forward fünf-winde-regexp nil t)
	(let ((str (match-string 1))
	      (name (match-string 2))
	      (share (match-string 3))
	      (xp (match-string 4))
	      (gold (match-string 5)))
	  (when (member name party)
	    (setq gold (format (concat "%9d")
			       (+  (string-to-number gold)
				   (* gold-share (cond ((string= share "1/2") 0.5)
						       ((string= share "1/3") (/ 1.0 3))
						       (t (string-to-number share))))))
		  xp (format (concat "%9d")
			     (+  (string-to-number xp)
				 xp-share)))
	    (replace-match (concat str
				   "|" xp
				   "|" gold))))))))

I’m not sure I’m spending my time wisely, but there you go. I used to have a simpler piece of code that helped me distribute XP and gold separately. The drawback was that it would ask me for every person in the table “was this character in the party? (y/n)” and that’s a lot of yes and no replies if you go through the list twice.

It’s also a stark reminder that simpler old rules doesn’t automatically mean less work for the referee. With D&D 3.5, I had a spreadsheet to compute the XP gained based on challenge rating and character level. It wasn’t something to do quickly without a book in front of me. Now the complexity of the task has been reduced, but the number of characters has exploded to compensate!

Tags: RSS RSS RSS

May 08, 2013 01:17 PM

May 07, 2013

Alex Schroeder

iPhone Sync and Not Enough Disk Space

Once again, I’m syncing my wife’s iPhone using iTunes and half way through the process it claims that it can’t do it because the computer is out of disk space. With more than 9 GB on the main hard disk and much more on the external hard disk (and a link from ~/Library/Application Support/MobilySync to the external hard disk), this is simply impossible. Strangely enough, synchronization continues anyway.

Luckily I remembered what to do: open preferences, find the backup for my wife’s device and delete it. Done. Now I can sync without any messages interrupting it. Strange.

Tags: RSS RSS

May 07, 2013 07:19 PM

WMA to MP3

This is based on How to Convert Unprotected WMA Files Into MP3 Files. I’m leaving the instructions here for my future self. :)

for file in *.wma; do
  mplayer -vo null -vc dummy -af resample=44100 \
    -ao pcm:file="${file%%.[Ww][Mm][Aa]}.wav" "$file"
  lame --preset standard "${file%%.[Ww][Mm][Aa]}.wav" \
    "${file%%.[Ww][Mm][Aa]}.mp3"
done 

Use locate lame|grep 'lame$' and locate mplayer|grep 'mplayer$' to find the location of your executables. On a Mac, they’re probably not on your PATH… I installed MPlayer OSX and iTunes-LAME to get the executables. You’ll need to do something similar.

This is the result I just used for some files with upper case file extension:

for file in *.WMA; do
  "/Applications/MPlayer OSX.app/Contents/Resources/External_Binaries/mplayer_intel.app/Contents/MacOS/mplayer" \
    -vo null -vc dummy -af resample=44100 \
    -ao pcm:file="${file%%.[Ww][Mm][Aa]}.wav" "$file"
  "/Applications/iTunes-LAME.app/Contents/Resources/lame" \
    --preset standard "${file%%.[Ww][Mm][Aa]}.wav" \
    "${file%%.[Ww][Mm][Aa]}.mp3"
done 

Tags: RSS RSS RSS

May 07, 2013 06:11 PM

Phil Jones (Smart Disorganized)

Gates of Dawn

A very, very short library I wrote to let me programmatically create Pure Data patches in Python.

Full story on my other blog.

On GitHub.

by noreply@blogger.com (phil jones) at May 07, 2013 05:14 PM

Alex Schroeder

Raspberry Pi WiFi

Reading Raspberry Pi: WLAN einrichten… I bought the Nano-WLAN-USB-Stick 150 Mbps by hama.

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
pi@raspberrypi ~ $ sudo apt-get install firmware-realtek
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
firmware-realtek ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

Apparently I installed it already. iwlist wlan0 scan results in a lot of output. Including the network I’m looking for:

pi@raspberrypi ~ $ iwlist wlan0 scan | grep Schroeder
                    ESSID:"Schroeder"

Set your network and password using sudo nano /etc/wpa.conf. This is what you want:

network={
 ssid="YOUR-SSID"
 proto=RSN
 key_mgmt=WPA-PSK
 pairwise=CCMP TKIP
 group=CCMP TKIP
 psk="WPA-PASSWORD"
}

Edit the list of interfaces using sudo vi /etc/network/interfaces and append the following:

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf

I was astonished to find some stuff relating to wlan0 in the file already. Anyway, I followed the instructions…

Restart and check:

pi@raspberrypi ~ $ ifconfig
eth0      Link encap:Ethernet  Hardware Adresse b8:27:eb:81:a6:af  
          inet Adresse:192.168.2.3  Bcast:192.168.2.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:114 errors:0 dropped:0 overruns:0 frame:0
          TX packets:94 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:17450 (17.0 KiB)  TX bytes:14232 (13.8 KiB)

lo        Link encap:Lokale Schleife  
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0 
          RX bytes:1104 (1.0 KiB)  TX bytes:1104 (1.0 KiB)

wlan0     Link encap:Ethernet  Hardware Adresse 80:1f:02:8f:91:26  
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

The last entry is shows that we didn’t get an IP number. Oops! It turns out that there is some other stuff in the /etc/network/interfaces file that might interfere. Commenting them out, I have:

auto lo

iface lo inet loopback
iface eth0 inet dhcp

# allow-hotplug wlan0
# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
# iface default inet dhcp

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa.conf

Still doesn’t work, however. I tried a few variants for the config files. Nothing seemed to work. This makes me so tired. I’m not sure I’m learning much. This is “fiddling with GNU/Linux” and frustrating. :(

Then I read How to install Wifi on a Raspberry Pi which tells you to install wicd-curses.

That seemed to work! Suddenly ifconfig provided me with an IP number for wlan0. I removed the ethernet cable, rebootet, and was unable to connect. Did the IP number change? Is DHCP taking too long? Why is bonjour not working? Patience! It just takes forever to boot. After a minute—long enough to write this paragraph--it suddenly worked:

alex@Pyrobombus ~$ ssh pi@raspberrypi.local
pi@raspberrypi.local's password: 
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l

Yay!

Tags: RSS

May 07, 2013 12:26 PM

May 02, 2013

Phil Jones (Smart Disorganized)

Tags in RSS?

A quick question. What's the right way to add "tag" information to an RSS feed? (So that a story can have a number of tags associated with it? Eg. my last story here was tagged "wiki", "bill seitz" etc.)

Looking at the spec there's a "category" sub-element. Is it this? Does each category need to have a different "category-domain" value? Or can I have multiple categories for an item with the same domain? (This is what Blogger itself seems to do.)


by noreply@blogger.com (phil jones) at May 02, 2013 03:30 PM

Bill Seitz : Wiki Graph

Over on my main blog you may have seen that I'm musing about my online presence again. Increasingly fed up with Facebook I've now taken the plunge to remove myself entirely. (I haven't, as of writing, deleted my account only because I need to extract some more writings before I do.)

I'm also increasingly concerned about my dependence on Google for so much of my online life.

One man who has few such qualms is Bill Seitz, who has consistently stuck to his home-brewed WikiLog concept over the last 10+ years. I've criticised the idea of WikiLog before - with one of my high-falutin conceptual arguments - but actually I've had to admit that Seitz is right and I'm wrong. The virtues of combining wiki and weblog functionality in your own software (which means very easy, high-density linking between both types of entry, and consistency of managing the address, full ownership etc.) outweigh any qualms about the difference of addressing philosophies.

Now Seitz has gone back to adding functionality to his wiki : the WikiGraphBrowser adds dynamic visualisation that shows the links between pages, creating an instant "TouchGraph" style mind-map. I'm excited, partly because of the software he's producing, but partly because here's another smart person investing in wiki's future.

by noreply@blogger.com (phil jones) at May 02, 2013 03:20 PM

May 01, 2013

Alex Schroeder

One Page Dungeon Contest Submissions

1PDC The One Page Dungeon Contest 2013 is now officially closed. No more late submissions. This year I found two submissions in my spam folder. If you can’t find your submission on the contest page, let me know. This year I also got four late submissions, which is about average, I’d say. I asked the other judges and we decided to accept the ones I received. I have to draw the line somewhere, though… So this is it. Closed. :)

Here’s how to get all the files:

72 Submissions! :D ok star

20092010201120122013
Number of submissions112647110772

Tags: RSS RSS

May 01, 2013 03:10 PM

April 30, 2013

Alex Schroeder

The Fall

Recently reports have started resurfacing… (I’ve been following Jürgen Hubert on Google+.)

At one point I left the following comment:

The fall of the US from a spiritual leader of freedom and democracy when I was young – in the seventies and eighties I knew nothing of Vietnam and I grew up with American pop music – to a war mongering nation, to a nation that systematically tortures prisoners, a nation that refuses due process to prisoners, to a nation that imprisons so many of their own population, to a nation that uses cruel and unusual punishment in the form of Three Strikes and its variations – there are no words for this moral catastrophe. No words.

I’m still torn: was my decision do abandon my ranting online and turn into a gamer (HomoLudens) the right thing to do? After all, if we all retreat into our little shells, if we all tend to our little gardens, then nothing ever changes, right?

Tags: RSS

April 30, 2013 12:56 PM

April 26, 2013

Alex Schroeder

Emacs Wiki Redesign

I finally installed the new theme for Emacs Wiki. Feel free to leave comments on the Talk page. Bootstrap allows me to make all the changes at run-time, ie. add a few scripts including a script that changes the wiki’s HTML (emacs-bootstrap.js) and a new CSS file (bootstrap.css).

Since no changes to the script are necessary I can continue to provide the old theme for those that don’t feel like switching.

Tags: RSS

April 26, 2013 12:42 PM

April 24, 2013

Alex Schroeder

Cosmology of Love and Strive

 Maximilián Pirner, Empedokles As I was listening to the episode on Empedocles on the History of Philosophy “without any gaps” podcast, my thoughts turned to cosmology and D&D. Basically, there is a big cycle between the rule of Love, where all the elements mingle and everything is a single perfect sphere, and Strife, where all the elements separate, fire over here, water over there, and so on.

Implementing this in fantasy role-playing games we need to change some of the Great Wheel cosmology of Planescape. The inner planes are now the outer planes: The four elements are the chaotic forces pulling us in different directions. All elemental creatures must be very chaotic and enemies of life. At the center, where all elements meet, there is but a humongous sphere of gray goo. I guess all the slimes, puddings and oozes must be creatures of law Love. They bring all the elements together and none better than the gray ooze. Given all that, the world we know must necessarily be between the elements and the spherical goo, ie. on the spherical surface.

What about dungeons? What about the “mythic underworld”? I think we have various options:

  1. The concept of Love that pulls the elements together is just as inimical to life as Strife: the civilizations that have gone before us have all been pulled underground, closer and closer to each other, until war and attrition destroyed them all; perhaps a few gaunt dessicated members of the old Atlanteans still live down there in the deepest depths, close to the gray goo, guarding their nuclear weapons and their nanotech weapons.
  2. The concept of Love offers some form of transcendence over the material world; it attracts good and evil alike; it tests us, breeds us, selects the finest amongst us, and like zygotes we penetrate the deepest secrets to eventually reverse the great cycle, to break the stalemate.

In either case, monsters are drawn down to the center of things just as we are. The traps can be set by our competitors down there, or by the gray goo defending itself against unworthy plunderers.

I think we need one final idea to make it all work: How to explain the heavens and the moon and the stars if “up above” we expect to see the four elements?

  1. Our known world exists where earth and air have started separating; the oceans is where the water is. If you sail far enough, there will be no more land and eventually, no more air. You’ve reached the plane of Water. If you climb the highest mountains, eventually you will realize that you have reached the wall of walls. Air ends and the plane of Earth begins. Up where the sun is, fire reigns. It has already left most of the known world. Whenever we light a fire, the flames leap up, up towards the sky, towards the sun, towards the great fire in the sky that burns far beyond the sky.
  2. Alternatively, the known world is just like present day earth. The air protects us from space. Space is in effect the Void separating the four elements under the dominion of Strife and the gray goo under the dominion of Love (and its tiny crust of weirdness that is life).

Food for thought, in any case.

I like how the podcast provides two interesting links:

The second link uses “font-family:comic sans ms, verdana, arial, sans-serif”. Comic Sans. You have been warned. :)

Tags: RSS

April 24, 2013 12:44 PM

April 22, 2013

Alex Schroeder

Raspberry Pi

http://farm9.staticflickr.com/8264/8668963053_8315a1de94_n.jpg

I got a Raspberry Pi from my employer. Nice! Installed Raspbian. Used HDMI to connect to the TV. That worked.

Note: I have a 2Gb and a 4Gb card and I want to give PiMAME a try (play arcade games using MAME), so I will need the 4Gb card for PiMAME. At the same time, I want to use Raspbian to play videos. That goes on the 2Gb card.

Connected Apple keyboard and mouse via USB. That caused repeating keys and all that. I read that the problem is a lack of power on the USB port. I could buy a USB hub as suggested.

One cable to rule them all. The cable modem is too far from the TV. Even if I did that, it would take my wireless network down. On my Mac Mini, I enabled sharing of my wireless connection with the ethernet (System Preferences → Sharing → Internet Sharing) and connected the Raspberry Pi to my Mac using an ordinary ethernet cable I had lying around. I was able to connect using ssh pi@192.168.2.3. You might have to guess the last digit?

Via ssh, I run sudo raspi-config and set it up: expand_rootfs, configure_keyboard, change_locale (choose de_CH.UTF8, pick en_GB.UTF8 as the default), set_timezone (Europe / Zurich), memory_split (64)… Maybe the memory split is already the default? I might have to switch on overclocking in the future in order to play games.

Following suggestions online, I wanted to get my Apple bluetooth keyboard working. First, I updated and upgraded my packages before doing anything: sudo apt-get update, sudo apt-get upgrade and sudo apt-get autoremove.

Note: Do all this while connected to the Raspberry Pi via ssh. You keyboard needs to be paired and all that before it will work stand-alone.

Next, bluetooth: sudo apt-get install bluetooth bluez-utils blueman. This installs a lot of stuff I probably won’t need. Oh well, I spent some time trying to sort through it and figured it wasn’t worth it. If you’re installing on a 2Gi card, you’re going to be running out of space real soon now:

pi@raspberrypi ~ $ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
rootfs           1838936 1751248         0 100% /

Try sudo apt-get clean to make some space:

pi@raspberrypi ~ $ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
rootfs           1838936 1567016    178880  90% /

In the end, this is how it should work:

pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 0a5c:200a Broadcom Corp. BCM2035 Bluetooth dongle

I guess the Bluetooth dongle has been recognized!

pi@raspberrypi ~ $ hcitool scan
Scanning ...
	E8:06:88:38:C6:2F	Apple Wireless Keyboard
	00:02:72:D4:E9:EA	DOC-PC

This was a bit more complicated:

pi@raspberrypi ~ $ sudo bluez-simple-agent hci0 E8:06:88:38:C6:2F
RequestPinCode (/org/bluez/5802/hci0/dev_E8_06_88_38_C6_2F)
Enter PIN Code: 0000
Release
New device (/org/bluez/5802/hci0/dev_E8_06_88_38_C6_2F)

Type 0000 RET on the Mac. Type 0000 RET on the keyboard. Not sure whether the “sudo” was required or not.

On we go:

pi@raspberrypi ~ $ sudo bluez-test-device trusted E8:06:88:38:C6:2F yes

Make sure the keyboard is “on” when you run the next step:

pi@raspberrypi ~ $ sudo bluez-test-input connect E8:06:88:38:C6:2F

Ok, time to give it a try… Remember that you’re probably using a British keyboard layout. The y key might be where your z is. This is important because the default password is raspberry ← note the y. Switch your keyboard layout: sudo dpkg-reconfigure keyboard-configuration has no effect? Try sudo vi /etc/defaults/keyboard:

XKBMODEL="apple"
XKBLAYOUT="ch"
XBKVARIANT=""
XKBOPTIONS="lv3:ralt_switch"
BACKSPACE="guess"

Unfortunately the option key still doesn’t work for simple things like []|{}. Sucks to be me!

For my Sony Bravia, I had to use the following in sudo vi /boot/config.txt:

disable_overscan=1
overscan_left=53
overscan_right=50
overscan_top=28
overscan_bottom=22

Don’t ask me why overscan is both disabled and its various parameters are set.

Copied various videos on to a USB Stick. Create a mountpoint using sudo mkdir /mnt/BIG_STICK and mount the drive using sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/BIG_STICK.

Play it using omxplayer /mnt/BIG_STICK/some_file.mp4 → it worked! :) ok

In order to avoid typing this every time, use ls -laF /dev/disk/by-uuid and note the uuid of the mounted stick. Then sudo vi /etc/fstab and start typing:

UUID=8805-CE39 /media/Cruzer8Gb vfat auto,users,rw,flush,utf8=1,uid=pi,gid=pi,dmask=002,fmask=113 0 0

But there was no sound! Well, there’s sound on the headphones out of the Raspberry Pi but no sound on the TV. I tried both HDMI inputs. I uncommented hdmi_drive=2 in the /boot/config.txt file. To no avail. When I tried aplay /usr/share/sounds/alsa/Front_Center.wav, however, it worked. Something about the .avi file, or about omxplayer isn’t working. Checking omxplayer --help I found the solution: omxplayer -o hdmi /media/Cruzer8Gb/some_file.mp4 → it worked! :) ok

A day later…

I wanted to sudo apt-get install libnss-mdns and install bonjour so that I can connect to it via raspberry.local instead of 192.168.2.3: sudo apt-get install libnss-mdns—but apparently it’s already installed!

alex@Pyrobombus ~$ ssh pi@raspberrypi.local
The authenticity of host 'raspberrypi.local (192.168.2.3)' can't be established.
RSA key fingerprint is 4e:e2:82:e5:e9:e5:5f:a9:b6:ac:53:f0:e2:3b:ac:c1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'raspberrypi.local' (RSA) to the list of known hosts.
pi@raspberrypi.local's password: 
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Apr 22 10:56:12 2013 from pyrobombus.local
pi@raspberrypi ~ $ 

Yay!

If you’re not using a Mac, you’ll need to install bonjour on your host system as well, I think.

Next I wanted to play a game using my Xbox USB controller (not necessarily the wireless variant). sudo apt-get install xboxdrv. Simply running sudo xboxdrv gave me gave me a lot of output. The driver must be working. ok The driver has a man page.

Tags: RSS

April 22, 2013 12:02 PM

April 19, 2013

Alex Schroeder

Hellebarden und Helme praktisch fertig

Hellebarden & Helme ist mein Hausregelndokument für meine Labyrinth Lord Runde und dient als Spielerhandbuch bis zur 5. Stufe. Die aktuelle Version hat – auf Wunsch von Claudia – nun auch wieder Diebe drinnen und sie hat auch einen einseitigen, dreispaltigen Index. Keine Ahnung, ob das wirklich nötig war für ca. 20 Regeln.

Tags: RSS RSS

April 19, 2013 03:30 PM

April 18, 2013

Alex Schroeder

Old School RPG Planet Updates

With Tenkar’s Swords & Wizardry Appreciation Day came a plethora of blogs I had never heard of. I’ve been adding new blogs furiously to the Old School RPG Planet. (A planet is a feed aggregator—it shows an extract of all the various blogs I added, like a public blog roll. This particular planet is controlled by a wiki page, so anybody can submit new blogs.)

If you’re looking for new blogs to add, take a look. Perhaps you’ll find a new blog you like? I know that some people from the “early days” said that they felt the Old School Renaissance was shrinking. My thinking at the time was that this is now what’s happening. What is happening is that some people drop out, stop blogging. If you don’t add the newcomers, those who start blogging, your impression will necessarily be that the OSR is shrinking. Not so! Look at the number of blogs that participated.

If you already follow the Old School RPG Planet, please let me know if I added some blogs by mistake. I think I checked each and every new feed I added. If a feed seemed mostly about video games, or anime, or miniatures, I didn’t add it. Most of the blogs that were listed on the Swords & Wizardry Appreciation Day post seemed to be very appropriate! Still, one never knows.

Let me know if you spot anything else that’s fishy. :)

And I'm only half way through! Phew!

Tags: RSS RSS

April 18, 2013 09:33 PM

April 17, 2013

Alex Schroeder

Swords & Wizardry

Swords & Wizardry Creative Guild In 2006, Greywulf was a user of Oddmuse, a piece of software I was maintaining. It’s still used to run this blog/wiki. Greywulf kept talking about D&D and eventually I started reading EN World. There, I discovered Greywulf had a huge thread going. He proposed a minimal variant to D&D 3.5 and called it M20 (original files). I loved it and ended up starting a campaign using it. (It later converted to D&D 3.5.)

In 2008, I came across M74 and discovered the “old school renaissance”. I learned about OD&D and its use of a d6 for hit-dice and weapon damage. I was intrigued and wrote M20 Hard Core. I also wrote a little random character creator for my rules variant.

Some blog posts from back then:

(You can get the source files from the Swords & Wizardry download page.)

I was very impressed by Ruins & Ronin. If you check out the Sword+1 blog, you’ll find lots of R&R character classes for download in the sidebar. It really was an eye opener for me. Anything can be turned into a class! This is Do It Yourself D&D!

These days, I still play Labyrinth Lord. It was my first retro-clone. It didn’t have weird elves. I ended up liking race-as-class. As you can see from the list above, however, OD&D and Swords & Wizardry have been an important part of the journey. And I absolutely loved the Peter Mullen covers!

Today is Swords & Wizardry Appreciation Day Blogfest! Follow the link and find a list of more than 100 other blogs writing about S&W.

Tags: RSS RSS

April 17, 2013 08:21 AM

April 13, 2013

Alex Schroeder

Garamond

I like the Garamond font. This website uses it. Here’s how:

@font-face {
      font-family: 'Garamond';
      font-style: normal;
      font-weight: 400;
      src: local('Garamond'), local('GaramondNo8'), local('EB Garamond'), local('EBGaramond'), url(https://themes.googleusercontent.com/static/fonts/ebgaramond/v4/kYZt1bJ8UsGAPRGnkXPeFdIh4imgI8P11RFo6YPCPC0.woff) format('woff');
}

body, rss {
    font-family: Garamond, serif;
    font-size: 16pt;
    line-height: 20pt;
    margin:1em 3em;
    padding:0;
}

As you can see, if you have a font called Garamond, Garamond No. 8 or EB Garamond installed, then the web page will use it. Garamond No. 8 is what I use on my GNU/Linux system. If you don’t have any of them, it will download the EB Garamond files from Google Web Fonts.

I hope it works. Thoughts?

Tags: RSS

April 13, 2013 10:28 PM

April 12, 2013

Alex Schroeder

The 1PDC Process

1PDC On the mailing list for the One Page Dungeon Contest 2013, one of the judges asked me to go through the process again. I’ve used my reply to write this blog post.

The first thing to remember is that people can revise their submission until the very end. That’s why I personally don’t read them until the end of April.

The output of the process is a list of nominations from each of the judges. They can nominate as many or as few as they like. In the past, judges have nominated somewhere between 10 and 20 entries. Every judge determines their own criteria. There is no agreed upon checklist.

My own list of criteria will look very similar to what I wrote on 2010-02-05 Quality Dungeons. I find that having the checklist helps me score the dungeons.

I will compile all the nominations into a big spreadsheet and produce a list of winners. I’ll try to have at least three nominations from every judge on the list (ie. we are six judges and thus I expect there to be around 18 winners). I’ll also try to invent a category for each of the winners. It would be very cool if your list of nominations contained a suggested category. That is optional, however.

Last year, I wrote about the entries I nominated and the made-up categories I nominated them for, if you’d like to see an example of how I personally went about this.

Sometimes judges will then comment on the final list and propose to add a particular entry because of some very specific qualities they want to highlight and thus we might end up more winners.

Once we have announced the winners, they are invited to send me three picks from the prize list. Again, the data goes into a spreadsheet and I try to figure out a way to give every winner at least one thing that they are wishing for. Against all intuition, this seems to have worked so far! When in doubt, I’ll go back to the big spreadsheet with all the nominations on it and give precedence to those winners that received the most nominations.

This last element of the process is not entirely transparent. I wrote a blog post trying to defend the lack of transparency two years ago. I hope that it’s not a big problem. ;)

Tags: RSS RSS

April 12, 2013 10:29 PM

April 09, 2013

Phil Jones (Smart Disorganized)

Java Hater

Someone on Quora asked me to answer a question on my personal history of using Java. It became a kind of autobiographical confession. 
I've never had a good relationship with Java.

My first OO experience was with Smalltalk. And that spoiled me for the whole C++ / Java family of strongly typed, compiled OO languages. 
Because I'd learned Smalltalk and this new fangled OO thing when it was still relatively new (in the sense of the late 80s!) I thought I had it sussed. But actually I had very little clue. I enthusiastically grabbed the first C++ compiler I could get my hands on and proceeded to spend 10 years writing dreadful programs in C++ and then Java. I had assumed that the OOness of both these languages made them as flexible as I remembered Smalltalk to be. I thought that OO was the reason for Smalltalk's elegance and that C++ and Java automatically had the same magic. 
Instead I created bloated frameworks of dozens of classes (down to ones handling tiny data fragments that would have been much better as structs or arrays). I wrote hugely brittle inheritance hierarchies. And then would spend 3 months having to rewrite half my classes, just to be able to pass another argument through a chain of proxies, or because somewhere in the depths of objects nested inside objects inside objects I found I needed a new argument to a constructor. The problem was, I was programming for scientific research and in industry but I hadn't really been taught how to do this stuff in C++ or Java. I had no knowledge of the emerging Pattern movement. Terms like "dependency injection" probably hadn't even been invented. 
I was very frustrated. And the funny thing I started to notice was that when I had to write in other languages : Perl, Javascript, Visual Basic (Classic), even C, I made progress much faster. Without trying to model everything in class hierarchies I found I just got on and got the job done. Everything flowed much faster and more smoothly.

Perl's objects looked like the ugliest kludge, and yet I used them happily on occasion. In small simulations C structs did most of what I wanted objects to do for me (and I did finally get my head around malloc, though I never really wrote big C programs). And I had no idea what the hell was going on with Javascript arrays, but I wrote some interesting, very dynamic, cross browser games in js (this is 1999) using a bunch of ideas I'd seen in Smalltalk years before (MVC, a scheduler, observer patterns etc.) and it just came out beautifully. 
It wasn't until the 2000s that I started to find and read a lot of discussions online about programming languages, their features, strength and weaknesses. And so I began my real education as a programmer. Before this, a lot of the concepts like static and dynamic typing were vague to me. I mean, I knew that some languages you had to declare variables with a type and in some you didn't. But it never really occurred to me that this actually made a big difference to what it was like to USE a language. I just thought that it was a quirk of dialect and that good programmers took these things in their stride. I assumed that OO was a kind of step-change up from mere procedural languages, but the important point was the ability to define classes and make multiple instances of them. Polymorphism was a very hazy term. I had no real intuitions about how it related to types or how to use it to keep a design flexible.

Then, in 2002 I had a play with Python. And that turned my world upside-down.
For the first time, I fell in love with a programming language. (Or maybe the first time since Smalltalk, which was more of a crush).

Python made everything explicit. Suddenly it was clear what things like static vs. dynamic typing meant. That they were deep, crucial differences. With consequences. That the paraphernalia of OO were less important than all the other stuff. That the fussy bureaucracy of Java, the one class per file, the qualified names, the boilerplate, was not an inevitable price you had to pay to write serious code, but a horribly unnecessary burden.
Most of all, Python revealed to me the contingency of Java. In the small startup where I'd been working, I had argued vehemently against rewriting our working TCL code-base in Java just because Java was OO and TCL wasn't. I thought this was a waste of our time and unnecessary extra work. I'd lost the argument, the rewrite had taken place, and I hated now having to do web-stuff with Java. Nevertheless, I still accepted the principle that Java was the official, "grown up" way to do this stuff. Of course you needed proper OO architecture to scale to larger services, to "the enterprise". Ultimately the flexibility and convenience of mere "scripting" languages would have to be sacrificed in favour of discipline. (I just didn't think we or our clients needed that kind of scaling yet.) 
What Python showed me was we weren't obliged to choose. That you could have "proper" OO, elegant, easy to read code, classes, namespaces, etc. which let you manage larger frameworks in a disciplined manner and yet have it in a language that was light-weight enough that you could write a three line program if that's what you needed. Where you didn't need an explicit compile phase. Or static typing. Or verbosity. Or qualified names. Or checked exceptions. What I realised was that Java was not the inevitable way to do things, but full of design decisions that were about disciplining rather than empowering the programmer. 
And I couldn't stomach it further. Within a few months of discovering Python I had quit my job. Every time I opened my machine and tried to look at a page of Java I felt literally nauseous. I couldn't stand the difference between the power and excitement I felt writing my personal Python projects, and the frustration and stupidity I felt trying to make progress in Java. My tolerance for all Java's irritations fell to zero. Failing to concentrate I would make hundreds of stupid errors : incompatible types, missing declarations or imports, forgetting the right arguments to send to library methods. Every time I had to recompile I would get bored and start surfing the web. My ability to move forward ground to a halt.
I was so fucking happy the day I finally stopped being a Java programmer.

Postscript : 
1) Something I realized a while after my bad experience was how important the tools are. My period in Java hell was trying to write with Emacs on a small-screen laptop without any special Java tools (except basic Java syntax colouring). I realize this is far from the ideal condition to write Java and that those who are used to Eclipse or IntelliJ have a totally different experience and understanding of the language. 
2) A few years later, I taught the OO course in the local university computer science department. All in Java. By that time, I'd read a couple of Pattern books. Read Kent Beck's eXtreme Programming. Picked up some UML. And I had a much better idea what Polymorphism really means, how to use Interfaces to keep designs flexible, and why composition is better than inheritance. I tried to get the students to do a fair amount of thinking about and practising refactoring code, doing test driven development etc. It all seemed quite civilized, but I'm still happy I'm not writing Java every day. 
3) A couple of years ago I did do quite a lot of Processing. I was very impressed how the people behind it managed to take a lot of the pain of Java away from novice programmers. I wonder how far their approach could be taken for other domains.

by noreply@blogger.com (phil jones) at April 09, 2013 06:53 AM

April 08, 2013

Alex Schroeder

Hellebarden und Helme ist ziemlich lang geworden

https://farm9.staticflickr.com/8406/8621195607_ddbc396a69_m.jpg

Ich hatte schon mal von Hellebarden und Helme geschrieben. Das Dokument ist nun vollständig. Alle Zaubersprüche bis und mit der dritten Stufe sind drinnen. Ich wollte natürlich “Zirkel” sagen, um die leidige Diskussion um Charakterstufe und Spruchstufe zu vermeiden. Aber egal. Ich habe noch eine Weile mit Claudia diskutiert, ob es sich lohnt, die weibliche Form für die Regeln zu verwenden. Sie war dagegen und meinte, das würde ihr ja nicht helfen, gleich viel zu verdienen wie ein Mann. War wohl nichts mit den tief hängenden Früchten. Für mein eigenes Wohlbefinden habe ich mich entschieden, über weite Teile “du” zu verwenden. Das tönt dann ähnlich informell wie dieser Blog. Was hältst du davon? :)

Mit über zwanzig Seiten ist das Dokument doch überraschend lang geworden. Schade, eigentlich!

Auf Seite 19 hat es unten viel leeren Platz. Ich weiss nicht so recht, was ich da machen soll. Ich hätte gerne ein paar gute, freie Bilder von Hellebarden! Leider gibt es im Handbuch der Waffenkunde: Das Waffenwesen in seiner historischen Entwicklung vom Beginn des Mittelalters bis zum Ende des 18. Jahrhunderts von Wendelin Boeheim (1890) nicht so viele gute Hellebardenbilder wie Helme. Kennst du eine Quelle von guten Hellebardenbildern?

Ansonsten bleiben mir noch die selber gemalten Bilder, welche am Rande etwas mit Zauberei zu tun haben… Vom Stil her passen sie leider überhaupt nicht zu den Helmen.

https://farm4.staticflickr.com/3261/3198902637_b172003c71_m.jpg https://farm4.staticflickr.com/3469/3275717737_e9131816f5_m.jpg https://farm4.staticflickr.com/3411/3279480659_716c6db0e9_m.jpg https://farm4.staticflickr.com/3529/3923437634_7d9636786b_m.jpg https://farm3.staticflickr.com/2605/3922651157_cf2a315b7a_m.jpg https://farm5.staticflickr.com/4139/4900445467_c34b4d0ac7_m.jpg https://farm5.staticflickr.com/4099/4970804690_90559b970d_m.jpg https://farm6.staticflickr.com/5014/5641851376_e47b1f3a6f_m.jpg https://farm7.staticflickr.com/6040/6348317241_94ac33dcfc_m.jpg

Meine Aufgabe für die nächsten Tage: Korrekturlesen und Leerräume in der Randspalte finden, wo ich noch den einen oder anderen Helm aus dem Handbuch der Waffenkunde unterbringen kann. :)

Oder Illustrationen aus den alten Fechtbüchern?

https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/De_Fechtbuch_Talhoffer_102.jpg/320px-De_Fechtbuch_Talhoffer_102.jpg

Tags: RSS RSS

April 08, 2013 09:45 AM

April 07, 2013

Alex Schroeder

Textures and Creative Commons

Recently I got a submission for the One Page Dungeon Contest 2013. It was made using the Dungeon Tiles Set by ProBono on RpgMapShare. The tiles use textures from CGTextures.com.

I stopped when I saw a passage saying “One or more textures in this pack have been created with images from CGTextures.com. These images may not be redistributed by default, please visit www.cgtextures.com for more information.”

Then I found the following passage in their FAQ:

May I use these textures in my Open Source (Creative Commons, GPL, etc) project?
No. These textures may not be used in Open-Source projects. The licenses are not compatible. Almost all Open-Source licenses allow redistribution of the materials, and redistribution is not allowed for these textures.

Unfortunately, the One Page Dungeon Contest uses a Creative Commons license.

Tags: RSS RSS

April 07, 2013 11:47 AM

April 03, 2013

Phil Jones (Smart Disorganized)

What's Like RSS?

Dave Winer asked a great question back in December. What standards are like (his ideal for) RSS?

That is, basically fixed forever by convention, large userbase and multiple suppliers?

My suggestions :
In practice, a few Unix classics : SSH, the diff / patch formats, rsync, finger. All used on a grand scale by many parties. Multiple implementations. Multiple pieces of software committed to them. No one really trying to change them.

Email protocols are pretty widely supported and fixed.
Git. It's notionally owned by Linus Torvalds, but he doesn't seem to have any commercial interest in extending or breaking it. GitHub showed you can build a great commercial site around it without trying to make proprietary extensions. And I can use the same clients to push and pull from my server running the default Git daemon, from Github, or from rival offerings (I'm pretty sure BitBucket / SourceForge / Google Code now offer Git as an option)

Possibly Jabber / XMPP


by noreply@blogger.com (phil jones) at April 03, 2013 03:21 PM

March 31, 2013

Alex Schroeder

Never Ending Story

Stop the Hollyweb! No DRM in HTML5

Tags: RSS RSS

March 31, 2013 04:40 PM

March 27, 2013

Alex Schroeder

One Page Dungeon Contest

Yes, the Spring Equinox has come and gone and now it’s time the run the 1PDC again! :D vee <33">3"> 8-D star star star

One Page Dungeon Contest 2013!

Dates: Submission deadline is April 30, 0:00 GMT (Tuesday evening). If you live West of Greenwich, you will have to send in your submission a few hours before the end of the month! Winners will be announced June 1.

Help spread the word!

Prizes & Sponsors: Do you have prizes to donate? Let me know → kensanata@gmail.com!

Submissions: Here’s how to submit your entry.

  • Create a One Page Dungeon.
  • Submitting a dungeon to the contest releases it under the Creative Common Attribution-Share Alike 3.0 Unported license with credit to the contest participant.
  • The submission must have a name, an author, and a link to the license (http://creativecommons.org/licenses/by-sa/3.0/).
  • The judges and readers play a variety of systems. Don’t waste valuable space with a lot of system-specific stats.
  • A link to extra material on your blog such as wandering monsters, random events, adventure background, introduction, descriptions of tricks or traps are welcome for readers but will not be considered part of your submission.
  • One entry per participant. Participants may revise/replace their entries up until the end of contest, with the last revision counting as their official entry.
  • If your font size is too small to read, you will most probably not win.
  • Many people will print your submission as a black and white document. Adding colors is no problem as long as the black and white printed copy is still good enough.
  • Help us keep file size in check. A single page should not take more than an image with 3000x2000 pixels (1-2MB is cool, 5MB still works, 10MB is too much).
  • Submission must be mailed in PDF format to Alex Schroeder → kensanata@gmail.com. Usually we can help you convert your Open Office and Microsoft Word documents to PDF.
  • If you have a blog article talking about your submission, send us the link. We’d love to link to it from the One Page Dungeon Contest page.

Process: Here’s how we’ll determine the winners.

  • Every judge nominates their favorite entries and proposes a category for each.
  • We try to make sure that every judge has at least three of their nominations in the final list. The idea is to not only reflect popular opinion but to also capture some of the more eclectic entries out there. We’ll make sure that every judge is well represented with three entries each.
  • Based on the categories proposed in the first step, we try to assign a category to each entry on the list.
  • Judges gets to check whether their favorites are still on the list.
  • We fix omissions and rename categories until we’re happy.
  • We publish our list of winners!
  • We will ask each winner for three items they’d prefer to win and any items they prefer not to win. Then we try to do a best match, giving precedence to those winners that got more nominations in the first step.
  • All the entries and a special PDF with all the winners will be available for download at no cost.

Tags: RSS RSS

March 27, 2013 08:55 PM

Phil Jones (Smart Disorganized)

Winer's Back!

This is really good news.

Dave Winer finally comes out with a decent outliner in the browser.

I've been looking for one for a long time. (Thought of trying to write it too, but it's not my speciality. Now you get one from the world's biggest Outlining evangelist.)

This is also great news for Winer himself, I think. As always, he has a lot of crucial ideas for where the web should be going. But for a while it's seemed like the main thing holding him back has been a code-base that's a Windows desktop application. (Which is NOT where either users or developers want to party these days.) The few times I've thought I'd like to look into the open-sourced Frontier / OPML Editor I've been put off by that.

A new browser-based UI (and Javascript-based server?) hopefully means that he'll be able to get more people involved in his code, interacting with his services, and start to have an impact via technology as well as evangelism.

And me, I'm holding on for the OPML export / import ... ahem ... cough ...  GeekWeaver ... cough. ;-)

by noreply@blogger.com (phil jones) at March 27, 2013 03:55 PM

March 26, 2013

Alex Schroeder

Quick Sketch

Doodling during a meeting…

https://farm9.staticflickr.com/8092/8591737443_884be7c1c2.jpg https://farm9.staticflickr.com/8238/8591772567_727a14e3f9.jpg

Tags: RSS RSS

March 26, 2013 03:12 PM

March 24, 2013

Alex Schroeder

Hellebarden und Helme

https://farm8.staticflickr.com/7061/6968081959_2ff9dd13d1_n.jpg

Bin immer noch am Schrauben an meinen Hausregeln. Ich wollte ein einfaches Dokument für neue Spieler, die bei meiner Kampagne anfangen wollen. Deswegen wollte ich eine kurze Labyrinth Lord Variante für die ersten fünf Stufen. Angefangen hatte alles auf dem Campaign:Hellebarden und Helme Wiki. Als ich aber den ersten Spieler gesehen habe, der sich alles ausgedruckt hatte, war mir das nicht recht. Das sah ja furchtbar aus! Weil ich zudem vor wenigen Monaten meine FATE Variante Der Geist Mesopotamiens mit LaTeX gesetzt hatte, wollte ich das gleiche für Hellebarden und Helme.

Da ich schon einen Charaktergenerator für Hellebarden und Helme habe, entschied ich, das Regelwerk mit LaTeX zu setzen und das gleiche github Projekt zu verwenden.

Aktuelle Version (PDF)…

Tags: RSS RSS

March 24, 2013 09:22 PM

March 20, 2013

Phil Jones (Smart Disorganized)

Bret Victor Showreel

Bret Victor is one of the few programmers for whom it makes sense to release a showreel.


by noreply@blogger.com (phil jones) at March 20, 2013 07:07 PM

Elm Lang

I must confess, I'm very intrigued by Elm-Lang.

For me there are four virtues :

1) FRP. All the attempts I've seen to graft FRP onto existing languages have looked clunky to me - ahem ... Trellis? - Requiring the explicit definition of special types of fields. This is the kind of thing that I think needs a new language feature, not a new library.

Elm-lang's "lift" looks a much cleaner way of going about it.

2) It's in the browser. That's where code has to run.

3) I like the way that it reunifies the document / graphics structure back into the same file. The problem is not so much that style and content shouldn't be separated. It's that there are more serious divisions of modularity to respect and forcing HTML and JS into different trees of the filing system has typically pushed highly interdependent data-structure and logic too far apart. I like the ability to bring them back together for small programs.

4) Perhaps it's a way to get familiar with and more into Haskell. Obviously it's not full Haskell. But it seems like a way to get more into that mind-set while doing some practical work.

Of course, the proof of the pudding is in the eating. I'd better go and try something ...  :-)

by noreply@blogger.com (phil jones) at March 20, 2013 06:55 PM

March 14, 2013

Alex Schroeder

Google Reader Alternative

Google Reader is being axed. I used it every day.

Evan Prodromou says on Google+
Why, it’s almost as if it would be in your best interest to run network services under your own control instead of using quote-unquote free ones run by someone whose priorities are not aligned with yours.

I might consider it. Years ago, I used rss2email by Aaron Swartz. The irony is that I’ll be reading my blog posts—in Gmail! X(

There are other alternatives. Here’s a crowdsourced list. I see that The Old Reader, for example. “It’s just like the old Google reader, only better.” Here’s a warning sign, however: “We’re in beta right now […]” Will it cost money eventually? How much? I’m not opposed to paying a little money. After all, I want the service to have a future.

Me on Twitter
I read a rant once saying: “Please, services on the Internet, take my money! I want you to have a decent business plan!”

So, run a network service under my own control, or pay somebody else…

As for running something under my own control, I must confess that I’m still averse to running PHP and MySQL on a server of mine. Somehow I keep thinking of the combination as insecure. I downloaded Tiny Tiny RSS and looked at it (also on GitHub).

There is also something about RSS that makes me cringe: If every blog reader installs a feed aggregator that checks its feeds every ten minutes, this won’t scale. A few central aggregators that poll feeds and serve their user interface when requested by users seems like a better solution from a technical point of view.

On my portable devices I’m using the Reeder app. Like many others, it depends on Google Reader. We’ll see what its creator will switch to.

Tags: RSS

March 14, 2013 10:06 AM

March 11, 2013

Alex Schroeder

Regelwälzer

Auf Google+ hat Stefan Ohrmann vor kurzem eine Diskussion über den zunehmenden Umfang der Regelbücher angerissen. Passt irgendwie auch zum Thema Aufbau von Regelwerken.

Ich selber meinte hierzu, dass ich schon verschiedentlich bei Freunden Bücher und PDF Dateien angeboten bekommen habe, die so dick waren, dass ich schon von Anfang an weiss, dass ich diese Werke nie lesen werde.

Geht So Geht Nicht
Diaspora (270 Seiten)Starblazer (632 Seiten)
Labyrinth Lord (136 Seiten)Dungeon Crawl Classic (470 Seiten)

Ich vermute folgende Ursachen für den steigenden Umfang der Bücher:

  • Selbstpublikation haben oft ein Lektorat, welches nicht auf Kürze besteht.
  • In den meisten Rezensionen wird beanstandet, wenn ein kurzes Produkt trotzdem viel kostet. Die Kürze wird nicht als Produkt einer Leistung geschätzt. Leider muss ich zugeben, dass ich auf einer emotionalen Ebene davon sicherlich auch betroffen bin. Es “fühlt” sich einfach nicht an, wie wenn es den Preis wert wäre.
  • Auftragsautoren werden nach Worten bezahlt. So besteht kein Interesse daran, sich kürzer zu fassen. Ich vermute, dieser Effekt ist nicht besonders stark, denn oft wird so ein Auftrag die gewünschte Anzahl Worte nennen. Aber wer weiss, vielleicht entsteht entlang einer Wertschöpfungskette, welche mit der Länge der Texte Geld verdient, bei jedem kleinen Schritt ein kleiner Druck hin zu längeren Texten.

Was mich übrigens überhaupt nicht stört:

  • Mehr Bildmaterial.
  • Mehr typografischer Weissraum.
  • Grössere Schrift.

Es geht mir wirklich mehr um den Leseaufwand, den ich nicht mehr zu leisten gewillt bin. Wenn ich viel lesen will, lese ich lieber ein Buch. Regelbuch, Hintergrundmaterial, Abenteuer – das mag für viele so gut wie Unterhaltungsliteratur sein. Nicht für mich.

Ausgezeichnete Diskussion auf dem Forum.

Tags: RSS

March 11, 2013 08:39 AM

March 08, 2013

Alex Schroeder

Talaric

http://farm9.staticflickr.com/8380/8539306660_60da922bba_n.jpg

From time to time I want to write about player characters that I remember well. Recently DM Harald ran a few sessions using Moldvay’s Basic D&D and the Karameikos setting that came with it. We all rolled up characters and Jörg rolled up an elf with Charisma 3. He likes to play elves and that in itself is a recurring joke in our group. This time, however, it was payback time! This was an asshole. Arrogant. Disinterested. Unwilling to fight. Unwilling to come along. Jörg managed to stay on the thin red line separating character aggravation from player aggravation.

When we decided to go vampire hunting in Krakatos, the elf joined us against his own recommendation. We were, after all, just first level characters. After the first session, the elf had been charmed by the vampire and had joined his master as living blood snack.

The next session we managed to free him. Two or three sessions later, however, we were exploring Koriszegi Keep and had good reason to believe another vampire was present. Again, the arrogant elf tried to dissuade us. Again, we ignored him. As we were fighting ghouls climbing out of a hole in the ground, the battle turned against us. My cleric had been paralysed in the first round because he had once again used his cursed holy symbol instead of his real holy symbol. The arrogant elf received a mortal wound. (We’re using the Death and Dismemberment table.) He decides to grapple the ghould standing over my cleric’s body and fling himself and the ghoul down into the hole! Thank you, asshole.

We win the fight, descend into the hole, can’t find the elf’s body, continue into the next room, and see the body lying there, vampire mist covering the floor of the foul cave. Another character, a small lady thief, gets to work and saws off the elf’s head in order to prevent him from rising as a vampire minion at midnight. My cleric, no longer paralysed, is contacted by the vampire. L E A V E . H I M . T O . M E ! the disembodied voice says. I say to the small woman, “leave him be!” But she insists on cutting off the head. And she does. But now the vampire materializes, drains her into oblivion. We scream. The vampire crushes my gnome henchman’s skull. We cry. The vampire turns around. We run.

And all of that because of an elf that we didn’t like.

Tags: RSS RSS

March 08, 2013 09:22 AM

March 04, 2013

Alex Schroeder

Text Mapper With Lines

SVG Mapper now knows how to draw lines. These lines try to flow from hex to hex…

Example input:

2114 hill
2115 hill
2213 forest
2214 forest "Delan"
2215 hill
2314 forest
2315 forest
2414 hill "Forest Bight Fortress"
2415 forest
2515 forest "Boghra Little"

2214-2615 river
river path attributes fill-opacity="0" stroke="black" stroke-width="5"

include http://alexschroeder.ch/contrib/default.txt

Result:

Dangerous Forest

I think that I’m not quite understanding how the viewBox is supposed to work. But anyway: these lines can be used for roads, rivers, borders, cliffs, and the like. If they’re very straight, they don’t look too good. There’s no random waviness. One feature I definitely have to add is providing more intermediary points such that the user can guide rivers around the hills or to allow rivers to merge.

Tags: RSS RSS RSS

March 04, 2013 12:06 AM

March 02, 2013

Phil Jones (Smart Disorganized)

SocialCalc and Javascript

Dan Bricklin gives an update on WikiCalc / SocialCalc (the browser-based spreadsheet he wrote). It seems to be having a new lease of life as a web-app embedded in native Android / iOS apps.

Nice!

Also some interesting news about javascript.

by noreply@blogger.com (phil jones) at March 02, 2013 06:55 AM

March 01, 2013

Alex Schroeder

Text Mapper Progress

I’m a big fan of the Forgotten Depths. I wanted to use its map as the goal for my Text Mapper. As the mapper now allows the inclusion of other files, I’ve saved my library of colors and icons as default.txt and I’ve saved the map as forgotten-depths.txt. That’s why all you need to do now is include the map:

Forgotten Depths SVG

If you see white hexes, then I haven’t added any definitions for them, yet.

Tags: RSS RSS RSS RSS

March 01, 2013 10:28 AM

February 28, 2013

Phil Jones (Smart Disorganized)

Mind Traffic Control

If you haven't looked at Mind Traffic Control recently (and I know YOU haven't, because I see the logs), then you may be surprised.

Just saying ... :-)

by noreply@blogger.com (phil jones) at February 28, 2013 12:37 AM

February 27, 2013

Alex Schroeder

SVG Filters

I need help with SVG filters. This question is also on StackOverflow.

This is what I want to achieve:

https://farm9.staticflickr.com/8507/8511938807_5a793d726a.jpg

Previously, I’d duplicate the text element, make the background white, and blur it:

  <defs>
    <filter id="label-glow">
      <feGaussianBlur stdDeviation="1" />
    </filter>
  </defs>
  <text stroke="white" stroke-width="5" filter="url(#label-glow)">Harald's Repose</text>
  <text>Harald's Repose</text>

I’m trying not to duplicate the text element. Here’s how to do it using filters:

  <defs>
    <filter id="label-glow">
      <feFlood flood-color="white"/>
      <feComposite in2="SourceGraphic" operator="in"/>
      <feGaussianBlur stdDeviation="2"/>
      <feComposite operator="over"/>
      <feComposite operator="over"/>
      <feComposite operator="over"/>
      <feComposite operator="over"/>
      <feComposite in="SourceGraphic"/>
    </filter>
  </defs>
  <text filter="url(#label-glow)">Harald's Repose</text>

Unfortunately the output of the Gaussian blur is very weak which is why I need to overlay it multiple times. What am I missing?

Update: As I’ve been experimenting with it, I’ve decided to drop filters altogether. When using Firefox and printing the map to PDF, the filters all result in bitmap elements that don’t scale well.

Tags: RSS RSS

February 27, 2013 10:29 PM

New Text Mapper Shapes

How to create new shapes for Text Mapper?

First, start with an empty SVG file:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg"
     height="200px"
     width="200px">
</svg>

I like to draw stuff using the calligraphy tool (c). I usually simplify the nodes a lot (Ctrl+L), unify the shapes (Ctrl++), edit the nodes by hand (n) until you’re happy with the fewest number of nodes you can manage.

Now move the entire shape such that it is centered on the top left corner. This is (0,0) as far as SVG is concerned. Save it.

https://farm9.staticflickr.com/8240/8512911746_4f1c405dba_o.png

Look at the SVG file and notice something like this:

    <path
       style="fill:#000000;fill-opacity:1;stroke:none"
       d="m 7.647323,-20.341905 c -5.784973,-11.791839
       -36.204242,-5.139394 -43.951039,7.112364 8.922877,-5.977096
       34.793258,-11.641806 37.046343,-5.498373 -17.505656,0.485788
       -29.019956,5.940662 -33.027811,23.8472764 C
       -21.859546,-12.603312 -7.5022983,-14.191144 2.47485,-12.984161
       -8.2112223,6.06712 -19.987316,13.477858 -15.788864,50.225619 c
       3.988368,3.362713 8.6116517,-5.097214 4.510279,-7.531518
       -0.559084,-6.64895 -0.875559,-13.360661 -0.08632,-20.004922 C
       -9.6892813,9.718021 1.072969,-6.510207 8.835372,-12.256094
       26.823805,-7.758432 35.550312,0.1756144 34.450001,15.351883
       44.387089,3.7916614 29.882349,-11.701263 14.406587,-15.219388
       28.287217,-15.939127 40.549839,-6.589098 45.412784,1.4541824
       47.026796,-8.361333 28.866764,-19.205208 16.79733,-20.277164 c
       10.765708,-6.95198 25.316253,-3.074379 29.792108,3.226712
       -4.893545,-14.115874 -36.158133,-10.60357 -38.942114,-3.291453
       z"
       id="path3007"
       inkscape:connector-curvature="0"
       sodipodi:nodetypes="ccccccccccccccc" />

You can already extract this path and use it! Usually it takes several attempts to get the placement right. Once I’m happy, I turn all these floating point numbers into integers in order to save space. Personally, I use Emacs to do it (EmacsWiki:RoundFloatingPoints).

This is what I want:

m 8,-20 c -6,-12 -36,-5 -44,7 9,-6 35,-12 37,-5 -18,0 -29,6 -33,24 C -22,-13
-8,-14 2,-13 -8,6 -20,13 -16,50 c 4,3 9,-5 5,-8 -1,-7 -1,-13 0,-20 C -10,10 1,-7
9,-12 27,-8 36,0 34,15 44,4 30,-12 14,-15 28,-16 41,-7 45,1 47,-8 29,-19 17,-20
c 11,-7 25,-3 30,3 -5,-14 -36,-11 -39,-3 z

Example input:

0202 jungle
jungle attributes fill="white" stroke="#b3b3ff" stroke-width="3"
jungle path m 8,-20 c -6,-12 -36,-5 -44,7 9,-6 35,-12 37,-5 -18,0 -29,6 -33,24 C -22,-13 -8,-14 2,-13 -8,6 -20,13 -16,50 c 4,3 9,-5 5,-8 -1,-7 -1,-13 0,-20 C -10,10 1,-7 9,-12 27,-8 36,0 34,15 44,4 30,-12 14,-15 28,-16 41,-7 45,1 47,-8 29,-19 17,-20 c 11,-7 25,-3 30,3 -5,-14 -36,-11 -39,-3 z

Output:

Jungle Hex

Example input:

0101 jungle
jungle attributes fill="#9acd32" stroke="black" stroke-width="3"
jungle path attributes fill="#228b22"
jungle path m 8,-20 c -6,-12 -36,-5 -44,7 9,-6 35,-12 37,-5 -18,0 -29,6 -33,24 C -22,-13 -8,-14 2,-13 -8,6 -20,13 -16,50 c 4,3 9,-5 5,-8 -1,-7 -1,-13 0,-20 C -10,10 1,-7 9,-12 27,-8 36,0 34,15 44,4 30,-12 14,-15 28,-16 41,-7 45,1 47,-8 29,-19 17,-20 c 11,-7 25,-3 30,3 -5,-14 -36,-11 -39,-3 z
text font-size="20pt" dy="15px"

Output:

Green Jungle Hex

Tags: RSS RSS RSS RSS

February 27, 2013 10:33 AM

February 26, 2013

Alex Schroeder

Text Mapper

Recently I wanted to create a little hex map and I wanted to do it on an iPad, I wanted to eventually integrate it into my campaign wiki, I wanted it to be SVG based, and so on. All that meant, Hexographer wasn’t the appropriate tool. I needed to cook something up myself. Based on code I wrote nearly five years ago—the Old School Hex Mapper—I wrote up a little something.

I’m calling it the Text Mapper because it takes text input. No interactive fiddling with the map.

There are various sections of the input.

Map

This is simple. Coordinates, terrain.

# map definition
0101 mountain
0102 mountain
0103 hill
0104 forest
0201 mountain
0202 hill
0203 coast
0204 empty
0301 mountain
0302 mountain
0303 plain
0304 sea
0401 hill
0402 sand
0403 forest

The rest of the input determines how things look: what colors to use, what icons to display. When you start the Text Mapper, the input area already contains an example. Start with that before doing anything else.

Terrain attributes

Now it gets tricky. For every terrain we used, the script will generate a hex. We need to provide some SVG attributes! Need documentation? Check out the polygon in the SVG specification and click on show next to presentation attributes. That’s what you should be looking at.

# attributes
empty attributes fill="#ffffff" stroke="black" stroke-width="3"
plain attributes fill="#7cfc00" stroke="black" stroke-width="3"
forest attributes fill="#228b22" stroke="black" stroke-width="3"
hill attributes fill="#daa520" stroke="black" stroke-width="3"
mountain attributes fill="#708090" stroke="black" stroke-width="3"
sand attributes fill="#eedd82" stroke="black" stroke-width="3"
coast attributes fill="#7fffd4" stroke="black" stroke-width="3"
sea attributes fill="#4169e1" stroke="black" stroke-width="3"

Icons

In order to add little icons, you can specify a path per terrain.

hill path M -42,11 C -38,5 -34,0 -28,-3 C -20,-6 -11,-5 -5,-0 C -2,2 1,6 3,9 C 4,12 2,13 0,14 C -3,9 -7,5 -13,2 C -21,-1 -30,0 -36,6 C -38,9 -40,11 -43,14 C -43,15 -44,14 -44,13 C -43,12 -43,12 -42,11 z M -5,-0 C 0,-6 7,-12 15,-16 C 21,-18 28,-17 33,-14 C 39,-11 41,-5 43,-0 C 42,2 41,5 39,2 C 37,-2 33,-8 27,-10 C 20,-13 12,-12 6,-7 C 2,-4 -1,-1 -4,1 C -7,4 -6,0 -5,-0 z

plain path M -18,-13 C -13,-6 -13,4 -8,12 C -11,14 -15,21 -18,26 C -20,17 -22,4 -28,0 C -26,-4 -21,-9 -18,-13 z M 5,-31 C 4,-19 3,-6 6,5 C 1,10 -0,14 -3,19 C -2,6 -3,-4 -4,-16 C -4,-21 2,-26 5,-31 z M 26,-1 C 16,6 19,5 9,18 C 12,3 21,-8 34,-17 C 32,-12 29,-6 27,-1 z

If you don’t want this path to be black, you need to specify attributes for the path element.

plain path attributes fill="#76ee00"
hill path attributes fill="#b8860b"

And finally, the coordinates are simple text elements.

text font-size="20pt" dy="15px"

If you wanted a black and white map, for example, you could use different strokes…

empty attributes fill="white" stroke="#b3b3ff" stroke-width="3"
mountain attributes fill="white" stroke="#b3b3ff" stroke-width="3"
hill attributes fill="white" stroke="#b3b3ff" stroke-width="3"
forest attributes fill="white" stroke="#b3b3ff" stroke-width="3"

If you want to create new path elements yourself in Inkscape, you should draw them in a rectangle from (-100,-100) to (100,100) and extract the the path info from the SVG. Yeah, adding new icons isn’t easy.

I need to add more icons. I’d also like to add multiple icons for the same terrain such that the code will pick one at random.

I wonder how easy it’s be to add text labels, roads, rivers and borders. :)

The result of the above:

Example map

(Also on GitHub.)

Tags: RSS RSS RSS RSS RSS

February 26, 2013 07:54 AM

February 21, 2013

Alex Schroeder

Character Generator and Price Differences

http://farm9.staticflickr.com/8048/8128736368_e0d82793bd_m.jpg

Last year, I worked on an old school random character generator. With my new found interest in B/X D&D and the Moldvay equipment list in particular, I found it necessary to differentiate between Basic D&D prices and Labyrinth Lord prices. The most important price difference is the price of plate armor. No first level character can afford it when using Labyrinth Lord rules: starting gold is 240 at most and plate armor costs 450.

Here’s how to generate those characters (note that Moldvay is the default):

  1. a random character
  2. 50 compact characters
  3. statistics on the characters generated

And here’s the same thing using Labyrinth Lord prices:

  1. a random character
  2. 50 compact characters
  3. statistics on the characters generated

Don’t forget, the source code for the random character generator is available as well (Perl 5).

Tags: RSS RSS RSS

February 21, 2013 12:41 AM

February 20, 2013

Alex Schroeder

Moldvay Preisliste

Für meine Labyrinth Lord Kampagne will ich eigentlich vermehrt auf die Preisliste des Basic D&D Sets von Moldvay (1981) zugreifen. Diese Liste ist deutlich kürzer als die Standardliste von Labyrinth Lord und beschränkt sich meiner Meinung nach auf die Dinge, welche für normale Abenteuer relevant sind. Wichtigster Unterschied ist sicher, dass die Plattenrüstung deutlich billiger als bei Labyrinth Lord ist. Ich habe für die Waffen auch versucht, einen kleinen Kommentar zu verfassen, der beschreibt, warum man diese oder jene Waffe verwenden sollte, obwohl sie alle 1W6 Schaden machen. Wer hier stutzt: Der variable Waffenschaden ist im B/X D&D und in Labyrinth Lord eine optionale Regel. Was ich hinzugefügt habe: gratis Holzpflöcke und Knoblauch (dieser ist in den Labyrinth Lord Regeln deutlich teurer), Bemerkungen.

Alle Waffen machen 1W6 Schaden.

Alternative Regel für den Verbrauch von Munition: Wird beim Angriff eine 1 gewürfelt, ist die Munition verbraucht.

Waffe Gold Bemerkung
Kriegsaxt7zweihändig, Türen einschlagen
Handaxt 4kann geworfen werden
Armbrust 30kann mit wenig Training verwendet werden (Stufe 0), kann liegend verwendet werden
↳ 30 Bolzen 10
Langbogen 40grosse Reichweite, kann in dichter Formation verwendet werden
Kurzbogen 25kann vom Pferd verwendet werden
↳ 20 Pfeile 5
Dolch 3kann geworfen werden, kann versteckt werden
Silberdolch 30kann gegen Lykantrophen in Tierform verwendet werden
Kurzschwert 7kann in dichter Formation verwendet werden
Langschwert 10kann vom Boden gegen Berittene und umgekehrt verwendet werden
Zweihänder 15kann gegen mehrere Gegner gleichzeitig verwendet werden, benötigt viel Platz
Keule 3stumpf
Kriegshammer 5stumpf
Streitkolben 5stumpf
Stangenwaffe 7zweihändig, kann aus der zweiten Reihe und in dichter Formation verwendet werden
Schleuder 2benötigt viel Platz
↳ 30 Steine stumpf
Speer 3kann geworfen werden

Bessere Rüstung macht langsam.

Rüstung Klasse Gold Bemerkung
Leder 720
Kette 540kein Schleichen, einfaches Ertrinken
Platte 360kein Schleichen, einfaches Ertrinken
Schild -110kann zerstört werden um einem Angriff zu entgehen
Helm 10hilft auf der Tabelle für Verletzung und Tod

http://farm7.staticflickr.com/6044/7037062693_c58853ecba_m.jpg

Gegenstand Gold Bemerkung
Diebeswerkzeug 25wird von Dieben für das Öffnen von Schlössern benötigt
6 Fackeln 1brennt eine Stunde; kann Tiere ängstigen
Hammer (klein)2für Holzpflöcke und Keile
Heiliges Symbol 25wird von Klerikern für das Vertreiben von Untoten benötigt
Heiliges Wasser 25schadet Untoten wie brennendes Öl
Holzpflock um Vampire zu pfählen
Holzstab 1billiger als eine Stangenwaffe um Dinge zu stupsen
12 Keile 1hält Türen offen oder geschlossen
Knoblauch 1eine Halskette, um Vampire fern zu halten
Laterne 10braucht eine Ölflasche für vier Stunden
Ölflasche 2brennt für zwei Runden für je 1W8 Schaden, wenn es mit einer Fackel in Brand gesetzt wird; eine brennende Öllache ängstigt Tiere
Rucksack 5um weitere Gegenstände zu tragen
Sack (gross)2um Schätze zu schleppen
Seil (50’)1schweres Seil, welches nicht weiter als ein paar Schritte geworfen werden kann
Spiegel 5für den Nachweis von Vampiren und um Medusen zu bekämpfen
Wegration (1 Woche)15kann Monster ablenken
Wolfsbann 10hält Werwölfe fern

Kommentare gerne hier oder im Forum.

Tags: RSS RSS

February 20, 2013 10:23 AM

February 19, 2013

Alex Schroeder

DungeonFu und Kampagnen Online

Für Harald’s Karameikos Kampagne wollte ich mal schnell eine Karte zeichnen. Für die oberirdische Karte habe ich Inkscape verwendet. Das ist etwas komplizierter als nötig aber immer noch besser als Pixel malen. Die resultierende SVG Karte konnte ich dann hochladen und das sah etwa so aus:

Als Schrift habe ich Blackadder ITC verwendet. An vielen Orten online hiess es, diese Schrift sei “free” – aber Microsoft verlinkt auf fonts.com, wo die Schrift $29 kostet. Hm.

Online und mit deutlich weniger Funktionsumfang bietet sich die Verwendung von Google Docs mit der DungeonFu Vorlage an. Auf der Webseite von Jez Gordon findet man noch Verweise auf DungeonFu aber die neue Version will nicht so richtig funktionieren. Meine Empfehlung: Verwendet einfach die DungeonFu 1.0 Vorlage.

Man macht sich eine Kopie der Vorlage, kopiert und rotiert herum bis man zufrieden ist, und wählt dann File → Publish to the web... und klickt sich durch. Am Schluss erhält man eine URL, welche man als Bild anderweitig verwenden kann. Das sieht dann so aus:

Die Höhle ist ganz einfach gemacht: Man malt sich ein rechteckiges Zimmer und wählt dann in der Liste unter dem Linienwerkzeug Polyline aus, malt einen “Rand” rund um das ganze und färbt es schwarz ein.

Mit Strg+G kann man Objekte gruppieren. Das lohnt sich, wenn mal ein Raum steht, weil dieser sich dann leichter verschieben und duplizieren lässt.

Wenn man übrigens mit zwei Browserfenstern arbeitet, im einen hat man die Vorlage offen und im anderen die eigene Karte, dann kann man Objekte nicht einfach kopieren und einfügen. Man muss jedesmal Edit → Web clipboard → Copy shape to web clipboard wählen und im anderen Fenster dann entsprechend Edit → Web clipboard → Shape und die richtigen Objekte auswählen. Irgendwie mächtiger, aber irgendwie auch mühsamer.

Kommentare hier oder auf dem Forum.

Tags: RSS

February 19, 2013 11:01 AM

February 18, 2013

Alex Schroeder

Red Heart Fortress

The Red Heart Fortress was an example on adventure prep that got published in Fight On #8. At the time, Calithena had mentioned on the forum that he might be interested in half-finished notes etc. I submitted the following:

https://farm9.staticflickr.com/8097/8485400098_107b9467a4_c.jpg
Red Heart Fortress (redrawn)

The essay that went along with it wasn’t published but it’s available on this blog together with the colored original I used for my own game.

Tags: RSS RSS RSS

February 18, 2013 09:16 AM

Notes To Remember

Recently Harald Wagner wondered on Google+ “Is anyone but me writing short vignettes (three to five paragraphs) of background stories for important locations / items in their games even though they’re never meant for publication and most probably no one will ever be able to figure out all the details in game?”

In the old days, I used to write longer notes to myself:

https://farm4.staticflickr.com/3240/2931885614_7b2fd06a47_z.jpg
Notes on an enemy camp where the red dragon ruled

These days, if there is any background at all, I try to make it part of the adventure. I find that whenever there are written things to be found, my players want to read what they say. Often modules will have nice hand-outs for plot-relevant stuff, but no list of titles and short blurbs for libraries, correspondence, stone tablets, and so on. I always have to improvise. Whenever I forget to prepare such a list of things to read, I feel a facepalm coming up as we reach that point during the session. The players ask: “What do the books say?”

In this case, I did not forget to prepare ahead of time. There were stone tablets to find and information about the dungeon, the setting and its history to be found.

https://farm3.staticflickr.com/2273/3532593543_04a879e091_z.jpg
Stone Table Notes

Here are the beginning of my Caverns of Slime. Some coherent notes to help me get an overview of what the adventure is all about.

https://farm4.staticflickr.com/3354/3571723898_486e5505e0_z.jpg
Ooze Lord Ideas

Again, a dwarven stronghold, with a few coherent sentences. “The dwarves are a suspicious, isolationist lot. […]”

https://farm3.staticflickr.com/2184/4195476858_d76961a1f5_z.jpg
Red Heart Fortress

I wrote more about this particular example back in 2010. When I rewrote this for inclusion in Fight On! #8 I also cleaned up the notes a bit. You can better see what I’m aiming for, but since it’s “cleaned up” it doesn’t reflect actual notes from my gaming table.

I think these examples also illustrate that I want my notes on my maps!

Tags: RSS RSS RSS

February 18, 2013 08:59 AM

February 17, 2013

Alex Schroeder

Spell Book Notation

http://farm5.staticflickr.com/4139/4900445467_c34b4d0ac7_n.jpg

A problem I often have is spell books. What spells are in those books? Which spells has the magic user memorized? What about his apprentices and friends?

Here’s my solution to this dilemma:

  1. No caster has memorized a spell twice.
  2. I create a master spell book and related casters just use subsets of these.

This works with my conservative interpretation of spell books (but does not depend on it) and  it gives every group of magic users a distinct flavor.

Recently I was wondering how to write it down, however. I used to just write down the master spell book. That slows me down when figuring out which spells lower level casters know. Here’s how I wrote it down for my neogi deathspider spelljamming mages (these have a level of 1d8). The important part is the second column. I also like to include alternative spell names in order to add flavor.

Spell Level Caster Level Spell Name Traditional Name
11Power over lesser minds charm person
12Power of a merchant’s greed detect magic
17Mind blasting cattle brains sleep
23Listening to the chatter of idle brains ESP
24Bending perception phantasmal force
28Unity with our arachnid ancestors web
35Blasting of rebellious cattle lightning bolt
36All seeing eye of the overlord clairvoyance
47Bending the will of all creatures charm monster
48Blessing of chaos eternal confusion

(I’m not sure, perhaps it would make more sense to sort this table by the second column?)

Tags: RSS

February 17, 2013 02:08 AM

February 15, 2013

Alex Schroeder

Players Mapping

How do your players map the dungeon? I used to describe it in detail: “thirty feet down the corridor is a door on the left, and a further ten feet it ends in front of yet another door.” This was cumbersome and frustrating. Then I mapped for my players: “Give me the map and I’ll draw it!” This was slow and broke the flow. As a player, I discovered that I liked mapping as our DM kept talking. The resulting maps were crude, wrong and great fun. Thus, when Youseph Tanha said on Google+ that this has slowly driving him insane, I decided to look for some examples.

My map of a Set temple:

http://farm9.staticflickr.com/8070/8165450871_d12d66ef7f.jpg

This is what Bruno drew:

http://farm9.staticflickr.com/8096/8475802424_980098962b.jpg

Another example. Recently I was running my party through Tower of The Changer by Aos:

http://farm9.staticflickr.com/8387/8474744595_147658271e.jpg
(PDF available)

This is what Claudia drew, rotated by 90°:

http://farm9.staticflickr.com/8103/8474726451_7fa46da5ba.jpg

Looking at the comments left on Youseph’s post, I guess this is very similar to what Joseph Bloch is doing:

I describe the surroundings to the players, but I never give them precise dimensions unless it’s something about 30’ or so. I use vague descriptors such as “the corridor goes a long ways” or “this is a very large rectangular room; the door you came in is near the middle of one of the long sides.” – Joseph Bloch

Tags: RSS

February 15, 2013 08:32 AM

Phil Jones (Smart Disorganized)

Personal Question

Question : Hey Phil, do you actually do any programming these days?

Answer : Yes. Quite a lot at the moment. Though it's a bit all over the shop.

I'm dipping a toe into Android programming. (And, hmmm ... Java .... I thought I'd got over my Java hangups by doing a lot of Processing, but it turns out that Processing just hides the crap and Android doesn't. Why hasn't Google picked up on Processing to turn it into a first-class Android art / game app. development environment?)

I'm mainly writing CoffeeScript. Some stuff related to my ongoing 3D modelling / desktop manufacturing projects. (Did I forget to mention those? I'm sure there's a half-written blogpost somewhere.) Some work towards an SdiDesk-derived network diagramming plugin for Smallest Federated Wiki (held up by silly problems). Some other bits and pieces. I've recently been playing with Jison, which rocks. And I'm about to investigate angular.js which looks pretty good.

There's a project for small stand-alone web-servers that I'll talk about more if / when it takes off.

I've been trying to compile example VST instruments  (C++) for some of my work with the Brasilia Laptop Orchestra, but it's driving me crazy. (I may go back to Pure Data which can be embedded in a VST.)

A bit of PHP, just simple small web-services.

I'm going to be teaching an Arduino course soon. So I'll be writing a bit of C and I want to try Occam-.

I'm still writing Python too. Mainly for short file transformation scripts or to prototype algorithms that later get translated into CoffeeScript.

Some of this stuff is headed for GitHub soon.



by noreply@blogger.com (phil jones) at February 15, 2013 05:27 AM

Giles Bowkett: Rails Went Off The Rails

It's fascinating to read Giles Bowkett on Rails, its bloat, its falling out of fashion.

Fascinating mainly because it so clearly highlights that no-one is immune from this life-cycle that goes :

  • new, simpler and easier than anything else
  • hot-new thing that everyone loves
  • adding more fluff to deal with more edge-cases
  • build-up of technical debt
  • re-writes to try to make more general, more principled, but requiring more configuration
  • old and bloated.
Certainly Python isn't immune. We've been through this cycle with Zope, Plone ... feels like Django has too. Java went through it several times. The node/js/coffeescript frameworks will go through it too. 

DOS/Windows did it. I guess the Macintosh OS has, though Apple have been more willing to kill and reboot its operating systems with the moves to OSX (BSD) and then iOS.





by noreply@blogger.com (phil jones) at February 15, 2013 04:47 AM

VB.NET

I'm amazed that Microsoft didn't get the VB.NET domain name.

by noreply@blogger.com (phil jones) at February 15, 2013 03:19 AM

February 12, 2013

Phil Jones (Smart Disorganized)

Why Pascal is Not My Favorite Programming Language

This is a great essay on what's wrong with Pascal. But really, it's a great essay on what are some of the nice touches of C that makes it such a good language.

by noreply@blogger.com (phil jones) at February 12, 2013 06:31 AM

Alex Schroeder

Fight On is going down

Fight On! Fight On! magazine is going to cease publications after one or two more issues:'(

Here’s what I’d like to see:

  1. somebody to keep it going
  2. PDFs of past issues available for free

Any suggestions for similar magazines? I listed some last year. Did I miss any newcomers?

Tags: RSS RSS

February 12, 2013 12:55 AM

February 04, 2013

Phil Jones (Smart Disorganized)

Universal Programming Literacy

My answer to a Quora question : What would happen in a world where almost everyone is programming literate?
How might such a world (of universal programming literacy) come about? 
Most likely from a continuing trend to automate the way a lot of work gets done, and then people would learn programming as a way of engaging with that world. 
For example, instead of spending half an hour in the supermarket or even 10 minutes browsing a supermarket site on the web, you might be able to compose an augmented shopping list on your phone. 
6 Apples
4 bread rolls 
Could become : 
"Apples".
prefer("Pink Lady" or "Fuji").
take(6).
otherwise.take(4)

"Bread rolls".
only("Wholemeal").
take(4).
prefer("Top=Poppy Seed")

Deliver("Wednesday")
Order_from(
priorities("Waitrose","Asda","Sainsbury","Tesco")

)

Similar little languages can be developed for most activities. So I'd guess that we'll all be writing little scripts for robots or large automated services. There's an assumption that people must prefer navigating rather laborious graphical interfaces to get stuff done. But if they were more programming literate they may learn to use and love such small scripts instead.

by noreply@blogger.com (phil jones) at February 04, 2013 03:47 PM

February 01, 2013

Alex Schroeder

New Domain

I’m slowly, very slowly, preparing for the separation of Emacs Wiki and my own web presence (this site). Where as Emacs Wiki runs on ThinkMo.de in Germany with excellent uptime costing $20/month, most of my other projects run on Eggplant Farms in the United States. All the old links should still work—I’m a strong believer in Cool URIs don’t change. Just don’t be surprised if you’re being redirected from emacswiki.org/alex to alexschroeder.ch. :)

Let me know if you spot anything that doesn’t work: broken links, missing icons, error messages.

Tags: RSS

February 01, 2013 09:45 PM

January 30, 2013

Alex Schroeder

Google Communities

Google+ Communities The problem with Google+ used to be that joining it gave you nothing. You needed to circle some people. Those people could potentially read what you wrote. For them to actually see it in their stream, however, they would have to circle you back. Alternatively, you could just post for all to see, but that doesn’t announce yourself to others, thus they won’t circle you, thus they’ll never see you in their stream.

Now, if you keep posting to your circles, and somebody new stumbles upon your profile, they see nothing. If you did not any public posts, then there’s nothing to see. That’s why people kept saying that you had to list your interests on your profile for others to figure out which circle to put you in. Hopefully you would in turn—based on their posts you saw—put them in the appropriate circles. This situation was better if you posted publicly, but it also tended to annoy some people: they just want to see posts on a particular topic, not see your political ranting and all that.

I sent Google feedback saying that I wanted to announce some of my circles on my profile such that people would automatically know how to sign up for them. Instead, we got Communities.

I think that in addition of working like instant forums, Communities can work just as I intended. Here’s how: Pick a circle like RPG. Instead of posting to the circle, post to the RPG Community. Tell others that this is what you are doing, eg. on your profile. The others add you to their circle and join the RPG Community. Now they’ll see your RPG posts without ever going to the Community. In fact, neither you nor they will ever “look at the Community”. All you’re doing is tagging the posts. This works because if you have circled people and they post in Communities both of you joined, you’ll see their posts in your stream. This way, the simple membership expresses interest in a circle. What do you think? It sounds like an excellent solution to me.

The benefit is that you, as the author, don’t need to circle your readers. At the same time, newcomers can go to the Communities, check out who writes interesting stuff and circle the authors. It’s no longer symmetric.

The drawback is that now all your posts are effectively public—and obviously so since you posted to a public Community. If you want to draw a thin line, you can switch of the setting “Show your Google+ communities posts on the Posts tab of your Google+ profile.” Unfortunately, this also stops announcing your interests unless you link the communities you are posting to from your profile.

There is also the additional drawback of potentially annoying the people that want to treat communities like a forum. I’ll have to try it in order to know for sure.

Yet another drawback is that people that have me circled but haven’t joined any of the Communities I am using will not see those posts. I used to post to the RPG Circle, but now I’m posting to the RPG Community. If they are in my RPG Circle but haven’t joined the RPG Community, they won’t see the post unless they visit my profile. Well, to be honest I haven’t posted much of anything at all, but that would be the plan.

My current RPG communities:

I don’t think joining communities for systems I don’t use or Google+ Hangouts makes much sense (since I get to play a lot offline).

My current software oriented Communities:

Any other suggestions?

Updates:

Tags: RSS

January 30, 2013 08:42 AM

January 29, 2013

Alex Schroeder

Meine Probleme mit Burning Wheel

http://farm3.staticflickr.com/2365/2216856805_218984e2b2_m.jpg

Gerade eben sah ich eine Frage von Thorsten Panknin auf Google+ zum Thema Burning Wheel. Ich habe mit Burning Wheel Revised zwei Einzelspiele geleitet (einmal Heian, einmal das Zombiebäreneinführungsabenteuer aus einem der Bücher), eine kurze Kampagne über das Netz geleitet (nur zwei Mitspieler, ein Abend Welterschaffung, sechs Abende für die Kampagne, Campaign:Krythos), und einmal in einer kurzen Kampagne am Tisch mitgespielt (wieder sechs Abende, Campaign:BurningSix). Was ich ihm auf alle Fälle geschrieben habe:

Ich wollte Burning Wheel immer gerne haben, habe Burning Wheel Revised gekauft, Zusatzbänder, Heian Setting, Jihad Setting, wollte meine Freunde überreden, es auszuprobieren… und als ich es dann probiert habe, war es lasch: die einfachen Dinge zu kompliziert (sobald man beim Kämpfen das einfache Gegeneinanderwürfeln weglässt), soziale Konflikte wollte ich lieber ausdiskutieren statt mit LSD-Schere-Stein-Papier auswürfeln, die Charaktererschaffung war langwierig und mühsam (endlose Zahlenschaufelei und tausend Fehlerquellen, dabei war die Anzahl Karriereschritte und die von ihnen vorgegebenen und erlaubten Fertigkeiten das einzig Interessante), überhaupt: Rüstungsverfall, Trefferregionen, Deckung… Da schläft mir das Gesicht ein, bis wir weiter kommen. Grundsätzlich mit extrem viel Meta Diskussion, weil die einzelnen Schritte nicht trivial sind oder gar ausgehandelt werden müssen, und demzufolge fehlt mir die Immersion. Ein Metaspiel mit Artha (Heldenpunkte) finde ich immer noch schrecklich, weil damit ein Teil der Spannung wegfällt, die Konflikte verlängert werden, der Spieler irgendwie entmündigt wird (kann er nicht richtig spielen kriegt er keine Punkte?). Der Tonfall des Autors, die Emo Magie, Lebenspfade, diese öfter kritisierten Elemente finde ich immer noch gut.

Zum Thema Artha bzw. Heldenpunkte und zum Thema soziale Konflikte habe ich auch mal was auf Englisch geschrieben: I don't like Bennies, Role Play, not Wish Fulfilment.

- - - 0

Kommentare hier, auf Google+ oder auf dem Forum.

Tags: RSS

January 29, 2013 10:12 PM

January 23, 2013

Alex Schroeder

Security of Code Downloaded from Online Sources

In the anonymous rant The Wikemacs Experiment: 300 Days Later, the author claims “The biggest problem is that it is insecure. […] Anyone can edit any of the pages that contain Elisp code.” The same sentiment was expressed by Alex Bennée in a comment on Google+: “What is really needed is a way to be sure that the source for the emacs extension your updating hasn’t been subverted by someone else with ill intent.”

I said:

Experiences and ideas of “what is really necessary” vary. As for myself, I’ve installed code from all over the Internet without reviewing the source. Installing it from a gist or git repo is hardly a different experience. If you want to figure out whether a source is trustworthy, you do the usual things: do people link to the code, how long has it been around, what about recent checkins, that sort of thing. Or you get into the crypto business of signing releases.

You could of course say that every day that passes without a problem increases our false sense of security… I have no answer to that. All I can say is that if security is your problem, using gists and github is not the solution (as you say yourself). The source of the insecurity is our habits, our culture of downloading and installing anything and everything. I’m not sure how you’ll ever make sure “that the source for the emacs extension your updating hasn’t been subverted by someone else with ill intent.” That seems pretty impossible to me unless you limit yourself to the core Emacs distribution (and even that’s not a guarantee).

People on the #emacs channel keep asking “is there way to do X” and thus my impression is that finding stuff is a more pressing problem. I feel that encouraging people to create a page on the wiki saying “here is code to help you do something” is the solution to that problem.

But then again, I guess we all differ in what we consider to be the most pressing problem.

Alex Bennée the correctly points out that using “a user locked solution like a gist or git repo you can at least be assured what you’re installing has come through one person who you’ve trusted to a degree before.” I guess that’s true. We’ll see whether people start switching over to using gists instead of editing wiki pages. I said in an earlier comment:

I added gist support […] because it was easy to do, not because it will encourage existing authors to move their elisp code on wiki pages to github. If at all, it might encourage future elisp authors to transclude a gist… But then again, there’s nothing preventing them from linking to a gist right now. Perhaps it’s also a generational thing. People that have been living without github and gists don’t feel a particular need to start using it.

Interesting times. :)

Tags: RSS RSS RSS RSS

January 23, 2013 11:58 AM

January 22, 2013

Alex Schroeder

Gists on Emacs Wiki

I just read a rant about Emacs Wiki and it’s alternative: The Wikemacs Experiment: 300 Days Later. Check out How Emacs Wiki Works for some context from my point of view. Anyway, the anonymous author says: “Maybe someone could work with Alex to add gist-style code snippets to Oddmuse, and make it so that code can be cited inline on Wiki pages, so that anyone visiting the page is automatically looking at the most up to date version of the code.”

Let’s take this random gist as an example. Click on the “view raw” button. Use <include text "..."> to transclude it:

(setq abg-elisp-external-dir
      (expand-file-name "external" abg-elisp-dir))

; ...

; Add external projects to load path
(dolist (project (directory-files abg-elisp-external-dir t "\\w+"))
  (when (file-directory-p project)
    (add-to-list 'load-path project)))

Actually, I added an Emacs Wiki feature using two lines of code that add support for fancy inclusion:

<include gist "https://gist.github.com/1236665">

It only works over there, however. See EmacsWiki:Gists.

Anyway, the same also works for Lisppaste:

<include text "http://paste.lisp.org/display/134703/raw">

Results in:

;; Set XTERM resources as so
;; 
;; metaSendsEscape: false
;; altSendsEscape: false
;; eightBitInput: true

;; Verify with cat > /dev/null command that pressing alt-a
;; alt-b and so on produces single >128bit char (will look
;; like a with a hat

;; once above is working in emacs do

;; Prevent pressing esc O from triggering binding
(define-key (get-input-decode-map) "\eO" nil)

;; tell emacs Meta is 8th bit
(cond ((fboundp 'set-input-meta-mode)
      (set-input-meta-mode t))
    (t (set-input-mode t nil t)))

I don’t think there’s a nice way to include the colored version, unfortunately.

Update: I added support and minimal Lisp highlighting for the following:

<include lisppaste "http://paste.lisp.org/display/134703">

It only works over there, of course.

Tags: RSS RSS

January 22, 2013 10:02 AM

Changers

These days my players are exploring the Forgotten Depths. I added Tower of the Changer (from Metal Earth). It mentions Dilvashti the Carrion-Sculptor (from Planet Algol). Looking at my campaign and the existing Frankenstein arts, I decided that a level 14 Vivimancer using Theorems & Thaumaturgy (from The City of Iron) would be ideal.

What can I say? Some of the best stuff out there is free. Thank you, RPG bloggers!

http://farm9.staticflickr.com/8191/8381729626_9a7efef585.jpg

Also, my blog needs more metal. ;)

Tags: RSS RSS

January 22, 2013 09:01 AM

January 19, 2013

Alex Schroeder

Spears of the Dawn

Spears of the Dawn
African-flavored fantasy adventure gaming
The PDF for backers of Kevin Crawford’s Spears of the Dawn is done! It was on Kickstarter: “Spears of the Dawn, an African-inspired old-school RPG from the maker of Stars Without Number.”

I just leafed through it and I liked what I saw! It makes me want to add an African-inspired section to my campaign right now.

I liked the art. The pieces fit together, had a unified style, made me want to play or meet those characters.

Remember, I didn’t read those 180 pages. But some of my impressions regarding the rules: standard six attributes but smaller modifiers: 3 → -2; 4–7 → -1; 14–17 → +1; 18 → +2. There are four cultures with half a page of background followed by a large number of interesting one-paragraph character backgrounds that grant you a number of skills. Skills go from 0–4. I’m not a big friend of skill systems, but it doesn’t bother me too much.

There are four classes: warriors (fighters) and three classes with magical abilities—griots (bards), marabouts (clerics) and ngangas (magic users).

The “fighters” have access to a very simple feat system. I’m no friend of the feats in D&D 3.5 or Adventure Conqueror King, but this system here only takes a single page and doesn’t constitute a feat tree and only concerns fighters. I think this works for me.

There are three kinds of “bard” songs (minor, great, ancient) and characters get access to the more powerful variants at 4th and at 7th level. I like the simplicity of the system. The effects of these songs persists for as long as they are being sung.

The “clerics” can invoke miracles (spells) from a variety of spheres. They are spontaneous casters with a certain number of miracles/day limit. Each sphere comes with a list of spells. Thus, by gaining access to more spheres they get more choice in spells. Their favorite sphere gets them a minor magical ability.

The power of “magic users” comes in the form of rituals and spells. Known rituals can be performed as long as the characters have the necessary time and resources (many cost money). Spells are “memorized” by creating little fetishes and “cast” by triggering them.

The various classes are an excellent demonstration of how to rewrite the standard descriptions to conjure up a different atmosphere and invoke the new setting.

There is a one-page quick reference after the rules section. Excellent idea.

There is a lot of material explaining how to run a sandbox campaign without just copying what he said in Red Tide and An Echo Resounding. Excellent!

Three pages on how to play—responsibility of players, responsibility of the referee, how to start the first session, this kind of stuff, short and succinct. Another three pages on typical pitfalls: how to use combat in your game, how to handle character death, how to handle investigative games, how to handle magic items, how to handle unfamiliarity with the setting. All of these are a great introduction to people unfamiliar with sandbox play, I think. Thinking back to my recent game mastering career and remembering the D&D 3.5 Dungeon Master Guide, I’d say that these pages here come with all the relevant advice that you need.

The domain game uses Might, Trouble and Treasure as the kingdom stats. In An Echo Resounding the three stats were Military, Social and Wealth. If you’re interested in a short overview of An Echo Resounding, check out my summary. The concepts are similar. These stats are used to resolve the kingdom turns. The game does not come with units, resources to build, mass combat and all the other things An Echo Resounding introduced.

As for creating adventures: the book comes with an empty map for a dungeon, a building, an estate, a shrine, a cave; it comes with tables for cults, magic user spells, non-player characters, cultures, names, adventure elements; domain game rules incl. building costs, henchmen, hirelings, magic items, treasures, monsters—all suitably themed! I think this is awesome. The book also comes with a lot of advice on how to go about creating adventures, how to think about the set (the place), the actors (denizens, non-player characters) and props (treasure, items), and how to put the three together. Skimming through this section, I found myself nodding along.

There is an index, which is something I appreciate. There’s also an annotated bibliography for fiction, history, mythology, religion and pictures. This should be useful for people like me with practically no experience with Africa.

All in all, I think this book would be an excellent book. With its 180 pages it looks much like a slightly expanded B/X D&D with an African theme. It has plenty of good advice and ideas for beginners and sandbox newbies. Personally, I think many games lack the succinct guidance a new referee needs. The D&D 3.5 DM’s guide didn’t have it. I don’t think my favorite variant of the game has it, either: Labyrinth Lord is quite bare bones. At the same time, Spears of Dawn is not simply a collection of house rules tacked onto B/X D&D. The infusion of the African setting into every paragraph and its strong focus on teaching the reader how to run a sandbox campaign sets it appart.

star star star star star

I highly recommend it. Then again, remember I haven’t read it in depth (and I probably won’t unless the campaign moves into an African direction).

Tags: RSS RSS RSS RSS RSS

January 19, 2013 05:09 PM

January 14, 2013

Alex Schroeder

Javascript

I just rewrote my Tag Cloud to use the Google Treemap.

What it does is the following:

  1. The cloud action runs the old code (text representation).
  2. The tagcloud action runs the new code.
  3. The new code basically takes the example Google Treemap and replaces the data with my tags. These tags are not nested.
  4. On click, we call the tag action which shows the last blog pages with that tag.

Try it! → Tag Cloud. (I realize that the tag cloud isn’t very interesting in and of itself. I just enjoyed using the Google tools and learning a little bit of Javascript on the way.)

$Action{cloud} = $Action{tagcloud};
$Action{tagcloud} = \&MyTagCloud;

sub MyTagCloud {
  print GetHeader('', T('Tag Cloud'), '');
  # open the DB file
  require DB_File;
  tie %h, "DB_File", $TagFile;
  my $max = 0;
  my $min = 0;
  my %count = ();
  foreach my $tag (grep !/^_/, keys %h) {
    $count{$tag} = split(/$FS/, $h{$tag});
    $max = $count{$tag} if $count{$tag} > $max;
    $min = $count{$tag} if not $min or $count{$tag} < $min;
  }
  untie %h;
  # ignore 90% of all tags
  my @values = sort values %count;
  $min = GetParam('min', $values[int($#values * 0.9)]);
  # https://developers.google.com/chart/interactive/docs/gallery/treemap
  print <<EOT;
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["treemap"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        // Create and populate the data table.
        var data = google.visualization.arrayToDataTable([
          ['Location', 'Parent', 'Mentions', ''],
          ['Tags', null, 0, 0],
EOT
  foreach my $tag (sort keys %count) {
    my $n = $count{$tag};
    next unless $n > $min;
    print "          ['$tag', 'Tags', $n, 0],\n";
  }
  print <<EOT;
        ]);
        // Create and draw the visualization.
        var tree = new google.visualization.TreeMap(document.getElementById('treemap'));
        tree.draw(data);
        google.visualization.events.addListener(tree, 'select', selectHandler);
        function selectHandler() {
          var selection = tree.getSelection();
          var item = selection[0];
          window.location = "/alex?action=tag;id=" + data.getValue(item.row,0);
        }
      }
    </script>
EOT
  print $q->start_div({-class=>'content cloud'});
  print $q->p(ScriptLink('action=tagcloud;min=0', T('Include all tags')),
              Ts('(currently showing tags with more than %s occurences)', $min));
  print $q->p(Ts('Or switch to a %s.', ScriptLink('action=cloud', T('text format'))));
  print $q->start_div({-id=>'treemap', -style=>'height: 1000px;'});
  print $q->end_div();
  print $q->end_div();
  PrintFooter();
}

Tags: RSS RSS RSS

January 14, 2013 10:02 AM

January 11, 2013

Alex Schroeder

Trying LaTeX Again

http://farm9.staticflickr.com/8207/8220187813_514cb733eb_n.jpg

Inspired by a link to LaTeX templates Brad Murray had posted recently on Google+, I decided to try and spend a few hours moving a German FATE variant of mine (inspired by the simplicity of the Diaspora core but with skills appropriate for a Mesopotamia or Ancient Greece setting) to LaTeX. I really wanted to use the Tufte template.

I really hate editing the text such that section beginnings and endings fall on page breaks! But I think it worked. I’m not quite sure whether it it actually significantly better. After having spent a few hours refreshing my LaTeX skills, I guess I’m just happy it’s done! What do you think of the layout?

Tags: RSS RSS

January 11, 2013 03:44 PM

Trying LaTeX Again

http://farm9.staticflickr.com/8207/8220187813_514cb733eb_n.jpg

Inspired by a link to LaTeX templates Brad Murray had posted recently on Google+, I decided to try and spend a few hours moving a German FATE variant of mine (inspired by the simplicity of the Diaspora core but with skills appropriate for a Mesopotamia or Ancient Greece setting) to LaTeX. I really wanted to use the Tufte template.

I really hate editing the text such that section beginnings and endings fall on page breaks! But I think it worked. I’m not quite sure whether it it actually significantly better. After having spent a few hours refreshing my LaTeX skills, I guess I’m just happy it’s done! What do you think of the layout?

Tags: RSS RSS

January 11, 2013 03:44 PM

January 08, 2013

Alex Schroeder

Online Photos

In 2012, I basically took pictures using Instagram, shared them with Facebook (part of the family), Twitter (another part of the family), Flickr (my favorite), and I used IFTTT to send a copy to Picasa Web because I felt that I’d like to have some pictures for people to see on Google+.

But then, when Instagram changed its terms of service (they rephrased them somewhat) and I decided that I might want to look into using something else for a bit.

I liked the new Flickr app somewhat.

I tried organizing my pictures on Picasa Web but was unable to create a new empty album in order to move some of my pictures in the Scrapbook album. When I selected more than 300 of the pictures and tried to move them, it also told me I could not move more than 100 at a time. I was confused. It looked like the user interface could use some improvements. I even started up my local Picasa copy and wasn’t clear on how to use it to manage my albums online. Perhaps you can’t. I was not impressed. It looks as if I’m not going to abandon iPhoto any time soon. Then again, I really want to abandon iPhoto one of these days because I hate it’s opaque storage regime.

Also, the lens or the protective plastic cover of my iPhone camera is scratched. The photos from the main camera now all look hazy. The terrible quality had resulted in me taking a lot of self-portraits from the second camera.

Since I didn’t want to use Instagram too often, I have uploaded the pictures to Flickr directly. This means that I haven’t posted any pictures to Facebook; I haven’t posted any pictures to Twitter, and none where uploaded to Picasa Web.

Strangely enough it doesn’t bother me.

Maybe it bothers me a bit because I’ve been using simple photos of my daily life as a replacement for status updates for my family and friends. We’ll see. Perhaps I’ll post status updates again. Or I’ll abandon Facebook. Or resume the use of Instagram.

http://farm9.staticflickr.com/8324/8361623336_2a0c20b3ac_m.jpg http://farm9.staticflickr.com/8046/8349494004_a65d7c1f1e_n.jpg http://farm9.staticflickr.com/8498/8344704179_37787e214f_m.jpg http://farm9.staticflickr.com/8082/8324968293_acd56ba786_n.jpg

Tags: RSS RSS RSS

January 08, 2013 03:46 PM

December 26, 2012

Phil Jones (Smart Disorganized)

Adobe Brackets

Adobe's Bespin-like editor, written in javascript / html.

Sweet

by noreply@blogger.com (phil jones) at December 26, 2012 05:01 PM

Social Media 2012

My comment on Alex's blog :


Well, you already know but I still think wiki has a future, as pointed to by Smallest Federated Wiki. There are some flaws / issues with SFW, mainly I think because not enough people are working on it, but it’s still the signpost for how wiki could evolve. 
Would still love to see you and other UseMod / OddMuse people look at ways to engage, even if you don’t switch over. 
2012 is the year when it just became more and more clear that we need our own space and shouldn’t be dependent on Fb / Tw / G+ etc. 
Fb / Tw / G+ offer two compelling things : 1) an aggregate river of stuff from people we care about, 2) really easy transclusion from various rich media sites. 
We could have a distributed river architecture if we took RSS and some kind of pubsub architecture (eg. RssCloud) seriously. SFW has made transclusion protocols central to its philosophy. If we pick up on both, figure out how to get the most important things we get from the mainstream working smoothly, we can create a compelling alternative on our terms. And one of the interesting, overlooked, facts about G+ is that it showed that significant numbers of people are still willing to experiment with alternatives. As long as you can get a critical mass of around 20 people you care about to use it, G+ is as valuable as anything else. You don’t need 1 billion users. You aren’t trying to take over the world at this point, just to have a syndication / discussion architecture which isn’t owned by THEM.

by noreply@blogger.com (phil jones) at December 26, 2012 02:06 PM

December 24, 2012

Alex Schroeder

December 23, 2012

Alex Schroeder

Social Media this Year

I’m looking back at my blog and trying to remember the things that happened.

Google+ replaced Twitter, for all my talk about role-playing needs. For a while, my tweets were all about gaming. These days I use Twitter as an alternative to RSS for the kind of news that I might want to look into every now and then without wanting to read everything.

  1. EFF
  2. BoingBoing
  3. Techdirt
  4. Anonymous

(Although I’m following Ars Technica on Google+, so perhaps everything will end up on Google+, eventually.)

I also have a few friends on Twitter that aren’t very active elsewhere.

I’m not sure how long I’ll be hanging out on Twitter and Facebook. I heard somebody say that Facebook is for the important people you know and Google+ is for the interesting people you don’t know. 2012 was also the year I stopped using identi.ca (a free, federated Twitter alternative).

I think that in general this blog has had few readers to begin with and has lost some. There are less comments because I write less about Emacs and tech issues. I guess I get a few comments on Google+ every now and then. I have never been one to try and maximize comments, however. I’m getting what I’m aiming for, I guess. :)

In general, therefore, the blog has also lost a bit of urgency. I no longer post little one-paragraph posts talking about the movies I saw. (Before yesterday it was Cloud Atlas which was nice, but not mind-blowing; yesterday it was The Hobbit part one, which was very beautiful; I could spend hours in Peter Jackson’s Middle Earth. Today I saw Beasts of the Southern Wild which reminded me of one of the best movies in recent years, Winter’s Bone. But then it started to stretch and had some surreal elements I didn’t like, so in the end I wasn’t as happy with it as I was at the beginning.)

http://farm9.staticflickr.com/8482/8282949461_647a5e34bc_n.jpg
No longer true, apparently?

At the same time, with the ads and the privacy issues of Facebook and Instagram, operating my own blog has become more important. I still host my pictures on Flickr and I’m happy I never stopped doing that. I pay their hosting fees and hope this means I don’t need to suffer ads and privacy violations.

My blog still uses Oddmuse. It’s a Perl script that I’ve been maintaining for over a decade, now. It still works! I use the same software for Emacs Wiki. Since many people are used to the many editors of Wikipedia and the features of MediaWiki, they criticize my choice every now and then. 2012 was no different. This time, however, I wrote a longer reply: How Emacs Wiki Works. (In fact, a separate wiki called WikEmacs was created using Mediawiki. I’m not sure how well it does.)

One of the benefits of the services I no longer like that much was that they allowed me to keep in touch with my family. My sister, my cousin and my mother in law are on Facebook. My mother, my half-sister and my half-brother are on Twitter where we all have private accounts linked to each other such that it occasionally feels like a family chat. I’ve started using Instagram as a way to tell people that I’m alive and invite the occasional comment by automatically uploading the pictures to this family chat on Twitter and to Facebook. I think it worked really well and now I’m not quite sure what I should be using instead. Rely on IFTTT?

The use of Instagram and all the ironic hipster hate online has revealed that I had already been a hipster long before it was cool!

There was also a tiny flash of activity on Community Wiki. A Facebook group for the wiki got created. Fierce editing did not resume. Wikis as a discussion medium seem to have gone the way of the Dodo. When I look at MeatballWiki, I don’t understand what’s going on. The wikis I was interested in as a discussion of social media are no longer active. Perhaps social media must be discussed using itself. I wonder where Instagram gets discused. Using screenshots?

Tags: RSS RSS RSS RSS RSS RSS

December 23, 2012 10:47 PM

December 22, 2012

Alex Schroeder

More Monsters

http://farm9.staticflickr.com/8495/8295888903_a351136729.jpg

Recently I started extracting the monsters from my Caverns of Slime adventure and posting it on this blog. The idea is that this way, people might spot something they like without having to go through the thirty or fourty pages of the adventure. It also makes it easier to leave a comment on a particular element.

When I wrote Caverns of Slime, I decided that all of the magic-users in the adventure would have a complete spell book with new names for all the spells. I hoped that referees would then pick the effects from obvious matches in their rule book or improvise something interesting. That’s how I handle it. Does this work for you? Would you have preferred me to use the standard spell names and list new spells at the end as appears to be the standard approach these days?

ghoul
HD 3; AC 6; Atk 2 claws and 1 bite (1d6 each); MV 9; victims need to save vs. paralysis or be paralysed; these ghouls prefer to eat their helpless victims during combat; in subsequent rounds roll a d6 and loose 1. eye, 2. arm, 3. other arm, 4. liver, 5. heart, 6. brain; mutilated corpses rise as ghouls within the hour and grow terrible claws if an arm or two was lost
bulbous demon
HD 13; AC 6; Atk 1 bite (2d6); MV 3; victims need to save vs. paralysis or suffer the same fate as a ghoul victim; can only be hit by magic weapons
lemur
HD 1; AC 6; Atk 1 bite (1d6); MV 3
psychic lampreys
HD 5; AC 5; Atk 1 bite (2d6) and 1 psi storm (save vs. paralysis or faint for 1d6 rounds); MV 3 fly
spider warrior
HD 5; AC 3; Atk 2 weapons and bite (1d8, 1d8, 1d6); MV 9 climbing
Kilistrexta, arachnid queen
HD 12; AC 3; Atk 1 bite (1d6); MV 6 climbing
giant spider, intelligent
HD 6; AC 3; Atk 2 claws and bite (1d6 each); MV 9 climbing; save vs. poison when bitten or fall unconscious as your internal organs are slowly digested; terminal damage after one hour; these are effectively spider barbarians, cruel and angry, always trying to rob and steal from their city dwelling relatives; they respect violence
giant ant
HD 4; AC 3; Atk 1 bite (2d6), acid spray (3d6); MV 9
great mother of the ants
HD 15; AC 4; Atk 1 bite (3d6), MV 3; pheromone powers: all giant ants will know when their queen needs help; the acid vapours in the queen’s cave require a save vs. poison every round to act
gargantuan centipede queen
HD 12; AC 3; Atk 1 bite (3d6), MV 6; save vs. poison or die in excruciating pain within three rounds
Atraxaka, arachnomatrix, is willing to trade in spells and information
no stats given but I’d base her on the arachnid queen: HD 13; AC 3; Atk 1 bite (1d6); MV 6 climbing

Spells of the arachnomatrix (level 13):

1st level 2nd level 3rd level 4th level
the friendship of lesser mindshunting and webbingthe tongues of strangersjumping through space on the strands of our forefathers
power of mimicrytriangulation of know objectselectric powers of destructionsubjugation of reason
communion with animalsconquest of gravitypowers of flightarachnophobia of the highest degree
telestrangulation using strands of webbingdetection of magical energiessilken words of binding
5th level 6th level 7th level
travel to the shadow landscommunicating with the ancient earth spiritsmysteries of astral chords and travel to foreign worlds
contacting the spider lords of the beyond(unassigned)
(unassigned)

Atraxaka also knows how to build a rod of electric destruction (shoots lightning bolts for 3d6 at will with a 5% chance to hit somebody near the intended victim unless the wielder has four arms to aim it with).

Tags: RSS RSS RSS RSS

December 22, 2012 11:20 AM

December 20, 2012

Alex Schroeder

Monsters

http://farm4.staticflickr.com/3162/2562351831_0cec72a155_n.jpg

A while ago, I worked on Caverns of Slime for Fight On! #14. I recently made it available as a free PDF. (I should add a license to it: Creative Commons Attribution Share Alike for the text!) Here are some of its monsters I wrote up.

This list also contains two instances of rituals. I describe them as follows: “Rituals are the ceremonies and prayers that take many minutes to perform, usually powered by demon lords and devils.” The first monster can be summoned by a ritual that player characters can be taught by “a winged pig man with four legs and wielding a blood falchion.” The last monster, on the other hand, performs a handful of rituals that player characters can learn through observation.

Bel, Slayer of Men, a summoned demon
HD 10; AC 2; Atk 1 flaming whip (no damage but on a hit it grants +4 on the hit with the sword in the same round and on a 20 it disarms the opponent), 1 flaming sword (3d6); MV 9; flaming aura deals an extra 1d6 to everybody nearby; immune to non-magic weapons; immune to fire); this may be the same ritual that the mage-wraith in the Warrens of the Troglodytes had learned
Merquishti, a giant intelligent spider hungry for meat – and conversation
HD 8; AC 4; Atk 1 bite (1d6); MV 15; when bitten, save vs. poison or fall comatose for 24h; can set up area web traps); it speaks the language of giant spiders, a dialect of subsurface elves and the common tongue of all demons; if asked about gold, the spider will know that a knight’s golden armor was carried down this way by devil worshipers a “very long time” ago; if asked about the destination, the spider will mention a city of evil half-spiders preying on the caverns and tunnels below; when the conversation ends, the spider considers capturing a party member by triggering a web trap (save vs. wands or be trapped in a web; the web prevents spellcasting; trapped victims need to deal 20 points of damage using a dagger or a similar small blade; free allies can aid trapped victims using larger blades
Earth Elementals surface, eager to take back any gems the party may have “stolen” from the deep earth
HD 6; AC 0; Atk 1 bite (2d6); MV 9; immune against fire and electricity; can melt into the surrounding rocks in one round
Nixies enjoying a bath, apparently ignorant of any males approaching
HD 3; AC 8; Atk 1 bite (1d6); charm man 3×/day, kiss of water breathing for charmed men at will
Stone Polyps are growing on the stone walls, immobile, with their arms limp and soft; as soon as a warm creature passes nearby, however, they activate
HD 6; AC 0; Atk 1 bite (2d6), 8 tentacles (save vs. petrification of fall unconscious and be dragged towards the mouth); MV 3
Shroom Lord is growing his own circle of psychotic colors
HD 15; AC 5; Atk 1 smash (2d6), 1 lick (poison); MV 9; licked victims must save vs. poison or be charmed

The shroom lord can be observed for days as it sings its telepathic praise to the Gibbering Fungus God. A very patient person interested in mushroom magic can learn the following rituals through simple observation:

  1. the care of magic mushrooms requires an appropriate dark and humid cave, spores, a rotting corpse and a lot of spit; when cared for, these will grow up to three feet in height within four days; the mushroom will keep for a single day only
  2. the summoning of the Gibbering Fungus God requires a deep hole in the ground and a fresh magic mushroom; partake of the mushroom and sing the psychic psalm of the greatest mycelian panopticon (learning it requires some form of ESP even though anybody may notice that psychic energies emanate from the shroom lord as it sings to its flock); the fungus god will materialize in the form of a huge toad head within half an hour; licking it will grant servants visions of the future; on a failed save vs. poison these visions are confusing and wrong, otherwise they act as powerful and lurid divination magic (the divination magic will only work for those people that ate of magic mushrooms grown with their own spit)
  3. the circle of psychotic colors requires a circle of at least six magic mushrooms; each mushroom must be sacrificed a small animal such as a cat; the animal corpse is absorbed by the magic mushroom and a few hours later these mushrooms can be activated with a touch—save vs. poison or roll a d6:
    1. close your eyes for just a second and fall asleep immediately
    2. chase an erotic fantasy and run away
    3. bad trip paralyzes you with fear
    4. drop weapons, bend over and barf
    5. close your eyes and enjoy the visions
    6. everybody else seems slow and stupid, take two actions

Another monster, related to the circle of psychotic colors: any enemies that fell asleep because of the spores will die over night and rise as a spore zombie.

Spore Zombie
HD 2; AC 8; Atk 1 bite (1d6); when smashed, anybody in melee must roll a d6 as described above

Tags: RSS RSS RSS RSS

December 20, 2012 02:07 PM

December 19, 2012

Phil Jones (Smart Disorganized)

December 14, 2012

Alex Schroeder

Alleine

Nach dem Aikido Training gestern hatte ich das Gefühl wieder krank zu werden. Kopfweh, die Nase läuft. Habe ängstlich Fieber gemessen, aber war nichts los. Dann habe ich mir ein schönes, ausgiebiges Frühstück gegönnt. Bin extra in den Laden gegangen, um Zopf zu kaufen. Freitags habe ich frei. Seit dem Claudia 100% arbeitet, habe ich wieder einen Tag “frei”. Ich habe stundenlang Questionable Content gelesen. Ein Webcomic wie eine Soap. Freunde, Quatschen, … was wir früher in der WG “Reden über Sex und Beziehungen” genannt hätten. Erstaundlich, wie empfänglich ich dafür bin. Dann habe ich im Prinz Eisenherz Sammelband 2 weiter gelesen. Comics aus den Jahren 1939 und 1940! Am späten Nachmittag habe ich mich dann aufgerafft, Haare schneiden zu gehen. Zurück gekommen und Abendessen gemacht.

  1. zwei Tomaten und Mozarella Salat
  2. eine Scheibe Dinkel Brot
  3. ein Stück Apfel und Mandel Wähe
  4. eine Avocado
  5. eine Schüssel Glacé
  6. ein Whiskey
  7. ein Whiskey
  8. noch ein Whiskey

Wahrlich ein Problem, alleine Comics zu lesen, Alkohol zu trinken, französische Musik zu hören – im Questionable Content werden immer wieder mal Indie Bands erwähnt, und so habe ich meine alten CDs mal angeschaut. Dinge, die ich schon ewig nicht gehört habe; Dinge, die ich nicht einmal digitalisiert habe. Im Moment: des Visages des Figures. Ich vermute, die CD hatte ich damals wegen dem Lied Le vent nous portera gekauft. Wenn es nicht so kalt wäre, hätte ich das Bedürfnis, hinaus in die Stadt zu rennen, Freunde zu treffen, … der Comic macht mich fertig, haha. Wenn meine Schwester und meine Cousine hier wären, würde das wie am Schnürchen laufen! Aber in der Nähe wohnt niemand. Kinder bekommen, weg gezogen, die alte, verrauchte Bar schon seit zwanzig Jahren nicht mehr betreten, irgendwie fehlt mir etwas. Bald bin ich so weit und höre mir wieder Notre besoin de consolation est impossible à rassasier von den Têtes Raides an.

Tags: RSS

December 14, 2012 08:41 PM

December 12, 2012

Alex Schroeder

An Echo Resounding Summary

http://farm4.staticflickr.com/3089/5703019172_26c4b62496.jpg

Your domain’s values may also provide a
bonus for the domain moves described below.

ValueBonus
0–5+0
6–10+1
11–15+2
16–20+3
+5+1

I need a simple one page summary of An Echo Resounding for the players in my game.

Every location on the map can have values. These are measured in three categories: military, wealth and social. These values are provided by different kinds of assets.

  1. customs cannot be changed: the people living in a particular location might have a spartan culture resulting in a military value of 4
  2. buildings can be built and torn down: barracks provide a military value of 2
  3. processes can be implemented and aborted: military spending converts the wealth of a location to military value at a rate of 2:1

Some buildings a domain might start building:

Values
Asset M W S
Barracks 2
Palisade 2
School 2
Market 2
Shrine 2
Militia 1

Yes, since the militia can’t move, it essentially acts like a building: an immobile asset.

Total up all the value provided by the assets in your domain.

Compare your domain’s values to the upkeep cost of all the units in your domain. Units are usually mobile and consist of roughly a hundred individuals.

Some military units:

Unit HD AC MV Attacks SV ML Upkeep Traits
Light Infantry 17120’1d6F171M 1W 0S Spear Tactics
Heavy Infantry 2490’1d8F282M 2W 0S
Ape Soldiers 46120’1d8F273M 3W 0S

Every month, the player domain gets two domain moves. The bold ones are the important ones.

  1. attack a location (with units)
  2. disband an asset
  3. establish an asset (requires three successful checks: difficulty is 12 + sum of the values provided, roll d20 + bonus based on your domain’s existing values, all difficulties go down by one with each failed roll)
  4. establish or erase a location (on the map)
  5. move a unit
  6. punish atrocity (needs scapegoat)
  7. rectify disruption (removes 1d4+2 points of disruption)
  8. repair an asset (heal units for many hit-points as the domain has military value, distribute at will, scarce units require 2:1 and rare units require 4:1)
  9. solve an obstacle (requires a unit of a particular type at hand to reduce the local obstacle by 1d4 on a successful saving throw + bonus based on your domain’s appropriate value, see table below; failed saves result in a point of disruption)
  10. withdraw treasure
Obstacle Value Type Unit
Disorder Military Guardsmen
Uprising Military any military unit
Poverty Wealth Merchant
Ignorance Wealth Sage
Despair Social Prophet
Corruption Social Magistrate

Military units were listed above. The other unit types also have upkeep costs:

Unit MV SV Upkeep
Merchant 120’T10M 2W 0S
Sage 120’M10M 2W 0S
Prophet 120’C10M 0W 2S
Magistrate 120’T10M 0W 2S

Tags: RSS

December 12, 2012 10:35 AM

December 11, 2012

Alex Schroeder

Player Engagement

http://farm9.staticflickr.com/8340/8221269456_8619015137_n.jpg

What motivates a referee? I think positive feedback is a key element. I’m not just thinking of players thanking you for running the game or players saying that they like your style. What I really enjoy is players who get excited when they’re thinking of the next session, players who’re sad if they have to miss a session, players who tell other people about the funny things they did, the terrible things that happened. Player engagement is intoxicating, infectious.

DM Peter recently ended one of the campaigns I’m playing in, citing lack of player engagement. It’s a tricky subject: who is responsible for it, how do you measure it, how do you foster it? Here’s what has worked for me.

Alpha players are always at the forefront of everything. They edit the campaign wiki. They write a log. They never loose track of their character’s experience, wealth, equipment and encumbrance. Their characters have plans. Their characters have issues. If you get one or two of them, that’s great. I found that my games can take a lot of casual gamers, however. Not everybody needs to be an alpha players. Quiet people, hard working people, parents, people with little time between sessions are just as entertaining at the table. Realizing this has made it possible for me to enjoy more games. If I need more games to fill the time between sessions, I run more games or join more campaigns.

Session reports are a measurable by-product of our games. Long session reports that cast the events in a mythical light, provide more intimate glimpses of the characters, provide extra details and entertaining complications are great. There will always be players that don’t have the time to write such session reports and there will always be players that don’t have the time read such session reports. Preposterous, you might think. And yet, this thought will set you up for disappointment. If one person keeps a few notes on the back of their character sheet and can bring everybody back up to speed at the beginning of the next session, that works just as well. Realizing this, I have cut down on my session report writing. These days, I don’t write to entertain, I write to remember. A short list of events is all that is required. Now I no longer feel close to session writer burnout, I’m no longer disappointed by the disinterest of my fellow players.

Player contributions are an inspiration: I try to encourage players to contribute little elements to our fairly traditional game. Sometimes the personality traits of a player character turn out to be the personality traits of an entire culture. Sometimes the ambitions of a player can shape an arc of the campaign. Sometimes, however, none of the players seem to be willing to contribute anything other than playing their character. In this case, a referee might feel cornered into the role of the untiring entertainer, a thankless job of crafting adventures for unappreciative players. This can be deadly for a sandbox campaign. I have found two solutions to this problem in my campaign:

  1. Recurring villains and big bosses are ideal. They get mentioned at least once every session. Their goons can be defeated, their lieutenants keep showing up, they keep looming in the distance. The lich queen of grey elves. I think that an invisible enemy doesn’t do the same job. We want players to engage with their nemesis. How can they hate unknown forces? There can be betrayal at the very end, there can be reveals further down the line, but in the end, the players must feel like there is a constant, personal threat by a limited number of known enemies that they can focus on.
  2. Achievable goals are the positive counterpart to villains. I present these as opportunities for players. There’s a dead god and some people still pray to him. Maybe a player takes it upon himself to revive the dead god. There are temples to a god of justice and rumors of her paladins. Maybe a player want to pursue this? Maybe a dead character can be offered this choice in order to get revived? I think the key part here is that these are options presented to the players as part of the setting. These are not part of character creation. I also think it’s important to keep introducing more of these goals such that players have a real choice. Don’t invest a lot of work into these options before a player has picked it. Start developing it once players are hooked.

Addictive elements to game play. Yes, it’s mean. It’s called the variable ratio reinforcement schedule: a reinforcement schedule in which the number of responses necessary to produce reinforcement varies from trial to trial, according to Wikipedia. I feel that’s why unbalanced encounters are fun. There can be two or three sessions where practically no treasure is found and characters gain less than a hundred experience points each and other sessions where the major hoard is found and each character gets a thousand experience points or more. Knowing this puts some of them on edge. They want to make sure not to miss the one gold session that will pay off big time.

I hope these points help you adjust your expectations and help you increase player engagement in your campaigns.

Tags: RSS RSS RSS RSS

December 11, 2012 01:48 PM

December 07, 2012

Alex Schroeder

Female Warriors

http://farm6.staticflickr.com/5014/5641851376_e47b1f3a6f.jpg

Recently, Rachel wondered about Warrior women: how to include female characters in a historical RPG?

I left a coment:

I think I’d go for genre conventions, thus if we’re playing a historical RPG, then the histories written by men are my guide. For my Pendragon campaign, for example, I felt that the fiction and the campaign focuses on the deeds of men. The rules also have a separate section for female characters that I could have ignored but which decided to keep in the game, wondering whether they’d add variety. Later I realized that it was going to be hard for me to run adventures mixing martial prowess and female characters created with these rules and so I ended up with an all-male cast of characters.

For me, that is a reason not to play a historical RPG. I’d prefer a fantasy or alternate history version where we either have characters of all genders or the game is about the inequality itself. Much like I don’t like to have slaves in my games unless we’re playing a game about fighting slavers.

I don’t enjoy importing real world problems into my games unless we can engage with them.

If we create characters again, I think simply allowing female knights using the exact same rules as male knights is what I’m going to do.

Just to be clear I practically don’t play strictly historical role-playing games. We play in Fantasy Japan, we play in the Gaslight Twenties where H.P. Lovecraft was right, we play in a D&D madness that is but vaguely inspired by the medieval ages and the classification of polearms—none of that requires any gender imbalance.

An excellent rule of thumb I like to pursue in my fantasy role-playing games is something I once read on a blog post elsewhere. When introducing a non-player character, roll a d6:

1young man
2young woman
3middle aged man
4middle aged woman
5old man
6old woman

I remember when I was young, all my characters were between 16 and 18. These days all my characters are in their thirties. All my non-player characters where men unless they were a witch. Rolling a die forces me to randomize where I apparently have prejudice. That is a good thing.

Tags: RSS

December 07, 2012 06:09 PM

December 06, 2012

Alex Schroeder

Cold

http://farm3.staticflickr.com/2319/2129745224_2ced7eb9ef.jpg

I have a cold. Third day at home. No more fever today, but my nose still seems to contain more on the inside than one would have thought possible when looking at it from the outside.

When I’m awake, I play a lot of Skyrim. Amazing how closely the weather seems to match the weather outside. Switzerland in winter… To be more precise, all the big cities are in the flat lands north of the Alps and south of the Jura Mountains (a bunch of hills, we’d say). In winter, the sky is usually overcast. If you want to see the sun, you have to go up. We live under a leaden sky. In the cities, the snow melts quickly. Outside, patches of white on brown grass.

Tags: RSS RSS RSS

December 06, 2012 11:02 AM

December 05, 2012

CommunityWiki

StructureOfWikis

Amit Patel writes about the move from unstructured to structured information. He says he loved to start writing in an unstructured environment such as Google Wave, work, comment, threads – but at the very end it was hard to move towards a structured set of documents:

I want a tool that lets me hold unstructured conversations, then extract portions of conversations that led to a task, and move them into my task tracking tool. Unstructured comes first for me; structure is what I add later, once I understand what structure I want. Databases and most structured tools I use get this wrong — they ask me to decide the structure first. Spreadsheets, Wikis, Wave, and most unstructured tools also get this wrong — they let me easily work without structure, but don’t offer me a transition to something structured. – Amit Patel [1]

Alex commented on the page and said: As a wiki developer I’m interested in this how to move unstructured page content into a structure.

He came up with a few use-cases:

  1. A page full of brainstorming, thread mode stuff, interjections. You’d like to select a region on the page, pick “Copy to new page…” from a context menu, type a new name and do it.
  2. One a page, you’d like to tag a page without having to edit it.
  3. You’d one page with a hierarchical list of links to server as an outline. On any page, you have a link that allows you to look at this outline and use checkboxes (or radiobuttons?) to select where in the outline this particular page belongs.

I started to think of things I use that are already somewhat there.

I wrote a front-end for a wiki that essentially collects bookmarks. Note the link to a bookmarklet and the source code at the bottom. Take a look at the actual wiki collecting all these links. Note how the links on its HomePage and the unordered lists on the linked pages define the outline that is shown by the add-link script. Note that the wiki can be told to reassemble all these top-level pages, too. (Look for the “All In One” page.)

What do you think—is this a way out of the impasse?

People keep saying “reworking is hard” (→ LackOfReworking, AttackTheDocumentMode). And it is. People don’t do it. But imagine people trying to “rework” a conversation they’re having. Nobody does this! People sometimes “rework” conversations when they record interviews and rework those into articles to publish. But it’s rare compared to the gazillion of other forms of communications we have.

Let’s think of some:

People will summarize – and selecting parts of a page and saving it under a new name supports that. There’s an unsolved problem, unfortunately. The summary doesn’t belong to the LinkLanguage, since the old, messy page gets to keep the page name. Perhaps our support for summarizing should move the current page to the discussion page and just keep the summary.

People will reorder information – and moving pages to nodes on an outline supports that. The page itself remains untouched, of course. All we’re doing is putting a link into the appropriate nested list.

People will categorize

People will subscribe (or “follow”, or mark in some way to stay abreast)

People will share in a broadcasting way (think of “retweeting” etc).

WikipediaRefactoring

In WikiPedia, refactoring can be frequent, especially on pages where many people want to control the narrative. Or. where rules tend to dictate a structure. WikiPedia appears to be a rare exception among wiki sites, however.

WhyLackOfRefactoring

Why does it happen? Why is refactoring not common in wikis?

Do people see the activity as a “defecting” in cooperation dynamics? (meaning, do people see refactoring your work as a non-cooperative activity, and leaving your contribution/“voice” intact as a cooperative approach?). Do people need permission to change contents of wikis, in order to feel “ok” doing it?

Is there a way to set a recurring example, where at least 3 or more people consistently refactor as a primary activity?

Learn more...

December 05, 2012 10:00 PM

December 04, 2012

Alex Schroeder

Short Descriptions

http://farm9.staticflickr.com/8201/8245498402_5572544e92.jpg

Over on the Hill Cantons, Chris wonders about Mastering Wilderness Description at the Table. Back in 2008, I wrote Keep It Short. I still try.

He pointed to the opening paragraphs of The Willows by Algernon Blackwood and illustrated how he’d strip it down. I’m willing to go further than that, however.

Here’s what I wrote:

In my experience, brevity is the most important. Players care about doing things, they care about treasure, monsters, interactions. That’s why they are perfectly happy with this: “After leaving Vienna, the Danube spreads out and the country becomes a swamp for miles upon miles. You see a vast sea of low willow-bushes before you…”

I guess it has an anchor (Vienna), an object (Danube), a change (spread), nature (swamp), some mood (miles upon miles), some detail (low willow-bushes), direct addressing (you see) and little else.

In terms of process, the most important feedback is what players are doing. As soon as one of the seems to be paying attention to something else, I cut the description short and go directly to “something happens!” or “what do you do?” Then, upon enquiry, I improvise more detail as required. This is rare and confirms my suspicion: my players value brevity above all.

When I wrote Caverns of Slime, I was also trying to keep things short. When I wrote How To Write A Module, I said: “In order to further aid improvisation every location starts with a sentence or two setting the mood, a list of impressions (sounds, sights), a list of names to use—little things that I’d appreciate as a referee.”

Here’s an example:

“The tunnel opens into a big cavern. On the ceiling, you see a glowing city with light bubbles and hanging bridges and gray webbing holding everything together.”

At the far end of the cave lies a lake. The stone wall rising from the water is wet. A dark fungus moss grows here, fed by water raining down from a black hole above. Flying or climbing up this wet tunnel will lead you to the realm of the Shroom Lord.

  • spider webs cover every hanging house
  • rope bridges connect platforms
  • this huge mass of webbing is secured by glowing glas balloons
  • water is diverted from the Fungus Falls at the back and distributed using wooden half pipes
  • occasionally ropes reach down to the cave floor below
  • the cave floor itself is covered in broken bones, the fallen remains of what the spider people feed upon

This city is one of the few places down here where the party can make friends and rest.

The above is then followed by events (encounters, monsters) and non-player characters (in this case, a spell-casting aranea).

Tags: RSS RSS

December 04, 2012 07:59 PM

November 24, 2012

Phil Jones (Smart Disorganized)

Vi Hart on Making Her Videos

How To Make A Video About How To Make A Video About How To Make A Video About How To Make a Video... 

There's something about Vi Hart's recursive video about how she makes her videos which reminds me strongly of the Lispish ideal of having the Lisp interpreter available at write-time, compile-time and run-time.

by noreply@blogger.com (phil jones) at November 24, 2012 05:22 PM

November 17, 2012

Phil Jones (Smart Disorganized)

October 27, 2012

Phil Jones (Smart Disorganized)

Do The Simplest Thing

Congratulations to Bill Seitz on launching his Personal Finance startup / project.

by noreply@blogger.com (phil jones) at October 27, 2012 08:43 PM

October 22, 2012

Phil Jones (Smart Disorganized)

My Simulations

Over the years I've done a few agent based simulations to look at questions that interest me.

Here's a quick Bootstrap page to get at them.

by noreply@blogger.com (phil jones) at October 22, 2012 12:46 AM

October 21, 2012

Phil Jones (Smart Disorganized)

October 16, 2012

Phil Jones (Smart Disorganized)

Dog : A Social Language

Dog seems to be a little language for writing social software.

Initial thoughts :

Big question is what it compiles to. It's about time we had a programming language that compiles a single program down to parts that run on both server and clients, in a really easy and transparent way.

Building in knowledge of protocols like http and json and making services like twitter at least members of the standard library is a good idea.

Like most programmers, I'm sceptical of the  "easy English-like" nature of it. We've had plenty of time to learn that what's hard in programming is the logical thinking not the strange syntax. (Update : See my Quora answer)

But if Dog can become a little-language which makes it easy to configure and administrate social software back-ends then it will be very useful. Particularly if there are ways of compiling the same program down to multiple back-ends (Django, Rails, Chicago Boss etc.)

by noreply@blogger.com (phil jones) at October 16, 2012 12:22 PM

October 02, 2012

Phil Jones (Smart Disorganized)

Project Schema

This is awesome : Project Schema combines mind-mapping with management of parts of a CAD model. 

by noreply@blogger.com (phil jones) at October 02, 2012 04:32 PM

September 30, 2012

Phil Jones (Smart Disorganized)

O'Reilly Early Release

I didn't know about the O'Reilly Early Release program. Basically, it seems you can buy a book as it's still being written, and give feedback while receiving updates and rewrites.

Nice idea. I'm tempted to buy some of these.

by noreply@blogger.com (phil jones) at September 30, 2012 11:01 PM

September 29, 2012

Phil Jones (Smart Disorganized)

Programming With A Mind Map

Using a MindMap to store documentation.

Actually it sounds like Freemind is much like an outliner, in that you can drive it with the keyboard and collapse / expand etc.

I wonder how using this compares to LEO.

(Hat-tip Other Michael)

by noreply@blogger.com (phil jones) at September 29, 2012 09:15 AM

September 14, 2012

Phil Jones (Smart Disorganized)

JSON / RSS

Dave Winer is considering an official(?) JSON flavour of RSS.

I just want to say here that I like RSS, for what it is, and what it does, and I like JSON to actually work with, because parsing XML is still a faff. So it gets my vote.


by noreply@blogger.com (phil jones) at September 14, 2012 12:47 PM

August 14, 2012

Phil Jones (Smart Disorganized)

Smart Notebooks

An intriguing Kickstarter project.

Seems that Smallest Federated Wiki would be a good starting point for this.

by noreply@blogger.com (phil jones) at August 14, 2012 07:20 AM

August 07, 2012

Phil Jones (Smart Disorganized)

Planet Building

As I mentioned in my previous post, I'm rather taken with Planet Planet, the old-skool Python based RSS aggregator that outputs flat HTML.

I used it to build my wonderful Future Manufacturing river. And I want to use it for more things. So I've created a small script to make installing Planet ultra-easy on a linux server.


Four steps and you're rolling :

# clone it
git clone https://github.com/interstar/PlanetBuilder.git  planets

# make the planet
cd planets
./planets.sh MYPLANET

# add feeds
emacs MYPLANET/fancy/config.ini
# defaults have been set-up, just change and add the feed URLs and names at the bottom of the config.ini file and set your name and contact details (earlier in the file)


# edit the crontab
crontab -e
# and add the following line or suitable variant.
53 * * * * /PATH/planets/MYPLANET/refresh.sh
# note that the line with the correct value of PATH will have been given to you when you ran the create script


Your automatically generated aggregate will start being available at MYPLANET/index.html




by noreply@blogger.com (phil jones) at August 07, 2012 04:00 AM

August 06, 2012

Phil Jones (Smart Disorganized)

Walled River

Apple join the war against RSS.

We need to defend the principle of a platform independent / open feed of news items from all the companies like Facebook, Twitter, Google and Apple who have seen the future as feeds insided their own proprietory walled "gardens".

Not sure if a garden is the right metaphor for a feed routing system, maybe "walled river"?

Something like this? :-(
 
 
Hat-tip Scribe.

Open rivers of news are wonderful things. Recently I've started using the venerable Planet feed agregator to make some public planets (rivers) such as this mind-boggling "Future Manufacturing" one. Glance at that and see exactly how awesome open RSS is. And how it can be way more compelling than the constrained Twitter or your riddiculously cramped Facebook wall. Look at a torrent of exciting information that can actually "breath", where text can be as long as it needs and where pictures are wide-screen rather than crammed into a cage designed to make you look at adverts.


by noreply@blogger.com (phil jones) at August 06, 2012 04:11 PM

July 21, 2012

Phil Jones (Smart Disorganized)

World Outline Screencast

Nice screencast from Dave Winer showing where the World Outliner (the successor to the OPML Editor) is at.

Reminds me of GeekWeaver of course, though obviously slicker (and more specialised).

by noreply@blogger.com (phil jones) at July 21, 2012 04:23 AM

July 14, 2012

Phil Jones (Smart Disorganized)

April 10, 2012

Lion Kimbro

"Can I stop living in the moment now? There are dreams inside of me."

  I was talking on my Facebook about some difficulties I was having
  writing out my life philosophy.  I work on creating new societies,
  and I'd like to be able to succinctly share my own thoughts on my
  orientation towards life.

  Someone I know and like responded with, "That's why I've decided to
  more or less stop writing and do more living. How deeply can I touch
  this moment? Not that writing doesn't sometimes help to touch a
  moment more deeply."

  -and my thought was: "Ah, now, there's a familiar argument..."

  Because -- just three days ago, on Saturday, at the Easter party at
  my mom and dad's place, I was talking with a family friend.  (Names
  omitted because I haven't asked permission to use them.)  She was
  telling me that she was reading Eckhart Tolle, and connecting with
  the present moment.

  But it's more than that -- most everybody I know who is spiritually
  minded, is talking this way -- whether they are near or far.

  Philosophies are like giant ships, gigantic structures floating
  through histories.  They are shaped by historical forces.  When
  everybody (or at least, a lot of people) are thinking similarly,
  there's a reason, a story behind it.

  So what is this philosophy that people keep telling me?

  Now I need to make a cautionary note -- I don't know the person very
  well, who said the things that triggered this blog post.  Perhaps I
  am way off, in this individual's case.  But I don't think that I am
  far off in the general case.  So, MB or KW, if I get what you meant
  way off -- please forgive me, and I welcome your correction.  But I
  think you will be able to recognize the general case story that I am
  talking about, and I think it's very likely that you'll be able to
  substantially identify with it, too.

  So what's this philosophy?

  Here I think are some of the core ideological points.  I don't think
  the ideology sees itself as an ideology -- it's in the category of
  ideologies that are anti-ideological; And yet, whoah, when you look
  at it, familiar patterns emerge in the motions of thought.  I argue
  that it *is* an ideology.

  Point: "Life has no meaning."

  The argument goes that meanings are the products of abstractions
  which are inclined to become increasingly unreal.  Some people put
  the boundary of this at mainly human knowledge ("What's a good way
  of organizing my closet?  What's a good way of organizing a
  society?"), and some people extend it to the cosmic ("The universe
  is play; Our lives are the universe at play.  The universe is
  playing hide & seek with itself.")

  There is no right way, and "right ways" are the products of
  controllers, the overly serious, the patriarchs, the law makers,
  wanna-be Moses', etc.,.  Anyone who talks about a meaning is
  basically assigning you a job, and thus having YOU live out what is
  in fact THEIR drama, making you a slave.

  So:  This being the frame of the world, what do we do?

  Here the aim is to get past the abstractions which just confound
  human beings, so what we do is focus on the sensations of the
  present moment.  We put a stop to the mind, to thoughts, which run
  incessantly like a crazy wind-up toy.

  So:  This being the frame of the world, how do we communicate?

  Because nothing has any meaning, we focus on the sounds of the
  words, rather than their meanings.  Non-verbal communicate and
  peace-communication becomes essential.  Focus goes to the muscular
  and emotiona motions behind words.  We listen for the anger, or we
  hear the desire, or we hear the warmth, or we hear the coldness.
  "That's where the real value lives."

  Because if you focus on the "semantic meaning" of the words, you're
  going to miss it.  All the action is going on underneath the
  semantics.  If you're "in the moment" (which is the enlightenment
  state of this ideology,) then you're going to get all that rich
  juicy underneath stuff.

  Practices approved by this line of thought:
  * sitting meditation
  * listening, "really listening," to people
  * going hiking
  * listening to waves
  * and (of course:) "being in the moment

  Appreciations:
  * Buddhism  -- "religion without the 'stuff'"
  * Taoism  -- (the same)
  * stillness
  * the aesthetic of "emptiness"
  * veneration of relaxation, middle-class life, and compassion
  * games & play; layla
  * did I mention stillness?

  Affinities:
  * circular (cyclical) views of the world
  * anthropology
  * nature

  Aversions:
  * interpretation
  * grand narratives
  * business
  * activity

  Entering the philosophy:  Alan Watts

  Inside the philosophy:  Eckhart Tolle (The Power of Now, a New Earth)

  Exiting the philosophy:  The Landmark Forum  (still in it, though)

  Okay.  I've explicated the philosophy.  Everyone know what I'm
  talking about, kinda?  It's a huge thing and many words written
  about it.  I think I've pointed at it enough, though, so that
  someone who is "in the scene" or alive in spirituality/spiritual
  communities/the New Age/Metaphysical/philosophical bookstore at this
  time should be able to recognize it, though.

  I'm at the 28 minute mark, and I meant to write for only 30 minutes.
  I'm going to give myself another 15 minutes before I head down to
  get a burrito.

  Maybe I'll write another post tomorrow to continue.  Anyways, here
  really fast is 15 minutes of an alternative to the philosophy, and
  maybe some problems with the philosophy.

  Well, I'll just say what I want to say.  It probably won't make
  sense, but maybe you can piece together clues.  If there is
  interest, I'll formulate something stronger and I'll definitely
  answer any questions.

  MEANING.

  Meaning may not exist in any sort of "hanging out in space" absolute
  sense, but meaning exactly and ALWAYS exists inside the human brain.

  Look at the absurdity of this -- too.  I mean, there's a part of
  these people where they get upset if you say, "No, there is
  meaning."  Because they're actively trying to stamp out any and all
  sense of meaning ("within reason, dear fellow, within reason") from
  their minds.

  What they are missing is that the universe is alive inside of them
  and that it is perceiving meaning.  Where is that meaning?  It's not
  hiding out there in space; It's the universe's exploration of its
  interior.

  And -- it's not just a game.  A game is by definition something that
  doesn't mean in reality.  It's "pretend."  But the proper motion for
  pretend is to be an exploration of the real.

  The Real -- "reality" -- that's something very scary for most
  people.

  A lot of times, the people in these philosophies have made turtles
  of themselves.  And yes, they absolutely are involved in compassion
  and making the world a better place.  Absolutely.  These are
  wonderful lovely people.

  But often, those who have not found a core "something larger than
  myself" that they are participating in -- or in moments of
  (necessary!) confusion -- go back to "well, nothing means anything,
  so it doesn't matter, and I don't matter, and that doesn't depress
  me becomes nothing matters, ..."

  Oh dear.

  What I mean is that there is a part of these people that sees that
  things do matter, and then they try to stamp that out, jump up and
  down on it, make that thought go away by strategies of misdirection,
  affirmation ("nothing means anything, nothing means anything,
  nothing means anything,") and "I just need to meditate harder,
  longer, and I will be in bliss and peace."  Many call it "the work"
  or "practice" or "daily practice" and on and on.  Enormous volumes
  of time go into this "most important" work of elminating all sense
  of importance.

  I've read your books;  Don't hide.  And I'm not your enemy.

  What about those people who are doing the good works?  Who are
  working as part of something larger than themselves?  But look:
  There is meaning.  It's right there.  That's exactly where it is.

  ...

  Hang with me.  I'm collecting my energy; Revisiting the arguments in
  my mind.  I'm speaking from the perspective of the perspective I've
  gone past, and I think, really, I should speak from the perspective
  I'm at, and that I want you to come *too.*

  ...

  The world is rich and alive.  It's also Real.  Meaning is real,
  consequence is real, but that doesn't mean that we are slaves to
  some remote disembodied God, or that someone is going to become your
  Pharoh, telling you what you need to do.  The reason is because the
  connection with reality is within yourself.  You can learn from
  other people, but the divine structures within the heart are visible
  for all to see.

  Joseph Smith and his concept of the Theo-Democracy.

  A saint is to be revered by his ability to help people to see, not
  by his ability to organize people.  When people who see organize
  themselves, then something of value has been done, and the person
  who was a seer is now one amongst many.

  The world is rich and alive.

  We are the Universe that is evolving.  There is a meaningful dream,
  a real draeam inside of us, that is striving to grow out.  We, in
  our genetic-mimetic-spiritual core, in our sex and ideals and hopes
  and powers, are participants and occupants of the great dream.

  The intellect is not our enemy.  Perception is not our enemy.
  Sensation is not our savior.  Really, what we are after is a
  liveliness.  It is a dance, but it is a dance that is going
  somewhere, too.  Because war is not something we can dance to.

  Those who feel the compulsion to think, we can apply our thoughts,
  and we need to find our thoughts.

  Are questions are of merit; They are not to be suppressed.  They are
  how the universe finds itself within the conscious plane.

  Really what we are after is the cooperation and communication
  between the conscious and unconscious elements.  The limin was not
  intended to be an escape.

  I am not seeking a "balance" point; I am seeking life and vitality.
  I know it in my body, and I know it in my thoughts.  Emotion and
  rational thought play clear and distinct parts in the dance.  Now I
  feel, now I think.  Conclusions follow.  They are of value.  One
  path was wrong, the other was right.  I went the wrong way, but I
  found the right one.

  This is not oppression or oppressive; Only what is oppressive or
  oppression will be oppressive or oppression.  We'll feel it in our
  heart, and communicate, to make sure we aren't oppressing one
  another.  But we'll also think and challenge our hearts at times,
  too.

  Desire and conscience are the guide.  The destination is the Kingdom
  of Heaven.  Yes, this present moment is great, but it is also full
  of horrors.  The excuse that "my eye does not see war right now" --
  "I am just looking at a computer monitor" -- is not a good one.

  One of the errors (horrors?) of the "present moment" movement is
  that it pretends not to see what it knows very well is going on.

  Intellect and powers are the manifesting arm of the flow of the
  spirit.  The perceptual arm is absolutely worthless if it is not
  flying with the intellect and powers as well.  The same is true in
  return.

  Today: Some people will be thinkers and strategists and perceivers
  and "psi" types.  But in the future, everybody will be empowered,
  without losing a smidgeon of who they are.  This does not mean that
  people are of lesser or higher value.  The evolution is eternal and
  spirals upward completely around the ever-present Love.

  Okay.  Times up.

Permalink | Leave a comment  »

April 10, 2012 08:55 PM

March 07, 2012

Lion Kimbro

tkhelp - the tkinter support module

Peoples, I've started work on tkhelp.  This is a tkinter support module.  I'm actively looking for collaborators, so please email me (LionKimbro@gmail.com) or call me (206.427.2545) if you want to participate in some way..!

Here are the links of import:

Here's a little bit about what it does.

Here's a basic setup:

>>> import tkinter
>>> import tkhelp
>>> tkhelp.setup()
True
>>>

That that setup() call does for you, is initialize the global Tk() instance, and then withdraws the window that (for whatever reason) tkinter or tk automatically assumes you'll be wanting.

(If you did want that window, call tkhelp.setup(withdraw=False)instead).

Now, create a tkinter tree...

>>> toplevel = tkinter.Toplevel(name="toplevel")
>>> b = tkinter.Button(toplevel, text="b", name="b")
>>> b.pack()

And, ask to see the widget hierarchy:

>>> tkhelp.print_hierarchy()
** tk [6095814] <Tk> **                           200x200+0+0
     toplevel [6817202] <Toplevel>                116x26+25+25
       b [919100] <Button>                        18x26+49+0

("print_hierarchy()" is a bit wordy;  you can also just use "hr()".)

The number within the brackets [] is the tk widget ID#.  The string within <> is the tk widget type.  The values on the right are width,height,x,y.  The indentation shows the nesting.

There are also functions for easily retrieving widgets, and getting information about them.

>>> tkhelp.wid("b")
919100
>>> tkhelp.fullpath("b")
'.toplevel.b'
>>> tkhelp.name("b")
'b'
>>> tkhelp.wclass("b")
'Button'

Note that, in all of these examples, I used the tk "name" for the widget "b" to identify it.  But you can also just as easily use the ID for the widget, or the full path.

>>> tkhelp.fullpath(919100)
'.toplevel.b'
>>> tkhelp.wid(".toplevel.b")
919100

("wid" is short for "widget id."  I'd use "id", but it's a built-in Python function.)

Of course, you'll want to access the widgets themselves, as well.

>>> tkhelp.find(".")
<tkinter.Tk object at 0x0000000002554390>
>>> tkhelp.find("toplevel")
<tkinter.Toplevel object at 0x00000000026A4588>
>>> tkhelp.find("b")
<tkinter.Button object at 0x00000000026BDB00>

These are very, very rudimentary capabilities -- and yet, incredibly helpful if you are working with tkinter.

This module is all about making tkinter easy to use, without putting a heavy layer on top of tkinter itself.  I'd rather give increased visibility to what is going on in tkinter, than put a layer on top.

If you are interested in learning about where I am going with this, or interested in contributing, please consult the Google Doc I've created for this project, or leave comment on this post.  I can be reached also at LionKimbro@gmail.com, or 206.427.2545 (Seattle, USA).

Download the code at github.

 

Permalink | Leave a comment  »

March 07, 2012 07:52 AM

February 21, 2012

Lion Kimbro

tkinter Support Module?

Has anybody written a general tkinter assistance module?

I'm thinking of a module that:

  • supplies functions/tools to examine the widget hierarchy from the shell
  • wraps idle binding and .after scheduling, so that you can review bindings (like a task manager), see what's going on, pause/continue (control) idle executions
  • setup Tk & withdraw in 1 call
  • return the full path for a widget
  • standardize access to the text content of Text, Entry, etc.,.
  • ... (and anything else that makes life with tkinter generally easier)


Has anyone created such a thing?

If no one has created one, is there a good reason for that?

I'm somewhat baffled that tkinter has been around for more than a decade, and yet, to my knowledge, nobody has written a module like this.  The tkinter field seems to me to be stuck in time.

Permalink | Leave a comment  »

February 21, 2012 01:27 AM

January 26, 2012

Lion Kimbro

XML-RPC SOAP REST JSON-RPC in 2012.

The battle contenders:

  • XML-RPC
  • SOAP
  • REST
  • JSON-RPC

It is the year 2012.

 

It appears to me that this is what the reputations are like:

 Technology    General Opinion    Lion's Opinion  Difference        
============  =================  ==============  ===================
XML-RPC       0   (neutral)      +++ (great)     undervalued       
SOAP          --- (evil!)        --- (evil!)     valued correctly  
REST          +++ (great!)       ++  (good)      slightly overvalued
JSON-RPC      ++  (wow!)         +   (ok)       
slightly overvalued

It is the year 2012.

 

One of the questions people asked over and over, when comparing REST & XML-RPC, is this:  "What's XML-RPC have that REST doesn't?"

  Q: What does XML-RPC have that REST Doesn't?

Here's my answer:

  A: Primitive typed data transported effortlessly.

When you use XML-RPC, you basically get a wormhole from one environment to another.  The data types (numbers, lists, strings, dictionaries,) all transfer seamlessly.  XML-RPC takes care of encoding the data types, and then un-encoding the data types.

When you use REST, you have to define an XML structure for encoding your data, and then you have to define another XML structure for receiving your response.

But with XML-RPC, you don't have to do either of those things.  Because this is what you have with XML-RPC that REST doesn't have.

So stop asking that question!

 

REST & XML-RPC:  Different Purposes.

  • XML-RPC gives you native function calls across the Internet.
  • REST gives you data structures across the Internet.

Native Function Calls are Fine.

There is nothing wrong at all with using native function calls.

I have heard REST people argue on esoteric lines that we should only be using data structures and "representational state transfer" and such gobbledygook.

Nonsense;  There are plenty of great times when you just want a simple API that just works.

And that's what I've encountered so far with XML-RPC:  simple APIs that just work.

It takes near zero effort at all to set them up and make them work, on both the server and the client sides.

I work with service APIs all the time.  Sadly, they are in SOAP.  So many times, I'm working with them, and I think:  "Geeze, if this were XML-RPC?  This would just work.  There is zero reason that they need to detail the nuts and bolts so extensively here.  Just accept a key-value dictionary, rather than deeply defining these complexities with namespaces, nested types, and on and on."

However, I do not ever think to myself, "Gee, I wish this were REST, and that I was writing out code to encode and decode XML structures."

Yes, it is easier to write a "simple" XML encoder and decoder for basic data, but even simple things take time.  Far easier still is to have primitive types go out, and to receive primitive types coming in.  Because then I don't need to write an XML encoder or decoder at all.

Again:  That's what XML-RPC gets me.

REST is good too -- for what it's for.

I have nothing against REST.  I love making a GET and seeing exactly the data structure I asked for.  And then I love pulling out the URL for the next chunk of data -- a pointer value within the data structure.

Wonderful!

You can traverse the data structures in so many ways!

But you know what it's not?  It's not an automatically functioning API call.

So when I just want to call "server.creditAccount('lion', 300)", it's easier to just use XML-RPC.  I don't have to think about POSTs, I don't have to formulate an XML data format;  I just ... call it.

A Brief Note on JSON-RPC.

Great!  It's...  exactly the same as XML-RPC.

Except it's JSON!  Everybody loves JSON, right?  Primitive types!  Awesome!

But how can people be soooo excited when it's JSON, and soooo blase (or worse: "That should be REST!") when it's XML-RPC?

I'm pretty sure that the reason people are excited is because of the "JSON sugar" halo effect.

But really, with both of these RPC mechanisms, you never ever see the underlying transport.  Unlike SOAP, they work so great, and so "there's-only-one-way-to-do-it", that the implementations just work.

So who cares at all whether it's XML-RPC or JSON-RPC?

Again:  When they work, (and they do both work,) you never ever ever see the underlying transport.

I don't care either way about XML-RPC or JSON-RPC;  I just want things to work.  If the JSON excitement is enough to get JSON-RPC implemented and defaulted everywhere, fine.

But if your system permits XML-RPC, but not JSON-RPC, and you're wanting JSON-RPC, -- don't hold out.  Don't go, "Oh, I won't do this.  That is XML-RPC.  I heard that XML-RPC isn't RESTful."

A Wish.

The only thing I wish was easier in XML-RPC, and perhaps in JSON-RPC too (haven't had as much experience with it), is: SSL.

Just make the SSL easier to negotiate, and we're golden.

Permalink | Leave a comment  »

January 26, 2012 01:43 AM

January 07, 2012

Lion Kimbro

the Pinkie Pie Party

  After Sakura and I made the Pinkie Pie party, (4 days, nonstop motion,) we spent 2 days winding down.

  Sakura and I were at a restaurant, and she was playing on her Nintendo DS.  I was busy thinking about something.

  She put her DS down.

  She said to me,

    "Dad, ...  I don't really want to play this game."

    "I want to make another party."

Permalink | Leave a comment  »

January 07, 2012 02:14 AM

December 30, 2011

Lion Kimbro

"Dear Celestia, ..."

  I'm over the hangover, now comes the clean up..!  {;)}=

  The party was, to my thinking, a quirky yet huge success.
  For myself, it was amazing, mysterious, and wonderful.
  Perhaps friendship really is magic?


  == Quick Facts ==

  * 38 people (head-count during one of the video playbacks)
  * ended ~ 1:30 AM

  Sakura and I got home at 3:30 AM.
  I'll be there around 5 PM for clean up.


  == Observations ==

  The Bronies are very emotive & creative, and I think we're going to do, within 2 months, another build party with them.
  There is a lot of possibility for additional fandom actions taking place at Jigsaw Renaissance.
  Traditionally fandom has expressed itself in:  writing (fanfic), drawing/editing (images) -- net savvy forms.

  I think I see here that painting & construction are easy avenues for the Bronies;  I think the only reason they do not do it more is because materials and tools (particle board, spray paints, jigsaw, in this case) are not readily available to them.  But Bronies very quickly took up the task -- and enthusiastically so -- when those things were supplied at Jigsaw.  They even applied their own creativity and vision.


  == Theater at Jigsaw ==

  I am curious whether theater will work -- which is visible at cons -- ...
  But I am even MORE curious about whether improvisational theater specifically can work:
  I see the tendency towards antics and replaying scenes, but more than that, I saw people make up a scene, on the spot, using the Pinkie Pie board character that we had constructed (and, mostly carefully developed and attended to by Scorched Wing,) and then I saw them arrange themselves in the stairway with Pinkie Pie to frame and shoot the shot.
  I think that by applying the ideas in Impro & other theater books, we can further focus this and see more ambitious developments take form.


  == Props ==

  The role of props in the social space and in the public imagination was reinforced for me.
  The Twilight Sparkles stand-up on particle board was very popular and drew out strong emotion.
  I think this is something that Walt Disney had worked out -- he had noticed that what people REALLY want to do at Disney World, was to interact with the characters.  That's why people will wait longer in line (hours in line!) to see the Disney Fairies for a few minutes, then they will even to ride the Haunted House.
  I'll be revisiting Impro's section on *mask* work, and invite the woman who does mask work development to help inform -- and perhaps lead -- these efforts.  I'm kicking myself for not having invited her to the party earlier.


  == Costuming  & Plush ==

  I think there is a powerful opportunity here for costuming & sewing work.

  These people really want, and value, their characters.
  I have seen that they enthusiastically do things that they don't normally do, if given the materials and know-how.
  Perhaps this would apply also to costuming, and making plushes?

  Ordinarily, "men don't do these things."  But these are Bronies.  They have My Little Pony dolls.
  They're already jumping over stupid gender rules.

  I am 95% confident that if we had someone teach "how to make a plush", in a way that was do-able, they would follow the steps and make them -- and then take it to the next level, and the level after that, all on their own.

  They just need space, materials, and a little "here's how to do it."

  They will then make costumes, plush toys, etc., and sell them on e-bay (if they can stand to see them go.)


  == Upcoming Events ==

  Likely:
  * Build parties for completing the Mane 6 characters & making additional background characters
    (Derp, DJ P0N-3, Spike.)  Also, settings:  Rainbow arches, Tudor Ponyville houses, utilizing grid beam.

  Possible:
  * Grand Gala 2012 -- Summer or Fall
  * Plush creation.
  * Improvisational Theater.
  * Costume creation.

  Stand-ups will likely be attending Everfree NW mid-August.

On Fri, Dec 30, 2011 at 10:23 AM, Michael Park <mpark@jigsawrenaissance.org> wrote:
Several days of frantic activity culminated in an amazing party last night: http://www.jigsawrenaissance.org/2011/12/party-pix/
 
Congrats to Lion and Sakura for making it happen!

Permalink | Leave a comment  »

December 30, 2011 10:52 PM

November 10, 2011

Lion Kimbro

the Body

There's a theme that's been moving around in my thoughts a lot lately:  It's the theme of the body.

It is something that I have been reading about in Tameran and Damanhurian literature, a theme that Armen Moradians was able to explain to me in some detail, I see the theme in James Carleson's works and methods, it is evident in almost all artworks, I have discussed it with Brian Rice, and Michael Dobbie, and many others;  It is a theme that I encounter just about everywhere.

A post or an event or both is stirring in me; In broad strokes, it will reference:

  • Embodiment & Spiritual Reality
  • Embodiment & Spiritual Practice
  • Embodiment & the Arts
  • Embodiment & User Interface
  • Embodiment & Sexuality
  • Embodiment & Charisma
  • Emboidment & Ideas
  • Embodiment & Creativity
  • Embodiment & Writing
  • Embodiment & Chakras (New Age & Science)
  • Maps of the Body/Bodies


And finally, and perhaps most significantly to me:

  • The Limits and Traps of Embodiment


The last part will make use of solid criticism of the Esalen Institute (California New Age equivalent of a "Think Tank") as part of a broader criticism of (what I'll call) "The Embodiment Movement."  I will juxtapose with Damanhur, to demonstrate the difference between a society of Embodiment, and a society of Embodied Ideas.

It is my solid conviction that ideas and the body need and produce one another.  One without the other leaves me feeling dead inside.  Both spheres are alergic to the other in our culture.

Where I see the alergy to the body:  Our culture's lack of care for art.  The way we do not see ourselves as artists.  How we live sex, sexuality, and attraction.  How our culture disproportionately rewards a particular kind of analytic intelligence, which I see as basically a form of mental weaving.  The way we eat.  Our lack of exercise.  Transhumanist dreams of living inside of a computer.  Our lack of effort.  Our over-focus on a particular kind of information.  Our language of "tools," "information," and seeing everything as a computer -- what Jaron Lanier called "Cybernetic Totalism."  Oh yeah:  We're destroying the Earth, our greatest body.

Where I see the alergy to the mind:  One friend telling me "the body comes first," and other friends telling me "nothing means anything."  Our society's rejection of meaning and purpose, both on individual and collective basis.  Postmodernism.  Our society's depression.  Our society's fixation on sensual drugs.  Our society's rejection of ideas -- visible in the rejection of "-isms" of all sorts.  Our fixation on "the present moment," and willful distaste for any and all considerations of the future, except when we go to work and pay project managers.

This is not an abstract academic concern;  This is the difference between a powerful, extraordinary, & meaningful life, (which I believe is the birthright of all people,) vs. one that is lost to sensation, or lost in thought, or heck, just plain lost.

Most immediately and practically, I face the challenge of creating experiences for people that people love, that they find themselves in, and that they can connect with extraordinary ideas through -- ideas that are swimming within themselves, and outside of themselves.  The Damanhurians have a phrase;  They say:  "People need Gods, and Gods need us."  In one of the Batman movies, the speaker talks about how a man can connect with an ideal, and become more than just a man.  At the Shinto shrine, goji said that Shinto practice involves the connection of the human being with divine forces.  I believe all of this, and all of this makes perfect sense to me.

We are not here to emulate grass -- though this is the horror that most of embodied culture has presented me with.  Clearly, the mind-heavy traditions of the last millenia or two (or more) have led us astray.  But I don't see the solution in the rejection of the mind and the solitary embrace of the body either.  What is needed is a deeper analysis (yes, an analysis,) using our experiences for a foundation, and the discovery of fresh paths that connect the body with with the spiritual ideals within the human being, and also through the plantlife and animal life around us, and also the cybernetic organism about us, coming alive through our experiences.

The answer to this question is the answer to "What are we going to do today?"

Permalink | Leave a comment  »

November 10, 2011 08:13 PM

November 06, 2011

Lion Kimbro

2-Dimensional Regexes

One of the themes I work on is creating new mediums for programming.

But what about in the mean-time, where we only have plain text?  Well, I think it's underutilized.  We can out-Lisp Lisp by string interpretation.

I've written before tkinter-based code before for creating GUIs out of text representations.

X- Tagged Text Browser ---------------------------------------------X
|                                                                   |
|  tags: [.tags_input........]    "- text_out -------------------"  |
|                                 |                              |  |
|  found:                         |                              |  |
|  [=entries_found===========]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [                         ]    |                              |  |
|  [=========================]    "------------------------------"  |
|                                 (save_edits)              (quit)  |
X-------------------------------------------------------------------X

(A GUI, represented in ASCII text.)

One of the fundamental mechanisms making this possible is code for reading (say) 2-Dimensional representations in characters of rectangles.

I think I have, 3 times, for different libraries, written 2-D rectangle recognition code.

Let me tell you, it's a real bore.

Here is an example of what some such code looks like:

# Extend right, from the top-left.
        # It is possible that there is a label here.
        while extend_right.scan_char(h_char, 1, 0) is not None:
            pass
        if extend_right.at_topright_corner():
            label = None
        else:
            extend_right.scan_char(" ")
            label = extend_right.read_label()
            if label == "":
                return None
            extend_right.scan_char(" ")
            while extend_right.scan_char(h_char, 1, 0) is not None:
                pass
            if not extend_right.at_topright_corner():
                return None
        r_corner_char = extend_right.char()
        if r_corner_char is None:
            return None
        # Extend down.
        left = self.PRN.cursor(self.PSX, self.PSY+1)
        right = self.PRN.cursor(extend_right.PSX,
                                     extend_right.PSY+1)
        if ((left.char() == l_corner_char) and
            (right.char() == r_corner_char) and
            left.at_bottomleft_corner() and
            right.at_bottomright_corner()):
            l_v_char = None
            r_v_char = None
        else:
            l_v_char = left.char()
            r_v_char = right.char()
            if l_v_char is None: return None
            if r_v_char is None: return None
            while ((left.scan_char(l_v_char, 0, 1) is not None) and
                   (right.scan_char(r_v_char, 0, 1) is not None)):
                if (left.at_bottomleft_corner()
                    and right.at_bottomright_corner()):
                    break
            if ((left.char() !=  l_corner_char)
                or (right.char() != r_corner_char)):
                return None

(This is just the beginning.  It goes on and on, and then there are the support functions, and then there are the variants, ...)

It's boring.

It's the programming equivalent of shoveling dirt.

While I worked on the code, over and over and over again, and painstakingly debugged it, I kept thinking, "I need regexes...  I need regexes...  I need some kind of 2-dimensional regex..."

But every time I looked at how regex languages, I thought of two things + 1 conclusion:

  1. Boy, this is really complicated.  It's like writing freaking compiler optimizations.
  2. This is really boring stuff.
  3. I don't have time for this.  <- the conclusion

I'd think it over off and on across time.  And then recently, I got an idea how to do it pretty easily.

I realized that there is a very small set of things that I am doing, and a fairly easy way to make the machinery for it.

So here's the language I came up with:

c type      flags description
= ========= ===== ====================================================================
> direction       head right
< direction       head left
^ direction       head up
v direction       head down
0 tar             start a measurement
I measure         1st time: store measurement I,  further times: require equivalence
J measure         1st time: store measurement J,  further times: require equivalence
K measure         1st time: store measurement K,  further times: require equivalence
S recording       1st: start recording, 2nd: stop and store, 3rd: start anew, ...
R require         require the next character (literal)
r req-meta        r! = req. nothing;  r[A-Z] -- req. from set;  r[#] -- req. from recorded
! move      ----- go until requirements can't be met, then pause
. move      1E--- take a step if requirement is met, otherwise: ERR out
, move      1---- take a step if requirement is met, otherwise, pause
X accept          all done!  accept what was found

Then I wrote an "engine" that reads the instructions, takes a function for reading a character from a position, takes a start position, and the character sets fed in (for lower-case alphabet "r" requirements,) ...

...and it worked!

So the code for scanning a rectangle is like so:

R+>. 0R-!I R+v. 0R|!J R+<. 0R-!I R+^. 0R|!J X

Here's one of the rectangles that it scans:

+----------------------------------+
   |                                  |
   |     x--------------------x       |
   |     |                    |       |
   |     |                    |       |
   |     x--------------------x       |
   |                                  |
   +----------------------------------+

I used that in one of the test cases.

Reading from the start, it says, "Require a +.  Head to the right.  Eat one character, or fail.  Now start measuring.  Require a dash, and go as far as you can.  Save the distance traveled in register I.  Now read a +, but head down this time.  Start measuring again.  Head down, gobbling up the pipes. Mark how far you went in register J.  Gobble up a +, heading left.  Start measuring again.  Gobble all the dashes.  Now, check your distance with register I.  Is it good?  Keep going, otherwise -- abort, this isn't the rectangle we're wanting.  Now gobble the +, heading up.  Start measuring again, and eat all the pipes headed up.  Check against register J.  Good?  Ok, you're done!  Accept."

If you wrap the whole expression in S's ("store this to a list of expressions,") you get in your response:

"'+----------------------------------+||||||+----------------------------------+||||||"

...which is a pretty dang cool way of verifying that your code works, if you ask me:  a complete track record of everywhere that the code went.

It's been a while since I've blogged about programming, and I don't really have a storage system worked out for posting & sharing the code.

But, here's the header (and docstring):

@note_function("2d", "space 2d line lines recognition recognizer ascii " +
               "character characters machine machines abstract")
def recognizer_2d(instructions, read_pos_fn, start_pos=rt_zero,
                  registers=None):
    """Abstract 2d recognizer.
    
    read_pos_fn(rt_pos): -> return a character representing the position;
                            will be compared against the requirement
    
         RC>.  0R-!I  RCv.
            C---------C
      0R:!J :         : 0R:!J
    (checks):         :  (records)
            C---------C
         RC^.  0R-!I  RC<.
    
    Returns:  dictionary on success;
              None on failure
    
      {"I":  goal for I measurement (or None)
       "J":  goal for J measurement (or None)
       "pos":   position rectangle
       "step":  step rectangle,
       "recorded_text": list of recorded strings}
    
    Spirograph pg. 48
    """

Note that: because it takes a function to identify characters, this function can be used with any 2-dimensionally indexed schema.

For example, you could use it with graphics, by supplying a function that returns a "X" for a non-black pixel, and " " for a black pixel.  (Or some related scheme of translating pixel colors into character codings.)  Then the very same function (and codes) can be used to identify rectangles (and what have you other simple/rectilinear shapes) in graphical images.

This is the first time in a very long time I have posted about my coding adventures online.

In particular, I am writing for Planet Python, because Python is my favorite programming language in the world.

For those who don't know me, my interests are in what I call "Visionary Programming" and "Improvisational Programming."

That is, I like to write code to support a way of programming that allows you to get from a visionary idea, to an implementation, in as short a time as possible.  (For example, I wrote the engine here in 1 unfocused lazy day that involved a lot (too much) of listening to Dubstep on Youtube...  I probably put in 3-4 hours of real work on it.)

Much of this involves working on remaking the representation of software ideas.  When you have a solid representation, (which can take some time to find,) you can then experiment and find alternatives very quickly, and flow around like water.  It's a lot of fun, and really gets to the magic of programming: the "Wow!"

Please let me know if you had a good time reading this.  Thank you!

Permalink | Leave a comment  »

November 06, 2011 05:24 AM

September 22, 2011

Lion Kimbro

Tuesday Night Meeting Notes

  2011-09-20 7:00PM Tuesday -- Jigsaw Renaissance

  Attending:  Laurence  Danny   Niles
              Lion      Robin*  Doug*    *: Skype call

  We started with Laurence, Danny, and Niles' shared question:
  "How do we get more events?"

  That was great!  Because that's exactly what I'm about!
  I pretty much gave a presentation, and we talked about the ideas.

  Here's what I said:

  * Emotional & Personal Events!

    I was at Burning Man, and the events there were very PERSONAL and
    EMOTIONAL.  They really inspired everyone to think about things in
    new ways, or to feel closer, more connected, and in solidarity.
    There were events about conquering fear, getting to know others,
    getting to know ourselves, artworks, love and sexuality, spiritual
    philosophy, and even bodily endurance.  I love crafts & technical
    things, but I don't believe we need to only do those things!

  * Cleaning Jigsaw

    I'd love to make emotional events at Jigsaw, but Jigsaw looks a
    bit like a sty.  We talked about how to clean Jigsaw, how to throw
    things out.  We talked about tagging items.  We talked about
    making "purgatory" -- just taking a corner of the room, and
    stuffing the things we want to throw out there.

    If we're going to have permanent stations (crafts section,
    electronics section, whatever, --) it needs an accountable person
    who maintains it.

    We like the idea of neatly kept, focused and clearly distinct
    areas.

  * Movie Nights!

    I believe that movies can alter consciousness, inject energy, and
    establish context for conversation -- IF we don't treat it as
    "just entertainment."  So I'd like movies of IDEAS, and that can
    challenge us.


  Then, I talked about a philosophy of action.

  It is centered in this principle:

             "Unless we know each other,
               we can't work together."

  What is meant by "knowing each other" ..?

  It means:
  1) When I see you, I have a sense that I know who you are, beyond
     just your surface appearances to me.
  2) When I see you, I have a sense that you know who *I* am, beyond
     just the surface things that most everybody can see about me.


  ...and what is meant by "working together" ..?

  I don't mean just the capacity to pass the wrench when it's asked
  for.  Rather, I mean:

  * I care about you, and you care about me.
  * I support your efforts, and you support my efforts, in something
    like solidarity.
  * I make time for you, and you make time for me, so that we can see
    each other, do things with each other, make things together, and
    hear each other.
  * We care for the space that we share.


  What's it like if we don't know each other, and have no interest in
  working together?

  Keep in mind -- just a reminder: The question we all started with
  was: "How do we get more events?"

  I want to talk about the physics of this.

  So often, it works like so:
  * If you're popular, or you have an event that is established and
    super-popular, then lots of people will come.
  * If you're not popular though, or you have an event that isn't
    established yet, then ...  Hmm, ...  Maybe people will come.

  How do people decide whether to come or not?

  People ask themselves questions like so:
  * What's this event offering?
  * How much value will this event provide to me?
  * How likely is it that the event host is going to be able to really
    pull it off, and make it work?
  * How likely is it to be fun?
  * How much of my time will it cost me?
  * What else is going on at that time that I'd be missing out on?

  These are fair questions.  We encounter these type of questions
  whenever we go to the marketplace.


  Okay, but let's say we had another dynamic?

  What if we know each other, we care about each other, and we are
  supporting each other?  We feel like we have an "iron" in with each
  other, and we want to see each other succeed -- because we like each
  other.  We've started to form bonds together.

  Then what happens?

  Now your friend has worked up the courage to take a risk.  Your
  friend is going to give an event.  It's something that's based in
  something very important and intimate to him.

  What's the dynamic?

  * What practical steps can I take to assist my friend?
  * What kind of feedback can I give to my friend to help him/her pull
    it off successfully?
  * How can I help publicize this event?
  * Who else might be interested in this event?
  * What kind of event does this inspire me to give?

  These aren't marketplace questions, these are family questions.


  "But how do we see each other?  What does this all mean practically?
   What do we DO?"

  There are many answers to this question.  I DON'T think we have to
  get to know each other "accidentally" -- I think we can actually go
  directly towards the target, with great efficiency and skill.

  Here are three ways:

  1. MIXERS; & broad general events.  SCoW is playing this role right
     now.  Saturday House did this too, back in the day.  But I think
     we can do better, going more directly.

  2. CREATIVE ENCOUNTER -- the Creative Encounters outlined by Peter
     London in No More Secondhand Art are designed so that not only do
     you have an interesting art encounter, but also so that you and
     others start to see one another and yourselves in fresh light.  I
     tried this at Jigsaw with some limited success.  I'd like to try
     again, but this time around, I want to make sure participants
     understand the WHY, the context, of why we're doing what we're
     doing.

  3. FORUM -- (named after the Zegg/Tameran Forum) Make a circle of
     participants, and invite people to take the center of the circle
     to make themselves visible and heard.  Someone is a facilitator,
     to help people who are maybe shy, or maybe going off into some
     space that disconnects with the audience, etc.,.  But mainly,
     it's a direct, immediate sharing of the individual with the other
     people, so that they can be known intimately.  Not just with
     words in the traditional verbal culture, but also artistically:
     with posture, theatre, sound, dance, sign, ...  A person can
     share about who they are, or what their dreams are, or what they
     are struggling with, or anything at all really that they want to
     be seen.  I believe that this is THE most direct way of three
     three, of getting to know one another.  know one another.  Major
     key word: TRUST, which must be intentionally and continuously
     sought.

  So, this is, in extreme synthesis, basically what we talked about on
  Wednesday.

  We said more things, and there were many threads that led off from
  these things in interesting directions, but I think if I wrote them
  all down, this would get even longer, and it's already crazy long.

  G'night all,
    Lion {:)}=

Permalink | Leave a comment  »

September 22, 2011 07:29 AM

August 17, 2011

Lion Kimbro

3 Events in Seattle

(This is a post that I sent out to the davinci mailing list;  The email list for Jigsaw Renaissance.)

(If you are in or near Seattle, and interested in participating in any of these, please contact me here or by email or by phone [206.427.2545], and please tell me which one(s) you are interested and availabilities.)

  ** NOTEBOOKS **

  I've given this class many, many times, and I've always
  found a positive reception.

  Do you have good, maybe even GREAT ideas, and then lose
  them?  Do you keep notes?  Do you keep notes for creative
  projects?  Do people ever ask, "Do you have any ideas?",
  and come up blank?  Are you tired of loose paper and
  computer files laying all over the place?  Do you keep a
  journal or a diary?

  I have a system of notekeeping that I've worked out over a
  decade of notekeeping.  I've gone through many, many
  systems.

  What I'm teaching is a system that I've developed, myself,
  that is very easy, convenient, and extraordinarily
  powerful.  I've also worked on how to *teach* notekeeping,
  and I have a very simple system for that to: It all adapts
  around the contours of a person's notekeeping.

  1-2 hours long, single event, though repetitions or
  private consultation afterwards are possible and helpful.
  No, I'm not charging for any of this.


  ** SELF-DISCIPLINE **

  For most of my life, self-discipline has been a real
  struggle.  It does not come naturally to me, in the way
  that it does for, say, Willow.

  About 6 months ago, I discovered a technique, that I am
  STILL using, that is still functioning, that has made an
  extraordinary difference.

  I'd like to share this approach with anybody who struggles
  with self-discipline.  I have NOT mastered this technique,
  and it is quite deep.  So: Expect miracles (it's been
  miraculous for me,) but don't expect that I know this to
  the Nth degree.

  Some of the key elements are:
  * A re-definition of self-discipline: It's not a
    personality trait.
  * A re-evaluation of the self, and how the self relates to
    self-discipline.
  * Subconscious communications: The arguments in your mind
    that you never even notice.
  * Self-talk, broadly and in the trenches.

  Everything here I learned from a book published by a guy
  in Seattle who I have never met, called "Self-Discipline
  in 10 Days."
    http://www.hubpublishing.com/html/self_discipline.html


  ** A NEW SOCIETY IN 3 HOURS **

  This one isn't ready for the big time.  This is something
  where I need pioneers and explorers.

  Most people who know anything about me know that: I'm all
  about new societies.  I don't at all agree with how we
  live, and I'm dedicated to creating a radically different,
  visionary, magical society, on the order of Damanhur and
  Tamera.  This is part of a broader effort, embedded in the
  very nature of reality itself, to transform, to change, to
  give form to Love.  Yadda yadda yadda -- giving that talk,
  that's not what I'm doing right now.

  Rather, right now, I'm exploring: What are the practical
  inter-personal issues that become immediately apparent in
  the sharing of change with others?  In sharing dreams, and
  in relating to power?  Power sharing is a big huge deal.
  So I'm asking myself, "What kind of experience can make
  these questions visible quickly?  And how can we
  creatively engage in society making when we don't really
  have a new society to tinker with?"

  So I've been imagining an activity that would create these
  situations artificially.  Something fun, something
  creative.

  But the activity is untested.

  In the future, maybe we can do this activity with 10, 15,
  20 people, but right now, I want a team of *4 people* to
  try this with.  I need *3 or 4 people* who will go through
  the rough spots of figuring out what this exercise is and
  how it works.  I've got a raw frame for it.  I don't want
  to spoil what it is.

  I am looking basically for something like "play testers."
  If I've designed a game, it's unfinished and I don't know
  for sure that it works.  So I need people who are willing
  to experiment, to have fun, to spend 3-4 hours kicking the
  tires, to change it, to notice things, etc., etc.,.  More
  then play testers, because I hope you'll help actually
  change it so that it works well.  Co-designers is a better
  term.

  OK, that's it!

  Please respond either publicly or privately if you want to
  go to one of these, or if you have ideas, or any kind of
  feedback (positive or negative) at all.  I'd like to do
  one or two of these this weekend, and one or two next
  weekend, and then another 1 or 2 in September.

Post-Script:

When you contact me, please let me know (most important:) Which event caught your interest?

Permalink | Leave a comment  »

August 17, 2011 01:41 AM

August 07, 2011

Lion Kimbro

July 15, 2011

CommunityWiki

GooglePlus

Google+ is a social networking application on the web.

Learn more...

July 15, 2011 04:51 PM

July 12, 2011

Lion Kimbro

Engaging (Part 1 of Hopefully-Few)

Boy, has a lot happened.  (And: Not happened.)  Okay, let's see.  I'm posting right now about engagement.

Three posts that are related, that have come up for me:

I've had extraordinary difficulty getting the "Metaphoric Projects" run going at Jigsaw Renaissance.  I think the material is good, but I'm having difficulty getting people to come to it.  People come, but they are always friends.  Friends are incredibly helpful, but if people are coming to the event just to see me, or because they want to support me, it doesn't make for the right experience.

I've roughly identified possible failure points:

  • Advertisement:  "Does this advertisement produce something of interest?"
  • Aura:  "Do people believe that if they come to Lion's event, that something exciting will happen?"
  • Spiritual:  "Am I creating a second-hand experience?"

Now I am stepping back and re-evaluating everything.

I haven't emailed James yet, just haven't had the time since returning from California last Sunday evening.

But what has been developing in the back of my mind is: ...

Shoot, no time.  Well, I'm just going to post this as is.

Permalink | Leave a comment  »

July 12, 2011 07:23 PM

July 02, 2011

Lion Kimbro

About My Dad

I'm typing this from my dad's living room, in Watsonville, CA.

My dad passed away last Thursday.  I took the first flight I could, but I couldn't get down in time -- by the time the doctors saw that his situation was much worse than they had thought, it was just a matter of a few hours.

My family, the family that I grew up in, has never been very public.  We have always kept things close to the chest.  Nor do I feel particularly gifted at oratory.  So, no speech.  I'll just say that I love my dad, and my dad loves me, this has always been the case, and this always will be the case.

References:

  • George MacDonald, writing "To Mrs. Norman MacLeod":
    "Either one must say and the other must believe that there is ground for everlasting exultation, or comfort is but the wiping of tears that for ever flow."
  • Meditation XVII, John Donne
    "The church is catholic, universal, so are all her actions; all that she does belongs to all. When she baptizes a child, that action concerns me; for that child is thereby connected to that head which is my head too, and ingrafted into the body whereof I am a member. And when she buries a man, that action concerns me: all mankind is of one author and is one volume; when one man dies, one chapter is not torn out of the book, but translated into a better language; and every chapter must be so translated. God employs several translators; some pieces are translated by age, some by sickness, some by war, some by justice; but God's hand is in every translation, and his hand shall bind up all our scattered leaves again for that library where every book shall lie open to one another."
  • Dylan Thomas, Do Not Go Gently into That Good Night:
    "Do not go gentle into that good night,
    Old age should burn and rage at close of day;
    Rage, rage against the dying of the light."

Permalink | Leave a comment  »

July 02, 2011 08:57 PM

June 17, 2011

Lion Kimbro

ParaTheatre

¶¦nv¢–êå†Ûiÿøµø¥{Úh²×«¢ë¢oàz×â•ïߊW¬¦‹-zº.±Ê&þצ§m5×Nµïøeb&«r²º‡–·_0ݚ!µì`r(¬7 8Š›ìÈÞ±ùç”8‡#æjšg‚Ç•çyÓJgƒ¶tÒ¢‚

June 17, 2011 07:55 PM

May 16, 2011

Lion Kimbro

May 07, 2011

Lion Kimbro

Why did other efforts fail?

Aaron asked a good question after the prior post:  "Why did the others fail and why would one we create not fail?  If it does not fail, can it be better?"

Where communities fall apart:

I think most communities fail because of the basic four:  money, power, love, and sex.  Tamera reports in their early days (2 communes prior) that they were heavily ecologically focused.  They almost blew apart because of interpersonal problems.  They completely shifted their focus:  How can we live together?  And focused almost exclusively on those questions.  This work quickly showed solid results:  They survived, thrived, and grew.

They developed insights into interpersonal problems and global war.  "How can activists save the world from war, when activists themselves are involved in such daily mundane dispute with one another?"  Things like taking out the dishes, but also things like jealousy, leadership, power, allocations, etc.,.

I believe this is the key thing.

After that, there is also economic self-sufficiency.  If I gave two pillars, it would be (I) interpersonal relationships (money, sex, love, power,) and (II) economic self-sufficiency, or the capacity to generate business.  This was the conclusion Armen and I came to, reguardless, after the House of Clay blew up.

This is more tactically focused here:  What are the fission points, where people come to live together?

Where movements fall apart:

But more broadly, -- why did (say) communism fail?  Why was(/is?) the anarchist community movement -- so full of good ideas and ideals -- so impotent?  These are the two strains we inherited in the 20th century from the 19th century.

I believe the anarchist strains reached many critical insights, but were crippled by discussion, conversation, and political theory.  If you want to talk and argue about political theory, Anarchist groups are a great place to go:  You can argue ideology till the cows come home.

As for the communist strains, they were crippled by violence, and overpowering hunger for state power.  The result is obvious in hindsight.  It turns out: you need a theory, and you need to be willing to move slowly.  The greatest lesson I take from the communist strains is that things grow organically.

Even those anarchist who went experiential -- and I am now thinking of Twin Oaks specifically, but I think this is true of the entire category, perhaps even 50-90% of North American communities, ecovillages, etc., -- even those anarchists who went empirical -- I think they tended to fall to the same problems: talk, talk, talk, argue, argue, argue, separation, separation, separation.

Spirit & Imagination

It's at this point where draw a line around Damanhur and Tamera specifically.  If there are others, I don't know them.

This is about enthusiasm, inspiration, creativity, and sex.

This is where things start to get "hot," vital, and charismatic.

The thing is -- we can't afford to make systems out of either life or ourselves.

What I mean is:  So often, when I read about efforts that are creating societies, I find that spirituality is instrumentalized.

That is, it is treated as if:

  1. The human being has an irrational desire to create art.
  2. This irrational desire is pleasant.  It makes good warm feelings.
  3. Stopping up that desire has produced a lot of unpleasantness.  Our society doesn't fund artists.
  4. So, let's make a society where arts are celebrated.
  5. Then we'll be happy.

Or let's say:

  1. Human beings seem to bond better when there is some sort of spiritual belief system connecting them.
  2. We really need to make a happier, healthy, more wholesome humanity.
  3. Well, let's make up an arbitrary spiritual belief system, with basic wholesome values, so that we can live in harmony.

In each case, spirituality and art are "pieces" or "objects" or even "obstacles" on the way to Placating the Order, Placating the Harmony, or Getting My Good Night's Sleep.

This is where I differentiate between the Anarchist traditions and the Spiritual societies that I care about (like Damanhur, like Tamera.)

The Anarchist traditions are by history (and to a degree, essential ideology) anti-spirituality, anti-theology, anti-church.  So recent flirtations with indigenous cultures and spiritualities appear to me to be fairly "new" (last 5 decades?) for the Anarchist tradition.  I would point to Fragments of an Anarchist Anthropology.  Anarchists still very much feel this trauma, though.  And Anarchists are still very much afraid of Spirituality.

So I think the closest that the Anarchist can come to Spirit, Spirituality, in most cases, is a sort of:  "Well, we might need this, so let's manage it, let's contain it.  We can make a nice garden, and call it our "sacred" garden, and if you have your own garden and it's different, we'll let that be sacred too.  Because really, we don't want to be divided by ideas of the sacred -- we're tired of that:  Can't we all just get along?"

What happens here, though, is that we've split ourselves off from true participation in life, turned ourselves into Sims with "art-meters" that just need to be sufficiently high (for placation,) and turned life into a matrix.  There is no inner fulfilment here, and we yank the meaning out of life.  "But at least the war is over."

Maybe.

But perhaps what's going on here, is that there's a fear -- a fear that Spirit is "too hard," or that life itself is "too divisive," or that Reality is just too hard for humans to connect with.

I am of a radically different position.

The questions of the Spirit are primary.  They are the key to the future.

Here I would rather answer the question, -- not "Why did societies fail?", but rather:  "What are tragedies of prior religious and spiritual movements?"

There are some fairly obvious ones:

  • War:  Warring between religions.  Intolerance of difference.
    • Contrast:   Indigenous cultures did not go to war against each other over religious beliefs.
  • Ossification:  Embrace of the book over the spiritual truth.
    • Contrast:  Esoteric traditions, such as ECKANKAR.
    • How you get from "Man's problem is that he knows in his heart the difference between Good and Evil,"(Genesis 3:22) to "We can't know evil, unless it's told to us from a book," I have no idea.  Really!
  • Otherworldliness:  Totalizing priorities around the afterlife, an afterlife completely disconnected from our activities in this world.
  • Dependence:  Dependence on others;  Not taking responsibility for the construction of life within ourselves.  Relying on others to tell us the difference between good & evil, right & wrong, the path to take.  Reliance on priests, rather than inquiring into the nature of truth ourselves -- and religions that support this.

I just pulled these out of a hat;  There are 100 more things in there, at least.

I think we're treating art and spirituality as little holes that just need a little bit of sand pushed into them, and then the road will be smooth.

My difference is that I think that spirituality is the road.  "Art," a word I increasingly grow uncomfortable (because it works like a cover of the interesting things inside,) is the vehicle of language for communication with divine forces and practical new realities.  Art is not for decorationArt isn't even art.  All of life is pounding at us from the inside, trying to get us to listen, and "art" is the word we use to brush them aside and force our network of highways onto the world in its place.  (Who Framed Roger Rabbit? articulates this beautifully.)

This is the direction of the future;  It is utterly clear to me.  It's all a matter of midwifing ourselves, being baptised by the spirit, now.

I'd write more, but I need to go now.

You can make societies that are non-spiritual.  But I see no value in the effort.  I don't see how it can touch me.

"Foxes have their holes, and birds have their nests, but where does the son of man lay his head?"

Permalink | Leave a comment  »

May 07, 2011 05:42 PM

May 05, 2011

Lion Kimbro

Achieving New Societies *Within This Lifetime*

I have lots of little pieces for you today.

  • I've ordered several books for several people in response to emails from my last post.
    • These offers are standing.  If anybody wants one of the books I talk about in these posts, let me know, and I'll have Amazon ship a copy straight to your address.
    • I do request that you write in any books that I send you -- and I request that you put your contact information at the beginning.  These are social books for social purposes.  I also request that you either give them back to me when you are "done," (for a time at least.)  If it is impractical to give them back to me, give them to someone else -- because, frankly, that's what I'm going to do myself, regardless.  The key thing is to keep the books in circulation, and contribute our experiences to the books and to each other.
    • The books that I bought for people since my last post were all Dieter Duhm's:  The Sacred Matrix (x1), Future Without War (x1), and Eros Unredeemed (x2).  I hope to build a library of the books that I mention, and keep them on constant rotation.  In the past, I've lent out Damanhur: The Story of the Extraordinary Italian Artistic and Spiritual Community, which has been my guide for a number of years, and which I still draw incredible value from.  John Dugan started me on this one, when he bought 5 copies for Spiriata, and we all read the book together.
  • There's a website I want to point you all to:
    • Mettanokit: Changing the World - A Vision
    • Why do I want to show this to you?
      • Because, usually, when I'm talking about New Societies, I make such heavy reference to Damanhur and Tamera, Damanhur and Tamera, Damanhur and Tamera, that I think people go, "Oh, well, here are two groups that have this vision, but really -- is this a general global vision?"
        • And I'm always trying to say, "This isn't just two societies.  This isn't about Damanhur, or Tamera specifically.  This is about reality - esoteric reality, Reality with a capital R.  This is about the dreams inside the heart of the human being."
          • At Tamera, they call it "The entelechial form of life."
          • At Damanhur, they simply call it "The Real."
        • I'm always trying to say: I don't want you to see this as "these people" and "those people" and "that philosophy."  Rather, I'm trying to get you to make a personal connection between what's in here (pointing to your chest,) and what's out there (pointing to activity in the world.)
          • Because your heart and spirit and liveliness and dreams and vitality are full participants with the world.  You are a full participant in this world.  You aren't a side-show.  You aren't an NPC.  Life loves you and needs you and sustains you.
            • I know it doesn't seem this way, because it seems like every moment, the way our world is structured right now -- there's a sign everywhere that you are one of the least important things in the world.  And our whole world and philosophical systems religious or naturalistic conspire to tell you: "you aren't important, you aren't a participant, you are like a spec of dust."  You could go one way or the other way, and it doesn't matter.  Or if it matters, but it just matters because you're going to be condemned if you do something wrong.  But that isn't what's true.
        • What I mean is that if you think really hard about "What can the world be like?  What is an extraordinary, meaningful, heart-based, desirable, generous world?", -- if you apply your intelligence and your dreams and your heart to this question -- I think that you will come to a surprisingly similar answer.  And I don't think that that is an accident.
      • So here's a clear instance of other people talking about such things.
      • Honestly, I go by stuff like this all the time.
      • And as I've said before, this is historically what Communists and the Anarchists have reached for.
      • It's because it's real.
      • You can turn on Star Trek and see it.  There it is, sitting in our hearts, waiting, waiting, waiting for us to act.
  • One of the phrases I am playing with lately is, "We can achieve new societies within this lifetime."
    • I was reading Evolver, and someone was saying, "But a spiritual revolution is way off, in the future, maybe generations away, after an alien interventions, after system collapse, after the chaos," -- and I remembered what my teachers in ECKANKAR and Surat Shabda Yoga always taught me...
      • Lessons of the esoteric traditions:
        • "Spiritual Freedom is possible in this lifetime."
        • "You can realize God in this lifetime."
        • "You can have a direct personal understanding of these truths, free of dogma, without intermediary, from within yourself."
    • ...and I realized the symmetry.
      • The religions have always been saying, "God is for after you die.  Just obey and everything will be good for you in the next life."
      • And so with the social body, people are saying, "A society of dream is for after your lifetime.  Just obey and follow the main stream, and everything will be good for the people in the future, when the great dream becomes real.  Eventually.  For somebody."
      • More symmetry:  The outer and the inner mirror one another.  The spiritual inner life and the spiritual outer life are connected joint by joint, chakra by chakra, node by node.
    • So I'm realizing, just how essential it is, that we come to see the remaking of our society as a fundamental task that we all participate in.  That it is our job, our destiny, to participate in.
    • So how do we do this?  I have a few ideas.
      • Consciously remember the society of dream, and the making of the society of dream.
      • Challenge the myriad forces that say, "You can't do that!", or "You shouldn't do that!"
      • Reflect, within ourselves, listening for the voice of the divine speaking to us within -- speaking to us always, at all times, personally and cosmically.
      • Draw connections between the inner spiritual path of a person, and the outer spiritual development of the world -- and vice versa.
      • Bring immediacy to the questions of life and meaning.  Everything else is sleepiness, lulling in a dream world.
      • Bring realism to our quest.  We cannot afford to continue (what Damanhur rightly called) "the great, crazy dream of Waste."
    • So I will be saying to people now:  "We can achieve new societies within this lifetime."  It is meaningful, and it is worthwhile to do so.  It requires effort and working with others, but the effort is rewarding, and you are not doing this alone --  The spirit moves us, and the hearts of the other people engaged with us as well.  There are people further ahead and many people behind -- we can move, we can go in a working heart-sensed direction.

Ah, shoot, I have so much more to say, on (what can appear on the surface to be about:) radically different things.  But I need to go now.

Permalink | Leave a comment  »

May 05, 2011 02:32 AM

April 19, 2011

Lion Kimbro

Still here! Many updates.

I'm adjusting to the dramatic shift in time-availability that comes with working a 40-hour work week.  When you factor in all the suplemental factors, I think it's more like a 70-hour consumption.  It's not just transportation (5 hours,)  other inefficiencies creep in too:  Lunch breaks (5 more hours) are not the same as "usable time."  More formal dress requires care.  The relationships and situations and things of work occupy your thoughts and your imagination when you are not at work.  Doing laundry one load at a time rather than in bulk.  Cost in energy, and "wind-down," because we hammer everything into the middle 8.  Communicating with people less frequently, thus increasing the backstory-share time, which means less time for the more exploratory content.  There are all these hidden costs.

For point of reference:  If you sleep 8 hours a day, you have 112 hours in a week.

So you need to be very careful with your hours, if you are on a mission, as I am.

On the flip side:  I am grateful for the work I have:  I love the environment, I love the people, I love the product.  And the pay is good -- The pay is what I need:  It takes money to make new societies, it takes resources.  I'm paying off debts at a rapid clip, and then socking away what I gain here, so in a few years time, I should have the capital needed to fund a space, time, and supports necessary for the material work.

I have learned a lot in the past several weeks.  I really mean that -- I have learned a lot.

Let's get straight to it.

  • I visited James Carleson, Willow Bl00, and a few other fascinating people at Bucketworks.  I did this right before I was employed.  From this gathering many important connections have developed.
    • James Carleson is mentoring me on experience design - specifically by way of "No More Secondhand Art."  I plan to produce an experience based on this book and James' guidance in about a months time at Jigsaw Renaissance.
  • I met with 3 people who have lived at Tamerans for different periods (one week, 6 months, and 2 1/2 yaers) to learn from them what I can.
    • I learned an incredible amount of things here, and got many of my questions answered -- about how Tamera runs, about how the Forum works.
    • We also went over the story of the House of Clay, and in particular focusing on "How did it fail?"
      • That's a complex story in its own right, but one crucial insight came to me, was that they used the Forum (comparable to Spaceship of Imagination) for rather different purposes.  For us, it was mainly focused on, "How do you help express dream in people?"  But at Tamera, at Zegg, they focus the method towards social transparency.
        • This is a key point, because according to Tameran philosophy, (and I see that they are correct,) establishing trust is job #1 of a community effort, and trust comes from transparency (I have learned this from Damanhur, Bucketworks, and now Tamera.)
    • I received an invitation to an event called Heart Play that delves deep into process arts.  I went the following week, and witnessed many things there.
  • I have been reading The Sacred Matrix, Eros Unredeemed, and Future Without War.
    • If you are making societies, these 3 books are must reads.
    • Especially Future Without War, which I think is misnamed:  I think it should be called, "Practical Logistics for Making New Societies."
      • There's some stuff in there also about making a future without war.
        • I jest.  The whole point of all of this stuff is to make the dream that lives within humanity a living reality.
        • "No war" is an essential part of that dream that lives within humanity.
        • Yes, we really are going towards a future in which there is no war on Earth.
        • Yes, I know that it is hard to imagine with today's mind.
        • But that's really where we are going.
        • But we need to move strategically.
        • And we need to learn.
  • I have met with Robin Debates of Jigsaw Renaissance.
    • This was incredibly encouraging and enlightening.
    • I saw very clearly how "field" works, in my conversation with her.  This is a Tameran concept that I will explain more in the future.
    • I got to see the pin-points of modern consciousness more clearly;  In particular, the struggle presented by the Being v. Becoming models, and the resolution provided by the intrinsic dream that is emerging.
    • The things that I learned here were more in feel and motion -- like getting trained by a sophisticated martial artist in the details of movement.
  • I have been discussing the formation of a mystery school with Lee Ann, who is making herself "first student" in order to help me work out the kinks on how you do something this.
    • Part of this has been the dissection of the mystery school I was principally educated under, Eckankar.  It is surreal to go back to something like this, and piece together how it works.
      • Eckankar does not "teach" in the traditional way: a curriculum and graded tests.
        • Rather, Eckankar creates a virtual reality world populated with actors, places, principles, and then immerses the student in that world.
        • Eckankar suggests resonant questions, and then gives you tools to find the answers to the questions on your own.
        • There is a monthly study course in Eckankar (which I never took -- I was too young to!), which basically helps the person keep their attention on dreams, love, the general principles.
      • The basic beliefs of Eckankar nicely outline the structure;  Looking back now, I see things here that I didn't see when I participated some 20 years ago.
        • #1-4 outline the basic tenants of the esoteric tradition.  I take each one of these for reality, so I do not want to call them tenants -- for myself, they are manifest reality.  But when you are teaching something, it is helpful to break it down.
        • #4-7, though, (and yes, that is an overlapping tenent there,) are what define Eckankar as an alchemical tradition.
          • Embedded here is non-dogmatism (#6,) inner exploration, the path and intimate connection between the individual and God, the practical engagement in the world, the capacity to learn, etc., etc.,.
          • By "alchemical," I am referring to a traditional that is based on personal experience and experimentation.  This is the only way that a soul can learn.  Minds can learn in other ways, but the soul can only learn this way.
          • Thus, curriculum is de-emphasized -- in place of curriculum, you have immersion and tools.
      • I have been comparing and contrasting Eckankar's mode of education with Damanhur and Tamera's methods.
        • Damanhur (considered as a school for the soul) utilizes many, many creative modes of immersion.  (Not communication!  Immersion.)
          • Creative Modes of Damanhur for immersion:
            • Dance.
            • Story.
            • Esoteric physics.
              • Damanhurian esoterics is startling, beautiful, and amazing, if you have a taste for this kind of thing.
            • Symbols and their decyphering.
            • Community, the life of the community.
            • Ritual, tradition.
            • Interactive theater.
            • Journey.
          • There is hardly any aspect of life in Damanhur, frankly, that is not made for the development of the soul.
            • This is by conscious intent and design.  Damanhurians seek to give meaning to everything.  But they don't just seek to:  They actually do it.
              • For example, in the parking lot -- the bricks in the ground.  The bricks are arranged to make patterns.  The patterns etch out symbols.  The symbols themselves have meaning.  They are likely a blessing and/or a protection of some sort.
              • Compare Native American "art."  As Peter London so exquisitley points out in his book, Native Americans did not consider themselves to be "artists."  They were not busy trying to "decorate" the world around them.  Rather, when you see a totem pole -- every single sign and symbol and line and curve and color means.  Beautiful it is, but beauty was not the point.  Rather, history, story, magic, direction, understanding, wisdom, power, -- this was what they were for, this was what they were doing.
              • And so it is at Damanhur.
              • And does it have an affect?  You better believe it.  Just walking around Damanhur feels like something radically different.  There is such a thing as atmosphere, and it is palpable and persisting.  It can heal minds, hearts, and bodies.
        • Tamera I know less about.  But I can see a few things already.
          • It is definitely in a similar genre, but I don't think to as intense a degree as Damanhur.
            • That's because of the Damanhurian work ethic, which is very strong.
            • Also, I think Tamera comes from a more academic tradition:  Thus, they rely more on the essay form.
            • Paul suggests that perhaps it's because the Tamerans are German and not Italian.
          • That said, the basic principles are there.
            • The Tamerans speak of fields, and taking time to immerse yourself in the field.
            • They largely rely (I think, I suspect) on people talking and conversing amongst themselves in in-between times in order to get the core theological understandings out there.  If someone is puzzling over something, and a large group of people already know how that puzzle works, then indeed people really can learn by osmosis.
            • Since the technology works, you can see it working, so you can understand it much more clearly.  You don't have to puzzle when it is transparently operating in front of you.
              • By "technology," here, I am referring to the spiritual-mental-social understandings, techniques, elements, etc., etc.,.
            • And, the Tamerans are engaged in the arts as well.
            • They also live imagination (or such is my take on it,) which I believe to be of central importance to spiritual society.  A spiritual society that is not itself poetry is no spiritual society, by my book.
              • This is a message that I want to talk a lot more about, more broadly.  A big part of my mission is the genuine linking of science and spirituality, in which neither side is bulldozed.  The connector piece is the imagination, which is where the world of dream touches the world of the material, and both find fulfilment within the other - to put it extremely mildly.  That I do not express this more vigorously is purely a sign of my own personal lack and immaturity.  We are all works in progress.
    • Lee Ann is exploring with me how to create a mystery school, and alchemical tradition.
      • Lee Ann has been incredibly patient with me.
      • Lee Ann has really been pushing me in the right ways to communicate effectively, and to understand and focus on the right pieces.
        • The previous blocks of information about Eckankar, Damanhur, and Tamera, have come from my conversations and explorations with Lee Ann.  I know "the things," but it is the conversations with her that help me give form to it all in a way that is understandable.  Her questions help me get to the next essential piece.
    • Speaking of which, I really need to meet with Joshua Madara.
      • I'm sure there are many questions I struggle with, wherein he'd immediately know the answer.
      • Joshua, if you are reading, please email me.  And if one of you know Joshua, please let him know that I need to talk with him.

Um, there's a lot, lot more going on, that I wish I could write more about.  I wish I could write about how my understanding of sexuality in society has transformed dramatically, and I wish I could write about the New Culture society and what the Heart Play event was like.  I also wish I were telling you about the 3-year plan I've developed, and the mission to find 10 people over 3 years, and then start a 3-year experiment.  And about experience creation and ...

But it's just going to take time to work it all out.

Stay tuned.  I'm going to try and post once a week.  Feel free to email me too.  Post comments.  All of the above.

If any of you are in the Seattle area, and want to read one of the books I have mentioned here, let me know, and I will lend it to you.

If you are further abroad, let me know you are interested, and I will order the book for you, have it shipped to your house.

Take care all,

With Love,

Lion

Permalink | Leave a comment  »

April 19, 2011 03:26 AM

March 25, 2011

Lion Kimbro

Fantastic News!!!

I've just been hired!!!

I've been looking for work since November- and I have gone through some pretty incredible gauntlet-grade interviews...  (One would-be employer put me through 4 interviews each 6-7 hours long..!)

But I was just hired!!

You are never going to believe how AMAZING this work is-

It's for...

(Drum roll please, ...)

The POKÉMON Company!!!  (株式会社ポケモン)

Doing what, I hear you asking?  Python Django development!  This is pretty much BEYOND the ideal I had in mind for my work hunt- I was really searching for Python dev work.  But to also be focusing on web work?  And then, on top of that, for a company with as fantastic a reputation for seamless excellence as Pokémon?!?

For those who don't know it- my daughter Sakura has been playing and watching Pokémon pretty much her whole life.  I always wanted her to be active and involved with things, so we would always act out the scenes that played in Pokémon.  And Amber's always called me "Pikachu," because my favorite color is yellow, and I have some Pikachu-like qualities.

I will upload at some point some of the pictures from the company headquarters in Bellevue;  It's pretty amazing- when you walk in, it is very much like a shrine or a church or a temple:  it is somber, serious, professional, devotional, and sent me a clear message: "You are in the presence of something very special;  in your hands, are the hearts and dreams of hundreds of millions of children.".  What I mean is that the entrance has a hall with carefully made sculptures of Pokémon, curated like a museum, with special lighting and wide open space, leading into a space-age like room where you are greeted, by the receptionist, who is ...  Pikachu!  With his beaming smile on the user interface, which is like something straight out of Apple or the Pokémon games- perfectly crafted and colorful.  I don't think I've ever worked anywhere where such pride and care was presented at the facility, save my time testing at Nintendo (where they keep an extraordinary show room) and volunteering at the Tsubaki Jinja (Shinto shrine) near Granite Falls.

Now, I know that this is work.  And I do not confuse this with my dream: which is to create new visionary societies that are themselves based in dream.  I do this work in order to earn the money to fund my society making efforts.  But boy:  of all the "work" I could do, this is the greatest gift and opportunity.  I have no reservations about working for such a noble effort.

And it IS noble:  This is on the order of working for the Walt Disney Corporation.  Pokémon clearly expresses high values and a high concept of life.  Pokémon teaches the importance of working for the sake of the ecology, of loving nature personally.  Pokémon teaches that humanity is internally and with all of life part of a community.  Pokémon opens questions that introduce mystical introspection and participation in ultimate questions.  Pokémon encourages perseverance, a positive attitude, adventuring, joy, understanding of others across differences, and teamwork.

So: I am crazy excited.  I need to stop at a bookstore and get a book on Django and read it all on my return trip to Seattle.  I start work on April 4th.  YES!!!


Sent from my iPhone

Permalink | Leave a comment  »

March 25, 2011 05:41 PM

March 21, 2011

Lion Kimbro

Robert Gilman

Yesterday, I stopped at Jigsaw Renaissance to see Willow, when I happened to chance upon Robert Gilman, who was convening about some work he is doing.  Our meeting went something like this:

Lion:  "What are you working on?"

Robert:  "I'm working on making it so that municipalities can make use of each others' best found practices.  Building codes, public policy, ..."

Lion:  "I'm frustrated with building codes.  The building codes force you to build in unsustainable ways.  Lip service is paid in the codes to "this is not intended to stop experimental building..," but in practice, it does."

Robert:  "That's where my work comes in:  This is a system so that, once people find out how to build sustainably in one place, that work can be quickly important into another municipality.  You'd still go through the same legal channels, but you'd be able to quickly pull in the codes once the population had approved them."

This is important;  This is the kind of infrastructure work we need as a society.  It is one thing to build an ecological building, but another entirely to make it possible for that to become a legal reality for hundreds of millions of people.

As a society-maker, my thoughts are:

  • Why does Robert Gilman have to work alone?  Why isn't there a supportive community around him?
  • Why does Robert Gilman have to work alone?  There is a dream and a spirit alive in his work, but the society we live in doesn't reflect that back to him.  He's boldly trecking it out for all of humanity, but he's got to feel a sense of loneliness and isolation -- our way of life simply isn't about idealism, to any degree.
  • Why does Robert Gilman have to work alone?  Why doesn't he have a team of people who are just as interested, working with him?

I look through his pages and recognize a kindred spirit and a teacher.

Here are some of the articles I'd highlight:

  • The Eco-Village Challenge - "The challenge of developing a community living in balanced harmony - with itself as well as nature - is tough, but attainable."
  • Guidelines for Eco-Village Development - "Eight steps to creating your own sustainable community."
  • The Village and Beyond - "Networks of villages may be the next major social form."
  • A New Relationship with Time - "...Almost all the increase in free time from 1965 to 1985 went into additional TV viewing."
  • Stories, Facts, & Meaning - personal account
  • Shed Your Dread - "...Wouldn't it be wonderful if the sustainability movement responded to this by doing its inner as well as its outer work, by becoming known for its joy as well as its effective solutions, for its fearlessness in the face of tumult, and for its twinkle-in-the-eye esprit?"

Here is someone who clearly has seen something of the new world -- and not just the new world, but the spirit that motivates it.

Permalink | Leave a comment  »

March 21, 2011 10:39 PM