The joys of looking at old Python code:
Initial pass gets rid of the Syntax errors and other egregious errors. Yay!
Then PEP8 comes along and crushes your soul by pointing out all of the lazy shit you’ve been getting away with all this time.
Apparently the League of Conservation Voters would like to remind folks that their voting records are public record by sending out post cards with the names and addresses of several local residents and whether or not they voted in the previous two elections.
Apparently this is to encourage folks to go talk to their neighbors and encourage them to vote.
As a person who generally likes to keep to himself I find this both an appalling surfacing of public records and an abuse of resources this organization is purporting to protect.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.
Just did a quick back-of-the envelope install of pump.io. Unfortunately I bombed out half-way through because the node.js on 12.04 is ancient by all accounts. Worse: apparently one of the ways to install a newer node.js has my favorite pet-peeve of requiring you to run curl website | sudo bash -.
And we wonder why folks just “use the defaults” and post on Twitter / Facebook. I applaud projects like Sandstorm that try to take some of the pain out of owning your own content. I think this is desperately needed for us to move to the next level.
(This is in response to John Wick’s “Chess is not an RPG” post. Read that first lest you succumb to my ramblings mid-stream).
Part of my game design learning has been working out mental models of how to translate certain Role Playing Game concepts into computer game concepts. I think part of what John was trying to elaborate in his initial post can be explained through thinking about how RPG mechanics can and cannot be described as algorithms to a computer. I think the computer-as-game-arbiter can help codify some of these concepts.
Computers have long had a history with both RPGs and board games. Take a game like Chess for instance. Chess can be easily represented to a computer: the board is a simple 8×8 checkerboard with various pieces that have different pre-determined roles. Each of those roles can be codified so that even a simple computer like the Atari 2600 could be made to play chess. Similarly there are whole areas of board games where the mechanics can be explained to a computer. Games like Monopoly, Go, Star Realms, Magic the Gathering, etc. have computerized versions that can arbitrate the rules effectively for players, and in some cases the computer can play relatively competent versions of those games against human players. The mechanics of the games are algorithmic: a bishop can only move diagonally on its own color, a rook moves in straight lines, neither can move through another piece, the king can’t move into check, etc.
D&D has similar rules. I’ve written a grossly over-simplified version of D&D’s third edition combat. In this scenario a fighter who always wins the initiative roll uses a long sword against a goblin. The goblin retaliates with its weapon. Play continues until one party loses all hit points.
Now one might argue this doesn’t take into account the myriad of ways one could perform combat in D&D 3E. Indeed I had to simplify my example a great deal in order to keep my own example simple (and for the record I was sorely tempted to make this a GURPS example since I’m more familiar with GURPS and I think GURPS keeps things much simpler than D&D 3E. But I digress. )
What you’ll notice even with all of the options for D&D 3E is combat is still algorithmic. There may be more choices for the players, and they can narrate those choices however they wish but without the narration it’s still “roll dice, add modifiers, compare against target number, roll damage, add modifiers, subtract from hit points, check if below zero”.
And therein lies the rub: You can narrate yourself the most epic combats with characters swinging from chandeliers while swishing swords and lopping off monster-noggins hither and yon, but that’s just window dressing for mechanics that don’t care one whit if you narrate glorious tales or simply say “I swing my sword. I roll a 12. Add 3 and that’s 15. What’s the AC?”
Combat is actually one of D&D’s strengths. Let’s say you’re planning on charming a noble to do some favor for your character. You add up your modifiers and 1d20 roll and compare it against a number (generally all of the NPC’s modifiers and 1d20 roll) and see who is higher. The player with the higher number wins the contest. Let’s say you’re looking to model the character of Balric from Black Adder. He’s not that smart, has relatively low charisma, but is capable from time to time of saying rather profound and insightful things. The rules say he needs to play a simple high/low game in order to have a successful speech, but if the narrative would be better served by him successfully giving that speech then the GM has to either ignore the rules (which is possible) or explain away how the speech failed. At that point it becomes tea-leaf reading: the results are what they are but it’s up to the players and GM to determine what happened.
One result of D&D having rather algorithmic combat and interactions is borne out by the myriad of computer games that use a form of D&D as their engine. Computerized RPGs can rely on simple combat mechanics and menu selection to give a reasonable RPG-like experience. RPG games like Wizardry, The Dark Spire, and Eschalon don’t even hide how much they’ve sourced from D&D mechanics. The computer can take care of the bookkeeping and dice rolls and the player is free to immerse themselves (or not) in the world. How well the players role-play with those computer games is irrelevant to the success or failure of the mechanics. Similarly the mechanics of D&D don’t directly lend themselves to role-playing.
So if games like D&D can be turned into algorithms are there games that don’t lend themselves to this sort of conversion? Absolutely. Games like Dungeon World, Fudge and Fate don’t lend themselves to tidy conversions. Fudge and Fate in particular are very loose with their mechanics so a simple dice roll of “Great” can give narrative license for a whole slew of actions. Plus Fate has the Fate Point economy where certain actions (if thwarted) can result in the rewarding of a point, and can be spent later on to affect the outcome. Fate and Fudge also aren’t tied to maps the same way that D&D is (you’re in an area in the building, not on a particular square or hex). Dungeon World also introduces the concept of picking one, two, or three things that can happen to your character, of which most are rather broad strokes descriptions that don’t translate well into algorithms. The interplay between player and GM is more organic in these games so current computer technology would need more advanced algorithms in order to replicate these experiences.
I won’t go so far as to argue that algorithmic or rote play in D&D and similar games somehow defeats role-playing; folks have been using these systems for decades to tell some amazing stories. But I can see the point where these algorithms can impede and stifle role-play and story-telling. We’ve all heard the stories about failed dice rolls derailing the story, or the character that tries multiple times to overcome some obstacle while the rest of the players stall out and get bored. With the more modern designs in games like Dungeon World and Fudge / Fate there’s opportunities to go beyond rote and methodical play and let the engine encourage the players to participate more in role-playing their characters instead of watching the mechanics of the game.
When your encounters and interactions with the world can be reduced to scripts and decision trees there’s little left for your character to do but be driven by forces outside of their control and hope that a random-number generator rolls numbers that equal success. And if your table talk can boil down to “I rolled a 14, did I hit it?” then you have to ask yourself if the mechanics are really permitting role-play or if you’re just tacking them on because it’s more fun that way.
As always comments and corrections are welcome. My D&D knowledge is pretty rusty so I know I probably messed up some of the specifics, but I hope the underlying message is in there somewhere. Be gentle, and thank you for reading this far.
At Pycon 2014 I saw Julie Pagano’s talk “It’s Dangerous to Go Alone: Battling the Invisible Monsters in Tech” which struck a nerve with me. It showed me that there’s a name for some of the feelings that I’ve felt both in my career and in my technical life.
At dinner tonight I watched “Nickolas Means: You Are Not an Impostor” and I decided to publicly come out and formally say it.
Hello, my name is Craig Maloney, and I’m an impostor.
Here are some examples of how deep this has run:
I’ve gotten better about opening myself to talks and contributions. I’ve been fortunate to have several groups in the area that I feel comfortable giving talks at. I’ve been fortunate enough not to endure criticism for the podcasts I’ve been on which keeps me wanting to do them (and I’d probably do them despite criticism, but it would be more difficult). I’ve been fortunate enough to have a loving and supportive wife who has encouraged me to put myself out there, and I have family who are also supportive with whatever crazy stuff I do.
It’s not easy overcoming your own self doubt and constant fear of failure. I’ve certainly not licked it myself, but each day presents opportunities to overcome and ways to turn off the negative self-talk.
I’ve been looking into mindfulness and procrastination avoidance as of late. Maybe at some point I’ll share what I’ve learned on those fronts.
JoDee posted a bit about our drive down to her work last Monday. Needless to say it was quite eventful, and we spent most of the evening trying to figure out how the heck we were going to get home. Fortunately we were able to take another road that was mostly unaffected and with a few detours away from bridges with under-passes that were flooded we had a scary but otherwise uneventful drive home.When we got home our basement had a little flooding but comparatively minor compared with the other stories I’d heard from friends and family.
We were truly blessed during this whole ordeal.
I know a lot of our friends and co-workers went through some serious stuff during this past storm and I want them to know that we’ll help in any way we can. We were fortunate this time around, and I’m grateful it wasn’t that much worse.
Last night I working on the computer trying to get caught up with a few projects. Around 7pm the UPS started chirping, and then suddenly the power went out. This was a little annoying but I managed to turn off the computer and move on to other projects. I checked the DTE map to see who was affected and about how long the power would continue being out. It appeared the power was only out for a handful of folks in our area and should be on around midnight. “No worries” I thought and proceeded to work on other stuff. (Side note: I was going to try unpacking things but decided against it when I noticed that I couldn’t see shit in the room where our stuff was. )
Time passes and the “Under Investigation: Should be up around midnight” turns into “Under Investigation: No ETA”. I quickly learn that “Under Investigation” is DTE code for “we haven’t even looked it this yet because it only affects a handful of people”.
So this morning I’m still without power.
Worse, I can see that my neighbors down the street have power. At this point a compassionate human being would think “I’m grateful they have power and aren’t having to suffer along with us”. Apparently when you are without power for a while your compassion switch turns off and instead of celebrating this fact you instead wish they were in the same post-apocalyptic “can’t see shit without a flashlight” that you’re enduring. Fortunately we haven’t descended into “The Monsters are Due on Maple Street” levels of paranoia, but I can hear someone asking in the distance “and this pattern is always the same?”.
Add a lack of morning coffee, a rearranging my normal schedule, and a lack of access to my normal music library that lives on my desktop machine, and you have one crabby Craig.
Here’s hoping things get resolved soon. I’d really hate for the aliens to win after all.
It’s hard not to come away from watching a movie like Hawking and not feel in some way changed by the experience. Sure Stephen Hawking is a brilliant scientist (the movie’s subtitle mentions as much) but Stephen Hawking is also an exceptionally grounded individual. The movie portrays a man who lives each day as though it were his last (because little could be further from the truth). He spends his days relying on human kindness and unfailing machine to keep his brilliant mind percolating out astounding ideas. Much like Tim’s Vermeer this is a movie about obsession, but where Tim’s Vermeer is an obsession with recreating a painting using techniques theorized to be the same as Vermeer, this movie documents an individual obsessed with the origins of the universe and about staying alive. It’s trite to think of disability as somehow inspirational but Stephen Hawking can’t help be inspirational, with his finely-honed wit and lust for life firmly in grasp. But what is more fascinating is the relationships he has with both caregivers and his former wife Jane. I can’t imagine the sort of stress his illness had on their relationship, and I wonder myself if faced with the prospects of ALS if I would be nearly as strong. I’m certain every day was a struggle, but seeing someone not only break through and prosper through adversity gives me a sense of perspective on my own life and challenges.
Definitely check this documentary out. It’s available online if you look in the right spots. Hawking is not only a remarkable scientist but also a good storyteller and narrator of his own life, successes, and challenges.
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported.
We just moved so I’ve had a heck of a time trying to find things like charging cables and what-not. Most of the devices in the house use some form of USB charging so that hasn’t been an issue. I have a Pebble watch that uses a special charging cable though, so I took extra special care to pack it separately.
Later on my watch starts complaining about the battery being at 20% so I looked for the charging cable. Unfortunately it’s nowhere to be found. I tore through the cable drawer and all of the “clever” spots that I thought it might be, but nothing turned up.
Finally I broke down and ordered another one. Worst case I’ll have two charging cables, right?
While prepping for the Michigan!/usr/group meeting tonight I went through my backpack to get my laptop in order. And then it hit me where the Pebble charger was.
Lo and behold, the charger was in the backpack the entire time.
Apparently I need to write myself a note when I’m being extra clever and smart so dumber me will remember these moments of brilliance.