Not dead December 12, 2012
I'll just be going quiet until the new year!
Happy holidays, all!
Katie Pomodoros December 04, 2012
The cult of Pomodoro is strong in the IT sector, and I'm one of its converts. From time to time, new recruits are sent to me, so I decided it was time to write about how I use the Pomodoro method.
The Pomodoro method is almost stupidly simple: Set a timer, work for 25 minutes, break for five. Do this four times, then take a twenty minute break rather than a five minute break. If you get distracted during a Pomodoro, void it.
Why I use it
Working from home, keeping a tight focus can be difficult. If I turn my head, I can see our entertainment set-up, from which I can play hundreds of games and watch practically any show made in the past 60 years. I can also see my personal computer, from which I can play dozens of Steam games. Hell, on the very computer I'm working on, I have access to everything on the Internet. If I'm done with the stuff that's already there, I can go make more things.
Pomodoros keep me tightly focused by only asking that I keep that focus for 25 minutes. If I can do that, I can take a break, get some coffee, take a walk, or get a snack. I can also switch tasks, if that one task is one that I utterly hate, then come back to it later.
It also helps me keep track of what distracts me. Calls from family are a big distraction (especially if there's some new controversy occupying everyone's brain space). Random chats also kill my concentration. People being wrong on the Internet? Huge distraction. Email was created to distract me.
Pomodoros also help me keep my flow by separating out tasks. Before, whenever I got mail, I would immediately read it, digest it, then respond. I'd try to restart whatever I was doing, but then I'd get another email. Read it, digest it, respond. This would happen over and over again, until the entire day had passed, and I hadn't written a single line of code.
Types of Pomodoros
I generally have two types of Pomodoros: Working and admin.
Working is self-explanatory: pick a task, work on just that. Admin, though, needs some explanation.
One Pomodoro out of four is always an admin Pomodoro for me. I've found this to be vital for keeping my sanity. What do I do during an admin Pomodoro?
- Check email
- Respond to email
- Clean off my desk
- Restock what needs to be restocked
- Return phone calls
I do keep an eye on my email through Growl notifications, but unless something is marked as absolutely urgent, waiting on it is not going to kill anyone. Besides, truly urgent matters usually come to me through IRC.
When I first started doing the Pomodoro method, I would mess around on the Internet during my breaks. This can be a very bad idea. The timer goes off, but you're in the middle of a comment or a really interesting article, and the next thing you know, it's two hours later.
I try not to make my small breaks Internet breaks, especially on days when I'm not concentrating as well. I go get some coffee, I grab a snack, I stare out a window. Five minutes feels much longer when you're not staring at a screen.
For my longer breaks, I've been trying to move more. Maybe I'll do a small set of yoga, maybe I'll do some weights. If I'm feeling particularly saucy, I'll break out one of the less embarrassing dance games that come with Your Shape Fitness Evolved 2012.
Really bad days
Sometimes, I have really bad days. I didn't get enough sleep. I have an oncoming illness. Something in my personal / other professional life is distracting me.
These days, I modify the system slightly to ten-on / ten-off. I work for ten minutes. I break for ten minutes (and this time, totally away from the Internet). I find this slowly ramps my focus back up to where it needs to be. By the end of the day, I'm usually back to 25/5.
I do not have a dorky tomato timer. The last thing I need is my daughter finding it, messing around with it, then tossing it into the no-mans-land of her play room, only to go off an hour later. Also, I can't take the timer with me when I work in a coffee shop.
Instead, I use my phone, and an app made especially for Pomodoros. I onced use Pomodorium, but found I didn't like the fact that it would automatically start my break. Sometimes, I need to do one last thing before breaking, and when your break is five minutes, you get very, very protective of every last second.
Also, it uses Adobe Air. Goodbye, CPU!
Where to learn more
Really, everything you'd ever want to know is on Pomodoro's official website. It's not a complicated technique, but they do have some nice templates and cheat sheets.
Accessibility in Video Games - Cognitive November 19, 2012
When people talk about accessibility, they often forget the cognitively disabled. This is a group that's become increasingly vocal in the web accessibility arena, especially as the Internet has become a fancier, busier place.
Most people think of the cognitively disabled as the ones that are labeled 'Severe and Profound': Someone with no (or little) language, with the mind of a toddler.
The truth is, you probably know someone who's cognitively disabled. Having a cognitive impairment isn't the same as not being smart. It means that the act of taking in information or actively thinking is somehow different for an individual. Some take in too much information, and need either training or medication to help them filter the world. Others might have issues taking in information visually, so either have to take their time or
Most of the people who are issues with cognition really have issues with information processing. They might need more time with information, or they might have issues parsing a specific kind of information. They may also get information overload quickly.
- The groups I normally worry about:
- People with dyslexia
- People with ADD/ADHD (Collectively known as AD/HD)
- People with early on-set dementia or Alzheimer's
- Some subgroups that also benefit:
- People on mind-numbing medication (remember my iguana story?)
- Non-native speakers
So, what can you do, as a game developer?
Subtitles and voice-over
It's hard to tell what someone with a cognitive disability will find easier: Text they can read through, or subtitles they can listen to. My uncle, who's dyslexic, had to have his school books read to him. My son, who has Aspergers, has issues following verbal instructions, but does extremely well with written ones.
Since you don't know, if you have dialog, try to offer both a captions and voice. This is a nice benefit for people who can't stand voice acting, or are in an environment where they can't have their sound on.
In general, sans-serif fonts are easier for someone with dyslexia to read. Why? Because many people with dyslexia recognize word shapes. Serifs mess with word shapes, making them more complicated to decipher.
You know what else is hard to decipher? All caps. Don't use them.
If your designer is absolutely married to some fancy font, at least add an option for the player to switch to another font.
Most people assume (wrongly) that pure white against pure black is the most accessible contrast. It's actually one of the worst. People with dyslexia report preferring colors that are closer together in hue and value (that's color and lightness/darkness for you non-art people).
Picking the colors can be tricky. I usually go with a very dark grey and a slightly off white. This may not work for every dyslexic gamer, though. I knew one who could only read when the text was a medium blue on a deep blue background.
For these users, allowing them to set the background and foreground for their text areas is a huge help. It also helps users who prefer a lighter background, or users who prefer light text on a dark background.
Busy busy busy
In theory, everything is better with particle effects. They add interest, they make your game seem more real, they give a polished glean to your interface. Particle effects are great for most of the population.
They're not so great for the people who have issues with taking in too much information, and not being able to filter it. If you can, add an option to kill particle effects. The people with crap CPUs will thank you as well.
Quest logs and maps
There was a time, back in the glory days of the CRPG, when you had to write down everything worth remembering. Get a quest? Better get out your pencil and paper. Have a dungeon? Graph paper time!
While there is a certain charm to this, if you're someone who has trouble processing information the first go around, it can be problematic. Important details might be left behind as notes are made. And if you have trouble with spacial reasoning, making a map is no trivial task.
So, include a map and a quest log. Hell, give someone the ability to search through the quest log (I haven't seen that, yet), so they can quickly find out what the heck they were supposed to be doing with these raptor heads.
Some final thoughts and some resources.
Writing: Diagrams November 12, 2012
You would think that someone who loves drawing would love doing diagrams. I do not. I hate diagrams. I thought I would love them, but they ended up being the thing I hated most about writing Accessibility Handbook.
I mean, diagrams are nice for reinforcing information or getting across a more subtle point to a reader (they also don't hurt your page count). They break up your chapter and add visual interest. But oh my god, does making them suck.
Mistakes I made
With my first book, I didn't take the time to do the diagrams as I went. I just inserted a placeholder image with a vague description about what the diagram was supposed to be.
This was a bad idea.
When I dove into doing diagrams, I couldn't fathom why half of them seemed like a good idea. I'd stare at my note ("Something about embiggening") and curse my previous self for not just doing the diagram right then and there. I removed more than a few, then had to make up the missing space in a frenzied weekend of writing.
The reason I'd moved to doing the notes and placeholders, though, was that stopping to make a diagram can take you out of your writing groove. I'd sit down to write, then spend a half-hour either struggling with Gimp or sketching something, scanning it, then trying to refine it. Pictures are not worth a thousand words. I measured. They only take up the space of about 150 words. They were making me fall behind.
What I'm doing now
With my current book, I decided that I was going to find something that worked with my flow. I needed to make diagrams as I needed them, but I didn't want them to take up precious writing time. After all, you get lots of waiting time during editing that can be used for making the diagrams nicer.
I hit upon it by accident, really. I'd been taking pictures of sketches I'd been doing throughout the day with my smartphone, then posting them to Twitter. While these weren't archival-quality shots, they worked well enough for their intended purpose: amuse the masses. Why couldn't I do this for my book diagrams?
I started using a new workflow:
- Write write write
- Come across a section where I was going to need a diagram
- Stop, sketch it in a cheap sketch-pad
- Take a picture of it
- Crop it on my phone
- Wait for it to upload to my machine
- Move it to where I needed it to be, and name it something sensible
- Insert it
That looks like quite a few steps, but trust me, it only takes me about five minutes. Sketching is much faster than trying to start in a graphics program. My paper is already right here (I always have the sketchbook at hand), as is my phone, and Dropbox is always doing its thing in the background.
Eventually, though, I need to make nicer images. What do I use then?
Tools I use
I do not own Photoshop. I know, I know, that's crazy. The last time I checked, though, Photoshop was over five hundred bucks, and that's way over my impulse range. I have to truly believe with my heart and soul that I need something that costs over $200.
And no, before you ask, my work has not purchased me Photoshop. I'm a Python developer. That would be silly. I only got it at my last job because we'd randomly run out of designers, and sometimes you just have to fix some transparency on your own.
For screenshots and annotations, I love Skitch. It takes great screenshots that I can mark up immediately, and I love how nice it makes my lines look.
If I need to actually draw something while I'm on my Mac, I fire up Acorn. It does everything I really need it to do: layers, brushes, exporting, selecting, and cropping. I know it only does about 10% of what Photoshop does, but apparently that's the 10% I really needed.
If I happen to be working on my Mint box, I use Gimp. Then I cry a whole bunch.
If, for some reason, I'm on my Windows box (which I use almost exclusively for gaming), I break out Paint.net. I cry slightly less than I do with Gimp, but this is only because I'm distracted by the Steam icon in my toolbar.
When I have to mock up a site for a screenshot, I grab Twitter's Bootstrap. It saved me huge amounts of time, using their styling and templates.
Tip: Know your tools
If you need pull-down menus and icons to access different tools, you're doing it wrong. Learn what the keyboard shortcuts are for every tool you'll need, from creating layers to switching from paintbrush to pencil, to changing how you're selecting areas. Learning the keys made making diagrams a ton faster.
Also, it will not kill you to watch some tutorials on how to use your tools. You may not be planning on a career in the visual arts, but knowing all of the things your tools can do will only make your diagrams look nicer. There's a ton of hidden tricks that get pushed off of the main toolbar to save space.
Ask about colors
When I did diagrams for Accessibility Handbook, they were in color. I found out, while the book was in production, that the diagrams would be in black and white. Hell. Lesson learned: With the new book, I've asked in advance, and I know that my diagrams in this case will be in color.
Another lesson I learned was to save everything, in every format. More than once, I had to grab the original file and change a color or a typo, or change some copy. This includes not only the image files, but the HTML files for my screen-shots. For a few of those, I just modified another file, and I was in a world of hurt when someone needed me to make a change.
PyLadies Workshop Wrap-Up November 06, 2012
A chilly weekend in October, PyLadies descended upon the American University campus to teach a class for women on programming and Python.
We had thirty-five slots (five were for AU students, and the rest were for us). Every one of the Meet-up slots was filled, and we had a small waiting list.
A few days before the workshop, we asked people to drop if they realized they couldn't make it. Some did, so everyone on the wait-list ended up getting in.
We ended up having twenty-four students, and this was a very good thing. Any more, and we would have had students without desks. As it was, our volunteers had to sit against the wall.
With our first class, we used the MIT materials given to us by other PyLadies chapter. This time, though, we wanted to try doing something on our own. I had some different ideas about teaching order, so we scrapped those materials and started fresh.
Well, 'fresh.' To be honest, I was using the order from a book I'm writing. I wanted to give it a dry run on some actual humans before sending the book off for publication. My theory, when putting together the table of contents for the book, was that going back and forth between data types and functionality offered more chances for reinforcement than diving into data types first, then functionality.
I also decided to use IDLE, since getting paths set up is a pain in the ass, when you're talking 20 windows machines. While I still think IDLE is a great teaching tool, having some people on older versions proved an issue. I may turn set-up idle time into 'learn how to get around your computer' time, since many students don't know how to open a terminal or change directories.
This time, we did sign-up through the DC PyLadies meet-up rather than through the much larger DC Python group. This meant our class was filled within days, rather than hours, and our wait-list was much smaller (last time, if memory serves, our wait-list was three times the number of spots).
We kept the number of slots the same (30), but added a new rule: The class was for women and their friends. Basically, men could attend as long as they came as the guest of a woman.
Why did we do this? Because last time, the waiting list was almost completely male. This made me wonder if the fact that our class was mostly women was only due to chance. Had we posted at a slightly different time, would the class have been mostly guys?
This isn't the case for every PyLadies chapter (or group that's set up for women and programming). Some have never run into this issue. Some have had huge issues with it, and have had to put this rule in place for even their casual meet-ups. We added this clause because I'm not sure yet where we fall on the spectrum.
In our case, only two men signed up, so we didn't have to have any awkward conversations. Huzzah!
Also, we didn't charge for the class. I don't believe in nominal fees. No, not because I'm completely selfless; I don't believe in them because they tend to have the opposite of the intended effect. When people shell out a few bucks for a seat, they feel more justified in not attending. You've basically given them a way to pay off their guilt. If you don't let them do this, then they're more likely to get out of bed early and get to class.
A few days before the class, we had a meeting with the volunteers, which I highly recommend to anyone running an Intro to Python class. We covered the syllabus, schedule, and some ground rules:
- Don't dis the student's ideas, or point out that it's already been done. Everyone has to write a shitty blog app at some point in their career.
- We have two days to teach the students about Python, so we're going to be streamlining. We're not going to mention some things on purpose. We only have so many hours, and their brains are only going to be sponge-like for part of those hours.
- Watch for confusion. Never assume the student will 'totally get it later.' They will not. Back up, try again.
- If you are still running into a wall with a student, grab another teacher / volunteer and let them try.
- If you think of something that we need to go over, ping me during a break, not while I'm teaching. It might be something we're not going to cover, or I might need to whip up an example really fast. Heck, I might need to check the help, because it may have been a while since I used that particular bit of Python.
I don't know what the hell happened in DC on Saturday, but traffic was horrific. Like, sit in one spot for 30 minutes horrific. I'm a hardened native who thinks anyone who whines about an hour long commute is a wuss, but even I was yelling 'Oh, come ON!' over my steering wheel. I'd planned on being there an hour early, and was there an hour late.
Happily, everyone else where there on time. The first hour was dedicated to setting everyone up, so all I missed was a bunch of cursing at Windows machines.
I recommend setting up in person or over a screen share, because instructions can easily go off the rails. One click installers often aren't. Sometimes students grab the wrong version, or installed a version that was current a while back. Sometimes, they grab Python 3 no matter how many times you say "Get 2.7" because they've been trained to get the latest version of whatever they need.
You also do not want a poor Windows user screwing up their path while they try to get Python to run on the command line.
Wifi was problematic due to some duplicate logins. Some people stayed on fine. Others kept knocking each other off. We weren't doing much with the Internet, but I still recommend bringing in installers on flash drives. I also recommend making sure that the students have wifi before anyone else.
Let's get started!
Once everyone was set-up, I realized we still had a while before lunch, so I went ahead and started covering some introductions and basic concepts.
I talked a bit about who we are (most of the attendees had never been to a PyLadies meeting), gave an overview of the class, and talked about all the stuff that Python can do, and is currently doing. We had a mix of students, from a high school student to people into scientific computing, as well as a hardened Java and PHP developer. I tried to hit on as wide a range of applications I could. I wanted everyone to recognize at least one thing I was tossing out there.
At that point, I pulled up IDLE and started going over some basics.
- What's a variable?
- Numbers (floats and integers)
- Comparing values
- True and False
At this point, food was ready, so we ate and helped anyone who was still having technical issues.
After lunch, we moved into our next topics.
- if / then statements (with a quick dip into try / except)
- What's a block?
- Storing text
- Playing with text (conversion and math)
- Getting input from the user
- Lessons about trusting the user (never trust the user)
- Working with files
By this time, it was three o'clock, so we introduced the idea of student projects. We asked them to go home and think about what in their life could be automated, or what they were curious about. Sunday afternoon, we'd break into groups and help them realize at least a part of their project.
I then went home and drank.
There was a marathon scheduled in DC, so I emailed students, warning them to check their route. I struck out early and managed to get there insanely early.
Note: Nothing is open on the AU campus on Sunday.
I didn't notice any attrition on our second day, which delighted me. Everyone showed up, we cleared up a few technical issues, did a quick review of what we'd gone over the day before, then launched into more Python.
We were only teaching that morning, but we crammed quite a bit in.
- For loops
- While loops
Brains full, we had lunch, then moved on to student projects.
Previously, we had the entire class do a Twitter project. This time, though, we decided to let the students think of their own projects. We broke them up into groups that had roughly the same idea. There was a web group (including a woman who got Django running the night of the first class!), a PyGame group, some OS people, and... other groups. I'm kicking myself that I didn't make a note of all the groups that we had.
Volunteers and teachers moved amongst the groups, helping students focus a big idea into something more manageable. It was amazing watching students work through the logic of a program, then light up when their code started doing what they expected.
The next level?
One request we got from many students was a second class, covering the next level of coding. We didn't get to object oriented programming (because come on, people! We only had two days!), and we were barely got to cover imports or installing other libraries.
I'm putting together materials for a 'Intro to Python II' class now, and trying to figure out a way to screen for people that may be better off in the Intro I class. Ask them to write a bit of code? Quick test? Ask that they finish the Codecademy Python section before they come in? I don't want to put people off, but our time and the seats available are highly limited. I'd rather not have a class full of people who assume that they'll catch up quickly.
I was asked during the class whether I would be releasing the materials for others to use, and the answer is 'yes.' I'm just considering licensing. Creative commons makes the most sense, so I've been reading over all the variations. After talking with some people who've used CC licensing, I think I'm going to go with CC-NC-SA. So, people are free to use the materials (with attribution), and alter them (as long as they share alike), but any commercial uses will require a waiver.
I may strip off the NC part, but it was pointed out that, once I do that, I can't undo it. I'm not against people charging for a class, but I want err on the side of caution for now.
Last but not least...
A huge thanks to my co-organizer, Jackie Kazil, who made the food and the space happen, DC Python for lending us their non-profit status, all of our wonderful volunteers who made it possible for me to teach without having to debug someone's computer every two minutes, Social Code for the sponsorship, and American University for the space.
Katie Writes Again! October 31, 2012
A few months ago, I signed a contract to write a book in the Teach Yourself X in 24 Hours series. Pearson was looking to do a complete re-write of the one they already had on Python, and my name had ended up on the list.
When I tell people I'm writing a Teach Yourself book, I get one of two reactions:
Let's talk about that.
Why I'm writing a book for beginners
Personally, I think Python is an excellent language for people who want to learn programming. Why?
- It's easy to read. I've had third graders look at a script, and they've been able to tell me what it'll do.
- It's easy to install. I've been able to talk people through installing Python through a Google Hangout while I'm drinking wine and watching Doctor Who.
- It's actually used out in the real world. Nothing can discourage a user more than discovering that the fake language you had them use isn't good for anything, and now they have to go and learn something new.
- It's powerful. In the same vein, you can do so much with Python. It makes games! It makes websites! It chews through data and talks to databases and if you get a robot arm for your Raspberry Pi, I'm pretty sure it'll make you a sandwich! It covers pretty much everything those new to programming have asked me about doing.
Why I'm writing a Teach Yourself book
For starters, they asked.
Secondly, I don't have a huge beef with beginners series. I'm one of those rare developers that actually likes Head First books, and yes, I have owned several Dummies guides (one for photography, and the other for writing romance novels ). Hell, I own Manga guides! I think it's important for any field to have something that helps put the novice on track without talking down to them or scaring them off.
Yes, I know there's several free books out there for learning Python. One problem: they're on-line. Even the novice who knows how to google properly may not have the vocabulary to find these books. Many beginners, if they don't have access to someone who already codes, are going to go to the bookstore or library and look for a book.
Many 'Beginning' books are deceptive: They're not always for the beginner in programming. They're often for the person who's decided to learn that language who already has some programming under their belt. With tech books not being cheap, it can be an expensive gamble to see where this book is aiming. Say what you will about beginner series: they leave no doubt as to where they're going to start you: the absolute bottom rung.
It's impossible to know which beginner series a beginner is going to gravitate towards. Some like the Dummies guides, while others like the Head First books. I think we should have an excellent Python book in each of them, and the one in the 24 hours series needed to be redone. So, I'm doing it.
What was this proposal like?
This proposal was completely different than the Accessibility Handbook's proposal. That one, I had no predefined format, so it was completely up to me how I organized my material. If anything, my novel organization helped sell the book to higher-ups.
With the Teach Yourself book, I still had some freedom, but there were definitely some constraints: There had to be 24 chapters. Each chapter had to have certain sections, like quizzes or a FAQ. Each chapter had to be doable in an hour. I had to open and close with a list of what the reader was going to learn / what had been learned. There were a few optional sections, but if I included that section for one chapter, it had to be in all the chapters.
Seriously, their style guide is thirty-five pages long. It's crazy.
Also, they had someone tech-read my outline, and I'm glad they did. It ended up a ton better for the second pair of eyes (Thanks, Doug!).
So, where am I?
I've gathered my tech and test readers, and I've submitted chapters one through ten. Eleven through thirteen are written, and chapter fourteen is being a big ol' pain in my ass. It will either be the chapter that everyone loves, or the chapter that no one actually reads.
When's it coming out?
Uh, next year? Sometime?
I plan on handing in the manuscript in January or February, but that doesn't mean I'll be completely done. I'll still have edits to do, and books take a long time to get from the author's desk to the public. They take a lot of time, making sure you don't look like a complete moron, re-doing your images, double checking your resources, and basically making you sweat bullets for weeks and weeks and weeks.
 Note, I have no actual interest in writing romance novels. But Writing a Romance Novel For Dummies was one of the most realistic books ever I've ever read about being an author. While other books tried to nurture your delicate soul, that one flat out told you to network and market yourself, and to do what your editor says.
Career Day October 24, 2012
Note: I half-wrote this way back, but then had to put the blog on hiatus due to commitments that make me money. I've decided to post this now that schools are back in session, hopefully encouraging others to speak at their kids' schools this year.
I did my first career day at my son's school, and it was a blast.
I'd never done one before, because either the timing was poor, or the stinker would hide the flyer from me. This year, I intercepted it and was able to sign up, much to his horror.
Since I signed up for a whole day, I thought I'd be speaking for the whole day. Imagine my level of peevishness when I found out I was only signed up for three talking slots. Was I not cool enough or something? I pouted with another first-time parent (also in IT), as we waited for our turns.
The cool factor of the other parents was also a bit intimidating. We had:
- A bee keeper
- A mobile vet lab
- A freaking SWAT team
- A mounted policeman
- Loads of firemen
- A Redskins cheerleader
Seriously? I'm going to compete with that? I comforted myself that I was at least a step above the nutritionist.
Talking to the kids
Finally, it was my turn.
We were handed a sheet of things to cover. This sheet was very important, because the kids had to write down certain things about you, like how much you can make in your career, what character traits are important, and how much education you need. You know, the boring stuff. After that, you could ad lib all you wanted.
I was tempted to ad lib all the way through, but the kids stopped me cold. "You're not reading the sheet."
A girl held up her worksheet. It looked like the sheet I'd been handed, except hers was mostly blank. Fine, I read off the sheet, they filled out their paper, and they were happy. Less stressed, they actually paid closer attention to what I had to say after that.
- My spiel was pretty basic:
- I told them I was a developer, a person who makes programs for computers and the Internet. Computers are stupid (the kids loved that I used a 'bad' word, by the way), and we give them instructions to tell them what to do.
- We call those instructions 'code.'
- Many things in our lives are either computers in disguise, or contain computers. Gaming consoles, phones, MP3 players, TVs, and even cars use code.
- Being good at math is a plus, but I know many developers who aren't as good at math who are great developers.
- What you need to be good at is breaking down a problem into parts, and being able to solve those parts.
Oh, and be good at writing and communication, I added. I figured I might as well indoctrinate some of them while I had them, because we totally need more developers who can write coherently.
I also brought up that I was way overdressed for my job, seeing as how I was in jeans and a nice sweater set. I usually wore my pajamas.
My spiel done, I brought up the code for a fairly basic number guessing game.
import random high = 10 secret_num = random.randint(1, high) while 1: guess = input("Give me a number between 1 and %s: " % high) if guess == secret_num: print "You got it!" break elif guess > secret_num: print "That's too high. Try again!" else: print "That's too low. Try again!"
I walked them through it, and surprisingly, the kids got it right off the bat. We messed around with it, raising the upper limit, changing the inputs, adding how many times the class had guessed. They really, really understood it. They knew what to change, and they knew what the outcome would be.
This should be a lesson to educators: You don't need to start kids off on some fake programming language like Scratch. We have something they can understand and actually use later.
I then brought up my roguelike, toyed around with it, and showed them how much more code was involved. They began to understand that you can do a lot with a little code, but sometimes you need a bunch of code to do something bigger.
Lastly, I made my Mac speak. This, hands-down, was the best trick, and it was one I didn't add until a few minutes before I started my talks. You'd think a bunch of kids who had consoles and computers at home that spouted voice acting all the time wouldn't be into this, but they were amazed. I got requests to do everyone's names, get the computer to sass me, and get it to say bits of songs that I wasn't cool enough to recognize.
There was a time set aside for questions, and I got hammered.
- Common questions:
- Do you know anyone who makes video games? (Yes, I know people at EA and BioWare, and a few indie developers. The kids flipped out over this)
- Can I play your game on my XBox/PS3/DS? (No, and then I explained how distribution channels worked, and how it was very expensive to develop for consoles)
- How long does it take for you to make a website? (It varies. I've put one up in an hour, I've had them take me a few weeks. One took a group of us a year to make)
- What games do you play? (I'd list off all the titles I could think of, much to the dismay of the teachers. I think they wanted me to decry all games as evil. The kids, however, were stunned that I played many of the games that they did.)
- Can you hack our teacher's computer? (Uh, no. That's illegal.)
What surprised me
The kids repeat questions. Over and over and over again. Not variations on a question: the same exact question. I would just repeat myself until the teacher intervened.
Every kid has a smart phone. I guess my son wasn't being dramatic when he said he was the only one without one.
I should have reviewed what kids call numbers before I went in. They don't call them integers and floats. They call them whole numbers and decimal numbers. I'd recommend asking the teacher before you go in, since this could vary by district.
One kid asked me if I knew anyone who worked on Grand Theft Auto. "That's rated M. What do you know about that series?" "Um..."
The kids were shocked that me, an old person, played as many video games as I do. They were also shocked that I knew what all the systems were, and that I would actually choose not to buy one.
They were really, really good at the number guessing game. Like, almost perfect. I've known adults who couldn't do the guessing game in the minimum amount of moves.
Not everyone presenting was a parent of a child there. Some had children who graduated long ago, others were friends of a teacher. Some had approached the school and had a standing agreement. I had always assumed that the adults at career day were parents to a child there, but most weren't.
So, should you do a career day?
You absolutely should. I was up against a SWAT team and a vet, and I ended up being one of the more popular presentations. It takes barely any prep: I wrote the number guessing game while I was waiting. They already had the format they needed, and it wasn't anything I had to think terribly hard about.
Getting kids excited about programming today means that one day, you're more likely to have competent juniors. If you plan on being in the workforce eleven years from now, the fifth grader you talk to today is your new hire in the future.
Accessibility in Video Games - Physical October 15, 2012
There's nothing like losing use of your dominant hand for a year to give you empathy for the physically disabled.
The Iguana Saga
It was my sophomore year in college, and I was bitten by my five-and-a-half foot iguana. Four tendons were completely severed. Twelve hours in the ER, three in the OR, and a year of physical therapy later, I had most of my use back, though I would never regain full feeling, and my right hand tires quickly.
This was a few months after I got my PlayStation. AUGH. TIMING.
Once I was off the meds that made me think that British people were speaking Spanish, I broke out my PlayStation again. I couldn't go to school since I couldn't take notes, and the meds I was on tired me out if I did anything more strenuous than go out to eat. Might as well game.
I discovered that there were some games that were impossible to play, but some were doable. I beat Final Fantasy 8 thanks to being able access all the functionality of the game with one hand. I could also set the fight system to one that waited for me to enter what I wanted to do rather than beat on me constantly.
The people at my work did some research, and one of them found a one-handed keyboard for me to use. Another installed Dragoon Natural Speaking. I played around with both, and ended up with a grab-bag of successes and failures. I could poke around on my computer, but anything more complex than surfing was painful. Games? Hah. No. I couldn't hit the keys fast enough, even with my nifty one-handed keyboard. Mousing with my off-hand was shaky, and it didn't get much steadier as time went on.
I have all of my functionality back, but I still have time limits when it comes to how long I can do things on the computer or on a console. If I game more than an hour or two at a time, I pay for it the next day. My hand wears out quickly, so if I have to hold down a button for a long time, I'm going to eventually get pains shooting up my arm.
Not every physically disabled gamer is in a wheel chair (though some are). We may not even appear to have a disability. Most people don't know about my hand until I stick it in their face and start rattling off my story ("I know what my hand looks like without any skin on it!"). It may be incredibly subtle, and it may take time to kick in.
Who does it include:
- Those with limited movement
- Those with spastic disorders (their muscles might move too much, or move unexpectedly)
- Those with arthritic disorders or RSI
- The temporarily disabled (broken arm, etc)
- The elderly (Your grandparents may not game, but you're going to be old one day. Sonny.)
The physically disabled have a huge variety of tools, some of them made especially for gaming.
- One-handed keyboards
- On-screen keyboards
- Touch screens
- Specialized controllers
- Mice with many buttons
They also might use a standard keyboard and mouse, albeit slower than normal, or less steadily.
What can a game developer do?
Since games are so heavily reliant on input (and often, quick input), this can feel like an impossible task. It isn't, though! Ask yourself a few questions...
Does input need to be realtime?
With Final Fantasy 7 and 8, I was able to configure battles so that the game waited for my input before continuing. Without this, the game would have been impossible for me to play. Did it take longer? Oh, sure. A replay a few years later proved I could beat the game pretty quickly if I could use both hands. I was still able to beat it, however. Tetris wouldn't work if it wasn't real time, but many RPGs have room to add this in. Even Fallout 3 had this, in a way, with their TADS system. Hit a key, and you can choose where you want to plug enemies.
Can you have on-screen controls?
Take a look at your game screen. Could you add an optional pad for movement or input onto the screen? Legend of Grimrock has one of these, added back in at the request of a disabled developer who uses a touch-screen to play games. If you do decide to add this, just remember to add all functionality a user would need: Pausing, movement, spell casting, and combat should all be represented.
If this seems impossible to add, go look at a few RPGs on Android or iOS. If they're an import from another system, they will almost always have a set of translucent controls.
One advantage to designing some on-screen controls: You're already primed for deploying to a tablet market.
Can you lose the mouse? Or the keyboard?
Many PC games are a hybrid: they insist on using both the mouse and keyboard. For some games, this would probably be impossible to work around. I can't image playing a FPS without the ability to look around with my mouse. For others, though, there's a bit more leeway. I have a feeling that Blackwell Legacy could have worked with just the keyboard
Can the user customize controls?
Many specialized controllers depend on the ability for the user to customize their controls. Maybe they want to remap everything to work on their mouse. Maybe they're left handed and really don't want to use the arrow keys.
What do StickyKeys do?
If you've ever worked with Windows, I'll bet you know about StickyKeys. In many versions, if you hold down the shift key too long, you'll turn them on. They'll then proceed to drive you up the damn wall until you get them turned off.
With StickyKeys enabled, if you hold a key for a bit, you can release it, but Windows will pretend that you're still holding it down until you hit another key. If you're someone with joint issues, this can be a god-send. Holding down one key, whether on the keyboard or on the mouse, can cause quite a bit of pain if you have any hand issues.
I discovered the glory of StickyKeys and games when I played The Witcher. In The Witcher, you generally walk by left-clicking and holding somewhere away from your character. You walk all over the damn place in that game, so I was getting horrible pains up my arm.
I turned on StickyKeys so that I'd only have to hold down the mouse button for a few seconds. After that, I guided my character by moving my mouse around. He followed my cursor until I clicked again, at which point he stopped.
Most games work with StickyKeys without any interference, but it's worth revving up your game and seeing how the two interact.
The cognitively disabled!
Homebody Diary: Am I a shut-in? October 08, 2012
When I tell people that I work from home, I usually follow it up with "Yeah, and now I'm no longer fit for society" and a laugh. We've all seen that Oatmeal comic. We know how the story of the remote worker is supposed to end: covered in urine and communicating in grunts and half-words.
I thought I would need more socialization when I started working from home. I was convinced that I'd end up at a co-working space at least once a week (or at the very least, a coffee shop). I soon discovered that getting out the door was more trouble than I was ready to put up with in order to pay for coffee or a seat. I mean, I have a chair here, and coffee in the house is free!
I was surprised when I found out that I didn't miss people at all. I'd expected to be lonely, and I wasn't. Excellent!
In early September, I went to DjangoCon US. I love conferences. I'm an incredibly social person, so I tend to be in a rather manic state for the entire time I'm there. I want to see all the people that I only get to see at conferences, and there's always a few mavens that want to introduce me to a slew of new people. Add to that the fact that I can and will talk to anyone who happens to be within five feet of me, and that's a lot of social contact.
It started great. I was seeing people, hugging people, shaking hands, sharing stories, seeing talks, talking about talks... and then, at about 2 in the afternoon, it hit me.
I needed to be alone for a while.
I just didn't want to talk to anyone. I felt drained. I wasn't tired (I have a strict in-bed-by-eleven rule at conferences). I wasn't sad. I just... didn't want to talk anymore.
I skipped that round of talks and took a bath in my room. A cup of tea and some quiet time later, I felt ready to join the masses again. I chalked it up to being mentally exhausted after my tutorial.
Then it happened again on the second day. Then again on the third.
I've never had this happen to me. I've never gotten tired of being around people. Hell, even when the people are super annoying and I want to strangle them with their innards, my reaction is to find different people, not to find a quiet space.
I wish I could say that I'm posting this with any idea what this means for my future. Instead, I'm posting this as a way to record the first incident of becoming slightly less social. I can deal with needing a half-hour of alone time during a conference. It was nice. I can't picture a time when I simply can't go to conferences because I can't be around people that much.
If I do show a trend in becoming less social, then I'll have to make an effort to find some ways to inject people into my life during the day. Maybe co-working, maybe a coffee shop. Maybe I'll teach more. I just don't want to end up the person who never leaves her house five years from now.
Writing - Thoughts once done August 31, 2012
Since Accessibility Handbook was released, I've had a lot of people asking me about what it was like to write a book. My response is somewhat disjointed. It's awesome! It's the most pain I've willingly inflicted on myself! It made me more confident! It made me think I was a nobody!
So, here's the long of it.
You would think this is the hard part. I was nervous as hell before I made my pitch. All I could think of was every article I ever read about the elevator pitch. You have thirty seconds to share your awesome idea! GO!
Pitching a book isn't like that, though (at least, not in my experience). My first editor, Julie Steele, approached me about writing after I snarked about a poorly written technical book on Twitter. I had no ideas at our first meeting. I just knew what I could write about. Happily, she knew the potential interest in those markets and helped me focus on one of the topics.
After our talk, I wrote up an outline and sent that to her. Not long after, I had contracts in my hand to sign and a book to write.
Writing: the easy stuff
Starting a book was incredibly easy for me. I love writing. I already had an outline, so all I had to do was follow my original plan. I sat down every day, and for an hour or so, I wrote, spilling out everything I had learned about accessibility onto the page.
This part of the process is energizing. The words flow. You can write when tired, when tipsy, when distracted, and still, they come out. Writers block is a myth! You watch your page count go up, and you start wondering if maybe you can submit the book early.
Then, you trip over a section where your knowledge is a bit sketchier...
The first hurdle (I'm learning SO MUCH!)
The first time I hit this, it was a minor thing. I ran into a few sites dedicated to Dyslexia and web design, and realized I'd left them out. No big. I researched a bit, and the recommendations were consistent across the board.
I found it fascinating, and burbled to anyone who would listen about how much you learn while writing a book. It's awesome! I love learning, and I love writing, and now omigod I could do BOTH at the SAME TIME. Life is good.
The second hurdle (The reality check)
After writing for a while, I came across a topic that I was completely unschooled in: WAI-ARIA. I knew about it, of course, but I'd never used it. How hard could it be, though? I'd just read up on it and include it in a section again!
Wrong. Oh, so wrong.
I freaked the hell out.
Impostor syndrome (I'M A HACK!!!)
This hit me hard. Who was I to write a book about 508 and accessibility? There were people who had been doing this since 508c was written!
I re-read my old chapters. They were terrible. Was English my second language or something? Did I have a stroke that wiped out my ability to write coherently? What the hell was wrong with me?!
I couldn't touch the book for a while. I didn't like to think about it. I was going to fail. I just knew it.
What kicked me in my rear was an email from my second editor, asking if we needed to put the book on hold. It took all my strength to write back: No. I am finishing this book if it kills me.
Who was I to write a book on accessibility? I was one of the few people that would put her butt in a chair and get it done, that's who.
The final stretch (All side projects go to hell)
I didn't intentionally drop my side-projects. I just didn't have the energy to even consider them. My Roguelike languished. My blog stopped. A few projects that I had just started outlining never made it to the next stage. I dropped out of social circles.
My weekends were often reduced to me writing on the book all weekend, with breaks for food and forced socialization. I did it, though. I finished the book and handed it over to my editor.
Tech readers (I'm a hack, redux)
My editor handed the book over to my tech readers. I had found them through a call-to-arms on Twitter and G+, so they were all friends, and I already knew they were all highly competent.
That was the longest wait of my life. I knew they were going to return the book with scathing remarks. Gah! She's a hack! I can't believe O'Reilly is considering publishing this pile! Un-followed!
That didn't happen.
They read it, and came back with corrections... and praise. Lots of it. I was stunned. Maybe I'm not a hack after all! I probably read their comments at least once every few days when I started to get nervous and backslide.
With my next book, I swear, I'm considering hiring someone to make all the changes from the tech readers. Oh, I should review each change? Yeah, I thought that the first week. Oh, is that the rule for commas? Hm. I don't think so. I'm going to go look that one up.
By week two, had one of them asked me to replace all occurrences of 'accessibility' with 'elephant', I would have done it. Editing is mind-numbing.
Finally, it was done. I was done! I could stop looking at the manuscript and have a life again!
That was when the production editors get a hold of you. You have one last chance to review your book before it goes to print. They go over it with a fine tooth comb. Figures are redrawn for different formats. This took me about two weeks of back and forth. Not as bad as the editing phase, but don't think that you're free just because they have your manuscript.
The long wait
And then, silence. Your book moves through the wyrding ways of your publishing house. I had a page on O'Reilly, but all it said was that the book was available for pre-order.
I didn't learn my book was for sale through my editor. No, this is where being part of an international social group comes in handy. A friend in Israel alerted me through Twitter, congratulating me on the book being published. I figured he'd found the pre-order page... And imagine my shock when I saw that it was now for sale.
I squealed, then spent the rest of the day in a highly manic state. It was out! It was published! I was an Author now! If you had bad news to deliver (and I did get some that day), that was the day that it didn't phase me for a second.
Next time, I'm going to learn to shut down projects gracefully by scheduling my crunch time. The next book is in the works, and I've already decided to go quiet from December to January. That's where all my wiggle room is built in, and chances are I'll be body-slamming the walls of said room.
Also, I know to look for the crisis of faith. It's apparently rather common with writers. Agatha Christie had them for each book, and she wrote approximately a million books. Each time, she got through it and finished the book. My husband knows to look for it, and I know to drop the 'everything is fine' act and actually speak up about what I'm going through. The book probably would have been out in June, had I not spent so long freaking out.
Outlines are awesome. I'd love to see if I could use one for a fiction book.
And the last lesson learned? I really, really love writing. Being published only makes me love it more.
Accessibility: Look at What's Out! August 29, 2012
Overnight, my book on making accessible websites was released. It's my first book, and I'm completely over the moon. Not only do I get my own animal, but I get to put a book out on something I'm passionate about. I get to help break the paradigm that accessibility is too expensive, just about the blind, or only benefits a small portion of the population.
Even better is the timing: I'm teaching a tutorial at DjangoCon on making accessible websites. I've been super jazzed about being able to do more than drive-by conversations with people about accessibility. It's one of those topics that many people approach with skeptisism, but leave with a budding interest. This time, I'll be able to take that interest and mold it into a deeper understanding in what it means to be accessible.
We also get to improve a really bad restaurant site, which I think will be cathartic for most of us.
There's space at the tutorial, so if you're at DjangoCon or in the DC area, you can still sign up! And heck, you can say you took a class on accessibility from the woman who wrote a book on it.
DjangoCon 2012 - Metro August 15, 2012
The DC area has a commuter rail called the Metro. It's pretty easy to use in my opinion. Still, I've had to give enough impromptu lessons to tourists to know it's not completely intuitive.
Do yourself a favor and get a copy of the Metro's rail map now, whether you store it on your phone or in your backpack. They have one of these maps on every car and in every station, but sometimes people stand in front of them.
Lines are indicated by color (that part should be intuitive). Stops are indicated by circles. If a stop appears on more than one line, then you can transfer there.
Why are some of the stops double circles? Because they're the first or last place you can transfer to a new line. They're not the only places you can transfer. Any circle on any color (even those that run under two other lines of color) are transfer stations. For example, at L'Enfant Plaza you can transfer to orange, blue, green, and yellow lines.
Something to keep in mind: The map is not to scale. Some stops, you can get off and walk to the next stop with no issues. Some will land you miles away from where you wanted to be. Unless you know for certain that another stop is a good alternative, do not get off of the Metro at a stop that seems to be 'close'.
Catching a train
Trains are labeled by two things: color and end destination. When you're in a station, look for the platform that matches the color of the train you're trying to get and the end destination of that line. So, if you're at the Crystal City station and you want to go to Gallery Place / Chinatown, get on the platform for the Yellow Line, on the side that ends in Fort Totten (or Greenbelt, if you happen to see a yellow train going to Greenbelt. Either works).
To find your platform, follow the signs and pillars for your line's color AND final destination. In some stations, one line has trains in both direction serviced by one track. In others, you're on completely different levels.
Once you're at your platform, there should be a sign announcing when the next train is, what color it is, what it's final destination is, and how many cars it has. Trains stop at the end of the platform (consider the opening where the train is coming from the beginning).
On the escalators: Stand on the right, walk on the left. For the love of god, please do this so you don't give some poor Washingtonian a coronary.
The stations in the city are all underground, while the ones outside of the city are a mixed bag (though mostly above ground).
Many of the stations have cell service in the stations. This drops in the tunnels for some carriers. Get your stuff done before the train moves.
There's often more than one exit for a station. Some people look at one of the posted maps to figure out which one would be best for them. Me? I take the closest one, then turn on my GPS to figure out how to get where I'm going.
Tickets and fare
Fare is determined by three things: where you are, your destination, and what time it is. Either use the trip planner tool or look at the fair list in your beginning station (the fare list is almost always right above the rail map). Fares are one-way, and you need to add a dollar each way if you're using a paper ticket.
You can get either a FastPass or a paper ticket. If you're going to do any more Metroing besides going to and from the Regean National Airport, get a FastPass. It costs five dollars (you pay ten, but it comes with five bucks on it). Also, if your FastPass doesn't have enough money to get out of the station, it'll let you go negative. With a paper pass, you simply won't get out until you up the balance.
FastPasses are magnetic cards, so just touch the FastPass card to the FastPass shield, and the gates will open. A screen should show you how much you have on your card.
Transfers are free. Screwing up and going too far is free. Metro doesn't charge you until you leave the station.
We do not run 24 hours
We are not a cool train system that runs at all hours. It was a fight to get them to stay open past eleven, trust me.
Each station closes at a different time, so they each post a sign as you go in, stating when the last train will leave that station. There might be separate times for each line.
UGH. Why did you do this to me, Metro? Rush+ was added recently to make trips a bit shorter for people working in the city who work off of one line, but live / park on another.
Anyway, some trains only run on certain tracks and certain times. These are indicated by the dashed lines (for example, a Yellow Rush+ train runs from King Street to Franconia-Springfield).
Rush+ trains only run Monday through Friday in the morning (6:30am - 9:00am) and in the evening (3:30pm - 6:00pm).
Every station has escalators and elevators. That said, they go out of service. It's rare that I walk into a Metro station and don't see an escalator / elevator outage warning. If you can't use the stairs, keep an eye on the outages, either on WMATA's site or through one of the Metro apps.
If there is an outage, they'll usually pick another stop and offer a shuttle from that one to the stop with the outage.
I think that's it for now! If you have any questions, hit me up in the comments!
DjangoCon 2012 - Eating in DC August 13, 2012
A caveat: When I'm eating in DC, it's usually because there's a Capitals game going on. I have very deep knowledge of the food options near the Verizon center and that's about it. Happily, DC people are heavy users of Yelp and such, so finding the good places isn't too difficult.
I highly recommend making reservations if you can. DC is unpredictable. I've walked into a restaurant on Friday night and found it dead. I've gone back a few weeks later on a Tuesday, and it's jammed. You don't know when conferences will be in town, so just save yourself some heartache and use Open Table.
That said, here's my list of places to eat and drink in DC!
Near the hotel
The hotel is near quite a bit of food. Some of the restaurants are chains (though higher-quality chains) and some are family owned.
- My favorites:
- Kabob Place - As many commenters from my last post said, OH MY GOD. This place is awesome. Fantastic kabobs, and now they have a sit-down restaurant along side the original. You get a ton of food, but prepare to wait.
- Ted's Montana Grill- A chain, but I've yet to be disappointed there. Get the buffalo, no matter what you do.
- Cafe Pizzaiolo- Awesome pizza, and a great selection of beer for such a tiny place. Also, some good gelato.
- Legal Seafood- It's fish, it's reliably good.
- Cold Stone- Ice cream is a valid dinner choice.
- Jaleo- Tapas. A bit pricey, but they have some options that aren't as bad.
- Harar Mesob- Awesome Ethopian. Do this one family style.
- Cafe Italia- Excellent Italian, with gluten-free options.
- Neramitra - It's okay Thai. I love the pad see ew. They have outdoor seating. The portions are plentiful, so this may be a way to stretch your food budget without hitting up McDonalds.
Let's go to the city!
The city is a short metro ride away. I highly recommend making the trek at least once.
Um, this is awkward. See, we have a Chinatown... and we put a stadium in the middle of it. As a result, our Chinatown isn't what most people expect. We have a Ruby Tuesdays with Chinese calligraphy all over it. It's a bit weird.
It's still a great place to go grab something to eat. There's a ton of restaurants down there, and they range from the extremely pricey to the fairly cheap. If I'm with a group of mixed gastrointestinal needs, I'll head to Chinatown.
- My favorites:
- Clydes- This is a good one when your group's budget is mixed. They have oysters on the half-shell alongside some reasonable salads and sandwiches. I will eat the hell out of their buffalo chicken sandwich when under the weather.
- The Chophouse- Steak! Also, an old-school bar that I love to go to.
- Rosa Mexicano- Great Mexican (you probably guessed the Mexican part).
- Oyamel- A tapas place that isn't too bad, wallet-wise.
- Fado- A very pub-like pub. If there's proper football on, you can see it there, along with all the other hooligans.
- Gordon Biersch - Beer and American style food. Try the fried artichoke hearts.
If you're visiting the Mall, do yourself a favor and DO NOT eat on the Mall. It's expensive. Walk a few blocks away.
- Fogo de Chao- A Brazillian bar-b-que. They walk around with swords full of meat and cut it off onto your plate. You can just get the salad bar, which was heart enough to feed the vegetarians in our group, the last time I took some there.
- Capital City Brewing Company- They have beer!
- Elephant and Castle- A pub with a nice range of prices
- Old Ebbit Grill- They have oysters and a pretty nice price spread.
- Teaism - Bento boxes! I adore this place. There's seating downstairs, so don't worry if it looks crowded up top.
Also recommended, for those wanting to put on fancy clothes, is The Capital Grille.
Old Town Alexandria
If, for some reason, you don't want to go to the city, take the metro down to King Street. There, you'll be in Old Town Alexandria. Lots of shopping, bars, and privately owned restaurants. This is a quieter option for those that don't want to be in the city (DC really isn't that busy, though, unless you're driving).
We have food trucks! Though the conference provides lunch, it can be fun to go track one of these down instead. Also, many are open for breakfast as well.
They move around from day to day, so check out Food Truck Fiestafor what's going on by us that day.
Paleo: Many restaurants will have some sort of meat 'n' veggies option. Retro Rays seems to be popular with the paleo crowd, though, and the buffalo at Ted's is grass-fed. And really, you can't go wrong with Fago de Chao.
Vegan: I rarely dine with vegans in DC. Most of my friends in the area are vegetarian, and that's completely different when looking for a restaurant. Happily, Urban Spoonhas a list for you! I can highly recommend 2Amys, Clydes, and Busboys and Poets.
Gluten-free: Many places around here offer gluten-free options. Urban Spoononce again comes through with a list of GF places.
Triple D likes...
I need to do this on the cheap
Every year, The Washingtonian Magazine puts together a list of Cheap Eatsfor the DC area. It's seriously worth checking out. I recommend hitting Five Guys if you can. This goes double for you West Coasters, so you can compare it to In-N-Out.
How to Metro!
DjangoCon 2012 - Life in DC August 08, 2012
As long as you're in town, you might as well see some of the sights, right?
When people come into town, I always point them at the Smithsonian. It's an awesome set of museums that are completely free. You can spend a week going through them and still not see all of the exhibits. They're also only closed two days a year, and neither of those days are during the conference.
- Some important notes:
- You have to go through security to get in. They're going to poke around in your bag with a stick. Some places have metal detectors.
- The art museums are super-uppity about what you can bring in. If you think about it, this makes sense. Their exhibits aren't behind glass. They have a bag check so you can stash your stuff if needed.
- The museums open at 10am. One of the buildings, the castle, opens early, but there's not much to do there besides drink a coffee and sit in the garden.
- Pictures are allowed! Bring your cameras and camcorders!
- Almost all of the museums ring the Mall. The Mall is a big strip of grass in front of the Washington Monument. It does not have any stores.
- The zoo isn't even remotely close Mall. There's a metro stop called "Woodley Park-Zoo", but this is the stop is at the bottom of the world's biggest hill. Get off at Cleveland Park instead.
I adore the International Spy Museum and the Museum of Crime and Punishment. They film America's Most Wanted in the latter! You can get deals for both museums off of Groupon on a regular basis, so keep an eye out for those.
Nearby, there's also a Madame Tussauds if you want to go look at creepy wax people. Also, the National Academy of Sciences has a museum that's super cheap and has some awesomely detailed exhibits. It's not a huge museum, but it's packed with information. They're closed on Tuesdays, so plan accordingly.
And there's so many more! We have no shortage of museums.
If you want to see monuments, buy a step-on-step-off tour. Seriously. The monuments are NOT close to each other, and some of them are surrounded by highway. The buses come by every thirty minutes, which is about how long a monument is likely to entertain most people.
I wanna run!
I confess: I'm not a runner. I've toyed with Couch-to-5k a few times, but the summer always beats me. I did, however, find this trail right by the hotel. amk also recommended Bike Washington for some multi-purpose trails.
I need to go shopping
You forgot to pack socks. We're hit by a freak snow storm. They lost your luggage. Your kids will not let you back in the house without souvenirs. The vendors ran out of your t-shirt size. It's cool. We've got you covered. We're right by the Crystal City Shops. They're easy to miss because the shops are hidden inside the buildings at Crystal City, behind the restaurants.
If your needs aren't covered by those stores, you can ride one metro stop over to Pentagon City Mall and pick up almost everything you need, from clothes to Apple connectors. They even have a Costco, if you need a palate of danishes or something.
Yes, you want to eat and possibly hit up a bar while you're here. I'm still compiling that list! Locals, shout out your favorites so I can add them.
DjangoCon - DC Tips August 07, 2012
Mad props to Jackie Kazil, who helped me write this post!
So, coming to DjangoCon in September? Let's have a chat about DC.
DjangoCon DC is actually in Northern Virginia, not in the heart of the Capitol. Specifically, it's being held in Crystal City at the Hyatt Regency, which is close to the Crystal City Metro Station (the yellow and blue metro lines) and one stop away from Reagan National Airport (DCA).
I worked in the area for many years, and while it doesn't have as much of the DC grit and history, it makes up for in being a great nexus between convenience and cost. As someone who's been to several conferences in DC, I can tell you this is a good thing. It is a safe, clean, affordable, and transportation-accessible part of the DC metro area that is littered with Django developers.
If, for some reason, you aren't going to be staying at the conference's hotel, you're in luck. DC has a LOT of hotels. In general, the closer they are to a metro stop, the more expensive they are, but it's still possible to find no-frills hotels very close to a metro stop. If you want to remain close to the main action, I would get a hotel at L'Enfant (which is close to the Mall), Crystal City, or National Airport. Franconia/Springfield may look convenient, but it's actually not close to anything.
Getting to DC
View DC airports in a larger map
There are three airports in the D.C. region. Travel sites like Hipmunk and Kayak try to make all our local airports equivalent, as if it's just a short jaunt from each to DC. This is a dirty, nasty lie.
The airport visible from the hotel is Reagan National. It is only one metro stop from the hotel (or just under a mile walk if you are crazy). The other airports, Dulles and BWI, are inconvenient but usually cheaper if you are on a budget and willing to spend an extra hour to two hours using a combination of shuttle services, Amtrak, buses, metro. If you choose to stomach one of the other options, then add about $15 to your trip. If you take a taxi, you could end up spending more than the cost of your savings.
If you're coming in on an international flight, it may be worth looking for a flight that lands at some other international airport like Atlanta or New York, then catch a flight into Reagan. Trust me, you will not regret this.
The train station is located at Union Station. It can be nice way to travel if you are on the Eastern Seaboard. The commute from Union Station to the conference isn't bad, since Union Station is also a metro stop.
Chinatown buses and other bus services
For those on a budget or looking for adventure and located on the Eastern Seaboard you might check look into the Chinatown buses. Various companies in Chinatown shuttle to Baltimore, Philideplia, New York, and Boston. D.C. to New York is between three and five hours (depending on your driver aherance to the speed limit) and costs around $20 each way. They will drop you off in Chinatown near the metro, which is the same metro line that you would need to get to the conference. Sometimes you can find a service that offers wifi and plugs and sometimes there are live animals and sketchy late night stops. Adventure!
Other buses services will drop you off in other parts, but they are usually close to a metro stop. Bolt Bus is probably one of the nicest.
Don't. It's not worth it unless you are car pooling. You won't need your car while visiting. If you do though, you can park you car at the Hotel (expect to pay a pretty hefty amount per night, though). If you want to bring your car, bring a GPS and some antacids. I've been told we're pretty bad drivers around here.
DC's metro is stupidly simple and is probably going to all the places you want to go. DC metro area cabs are priced pretty well as a back up. I wouldn't bother to rent a car.
However, if you want to rent a bike, I have good news! There's a Revolution Cycles in Crystal City that rents bikes by the week. I spoke with the owners, and they have about 100 bikes available. Given how many people are going to be in town, they recommended reserving one ahead of time.
I'm no bike enthusiast (I still think my green Huffy was pretty rad), but I have been informed by bike geeks that these are good bikes.
There is also BikeShare, which is like Zipcars for bikes, through DC and in the conference hotel neighbor. Bring your own helmet, though. Don't be one of those guys. But there are only 10 spots at the hotel, so don't count on easily finding a bike at the conference. This is a better option used to tool around D.C. for a couple hours.
At the moment, I don't have much information regarding bike parking at the hotel. Hotels in the region are starting to have bike parking sections available, but if you're renting a bike for the week, keep in mind that you might be keeping it in your room (I hope I'm wrong).
I'm going to post something about our tourist scene, if anyone is interested in seeing the sites while you're here.
Accessibility in Video Games - Hearing July 24, 2012
This group is more than just the Deaf. It includes people who use hearing aids as well, since most hearing aids do not work well with headphones and commercial electronics. Sometimes, there's feedback. Sometimes, they pick up too much. Some people that wear hearing aids are still deaf to certain pitches, no matter how much they crank them up.
As a side benefit, it includes anyone who forgets their headphones at home at least once a week, like yours truly.
Your cut scenes and dialog should always, always have subtitles. Many developers like to simply put the text at the bottom of the screen, with no background. This can be an issue if your text is light, but you have a scene where it happens to be snowing. You can either test every single scene to make sure your contrast remains high, or you can use banding.
If you use banding, you put a band of color at the bottom of the screen that's used exclusively for captioning. Ideally, it would be placed below your screen, not covering part of the screen, so that the user isn't missing out on any of the action.
A few notes about styling: If you can, let people customize this. Me, I'm a white-background-dark-text person, but I know others who hate that combination. Also, ALL CAPS ARE BAD. DO NOT USE THEM.
Another side-benefit of using subtitles: If your voice acting is cringe-worthy, I can mute it. I've had to do this with so many triple-A titles, it's not funny.
Good captioning is not transcribing. Usually, in games, since there's a script, this isn't an issue. When people speak off the cuff, they pepper their language with mis-fires, um's, er's, and restarts. An actor probably isn't going to do this unless someone's trying to be super edgy.
However, there is one place where I've seen captioning go off the rails: wordiness. People can only read so fast, so try to keep the words on screen down around ten to twelve. After all, they need time to read and watch the action. This might mean cutting words out of a particularly verbose scene.
Also, make it clear who's speaking. Adding their name to the text can get a bit bulky, so a common solution is to use a slightly different font color for the different speakers. Just remember to keep an eye on color contrast. Does that dark green look different enough from that dark red? Just because someone has issues with hearing doesn't mean that can't be color blind, too!
Also, dialog isn't the only important thing going on in your game. Off-screen cues are incredibly important. True story: the first time I played Plants vs. Zombies, I played it on my Touch with the sound off. I thought it was a pretty easy game until the stage where they introduced balloon zombies. I felt like it jumped several levels in difficulty. What the hell?! It wasn't until I put my headphones on that I realized how important the off-screen sounds were. Hearing the balloon fill up with air was a cue for me to start laying down cacti. Without it, I was suddenly stunned when I was being bombed with zombies behind my lines of defense.
If you have an off-screen cue, make sure you caption it, or at least add a visual bell that can be turned off and on. With PvZ, I would have added an icon that would flash with the a zombie icon whenever a zombie made a noise off-screen. If the balloon icon flashed, then I would know to start adjusting my strategy.
Live transcription is a long way off, so if your game features voice chat, a deaf user is probably going to miss out on that. We can live with that for now (though do keep an eye on that technology).
If you offer voice chat, though, make sure to offer text chat as well. Yes, they'll still be missing out on some of the game content, but at least there'll be a way for them to talk to others, and have them talk to others.
Remember how I said that hearing aids pick up everything? That's one of the biggest complaints I've heard from those that depend on them, and it's one of the main reason why they get turned off. My grandmother only wore hers if she absolutely had to, and my father-in-law switches his off whenever he's out of the house. All sounds are blasted at equal volume, whether it's the person sitting across from you, or someone dropping a glass from the other side of the restaurant.
Someone wearing a hearing aid may want to turn off your ambient sounds. Most games include a slider for sound effects, but that includes important sounds, like the sound of a creeper walking up behind you. Consider adding a slider for environmental sounds, like water, wind, or merchants chattering, and then another slider for important ambient clues, like monster growls, clues for quests, or signs that you're running out of life.
The physically disabled!
Accessibility: Video Games July 16, 2012
Anyone who follows the rest of my passions knows that I spend quite a bit of time advocating for accessibility on websites. I've given talks, done posters, and I'm even working on a book about it for O'Reilly. Recently, however, I've been thinking more and more about accessibility in video games.
Within the past year, two games made a special effort make their games more accessible. Dungeons of Dredmor added a mode especially for colorblind people. Legend of Grimrock added an on-screen movement pad for a disabled gamer who used a mouth stick to use his computer. I admit it: I still get a bit choked up when I read those stories. I just wish there were more of them.
Without a doubt, video games have made some strides in accessibility in the past few years. Audio is now almost always captioned, and inversely, dialog is almost nearly spoken. Controls are customizable. Controllers specifically for the disabled are being marketed more. But as long as we're making games, it's something that developers and designers will have to keep thinking about. It's not a problem that can be 'solved'. That would be like saying we solved the 'usability' problem, or the 'fun' problem. It's something that's going to keep growing and changing as technology and the way we interact with it keeps changing.
This is the first question I get from people. Why add to your development time and overhead, when you could be putting that money towards another level, or slightly better art? Many people see the time and effort put towards accessibility as wasted.
First, the number of people that need accessibility is not as small as most people think. Seven percent of all males are colorblind, to some extent. Twenty-one million people in the US suffer from arthritic issues that can affect how well they can hold a controller, or how quickly they can use a keyboard. This year, a million people will break their arm in the US, while 300,000 more will be treated for repetitive stress injuries. Approximately 10% of the world's population is left-handed.
Second, a side benefit of designing for accessibility is that the usability for everyone often goes up. The things that made a game impossible for one person are often still annoying for someone with no issues. No one likes a bad font choice, or all caps, and most people want a choice when it comes to subtitles, or listening to the voice acting.
There's one rule for accessibility:
For every player, all the data, and all the functionality
It's up to you how many groups you want to cover, but for everyone you've decided to include, they should be able to not only do everything that everyone else can do in your game, but they should be able to access all the information you're exposing. If a player has to mouse over something figure out what its stats are, but they can't use their mouse, your game isn't really accessible. If you force users to use their arrow keys to move, but a player needs to use WASD, once again, your game isn't accessible. All the stuffs for everyone.
It's not just blind people
I've already alluded to this, but accessibility isn't just about blind people. There's generally four groups:
- Visually disabled
- Hearing disabled
- Physically disabled
- Cognitively disabled
Unlike a website, you aren't going to be able to make your game accessible for all the people in all of those groups. By knowing what annoys them, however, you can start considering what you can add to your game to make it more accessible.
Being visually disabled is more than being blind. If someone is color blind, or needs glasses, they fit into this category as well. Yes, most games cannot be tweaked for someone who's completely blind (though they may surprise you), but that's no reason not to consider the other sub-categories.
This is the group that should never be ignored. One, it's a huge group, no matter what your age range (7% of males). Two, it's one of the easiest groups to test and make adjustments for.
Your goal, when adjusting for color blindness, should be making sure that your interface doesn't get muddled or ambiguous if someone can't differentiate certain colors. If you're developing on a Mac, Color Oracle makes this dead simple. Start up Color Oracle, start up your game, then select the type of color blindness you want to emulate.
Things you should look for:
- If you change color schemes on your models, can you still tell the difference between them? Do your mana potions look like your health potions?
- Do things that are important still stand out? That red book on the bookshelf that's vital to moving the plot along: does it still look different?
- Is your text still readable? Would you want to look at that color combination for several hours, or would you rage quit after fifteen minutes?
- Is something that should be subtle now really obvious? Some colors are actually more intense for certain types of color blindness.
If you find you have an issue, you don't need to choose a drastically different color: usually, a minor tweak is enough. Normally, I nudge the colors around the color wheel until I find two that seem different. Adjusting the darkness or lightness of the colors usually has the most impact, and has the least impact on the feel of the game.
And if it's really impossible? Steal Dredmor's solution, and have a theme just for the color blind.
As someone with a rather strong astigmatism can tell you, suffering through bad interface choices can be painful. Sure, I can see pretty well (my vision is close to perfect, otherwise), but after a while, I'll start to get headaches and teary eyes, even with my glasses on.
This happened to me a few years back with a game called Eternal Sonata. I downloaded the demo... and discovered that the font / color / text size combo made it impossible to play. Sure, there was voice acting for most of the dialog... but not for the menus! The crazy fancy font plus the brilliant blue background and teeny size were just too much. I didn't buy the game.
Unlike the color-blind group, this group doesn't have any nifty tools to use for testing. Instead, it's better to follow some guidelines:
- Dark text on a light background is easier to read. Period. If you must, for aesthetic reasons, have a dark background with light text, at least offer an option for the user to change it.
- Some people prefer dark backgrounds with light text (migraine sufferers often ask for this). If you have a light background and dark text, give them the option to swap.
- Use a sans-serif font for screens. No mono-space. No serifs. No cursive. No... whatever the hell Eternal Sonata was using. Don't be afraid to be bland, and choose a common font that is well-known for being highly legible. No one ever played a game, logged forty hours, beat the big bad, and said "Dude! Did you SEE that awesome font they picked?!"
- Make the font size big. On a computer screen, this would be around 12px. On a TV, it might be bigger. Some people play with their noses pressed against the screen, while others are on a couch across the room. If you want to cover all your bases, you make this customizable as well.
And there's more!
In the next article, I'll discuss the hearing disabled, which ranges from the completely deaf to those who have to wear hearing aids, and people who forgot their headphones.
The Homebody Diaries: Moving More July 09, 2012
When you work in an office, you move. You move quite a bit. You get coffee. You do Starbucks runs. You pack up and walk to meeting rooms. You walk to go grab lunch. You grab something from the printer. You at least walk from your car to the building, and you may walk from a metro or train station. You get up and you pester people while your server is building.
When you work from home, you don't move. My coffee station is three steps from my desk. Same with my printer. I have the space on my desk to move them even closer if I wanted. My lunch? Twenty-two steps from my desk. I don't do Starbucks runs, and even if I did, I'd have to drive. My meetings are all held at my desk. There is no one else to pester. There is no commute.
I'm not moving at all. And I feel it.
Attempt one: Walking
My first thought was to start walking. I live in a shady neighborhood with respectable paths and some nice hills. I see people walking all the time! I could do this over my lunch break: put some podcasts on the headphones, head out, walk for fifteen minutes, turn around, and walk back.
I even had the equipment already. I walked for exercise quite a bit at my old job, so I had some nice walking shoes and good socks. I set out.
For a few weeks, it was great. The weather was nice and I got caught up on my podcasts. Then, disaster struck.
When I speak of summer in DC, I affectionately compare it to spelunking in a hobo's a-hole (you don't want to know what I call it when I'm angry). We're built on a swamp. The heat here is oppressive. I've seen it melt Texans. I'm already a delicate Southern flower.
How did I do it at the old job? Simple: they had an underground system of hallways that made it possible to walk several miles and never go outside. I'd retreat to those after the temps went over 90 degrees. I had no such luxury in the burbs. I'd have to figure something else out.
Attempt two: Standing
Standing desks are all the rage at the moment, and they appealed to me. I liked the idea of having fitness seamlessly worked into my day. Also, the testimonies were pretty impressive: less back pain, lost weight, better posture, better concentration.
Problem: I really like my desk, and it's not a standing desk. I like my storage cubbies, I like how it fits into the space we have, and its color really helps disguise what a klutz I am with my coffee. Also, I don't want to spend $900 on something that I may not end up liking.
I looked into systems for 'converting' a desk, but they all seemed to be expensive, not work with my current set-up, or be big steaming piles of one-star reviews. I ended up stealing one of my daughter's play stools and putting my laptop on it.
Upside: It was the perfect height! And free!
Downside: I seriously feared for my life when she realized I was repurposing her stuff.
Standing went well for the first few days. I wore nice shoes, and would stand for an hour at a time. If I was in the middle of a crunch, though, I realized I couldn't stand. I had to have my butt in a chair. Maybe with time I would be able to stand and deal with a fix that had to be out in the next thirty minutes, but that day wasn't today.
I needed to supplement.
Attempt three: The Gym
When I worked in the city, I went to the gym. I'm one of those rare birds that loves the gym. I love running on the treadmill and watching crap daytime TV, especially if the captions are off, so I can make up my own plots. I love the machines. I love taking notes about how much I lifted last week versus this week.
At my old job, we worked right above a gym, go I could easily go over on my lunch break, and still get in a shower afterwards. There are a number of gyms in my area. Why not go to one of them?
I took a hard look at myself. How likely was I to actually leave the house and go to the gym? At the office, I looked forward to getting away from my desk. At home... well, leaving required pants. And leaving the very functional AC. And my comfy chair. I could barely drag myself out of the house to drop the kids off at the sitter, much less anything else more ambitious.
I had to be honest: A gym membership was going to be a waste of money.
Attempt four: Wii Fit
I gave in. However I moved more, it was going to be in my house. Not wanting to spend money, I drug out my Wii Fit. I had gotten it when it first came out, and actually liked it quite a bit at the time. I tried to remember why I had stopped using it. I popped in the disc and started it up.
And I remembered why I stopped using it.
In theory, I like the idea of a Wii Fit. I liked the fitness game, especially after they released an improved version. But a few things got to me:
- It's slow. It's so slow. You start it up, the little balance board dude has to talk to you. It has to calibrate between each exercise. The exercise lady has to talk you through each exercise. When you're done with each exercise, it has to congratulate you and tell you how much awesomer your life will be now that you did the tree pose for two minutes. There are no transitions, just lots of starting and stopping.
- What the hell do you do with the controller? You always need to have it close at hand to confirm things, but you also need room to do the exercise. If you keep it on your wrist, you take out your kneecaps.
- It doesn't autocorrect. Start a bit off balance (because you were putting your controller on the floor), and you're boned.
- It yells at you for not being perfectly balanced. Yes, I know I'm a bit shaky. I'm working on it, okay?!
- It yells at you for not showing up every day. Why do Nintendo games do this? What the hell?
- It's big on the fat shaming. A bit overweight? It makes your Mii fat. Doesn't that make you feel better?
After getting mad at the game and realizing that I was STILL only getting fifteen minutes of movement for every thirty put in, the Wii Fit got put away again.
Attempt five: The Kinect
My son got an XBox with a Kinect for his birthday. The Kinect wasn't my idea. My mother wanted wanted to get him something, and I wanted the XBox with the bigger hard drive, which was paired with the Kinect. Seemed like a fit.
Jake was more excited about playing his NHL games again than the Kinect. In fact, I don't think he's used the Kinect once.
I'd seen some workout games for the Kinect, and decided to look some of them up. To my surprise, some of them were not only highly rated, but had inspired people to write crazy detailed reviews. I found one that offered a demo (Your Shape: Fitness Evolved) and downloaded it.
Fifteen minutes later, I couldn't get my credit card out fast enough to buy it.
Everything that annoyed me about the Wii Fit is fixed. The set-up time is nil, and you never need to touch a controller to get everything set up. It groups expercises so that you move smoothly from one to the next. It doesn't yell at you. It doesn't call you fat. It doesn't guilt you into playing the game.
These days, I generally do a half-hour of yoga at lunch, and I've found it really helps me break out of the afternoon blahs. I thought I would get bored with it, four weeks in, but I'm still entertained by doing the exercises every day. I'll probably get the 2012 version of the game as well.
Oh, Kinect: I'm sorry for every snarky thing I ever said about you.
Just a quick note! May 21, 2012
Not dead! Just super busy! Once I get a few deadlines tidied up, I'll be back!
Getting more women to your meet-up May 07, 2012
I get this question a lot. Like, once a week.
I've puzzled over it, because whenever I start to answer it, I sound a bit rambly. There's a reason for that, though: women take up half of this planet. A population that big isn't easy to target (in spite what advertisers would have you believe).
See, there's so many reasons why women might not be coming to your meet-up or hacker space. Maybe it's a bit guy heavy (I know, catch-22, right?). Maybe they're already booked. Maybe they have obligations at home. Maybe they just don't know about your event. Maybe they think they won't get anything from it. Whatever the reason, one thing is clear:
You can't use just one strategy if you want more women to show up at your tech event.
So, what are some strategies you can use?
No, don't just put 'Ladies welcome' on your flyer. Invite specific women to your event. A word of warning, though: there's a right way to do this, and a wrong way to do this. The wrong way:
Hey! We're trying to encourage more women to show up at our tech event, and I was wondering if you'd like to come?
Sounds pretty tame, right? It's polite, it's sleaze-free... and it makes it sound like the only reason you're inviting this person is because she's a woman. This does not make me want to come to your event, which is what you're aiming for, right? What if you drop the 'encourage women attendance' bit?
Hey! I run a meet-up on Thursdays! You should come!
That's fine, but there's lots of meet-ups this person could be going to. Also, if this worked well, you wouldn't be in the situation you're in right now, would you? What do you do? Well, here's an example that worked on me:
Hey! I read your roguelike posts, and loved them! Do you think you could do a talk about them at my meet-up once you're done?
I couldn't clear my calendar fast enough. I was flattered (and I felt the invite was genuine), and I felt like I had something I could add to this group. Even if he'd added that they were trying to attract more women (which came up later), I was still happy to attend.
But what if you don't know any women in your area who are active bloggers, or who actively commit to open source projects that you can use as conversation starters?
Do an alternate night now and then
Childcare isn't an issue for all women, but man, once it's on the table, it's a big issue. It's different for every parent, but often, it's easier to get alternative child care on one night rather than an other. For me, weekday events are almost impossible for me to get to, but weekend ones are a snap. Other women I know can get away during the week more easily than they can on the weekend.
So... should you get day care of your own at your meet-up? No, probably not. Legal and money issues aside, there's a simpler solution: move the date once a month.
I bet your meet-up is on the same day of the week every week, and at the same time. If the women in your area happen to be in the group that can't attend on that night, moving it once a month would enable them to attend. As a side benefit, anyone who can't attend due to work hours or other obligations can suddenly show up.
Advertise somewhere new
As everyone should be aware by now, the tech industry is having a hard time recruiting and holding on to women. This means that the women you would traditionally consider inviting to your meet-up are already pretty rare. What do you do?
At a recent PyLadies gathering, we had women from the following industries:
- Non-profit advocacy
Counting heads, I realized that almost half of the women present did not call themselves a 'developer,' and yet, they were interested in learning more about Python. So... why are you still advertising only on Planet Python?
Reach out to non-traditional venues that can take advantage of whatever your meet-up is about. Teachers benefit from pretty much anything that's free and can be used in the classroom, or to make their lives easier outside of it. Journalists are being asked to know more about the platforms their careers depend upon. If someone is working in an office that's cash-strapped, it benefits everyone if even the non-developers know about how to code, even if it's only to work with templates, and be able to read the code the devs checked in.
So, come up with a pitch about how your meet-up could benefit someone that isn't a developer, and see if you can push it somewhere new. Does someone in the group have kids? See if they can talk to the teachers at the kid's school.
Have a clear harassment policy, and enforce it
Yeah, this one has been an issue in the past for me.
Back in college, I went to the *nix meet-up at our school. There was a guy there that was, well, less than pleasant to anyone female that walked in the door. He would talk over us, deride anything we had to say, and if we had a question, he'd made snide comments. He was sometimes a jerk to the guys in the group, but he was batting 1.000 for the women.
The three women in the meet-up brought it up to the head of the group.
"Oh, just ignore him."
There was no harassment policy in place, and even if there had been, I wonder if anyone would have been willing to do anything.
The thing is, we had a choice as to what we could do with our Thursday nights. We didn't have to go to this group. There were other tech meet-ups in the area. We left.
Have a policy. Enforce it. It'll ensure the women that do show up actually stay.
This is far from an exhaustive list. They're simply the handful ideas I had when examining why I didn't go to more meet-ups (or issues that other women had shared with me). If you have more ideas, please, leave them in the comments.