Why wont RPG Publishers a dopt an Open Data policy?

I often wonder how much of the decline of Tabletop RPGs is due to the failure of publishers to adopt an Open Data model surrounding their IP. Like most of my fellow old-school geeks, I’ve watched the dwindling of games like DnD and Rolemaster with a fair bit of melancholy. Sure, competition from other entertainment sources is a big reason for this but I think we don’t acknowledge the impact the closed nature of publishers and IP managers on the hobby.    Too tight control and an attempt at trying to force what is basically a subscription model  has a greater impact on making the hobby less relevant than we give it credit for.

Running a tabletop roleplaying game is a derivative work by its very nature, with a fair bit of work being injected by the GM and players.  We live in arguably the most accessible period in human history for creating derivative works yet tools and resources are stagnant in the community, I believe largely because of a failure of RPG publishers to make datasets for their game easily available.   Most games present a player or GM with table after table of numbers to look-up, calculate or reference during gameplay but almost none of them make that data available in a way the community can manipulate or build on.  Fans faced with a desire to create tools for the game are forced to hand type large datasets on their own, often wondering if going to all that work will get slammed by the publisher for a violation of their copyright, or made irrelevant with the inevitable next edition of the game where they’ll have to retype the entire dataset again.

Overall I think this lack of openness further wears away at an already eroding potential fanbase and publishers would do well to find ways to further enable the community.  Instead of trying to strictly control the player experience they should be releasing information to facilitate players building deeper experiences and sharing that with other potential fans.   It could be the ship has already sailed for this hobby and nothing can arrest the continued attrition in the community but I can’t quiet give up hope for a tabletop Renascence as there has been for board games.  I just hope if that time arrives for the hobby that publishers will be ready to meet the opportunity as open partners rather than theme park vendors.

Windows 8 USB Fix for GRUB 2 Dual Boot

Computer Boot ScreenI recently upgraded my desktop to Windows 8 and set it up to dual boot Ubuntu 12.10 with GRUB 2. To my chagrin doing so seemed to disable USB devices (including keyboard and mouse) when trying to boot to Windows.

The root problem seems to be with how EFI BIOS interact with GRUB 2 and non EFI Operating systems and the general answer lies in enabling the right combination of legacy drivers for USB devices in BIOS.

My own flavor of BIOS is an ASUS EFI BIOS and I after trying various combinations came up with one that works for my system. Posting it here in case it helps anyone else:

  • Legacy USB Support: Auto
  • Legacy USB3.0 Support: Enabled
  • EHCI Hand Off: Enabled

I tried several other combinations of these and none worked but the above did. Makes sense if you think about it, when the drivers fail to load it falls through to the legacy drivers.

Fixed me up and I’m dual booting comfortably.

Channels in Go

One of the really intesting features of Go are ‘go routines’ and channels.

Go Routines are the primary way to deal with concurrency in Go.  They’re similar to threads or coprocesses but manage themselves a bit more elegantly.

Channels are essentially references (pointers) that can recieve or sent values and help syncronize communication across Go Routines and serve as blocking calls to values.

Combined together they can be very powerful, allowing for an engineer to let parts of the code run over in their own Go Routine happily chugging away until it needs to interact with the rest of the application and then it can do so via channels.

Enough Talk.  Use this example code and it should show a bit better what is going on with go routines and channels.  You can also view this on my GitHub project.

// Small script file that gives an example of channels in multiple
// go routines.
package main

import (
	"fmt"
	"time"
	)

// Broadcast to channel.
func chanBroadcast(ch chan string) {
	for {
		time.Sleep(time.Second * 3)
		ch <- "Broadcast!"
	}
}

// Listen on a channel for broadcast.
// Demonstrates blocking nature of channels.
func chanListen(ch chan string) {
	for {
		fmt.Println("... listening ...")
		c := <- ch
		fmt.Println(c)
	}
}

// Another technique uses range to assign.
// This is a great technique if you don't need to do something
// before recieving C.
func chanListenTwo(ch chan string) {
	for c := range ch {
		fmt.Println("......... HUH? ....")
		fmt.Println(c + " Two!")
	}
}

// Setup the go routines and run it all.  Pressing any key ends it.
func main() {
	fmt.Println("PRESS ANY KEY TO EXIT")

	ch := make(chan string)

	go chanBroadcast(ch)
	go chanListen(ch)
	go chanListenTwo(ch)

	var input string
	fmt.Scanln(&input)
	fmt.Println("closed...")

}

Away I Go

Silly Walk PictureWith the recent announcement that the Go Programming Language reached 1.0 status I thought I’d pick up a bit of it to see what it’s all about and have been pretty impressed so far.

I came into programming via Perl->ASP->PHP->Java->Ruby->Python or there abouts so I don’t have the experience with pointers, channels and all that fun stuff that a lot of people have coming into the industry through C and such.  So I thought it would be a great learning experience for me to pickup Go.

I’ll be posting examples here as I play, particularly of things that were confusing for me at first in hopes it’ll encourage other people to pick up the language as well.  As a newcomer Go is going to be an interesting little project for me.

Like most people, conceptual models are very important for me and as I play with Go I’ll be posting code examples I’ll use to give myself better conceptual models in hopes it’s helpful to someone out there.

Having used it for a bit now I do hope to see it take hold in the community but nobody can really predict these things.  It’s open source from the start, seems to provide all the strength of C or Java without the bloat and with less complexity, is more focused in behaviors than objects and starts with cloud and networking firmly in mind.

Eventually I’d like to put together a MUD with Go for fun that but that is probably a way off.

Wish me luck.

Setting up WordPress 3.x for SSH2 Updates

I ran into a problem I haddn’t previously encountered trying to use AutoUpdate on a WordPress 3.3 installation that required a bit more fixing than I expected.  Overall I’m having a great experience using Rackspace for various staging server needs but the minimal nature of the installs means I’m tweaking server setups and disk images more than I have in the past.

One of the latest tweaks involed getting a WordPress site to work with AutoUpdate after I had been recieving a a “Failed to Connect to FTP server..” error message at the top of the page when trying to update.  So after making sure my permissions were set correctly I looked into the connection type options for auto-updating in wordpress.

The only options I was presented with were FTP (Bad idea for security reasons) and FTPS (different than SFTP, there were a number of comments on this confusion so I thought I’d note it here for anyoen reading.), but what I wanted to to enable SSH2 for updates.

The root issue I discovered is really in the PHP setup and not in wordpress itself.  After reading Kevin van Zonneveld’s post “Make SSH connections with PHP” it was fairly straight forward to get it to work.

Essentially I had to enable ssh2 in PHP by installing the correct libraries.  On my Ubuntu installation that was just by:

sudo apt-get install libssh2-1-dev libssh2-php

which I confirm is installed correctly (as Kevin directs) with:

php -m | grep ssh2

After that I want to setup password based authentication in my case instead of key based so I modify ‘/etc/ssh/sshd_config’ and change the value for ‘PasswordAuthentication’ to ‘yes’

After that I restart ssh via:

sudo service ssh restart

Gong back to my wordpress admin page I select the link to update wordpress, use the userid and password values as needed and leave the key fields blank.

If you can’t talk, you can’t program

Thanks to Danielle Thesis for pointing out this excellent article pointing out the advantage of cities in growing social skills.

Where the Skills Are

Human progress, to a large degree, has depended on the continual expansion of social networks, which enable faster sharing and shaping of ideas. And humanity’s greatest social innovation remains the city. As our cities grow larger, the synapses that connect them—people with exceptional social skills—are becoming ever more essential to economic growth.

As a software engineering manager at a University I often lament that we have no technical challenges, only relationship challenges.  While not entirely true it’s true enough and more often than not the big obstacles we run into have more to do with our ability to communicate, related on a project.

Software is no different from many careers in that it’s a victim of automation.  Gone are the days where a programmer could pull down 60 or 70k a year writing login pages for their institution and that leaves is in a place where software engineers are focused on real technical challenges of a project.  More challenging still is that project owner usually only come to a software engineer when software doesn’t exist that already solves their problem.  So what we most often end up with are people talking to one another with varying degrees of certainty about what they want, often only knowing it’s different but unable to explain exactly how.  In these situations, social skills are arguably more important than programming skills or at the very least more immediately important because if you can’t bootstrap a conversation you’ll never be able to get enough information on what needs to be done.

In these situations it’s also incredibly important to maintain relationships over time.  As Agile proponents love to point out, needs change and software engineering projects need to stay flexible to make sure they’re addressing the real needs of a project and play a major role in helping project owners better realize what those needs are as they see working software.  In this way it’s a highly interactive environment where each conversation, interaction, software release and discussion evolves and advances the overall direction of the project, sometimes in very significant ways.

For me a big litmus test of how well developed the social skills of a project team are comes when I observe how they handle “Gee, I don’t know” or “Wow I was totally wrong about that”.   A team with a high level of trust and well developed social skills are going to take those moments and use them to do something great with the project.  Teams with poorly developed social skills are going to get stuck.  It’s often as simple as that.

A Stance with Dragons (Spoilers)

Taking a bit of a break to finally put down some thought's after finishing George RR Martin's "A Dance with Dragons".   What follows will be copious spoilers and a discussion of the book so read no further if you don't want to hear mention of what went on.

Spoiler Alert…. you have been warned…

Overall I enjoyed the book but it lacked something for me and convinced me even further that the author has lost the thread of the whole thing.  I think technical aspects of his writing are top notch and the whole thing came off as an incredibly polished use of language, but overall the story lacked the animus of the other books.  Perhaps this can be attributed to a normal second act lull but it's hard to feel that is an adequate summary.  I didn't feel there was much the way of character development, aside from Theon anyway and I struggled with that not being very interesting.

Having had far too many years since seeing Jon, Tyrion or Danny I thought their story was wholly inadequate and rather flaccid.  Danny sitting around lamenting the difficulties of leadership and her aloneness, Tyrion lamenting his lot in life and being enamored with his own cleverness, Jon alone with is burden of duty and not being understood by others.  I feel like we've done all that and in some cases I thought we were past that, at least I know my interest was, so it was hard to feel there wasn't a retrograde of the character arcs here and made the book feel a bit meandering.

That said I'd rather meander with these characters than most others, but still the overall lack of momentum increased the feeling that started to creep in with Feast for Crows.  That the author has lost touch with something that made the earlier works so good.

The high focus on Jon/Danny/Tyrion and the brief mentions of other characters also made me feel the pace of the whole story is just off somehow.  I felt this strongly when Feast for Crows was released and this book just confirmed that for me.  Arya, Jamie, Cersie has such brief mentions that I have to wonder why bother with it at all.  Sansa was completely absent from the story which threw the pacing off even more and I have to wonder if I'll care about the story arch at all if it's 10 or 13 or so years between the mention of a character.

Uneasy feelings caused by pacing problems and vanishing story arcs are exacerbated by the seeming random addition of confusing or distracting story Arcs.  I mean, what was with that whole Griff story arch?  Rheagar's little boy is still alive?  What purpose does this really serve?  I didn't feel like it increased the drama, I didn't think it added anything interesting to the story.  Was this suppose to be their "I AM your father" moment?  if so it failed completely for me and just felt like a distraction.  What about Davo's Story?  What was the point of any of that and will I care 5 or so years from now when the next book comes out?  What was the point with Stannis, Asha, any of them?

The last complication to it all was the overall creepy nature of the Reek/Theon and Ramsy story.   Was this some kind of attempt by Martin to outdo himself?  I have no idea but overall it went way past the mark to the point that it made it all seem a bit contrived and silly to me.  Why did I care about ANY of that?  What did it lend to the story?  Is this the attempt to set true villains apart from the the normal shades of gray in the world?  With Jeoffery gone I suppose they wanted to bring someone else in that would make me feel could be a satisfying death, but it got so far past silly that I find it hard to be that emotionally invested in the character. 

I know I'm being pretty brutal here, particularly for someone who overall enjoyed the book.  I think though I'm starting to see diminishing returns for my investment of time in the series though and as Martin wants to spin up the marketing machine for GoT on HBO while taking the "I'm on artist and it will be done when it's done" approach that I think he's not living up to the space he seems to want to carve for himself as the "American Tolkien".

I hope to see better in the future but if this continues I think all we're going to end up with is the typical Fantasy series that started out great but got worse as the books progressed.  I hope I'm wrong though, by the Seven I hope I'm wrong.

Social Panic Attacks and Technology

The Wall Street Journal had an interesting blog post exploring why some technologies cause moral outrage or panic and some don't.

Technology and Moral Panic

Why is it that some technologies cause moral panic and others don’t? Why was the introduction of electricity seen as a terrible thing, while nobody cared much about the fountain pen?

It is a curious topic and working in technology in Libraries, I encounter some form of this panic on almost a daily basis.  The other day I tweeted a link to Eric Hellman's piece on the changing needs of library data and one of the first comments I got was an accusation of wanting to remove all humans from the library process.   I find I repeat some form of that conversation over and over again on almost a daily basis.  

Given that experience I'm not sure I just have a niche culture that reacts different or if I disagree with the WSJ author as to what generates panic about technology. 

More than our relation to space, time and people.  I think it's more about how big a contrast something is to the script we've written for ourselves.  Most people achieve a perspective on their life that ensures them what they do day to day is valuable and I think most go so far as to convince themselves of some form of moral "rightness" to not only what they do but how they do it.  It make sense that we do that and it's a valuable tool for getting through any particular day and getting up the next morning.  

I'd argue that it's the fundamental discomfort with changing not just a routine, but the thinking that has built up to make us accept that routine that is liable to cause panic.  When you challenge someone's basic precept of how they are going to get through their day, this seems to be a natural reaction.  

So I'm not sure if I disagree with the post or if I'm arguing semantics.  I think boiling it down to time/space and social interaction though subtracts from the basic concept that it's about security and a predisposition to creating a Panaglosian reality for our lives.   We're all in some form of a Cult of our Current Life and react violently to being reprogrammed.

The last part about the context of Comedy in all this I would also disagree with.  I think think Comedy is a social control mechanism, I think it's more of a social reinforcer.  Comedy is an important part of the assimilation of an idea in any culture, but I don't think it controls the idea as much as it makes it easier to process and assimilate.  Again, perhaps this is semantics but I think it's an important distinction.

Maintaining and Open Relationship with Google

Google's mission is to "Organize the World's Information" and they do a rather smashing job of it as long as they alone are doing it.   Even though they do a better job than most as staying open, there is still a significant risk when putting all your eggs in the Google basket and few options for backing out.   Particularly with the rise of Google+, Google Music beta and other such services going all in on Google could prove a big liability for individuals and companies in terms of being able to shift to new or better services as they emerge or just re-establish ownership over your own content.  Every business would do well to act with caution in opting for the convenience of any service as that convenience would too easily transform into abducting the ownership of your content.   I would suggest that losing control of your content in a world where ideas and content are a commodity is the same as losing control of your life or business.

With a little forethought however some convenient ways exist to both leverage the convenient services offered by Google and remain managers of your information.  The Digital Liberation Foundation launched it's "Google Takeout" service, that allows the harvesting and export of your information from various Google services into open formats.  Open formats are the key to keeping your content flexible and mobile and in a world where 5 years is an entire era of information management practices, this is critical to surviving and thriving in the modern world.  The group is starting with export features related to Google services but plan to expand their ability to other services as well.  I assume (hope) this means Facebook and Yahoo! based services but only time will tell.

Even with groups like this helping to keep information open and portable a healthy dose of caution is advised when flirting with services providers like Google.  Grass-roots efforts are fragile at best and ultimately the pressure needs to be on the big companies to keep their standards open.  A world that encourages the generation of ideas and helps communities evolve is what will bring the kind of innovation we're all seeking and like it or not our practices and the good faith of major corporations are going to heavily influence our success at this. 

Game of Thrones Redux

Even knowing what was coming in the series, the end left me pleased and stunned as I was when I first started reading the books.  The characters were visualized and brought to life in amazing ways and I was blown away at how lean and mean the storytelling was.  The series highlights just what a powerful contribution a great set of writers and directors can make to a series.  I'm not one of those fans who feels unhappy because their favorite character wasn't featured enough.  The breath of the story itself meant that there was just no way every character could be touched on and they obviously had some hard decisions about who to feature and how.  Given the realities of what they had to film I think the obviously painful choices were good ones.

Even given the lean nature of the storytelling there is a long list of standout characters for me in the series already.  Danny and Drogo, Tyrion, Jon and Jamie were just brilliant and it's only in Game of Thrones that that would seem like a short list of stand-out characters.  Pulling that off in any series would be amazing, here it's just a miracle.

Some thing else the series really highlighted for me was the just how telling the story on screen drove the need for different decisions than telling it in the book.  Most obvious to me is the fact that in print there is no background, everything is foreground in writing.  You don't accidentally see a sentence in a novel so every detail, character and event is right there in the front of your mind.  The series instead was unafraid to let many things play out in the background, which gave readers of the book a special treat while watching the series instead of making the whole thing feel reduced.  I could look around a scene and squee "Look that's Hodor!" or speculate that the guy Ned gave Stannis' letter to was Davos.    Having a background on television just made everything much more tasty to me.

I really have to say I'm looking forward to season 2 and a year seems far too long.  In the meantime Dance of Dragons is hitting shelves around my birthday and that's exactly the kind of present I can look forward to.  I definitely hope the series is going to kick Mr. Martin into high gear with his writing, because if he waits as long for the next book as he did for Dance the entire series will have had it's run and be well over before Winds of Winter comes out.

Going to conclude by going "bullet time" on some other random observations about the show:

Renly and Ser Loras were perhaps the only big mistake in terms of character portrayal in the series.  I thought they came off as too effeminate which in turn I felt insulted the characters and did an injustice to the portrayal of gay characters.  The characters in the book are portrayed as every bit as dangerous as everyone else in the world and Renly himself likened to a young Robert at his most fierce.  This I thought was lost on the character and I think it was a missed opportunity to have a storyline with characters who just happened to be gay without having to have "gay" characters.  They could have shown a relationship and instead I felt like they showed a caricature.

The choice to flesh out Jamie as a character right from the start was overall a good one, though I felt his exchange with Ned about killing Arys "feeling like justice" was too contrived.  It's not that facts about that get revealed later in the book for him that bothers me but more than Jamie didn't need anyone's approval, he was remorseless about his choices and very accepting of himself.  I think setting him up as more self doubting early will reduce the power of his character arc in the long term.  Though I do have to say his capture by Rob was exactly the Ser Jamie I wanted to see so at least they returned to it in some fashion.

The Lisa and Robin (Robert) thing was… well over the top for me.  It creeped me out though I suppose it needed to.  Still it seemed a bit forced or contrived to me and can anyone imagine them being able to continue with that kind of story for Robin 3 seasons (years) from now when the actor is 15?

All the kids I thought were great but the year between seasons thing makes it hard to see how they're going to pull of the younger characters.  As with Robin can anyone work out a 13 year old Bran?  15 or 16 year old Arya?  I'm curious to see what they'll do with those actors.  I hate the thought of them being replace because, DAMN are they doing a great job.  Not my problem though so fingers crossed it comes off well.

The Hound is a character I really enjoy from the books.  I thought choosing to move the exchange about what happened to him at the hands of his brother to Little Finger was a missed opportunity.  It didn't build anything between Little Finger and Sansa and I think might reduce the development of the Hound as a character later on.

Drogo for me was even better than he was in the book and I hope Jason Moma gets appropriate credit for his work there.  One thing I didn't like however was the shift in how Drogo got the wound that eventually killed him.  Choosing to move it to him letting someone cut him seemed to make the character less intelligent to me, not dramatically but it was something I found annoying.

I could go on and on but I'm running out of energy here.  Needless to say I'll probably give the series another watch before next year and I'm looking forward to Spring 2012. Winter can't come soon enough!