D&D 4e SwissStatus Cards

Dominated
Earlier this week I cranked out a set of colorful D&D 4e combat status cards. I had just discovered The Weem’s cards and the Solarized color scheme in quick succession. I was excited. I designed in a rush. Now that I’ve had some time to look at what I’ve made, I decided I was Not Happy With It™. There were typos and copy errors galore, and what I thought was clever design in my enthusiastic rush just didn’t hold up under scrutiny. I went back to the drawing board tonight with Khoi Vinh’s grid principles book fresh in my mind, and I tried to slow down and create something I could be more proud of.

The result is what I’m calling the SwissStatus Cards (ZIP archive, 365 KB.)  Same license and legalese as last time, but with a little more pride and confidence.  Enjoy.

Print-ready PDFs are also available:
Page 1: Blinded, Dazed, Deafened, Dominated, Dying, Grabbed, Helpless, Immobilized, Marked.
Page 2: Petrified, Prone, Restrained, Slowed, Stunned, Surprised, Unconscious, Weakened.
Page 3: Nine Ongoing Damage cards.

UPDATES:
9 April 2011: The folks at UD+M have kindly notified me that they have a claim to the use of the name “Helveticards” in the gaming industry. Since I’ve no desire to step on other designers’ toes I’ve changed the name of my cards appropriately.

Posted in design, games | Tagged , , , , , |

F*ck You, Pay Me

Mike Monteiro, co-founder of Mule Design, gave the this talk at Creative Mornings in San Francisco last month. It’s so good I had to share. (via Gruber)

Posted in potpourri | Tagged , , , , , , |

The Audacity of Getting Paid

Christopher Bowns:

So if you’re a company that provides a product or service to customers, and you don’t charge them for it up-front, you have two options for money:

  1. You burn VC money. Uh oh, someone’s gonna want those dollars back later!
  2. You sell your customer’s eyeballs to advertisers. Good thing that’s an effective strategy that’ll give you lots of revenue and won’t at all tarnish your brand or negatively impact the user experience, isn’t it?

Straight shooting. Sad to have missed this when it was first posted back in March.

Posted in potpourri | Tagged , , |

Parsing a CSV file within a ZIP archive with Python

Dug up an old post from an earlier incarnation of the blog today.  My logs say that folks found this at least a little bit useful.  This was originally posted on 28 April 2009:

I recently had need to parse a large (100 MB) CSV file with Python 2.x and was pleased with how speedy it was.  However, the test machine I was using was strapped for disk space and a 100 MB file was, shall we say, less than welcome.  Zipping the file compressed it to 5 MB, which was far more reasonable.

Parsing CSV in Python is straightforward… and so is reading file contents from a ZIP archive.  Unless you’re using Python 2.6 or higher, though, getting the file contents out of the ZIP archive in a way csv.reader() likes (as a file-like object) is not as simple as calling ZipFile.open().  All you get in Python 2.5 or earlier is ZipFile.read(), which returns the file contents as a string.  Since disk space was a premium, unarchiving the CSV even temporarily was out of the question.  Using the StringIO module, it is possible to take the string contents of the CSV within the ZIP archive and make a file-like object that csv.reader() will accept.

Assume you have a ZIP archive called test.csv.zip with a single file in it called test.csv.  Here’s the code:

import csv
import StringIO
import zipfile

dataFile = 'test.csv'
archive = '.'.join([dataFile, 'zip'])

filehandle = open(archive, 'rb')
zfile = zipfile.ZipFile(filehandle)
data = StringIO.StringIO(zfile.read(dataFile))
reader = csv.reader(data)

for row in reader:
    print row

zfile.close()
filehandle.close()
Posted in development | Tagged , , , , |

Spending a lot of time over at MediaQueri.es lately looking at how the pros do responsive web design.  The underlying code looks like a LOT of extra work, but the results are undeniably compelling.

Posted on by Duane Sibilly |