draw freely
Back to Inkscape.org
 
June 18, 2013


Gail Carmichael

I am sometimes asked why I think stories in games need to improve.  Considering I'm studying nonlinear stories in games for my PhD project, I was for a long time unsatisfied with my answer.  But I finally figured out what my beef was about today's games and their stories.


Elizabeth II by CoeyKuhn

My problem is that stories and gameplay far too often feel like separate activities.  The best stories tend to be told outside of the main mechanics (not necessarily via cut-scenes, but not during the main action either).   Many CRPG's with random encounters are guilty of this.  More recently, BioShock Infinite's story felt really separate from the shooting galleries that punctuated it.  The game felt very close to (if not exactly like) what Chris Crawford called a constipated story.  The only possible exception was the Hall of Heroes, where the environments passively provided backstory brilliantly alongside Slate's narration.  Even there, though, the slaughtering of hundreds of Slate's men felt forced, and the constant battling made it difficult to pay attention to anything else.

Beyond separating the story from the main mechanics, the meaning of what you do through gameplay may not even be tightly coupled to the story, or worse, may go against it.  We've been playing Red Dead Redemption, and I feel this dissonance fairly often.  In some quests (many of them optional, like the bounty hunting), you earn more honour or money for bringing back the bad guys alive.  Killing them sometimes even lowers your honour.  Yet in many of the main episodes, you kill multitudes of men and your honour goes up.  Even worse, in many conversation with Bonnie, your actual actions are not taken into account and she only ever paints you as an honourable man (or so it has gone for us so far - we are not yet finished the game).  Although some feel that the violence and shooter nature of BioShock Infinite has meaning, for most it creates a disconnect from the story the game tries to tell.

I've written a couple of times before about procedural rhetoric.  If you haven't checked out Ian Bogost's Persuasive Games, where the idea originated, be sure to do so.  As a reminder, procedural rhetoric in games is essentially using their rules and mechanics to make an argument (as opposed to, say, the words in the game or the visual elements).  I like to simply describe it as "saying something" with the mechanics, as I have discussed in the context of Sweatshop and Unmanned

Games whose designers don't consider procedural rhetoric end up running into problems like those mentioned above.  If you don't care what your mechanics are saying, your story could feel separate from them.  If your mechanics are saying one thing while the story says another, a troubling contradiction occurs.  But if designers carefully plan their game's mechanics so that what they say aligns with what the story wants to say, then, in my opinion, great masterpieces are possible.  And that is why designers should learn about procedural rhetoric.

Edit: I was reminded of the concept of ludonarrative dissonance, which describes my problem with stories and games quite well.  There's even an article about BioShock Infinite and this idea.  So basically what I am saying is that understanding procedural rhetoric and being mindful of what your mechanics are saying is one possible fix to ludonarrative dissonance.

June 18, 2013 03:08 PM

June 14, 2013


Gail Carmichael

It's amazing how many people fail to realize that computing can be a creative field.  In fact, in many cases, it has to be! For example, it makes no sense for me to try to come up with completely abstract game stories to test my ideas for systems to put those stories together.  I don't have to win any writing awards, but I have to be creative enough to come up with some reasonable examples.

ViruStream 0313
ViruStream 0313 / Widianto Nugroho

That doesn't mean it's always easy.  I like to think of myself of a relatively creative person: I did drama and band in high school, love scrapbooking, have some ability in graphic design, and even won a couple of story contests way back when.  Even still, I often find myself staring at my story spreadsheets and not knowing what to write next.

And it also doesn't mean that these more obvious ways of being creative are the only ones that are important in this field.  I think that all computing is creative! No matter how low level the code you have to write is, you will always have problems to solve.  Code structure to design.  Functionality to figure out.  All of these things benefit from creativity.

I just wish we did a better job of emphasizing the idea that the best computer scientists are both technical and creative.  I wonder how many new students we could attract if we did a good job of this.

June 14, 2013 01:39 PM

June 12, 2013


Gail Carmichael

Mark Guzdial is one of the big names in computer science education.  A couple of months ago, he spoke at the GVU Brown Bag Seminar with a talk entitled What We Know About Teaching Computer Science ("What does Guzdial do, Anyway?").  If you're interested in CS education, take 40 minutes and watch the recording (linked above, embedded below).


Mark's talk focuses on four lessons in teaching computer science:
  1. "Increasing value through relevance and context"
  2. "Anchored collaboration helps (sometimes)"
  3. "We can teach computing by meeting students where they are"
  4. "We can restructure and improve learning materials based on research principles"
Here are a few interesting tidbits from this tour of CS education:
  • for every software developer, there are 9 end user programmers (database queries, spreadsheet macros, etc) who don't know that computer science is a thing that can help them with what they do
  • AP computer science in Georgia is predominately a white and Asian male test
  • there are not a lot of people looking at why programming is so hard at a deep, cognitive level
  • USCD implemented media computation with peer instruction and pair programming; since then, they have increased retention of CS majors into second year by 30%
  • when teaching HS teachers about programming with videos, simply adding subgoal labels to the video significantly increases the teachers' ability to learn 

June 12, 2013 10:55 AM

June 07, 2013


Gail Carmichael

Way back when, I missed out on the Roominate Kickstarter campaign, and I regretted it afterwards. So when GoldieBlox was proposed, I jumped on it.  Plus, $30 to have the toy shipped right to me sounded like a pretty good deal!

It took a little longer than they expected to ship to Canada, but it was worth the wait.  I got my toy a few weeks ago and finally had the chance to try it out! My (lowish quality iPhone) photos of the unboxing are below.

The toy is really neat, and my only criticism is that some of the manufacturing isn't perfect, resulting in it occasionally being difficult to get the figures to stay on top of the wheels.  I am sure this will improve over time.

I can't wait for Molly (currently only 1.5) to be old enough to try it out!








June 07, 2013 09:39 AM

May 31, 2013


Gail Carmichael

On Wednesday I talked about assigning numbers to my princess-and-dragon story.  I have all my data in an easily parsable format in a Google Spreadsheet.  I decided to use Python to do my story-related computations because of the fast start-up time and the existence of the Google Data Python Library.


Things started well enough thanks to a decent quick start guide, even though I've only used Python a few times before.  I was able to connect to my spreadsheet without issue and start working with the spreadsheet's feed.

But from there things got... complicated.  The quick start guide didn't cover what I needed to do, and I kept getting referred to the spreadsheets API that made mention of other languages, but not Python.  This isn't the first time I've found documentation by Google to be lacking in some way.  I could probably figure things out eventually (perhaps by looking at the source code), but I didn't really want to spend that much time on getting the data - I would rather spend time processing it!

Luckily, @ArcTanSusan and @sharonw gave me a great suggestion on Twitter: gspread.  It was made for Python specifically, has good documentation, and offers much simpler code for doing what I needed to do.  Sign me up!

Making the switch saved me a bunch of time in the end.  The moral of the story: use gspread to work with Google Spreadsheets in Python, and search for alternatives before just using Google's stuff.

May 31, 2013 02:18 PM

May 30, 2013


Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }

May 30, 2013 01:00 PM

May 29, 2013


Gail Carmichael

I received an email from Lee Omar of UK-based Feynlabs this morning.  It opened with the following:

Feynlabs believes that current IT teaching in schools which is aimed at children is not fit for purpose.  Current courses are unable to teach the skills our digital native generation need or provide the vision and passion for them to develop a career in high level digital technology.
After looking through their website and their Kickstarter campaign, it's clear that Feynlabs, named in honour of Richard Feynman, wants to solve this problem by starting with computer science concepts rather than specific programming skills.

 

Personally, I think this can be a very good approach to teaching computing.  It's how I try to approach many of my own courses and workshops.  It's even the main inspiration of Gram's House, since there are many games that aim to teach programming and logic, but few that focus on CS principals.

Feynlab's vision describes a three-part approach to their curriculum, which they are beginning to test in schools.  They "start with how the computer views us ... and explore the basic principles of computing,"  including problem solving.  Data structures and algorithms are covered next.  Finally, a product or app is developed.  This is all done with a focus on physical computing "which involves building interactive physical systems which can sense and respond to the Analog world – especially applications that can be created by the Raspberry Pi and Arduino."

I'm unsure of how well all of these things have been or will be accomplished given that little detail is provided (and the website's wording could be better), but this at least seems like a project worth watching.

May 29, 2013 10:17 AM

There are many resources out there for Python, but I've recently had the opportunity to enjoy a fully colour printed book on the topic.  Sure, it's called Python for Kids, but that doesn't mean the young at heart can't benefit from it, too.


The book follows the traditional trajectory for learning programming by introducing the fundamental concepts individually before putting them together in two game projects.  The first chapters briefly introduce Python itself, variables, data types, control flow, functions and modules, drawing, and even classes and objects.  None goes much deeper than 'need-to-know,' but perhaps that is a good thing given that the most fun stuff comes later.  The second half of the book guides you through making a game where you bounce a ball on a paddle (like breakout without the bricks) as well as a stick man game.

Where this book shines is in its language.  Tyler DeWitt encourages science teachers to make science fun in his popular TEDx talk, embedded below.  He emphasizes the use of simple terminology and the use of stories.



Jason Briggs achieves just the right tone in Python for Kids, explaining programming concepts with words everyone can understand, and throwing in jokes and amusing references wherever he can.  It doesn't come across as childish; it's just plain fun.  The full-colour illustrations also add a lot to the overall aesthetic.

Although I do like what is actually in the book, I can't help but feel like Briggs missed some huge opportunities.  Too often in the first half of the book there are tiny, isolated examples that feel meaningless.  Why not motivate the concepts as you learn them? He could have started with the games, or better yet, connected the what better to the why using real world problems that kids can still relate to.  Another criticism is that the pictures, while fun, don't do anything to illustrate the concepts being discussed.

Regardless of the downsides, I will most definitely be hanging onto this book to work through with my (currently 1.5 year old) daughter when she's older.  I can't wait.

May 29, 2013 10:16 AM

I've been working on a prototype story for my thesis project ("Coherent Emergent Stories").  Although I have a couple of stories on the go (such as the one I made for my GRAND poster), the one I am working with now was loosely inspired by The Paper Bag Princess.  This is an informal representation of some of the nodes:


In addition to these nodes are many more satellite nodes that, at the very least, further the story's themes or develop its characters, but that are optional and can be seen in any order.

My task now is to turn the ideas behind each node's availability (where should the player be? What knowledge should they have? etc) into numbers.  We are currently using a modifier system to calculate suitability of a node at any given time.  This means that I need to represent things like mood and knowledge as numbers.  This is much easier said than done!

I will also be writing some code that will represent formula(s) for computing a scene's score so that we can test what scenes will be available for various game states.  I decided to use Python, since its quick and easy scripting nature is just the thing needed here.  It also seems easy to connect directly to a Google Spreadsheet, where my story data currently resides.

Tomorrow, we plan on spending the morning playing with the prototype and adjusting the data and calculations as needed.  I'm really curious to see how far off the mark my numbers end up being!

May 29, 2013 09:22 AM

May 20, 2013


Gail Carmichael

I'm a strong believer in creating conference posters that look good.  If they have a striking resemblance to printed papers, in my opinion something has gone really wrong.  With that said, I have to say I had a lot of fun designing my most recent poster.


Although this image is slightly out of date from the final print version, it gives a good idea of what I was going for.  You can get the gist of the research by looking at it, but it does not contain all the information a paper would.  That's what the poster presentation itself it for: I will have the opportunity to discuss the work more deeply.

There is no reason whatsoever that a poster can't be both beautiful and functional, so I encourage you to see what you can come up with the next time you create a poster! If you have an example to something you're particularly proud of, I'd love to see a link in the comments.

Edit: You can now check out the high resolution PDF of the poster if you'd like.

May 20, 2013 09:52 PM

Last week, I attended the annual meeting of the GRAND (Graphics, Animation, and New Media) research network, held in Toronto.  Although the research and discussion presented and held at the conference spanned much more, the focus for me was on games and stories in games.


The presenter I was most excited about seeing was Jane McGonigal of Reality is Broken and Superbetter fame.  She believes that gamers are actually practicing some rather useful skills when they play.  For example, they learn to be hopeful and creative, two of several things that we should want people solving the world's greatest problems to be.  I reviewed her book a couple of years ago and still find that it influences my thinking on games.  Although I already knew most of what she talked about at GRAND (having been a fan for a while), I loved seeing her in person, and loved even more that my friends and colleagues now buy into her ideas as well.


A surprise for me was how much I loved Terry O'Reilly's talk.  I admit I'm not much of a CBC follower (unless they're airing an Ottawa Senators hockey game), so I didn't know who Terry was ahead of time.  He spoke about the power of stories, mostly with respect to marketing and advertising.  One of my favorite quotes:
Make people feel your message, not just understand it.  -Terry O'Reilly
Besides being an extremely good talk, it was fascinating how much I connected with his message with respect to games.  In particular, I found myself being convinced by him (and less directly by Jane McGonigal earlier) that stories can truly make a difference in learning with educational games.

On Tuesday night I presented my nicely designed research poster.  I was quite pleased to see a few other really great posters.  My favorite poster (possibly of all time) described Tiffany Inglis's research on pixel art in the form of a comic strip.  Check out the poster on her project page.

Finally, on Wednesday, the last day I was at the conference, I attended the Women in Games panel.  The panel featured Grace from Fat, Ugly, or Slutty, Cecily from Dames Making Games, Anita of Feminist Frequency (which is most recently focusing on tropes vs. women in videogames), and Brenda of Silicon Sisters, a women-lead game studio in Vancouver.  The discussion was fascinating, and I saw a lot of what I do with women in CS shine through, even though involvement in games can be much broader than programming/CS.  It was also really neat to see what Brenda and her company have been working on, since I had been chatting with Brenda about stories in games the previous evening at my poster.


Even though I had less than two days between trips (poor baby Molly!), and even though I could only stay for two days, I'm really glad I ended up coming to GRAND.  I feel energized as I move into my attempt to get a lot done research-wise this summer...

May 20, 2013 02:23 PM

May 15, 2013


Gail Carmichael

Blog posts have been sparse lately: I have been traveling.  Last week I spent five days in Palo Alto, California.  The visit was primarily for the Anita Borg Institute Advisory Board meeting, but I also had the opportunity to take a break from being a mommy and grad student (too often at exactly the same time) as well as visit and network with friends new and old.

The problem is, the more often I visit, the more tempting it is to live there!

The Advisory Board meeting was fruitful for the Anita's Quilt project.  I don't want to say too much yet, but suffice it to say I think the Quilt's stories have a bright and exciting future.  After the meeting I had the pleasure to join fellow board members Kathy, Kitty, and Carol (who hosted us).  Besides a most excellent meal, I enjoyed sharing what insight I could into Canadian politics and the like.

On Thursday, I had lunch at a tasty Italian pizzeria with my friends BJ and Valerie, both of whom I know through work with ABI and the Grace Hopper Celebration.  It was so great to catch up with them.


Thursday night I attended my very first ABI Women of Vision Awards.  As expected, it was highly inspirational.  I especially fell in love with Maja Matarić.  Without us realizing who she was at first, she had started chatting with a group of us in the pre-banquet reception.  She mentioned how she should probably wear some makeup even though she doesn't usually; otherwise, her mother (who was in attendance) might scold her.  So she pulled out the lipstick her mother had given her and put it on.  As another woman who never wears makeup, I felt like we might be kindred spirits.  (Her award speech was also absolutely incredible.)


Finally, on Friday, I met up with my friend Carlos, whom I met after a cold-email to tell him how much I loved his book Lauren Ipsum.  I visited him at Facebook, where he worked.  We walked around while we chatted, and although I got a great personalized tour of the Facebook campus, I was admittedly enjoying our conversation too much to properly pay attention.

I did take a few photos, though.  For example, this is the front entrance of the campus.  It is surprisingly nondescript!



There is a whole different look and feel once you step outside the lobby into the "walled garden." The aesthetic of the architecture, landscaping, and all the small details is really appealing.  You will also see a hacker motif showing up everywhere, but not in an obnoxious way.  See if you can spot it in the next two photos.


I made sure to leave my mark before heading out...


With all the wonderful people and beautiful places to live and work in the Bay Area (and that's not even mentioning all the amazing tech events to attend), it is certainly tempting to move down there.  But not to worry, fellow Ottawans: it's not going to happen anytime soon! Having family here is too important.  I do have to admit I am thinking it might be a good option in 20+ years when our kids are all grown up... ;)

May 15, 2013 12:07 PM

May 09, 2013


Kees Cook

Well, the second Ubuntu Long Term Support release, 8.04 Hardy, has reached end-of-life. (Along with 11.10 Oneiric and the Desktop Support for the 10.04 LTS Lucid.) Flushing my package mirror of Hardy and Oneiric was pretty dramatic, freeing up about 142GB worth of space.

Before:

$ df -h /var/cache/mirrors/
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/sysvg-debmirrorlv  753G  692G   62G  92% /var/cache/mirror

After:

$ df -h /var/cache/mirrors/
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/sysvg-debmirrorlv  753G  550G  204G  73% /var/cache/mirror

If only online filesize resize shrinking worked. :)

© 2013, Kees Cook. This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.
Creative Commons License

May 09, 2013 08:53 PM

May 07, 2013


Ted Gould

One of the design goals of Unity was to have an Application-centric user experience. Components like the Launcher consolidate all of the windows into a single icon instead of a set like the GNOME 2 panel. Nothing else in Ubuntu thinks about applications in this way making it a difficult user experience to create. X11 worries about windows. DBus worries about connections. The kernel focuses on PIDs. None of these were focused on applications, just parts of applications. We created the BAMF Application Matching Framework (BAMF) to try and consolidate these, and while it has done a heroic job, its task is simply impossible. We need to push this concept lower into the stack.

First we looked at the display server and started thinking about how it could be more application centric. That effort resulted in Mir. Mir gets connections from applications and manages their associated windows together. They can have multiple windows, but they always get tracked back to the application that created them. Unity can then always associate and manage them together, as an application, without any trickery.

Application confinement also provides another piece of this puzzle. It creates a unified set of security policies for the application independent of how many submodules or processes exist for it. One cache directory, set of settings and policies follow the application around. Apparmor provides a consistent and flexible way of managing the policies along with the security that we need to keep users safe.

To start to look at the process management aspect of this I started talking to James Hunt about using Upstart, our process manager in Ubuntu. Working together we came up with a small little upstart user session job that can start and stop applications, and also track them. I've pushed the first versions of that to a test repository in Launchpad. What this script provides is the simple semantics of doing:

$ start application APP_ID=gedit
$ stop application APP_ID=gedit
to manage the application. Of course, the application lifecycle is also important, but Upstart provides us an guaranteed way of making sure the application stops at the end of the session.

Upstart can also help us to guarantee application uniqueness. If you try and start an application twice you get this:

$ start application APP_ID=inkscape
application (inkscape) start/running, process 30878
$ start application APP_ID=inkscape
start: Job is already running: application (inkscape)
This way we can ensure that a single icon on the launcher associates to a set of processes, managed by the process manager itself. In the past libraries like libunique have accomplished this using DBus name registration. Which, for the most part, works. Using DBus registration relies on well behaving applications, which basically guarantee their own uniqueness. By using Upstart we can have misbehaving applications, and still guarantee their uniqueness for the Unity to show the user.

We're just getting started on getting this setup and working. The schedule isn't yet final for vUDS next week, but I imagine we'll get a session for it. Come and join in and help us define this feature if it interests you.

May 07, 2013 01:16 PM

May 01, 2013


Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }

Its a portable battery and solar powered sound system.

May 01, 2013 10:47 AM

April 30, 2013


Inkscape Tutorials

logo

Here is awesome tutorial by that explains 3 different techniques for creating artwork with an isometric projection using Inkscape. The techniques are: creating an Axonometric grid, Transforming objects, and creating 3D boxes. Depending on the type of design you are creating, you may use all three of these techniques in unison as well!

Be sure to also check out some of Olga’s awesome vector illustrations done using inkscape!


April 30, 2013 09:07 PM



Ted Gould

For a while I've had a little project for debugging the desktop. Basically it starts tracking all of the DBus events on the user session startup so that you can figure out what's going on. This is especially an issue for indicators, where they're started at login, and sometimes it can be hard to track what is happening.

Previously it was pretty hard to inject into the startup of the session. Getting in the middle of building a very long command line was risky and pretty fragile. Not proud of what I had to do. Now that I have Upstart user session running, I took the opportunity port this debugging script over to Upstart.

Now I have this one simple configuration file that can be dropped in /usr/share/upstart/sessions and gets started immediately after dbus:

description "Bustle Boot Log"
author "Ted Gould "

start on started dbus
stop on desktop-end

script
	rm -f ~/.cache/bustle-boot-log/boot-log.bustle
	mkdir -p ~/.cache/bustle-boot-log/
	timeout -s INT 30 bustle-pcap --session ~/.cache/bustle-boot-log/boot-log.bustle &
end script

The beauty of this is that I can inject this small little script in, and have Upstart figure out all the startup mess. I also have minimal impact on the natural desktop boot which is critcial for testing. Simple things to make debugging easier.

April 30, 2013 07:59 PM



Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }



Jon Phillips, originally uploaded by christopheradams.

Don’t forget to wear your keffiyeh for FREEBASSEL.

April 30, 2013 03:56 PM



Gail Carmichael

Recently, I happened to start looking at some of the stories featured on the new Lean In website and came across Marissa Mayer's.  For all the interest and controversy she's drummed up in the news lately, I quite liked hearing her perspective on joining Yahoo! when expecting a baby.

Fortune Most Powerful Women Dinner With Marissa Mayer
Fortune Most Powerful Women Dinner With Marissa Mayer / Fortune Live Media

Although she'd received offers like that of Yahoo!'s before, this time was different.  The company was a perfect fit for her experience.  But as she says, "...it wasn’t a foregone conclusion that I would or could make it work when I got that first phone call. At the time, I was pregnant, and I was thrilled."

Motherhood is an oft-discussed topic for women in tech (and probably women everywhere).  It can be difficult to be a pregnant woman among many men who don't necessarily understand what comes with that.  Equally daunting is the prospect of taking time off for maternity leave when you'd be one of the few to do that in your company or perhaps in your position.  (If there were more women in the field, it wouldn't seem like an uncommon occurrence.)

Mayer had been looking forward to a six-month maternity leave with Google, way longer than most Americans can even dream of.  By taking the CEO job, she would cut her leave down to almost nothing.  "The responsibilities were too big, and time was of the essence—it just wouldn’t be fair to the company, the employees, the board, or the shareholders for me to be in the role, but out for an extended period of time."

Did she find that motherhood has hurt her ability to be CEO?
I’ve come to realize that being a mother makes me a better executive, because motherhood forces prioritization. Being a mom gives you so much more clarity on what is important. I’m very close to my own mother; she has always been my most important role model. I’m grateful to her and to my father for a lifetime of their love, attention, teaching and sacrifice. Over the past five short months, my appreciation has grown for all parents, especially those balancing work obligations, because I know they have that same clarity of dedication and purpose.
Clearly, it's not an issue.  Granted, she has much money at her disposal to help keep her personal priorities.  However, families around the world have been figuring out many different ways to make it work for many years.  Money might make some things easier but it's not the only answer.

So can we stop bringing in the pregnancy and motherhood issue into discussions of women in tech (and other) companies? It's not like we ever do the same thing for men with young families.

April 30, 2013 10:09 AM

April 25, 2013


Ted Gould

I've started to prototype and lay the foundations for the indicators to use the Upstart User Sessions. It's an exciting change to our desktop foundations, and while it's still very fresh, I think it's important to start understanding what it can do for us. For right now you're going to need a patch to Unity and a patch to indicator-network to even get anything working, not recommended for trying at home.

Previously for indicators the way that they've worked is that a small loadable module was loaded by the panel service that had indicator specific UI in it. That plugin also took care of the responsibility to restart the indicator backend, respawning it if it crashed. While this works and it has created a robust desktop (most people don't notice when their indicator backends crash) it has had some downsides. For one, it makes it difficult to build and test new backends as you pretty much have to restart Unity to stop the previous service from getting respawned. Also all the debugging messages end up coming under the DBus process in ~/.xsession-errors because we were using DBus activation to start them.

With upstart user sessions we're now getting a lot more power and flexibility in managing the jobs in the user session, it makes sense that indicators would start to use it to control the backend services. This comes with a set of advantages.

The first one is that there is better developer control of the state of the process. It's really easy to start and stop the service:

$ stop indicator-network
$ start indicator-network
and the ever exciting:
$ restart indicator-network
All of these ensure that the same commands are run each time in a recreatable way. Plus give the user and/or developer full control.

Upstart also takes the output of each process and puts it into its own log file. So for our example here there is a ~/.cache/upstart/indicator-network.log that contains all of the junk that the backend spits out. While this is nice to just make xsession-errors cleaner, it also means that we can have a really nice apport-hook to pick up that file. Hopefully this will lead to easier debugging of every indicator backend bug because they'll have more focused information on what the issue is. You can also file general bugs with ubuntu-bug indicator-network and get that same information attached.

In the future we'll also be able to do fine tuned job control using external events. So we could have the indicator network backend not start if you don't have any networking devices, but startup as soon as you plug in that USB cellular modem. We're not there yet, but I'm excited that we'll be able to reduce the memory and CPU footprint on devices that don't have all the features of higher end devices, scaling as the features are required.

Those that know me know that I love diagrams and visualizations, and so I'll have to real quickly say that I'm excited about being able to map our desktop startup using intlctl2dot. This gives a Graphviz visualization of startup and how things will interact. I expect this to be a critical debugging tool in the future.

What's next? Getting all the indicators over to the branch new Saucy world. We also want to get application indicators using a similar scheme and get a fast responsive desktop. Hope to have a blog post or two on that in the near future.

April 25, 2013 05:30 PM

April 24, 2013


Gail Carmichael

Two recent Y Combinator graduates contacted me recently in an effort to recruit a female technical co-founder for their startup.  Although any awesome engineers would be welcome in their company, they believe that women are likely to better understand what other women would want in their fashion-focused product.  This is such a great example of why we need more women in tech — why should only men design products intended for women?

Here's a blurb about their company and info about who they are looking for.  If you think you've got what it takes to be a technical co-founder, I hope you'll give this opportunity consideration!

Join team StyleUp! A Winter 2013 Y Combinator-backed company, StyleUp is a Pandora for fashion. We are influencing the way people shop and get dressed every day and are looking to expand our engineering team. We are looking for part-time as well as full-time candidates. Tasks include (but are certainly not limited to) creating new product features, responding to customer feedback, and working closely with the StyleUp CEO, Kendall, a former Conde Nast fashion editor and MIT Sloan MBA '13, to shape the product vision and road map.
At 20% month-over-month user growth, the StyleUp system needs monitoring and performance improvement to ensure the best service and experience for our users. This involves writing code up and down the stack -- from database query tuning to front-end javascript algorithms. Having a performance-first mindset to all new features is a must.

If you are scrappy and creative, love working with fun people and get stuff done fast, we want to talk to you! Please send your resume to kendall@thestyleup.com.

A little about the technology stack:
  • Python/Django stack with a MySQL database
  • Front end using Bootstrap for CSS; jQuery/jQuery UI
  • Hosted on Amazon EC2; deployment in Fabric and Boto (EC2)

April 24, 2013 11:48 AM

April 22, 2013


Gail Carmichael

On Saturday the University of Ottawa held its inaugural Go Code Girl event.  I designed the workshop's curriculum and taught the English section for the day.  I must say, it was a great success!


We started the morning with a general welcome session with the workshop organizer, then headed to the computer labs in two groups (French and English).  I had my group of girls "interview" someone they didn't know yet after introducing myself, then had them introduce each other.  It was really great to see what a big variety there was in their backgrounds.  Some girls came because their older sisters brought them along, others already knew they were interested in programming, and still others came because their parents made them.  All of these girls stood to benefit from attending.

As I often do, I began with a discussion of what computer science is really all about, and why women don't tend to go into it.  I usually do this with a younger audience, so it was great getting insight from the high school perspective.

The key points that came up were the fact that many girls don't know what computer science is (and how it connects to so many different areas), that it's easily seen as a boy's thing given the current gender imbalance, and that it is intimidating being one of the only girls in a large class.

Interestingly, the discussion focused from there on the quality of high school programming classes.  Over the years, I have been asking high school students what they thought of these courses.  Anecdotally, it seems that they are often not overly effective, particularly for women.  The girls in the workshop wished that the courses weren't just about programming, but rather used programming as a tool to solve more interesting problems that they actually care about.

It also seems that the backgrounds of some programming teachers is not even related to computer science.  In one girl's high school, the gym teacher also happened to teach programming; he didn't even bother promoting programming when they had a course fair for students.  This means that the quality isn't necessarily the fault of the teachers.  There just aren't enough computer scientists willing to teach! But that doesn't mean we can't train others on how to teach CS.  In fact, this is something I want to do as time goes on, similar to what Barbara Ericson from Georgia Tech does in her home state.

After our discussion, I had the girls download a finished Processing project.  It was a memory game I had created for a previous workshop and then adapted for the undergraduate game dev tutorial I was TA'ing for.  I told the girls I wanted them to play with the game, look at the code, and start finding ways to tinker with it.  I interrupted them every ten minutes or so and taught them a new programming concept (variables, boolean and if, loops, arrays and lists, methods, and objects).  After each concept, I left up a small snippet of code they could independently type in and tinker with to better understand the topic.

This was a new approach for me, but a few smart people had suggested it works pretty well (including Barbara mentioned above, as well as one of the creators of Processing himself!).  It supported the idea of just-in-time teaching, where we expected the girls to run into problems so we could help them learn something right when they needed the knowledge.

Did it work? Let's just say a mentor mentioned to me that one girl said she had just learned more about programming in the first hour of the workshop than she had in four months at school.  Sounds promising to me!

In the afternoon I had the girls choose a tutorial to work on where they were guided in making a mini-project of their own.  Every needed step was described, but not always completely explicitly.  Some of the girls struggled with these more than others, so it might be worth making an easier one for those who are less confident.

We still have some data to look at via surveys we gave at the beginning and end of the workshop, but overall I think the day was quite successful.  Huge kudos to Nathalie Vallières from the University of Ottawa who organized the entire day, contacting me as a potential instructor months ago.  I'm looking forward to this becoming an annual event!

Check out all the workshop material on my website.

April 22, 2013 11:33 AM

April 20, 2013


Jon Phillips

Over at Fabricatorz, we have been working hard on updates to our baby, Openclipart. Its the place for quality clipart. Check out some this image I made of Dolores Park in San Francisco.

Dolores Park Poster San Francisco

And, there are some artists making #FREEBASSEL graphics.

Click here to edit

Share your clipart at Openclipart.

April 20, 2013 07:55 AM

April 12, 2013


Gail Carmichael

Last fall, we published a paper about augmented reality, cognitive theories, and learning. I previously wrote about the design advantages of AR; these give insight into when AR is really the best choice for an interface.  The following is from our paper.  If you find it useful, be sure to check out the complete work on my website.

[Augmented reality's design] advantages can be used to decide whether augmented reality is a good interface for a particular type of learning scenario. The applications that most benefit from AR are generally those that make natural use of all four categories of advantages.

Virtual flexibility is inherently desirable in all digital tools and applications we design. Similarly, it is desirable to incorporate aspects of the invisible interface. We do not want our users to unnecessarily switch their attention between multiple artifacts, for example. We also often try to incorporate natural movements, direct manipulation, and gestures in our interfaces.

In contrast, not all applications need to make use of spatial awareness or even have an environment to align virtual objects in. For AR to be a good choice there must be a clear and meaningful relationship between virtual objects and the real world. This might mean that a virtual object is attached to an explicitly related object or location. For example, a digital label that describes the object must be spatially aligned to it to make sense. Or, the relationship may come from seamlessly integrating the virtual object into the environment. For instance, a virtual animal might be shown as though it were present in its real habitat, giving learners the opportunity to observe it. The cognitive theories above offer some suggestions as to where such relationships may be useful, such as when building new mental models or providing situated meaning to the virtual data. But if there is no good reason to associate the virtual objects with some aspect of reality, then AR is likely not best for the application.

Whether an application needs reality for free is also an important consideration. It is advantageous to make use of the real world when details found in reality are key to the application. Including reality as it is rather than building a virtual representation of it saves programming effort and reduces the risk that important details about content or behavior are left out. This can be critical when the application involves a task requiring specific behavior with real-world objects. When training for or performing surgery, for example, the exact dynamics, texture, and color of human tissue would be difficult to simulate, yet may be important to the surgeon.

Because virtual flexibility and the invisible interface represent goals we have for all applications, spatial awareness and reality for free offer the best insight into when to choose augmented reality over other options. If an application can't clearly take advantage of these, then there is likely a more suitable interface type, as is the case with abstract domains in which users do not interact with tangible, real-world objects or data. Instead, users work with virtual information (like data on a computer) or physical abstractions of reality (such as charts). When reality does not play a prominent role in the application, it is difficult to make a meaningful connection between virtual and real objects. For instance, some examples of AR artificially create a connection to reality by having users hold a specially designed card upon which a 3D model will be displayed. While the method of interaction allows an enactive approach to viewing the model, the same could be accomplished with fully digital interfaces that support natural gestures. It is not clear that augmented reality is well used for this kind of application.

On the other hand, applications designed to support learning tasks that are already centered on the real world can make good use of both reality for free and spatial awareness. Information or problem solving aids can be tied to the relevant aspects of the real environment, as for learning about car engine repair: virtual labels can identify components of the engine while visual instructions can guide the learner. It would not be as easy to do this task virtually given the physical changes made in the real world. The virtual objects have a clear connection to the engine parts in the real world. Many learning applications also benefit from these advantages when, for instance, real world context is important. For example, an application designed to teach photography could use augmentations to illustrate important concepts of composition, depth of field, and so on with visualizations overlaid on the actual scene being photographed. Though these concepts can be illustrated with photographs already taken, interacting with them in real time in the real world makes their context much clearer and helps build a much better mental model. For both these applications, AR is a strong choice.

Paper content copyright by AACE. Reprinted from the Proceedings of World Conference on E-Learning in Corporate, Government, Healthcare, and Higher Education 2012 with permission of AACE (http://www.aace.org).

April 12, 2013 12:15 PM

April 09, 2013


Gail Carmichael

Last fall, we published a paper about augmented reality, cognitive theories, and learning.  One of the tasks of the work was to specifically define what the design advantages of augmented reality are.  I'd like to share our list here, which is directly from our paper.  If you find it useful in thinking about why one should use AR, check out the paper on my website.

Reality for Free

AR mixes real and virtual objects. As opposed to purely virtual experiences, augmented experiences can be richer and more elaborate because of the deliberate inclusion of real-world objects and behaviors. We can separate this advantage into three distinct elements:

  • Content. Because the real world is used directly, the AR environment is vast and detailed. A purely virtual experience suffers from a confining bottleneck of content creation.
     
  • Behavior. Rich real-world behaviors, such as the laws of physics, are included without effort. In a purely virtual environment, these would need to be simulated by code.
     
  • Multiple Senses. Interfaces to purely virtual worlds are typically limited to vision and sound, perhaps with modest haptic feedback; the real world provides a wide array of sensory experiences, including taste, smell, and ambiance such as temperature and humidity.
Virtual Flexibility

The counterpart to the advantages accruing from the use of reality is the flexibility afforded by the use of digital artifacts. Their appearance and behavior are governed by code, and hence can be altered according to the needs of the user or application. The following are two of the most prominent applications of this flexibility:
  • Customization. Virtual artifacts can be personalized according to user preferences; for example, attributes such as language or color can be adjusted.
     
  • Impossibility. Virtual content can depict objects and processes that are impractical or impossible to bring to users otherwise, for instance because they don't exist in the real world, would take too long to observe in real time, or would be dangerous to experience directly.
Invisible Interface

AR users retain their ability to move freely and the interface does not interfere with their ability to observe their real-world environment. They are able to switch attention seamlessly between real and virtual objects; in some cases (such as descriptive markup) the user may not care whether an object is real or virtual. We want to particularly emphasize two aspects of the invisible interface:
  • Natural movement. User input can take the form of familiar real-world actions; direct manipulation and gesture based interaction are possible.
     
  • Single focus. When augmentations are aligned with the task at hand, focus can stay in one place. Users do not, for example, have to change their focus from their task to a paper manual opened beside them.
Spatial Awareness

Some of AR's advantages owe their existence to a clear connection between real and virtual objects, including larger-scale entities such as physical locations. We distinguish two advantages relating to the physical context in which augmentations are embedded:
  • Adjust to surroundings. Virtual content automatically updates as the user's surroundings change; change can either be a change in the world (such as the movement of a real-world object or a change in temperature) or reflect a change in the user's position or viewpoint.
     
  • Align spatially. Close matching of real objects with virtual markup makes associations obvious. For virtual objects which may not have a real analog, opportunistic matching to real objects can lend physicality. For example, labels aligned to a particular object are clearly meant to give information about that object as a real label would.
Paper content copyright by AACE. Reprinted from the Proceedings of World Conference on E-Learning in Corporate, Government, Healthcare, and Higher Education 2012 with permission of AACE (http://www.aace.org).

April 09, 2013 04:07 PM

April 05, 2013


Gail Carmichael

I love how much easier it is to see statistics on blog post views with the most recent Blogger redesign.  While these (probably?) don't account for views by RSS subscribers, it has been fascinating seeing which posts are the most popular and by what margin.


The Python vs. Processing post is way ahead of the others.  I guess this isn't a surprise, since it ended up on Hacker News.  The view count continues to go up all the time.  Now if only I could figure out how to write more posts that are that popular!

It's also interesting that my discussion of a board game is right up there.  I'm thinking that post must be linked from a board game site or something, but I haven't figured out where yet.

It's nice to see that the post about the computer science book we're working on made the cut.  That project is still progressing, albeit slowly (new babies for both of us co-authors certainly didn't help!).  I am feeling pretty good about its awesomeness.

Here are some links to the top posts, since many of you may be newer readers and haven't seen them yet!

April 05, 2013 11:41 AM

April 03, 2013


Ted Gould

Going to sleep last night I started thinking about inflation, which meant that I got to sleep later than I'd wished, but it also lead to some interesting thoughts about where the US economy is currently. Popularly inflation is considered bad, or something that needs to be controlled through monetary policy. And that we have. In the US we've seen record low inflation rates, to the point where we've lowered interest rates to where it's practically a useless lever on the economy. It seems to me that we need higher inflation.

Inflation powers the creative destruction that makes capitalism work as an economic system. For value to increase relative to inflation we must reprice things, and they must continue to have more value to the people in the economy. If weak products just stick around, with their current value in tact, they effectively stagnate as they don't get ground under the treadmill of inflation. This is the evolutionary gauntlet that destroys those who are not fit to compete. Perhaps capitalism is driven less by an invisible hand and more an invisible treadmill.

We can as a country control inflation and increase it artificially through policy in government. Policy programs like farm and transportation subsidies ensure that food prices don't rise. Starting to remove many of these would force farmers to charge more, which in turn would effect derivatives like meat and dairy to raise prices, effectively pushing inflation into play.

The economy is an ecosystem of stored value, consumers and producers. By eliminating inflation as a mechanism inside that ecosystem we've allowed the balance to be shifted and created a system that is off balance. We should adopt legislative policies to increase inflation.

April 03, 2013 02:33 PM



Gail Carmichael

I'll be out of commission for the next little while as I embark on my second of two eye surgeries.  I have a corneal disease called keratoconus, which makes the bonds in my cornea weak so that the surface bulges (my sixth ever blog post talks about it, and even includes a mapping of my eyes as they were at the time).  Keratoconus is a degenerative disease, and the cross-linking surgery I'm getting is meant to halt the progression rather than improve the situation.  Not so exciting, given the price tag and painful recovery, but better than the possibility of a cornea transplant one day.

I'm going to schedule a few posts over the next few days while I recover from the surgery.  This means I won't be posting links on Twitter/G+/Facebook, so if you enjoy the blog, I'd love to have you stop by, leave a comment for me to respond to later, and maybe even subscribe!

April 03, 2013 11:38 AM

March 30, 2013


Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }



Fwd: your restaurant?, originally uploaded by rejon.

Thanks to Jason @Wishnow for the photo @fabricatorz inspiration :) It
is our restaurant ;)

March 30, 2013 04:52 PM

March 29, 2013


Gail Carmichael

I'm pumped that registration is open for a workshop I'll be leading April 20 at the University of Ottawa.  It's called Go Code Girl and it's going to be a programming workshop for high school girls.  I'll be basing the day off of my earlier Processing workshop for Girl Develop It with a few new tricks up my sleeve.


If you are or know of an Ottawa area high school girl, be sure to visit the registration and info site today! My guess is that spots will fill up fast.

March 29, 2013 04:11 PM

March 26, 2013


Gail Carmichael

I love science and tech museums, so while visiting Montreal this past weekend, I made sure to stop by the Montreal Science Centre.  They have some really cool stuff there, but I was most intrigued by two of their exhibits that centred completely around a single piece of ed tech.


The first such exhibit was Mission Gaia.  It contains more than 20 gaming tables with screens both on the horizontal surface and on a vertical screen perpendicular to the table.  A camera is positioned above to detect where you place rubber circular tokens and thus what decisions or moves you are making. As explained at the link above, the game is divided into three sections: "A recap of terrible ecological and human disasters," "sustainable development in a large North American city," and then an attempt at "sustainable development to the whole planet."

My friends and I played until the beginning of the third segment.  We all felt that the technology was very well done, the content was great, and that the game had potential.  Unfortunately, it was almost always unclear what your goals were in terms of the game mechanics.  We concluded that you pretty much could just "choose everything" and it didn't really matter.  The game design definitely needs some work, but an improved version could definitely go far in bringing awareness to players.



Later in the day we stopped by the idTV exhibit.  The room was set up like a mission control with tiered seating and giant screens at the front.  A group of up to four people gathers in front of a computer and puts on some chunky headphones.  With the help of a video guide, the group chooses a controversial scientific topic to research and prepare a short news video on.  The group watches news clips, arranges them into the video, and even records their own intro and outro.

This setup was far more effective to us than Mission Gaia (thanks to the latter's weak game design).  We didn't have a huge amount of time, so we just watched a few of the clips and then somewhat randomly put them together into our little video.  Even then, we could see there were differing points of view and even opportunities to decide which videos to trust (for example, not the political scientist talking about biology).  We can really see how students that spent the full half hour with their topic would learn a lot about it and form their own informed opinions.

Overall, I really applaud the Centre for managing to make everything interactive yet still compelling.  I wish all museums, whether about science or something else, could do the same.

March 26, 2013 10:36 AM

March 21, 2013


Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }



FREEBASSEL #indexawards, originally uploaded by rejon.

I come here to London to represent for you my friend. Love and miss you my
homie! We are working hard to get you out of that Syrian Jail Hell! Be
strong, we fighting hard out here for you!

Jon

March 21, 2013 04:14 PM



Gail Carmichael

Without giving too much away, I wanted to share an early example of the types of story graphs I'm working on for my thesis.  This was my first example, and it's inspired by Robert Munsch's Paper Bag Princess.


Without even telling you what all the colours and notations mean, you can probably gather that there are some nodes that must be seen in a particular order, and others that can be seen any time.

Eventually my examples will have much more of the latter type.  The end goal is to be able to decide which nodes should be available in the first place according to the player's current state in the game, and then to dynamically modify the scenes in small, simple ways to ensure they make sense and connect back to previously seen nodes.

Hopefully, this will result in more open and coherent emergent stories in games.

March 21, 2013 11:38 AM

March 18, 2013


Gail Carmichael

You may recall that I recommended inklewriter as one tool for testing story ideas.  I recently found an interesting piece of interactive fiction made with it and I found it rather interesting.  It's called First Draft of a Revolution, and its format is quite different from anything I've seen before (though, to be perfectly honest, I'm not well versed in the realm of non-game interactive fiction pieces!).



The story is presented as a series of letters written between the main characters.  This isn't anything new; framing devices have been used for ages.  But here's the twist: through a series of clicks you get into the letter writers' heads, seeing their thought process as they write and rewrite their letter until you decide it's ready to send.

For example, in the image above, Juliette has made a list of the things she wants to say in her letter.  You click on each item and see a note pop up that ponders what to do next.  The notes seem to offer choices at first, but really there is only one option you can pick to continue.

I thought this was rather effective.  It would pretty boring reading about each character changing their mind and rewriting.  I don't need the explanation of what they're doing when it's the same thing over and over.

So what makes the story interactive? You can sometimes send letters without clicking on everything, though ultimately this doesn't actually change the story.  You can also choose what order you reveal the information to yourself.  As the inkle blog says about the piece:
But do the choices affect the story? Yes. Of course they do. Partly because the choices are being remembered by the other data-collecting system in action during the game, which is the one that sits between your ears. And partly because you’re performing the act of choosing.  The indecision of the characters, expressed through your choices and changes, changes everything. It’s a little like the way an actor’s reading of a line in a play changes the way the scene is experienced. Each performance is different even though each telling is the same. A gripping play isn’t about control, but it isn’t passive either – it’s electrifying, because every second is alive with possibility. Drama arises from the space between one second and the next, quite regardless of whether we’re in a screwball comedy where anything can happen, or a tragedy where a bleak fate was prophesied in Scene One.
The story doesn't take too long to get through, and while I would have liked it to go a bit further into the results of the risky move our heroine Juliette made, I also would have found doing much more clicking to reveal the letter to get a little tedious.  Overall, I recommend checking it out.

March 18, 2013 06:34 PM

March 15, 2013


Gail Carmichael

Tonight is the deadline for the 2013 edition of the Grace Hopper Celebration of Women in Computing's Call for Participation.  Although I wasn't sure I was going to submit anything this year, I ended up submitting twice! Here are the abstracts...



Gram’s House: Encouraging Girls to Consider Computer Science Through Games

Gail Carmichael, Carleton University, Ottawa, Canada
Carolee Stewart-Gardiner, Kean University, Union, New Jersey
Gillian Smith, Northeastern University, Boston, Massachusetts

Computer science still faces a significant gender imbalance with women earning less than 20% of degrees.  To address this issue, we designed an educational computer game, Gram’s House, which aims to teach CS concepts and demonstrate how CS can be used for social good.  We will introduce the game concept, demonstrate two early prototypes, report results of a pilot study, and share our future plans, including procedural content generation.


Academic Presentations Don't Have to be Boring, Honest!

Gail Carmichael, Carleton University, Ottawa, Canada
Terri Oda, University of New Mexico, Albuquerque, New Mexico

Public speaking is an important part of the academic environment: conference presentations help you communicate your work to others in your field, classroom presentations help you teach, and presentations are often a necessary part of getting and keeping any grant funding.  Unfortunately, it is a skill that few academics spend enough time honing.  This workshop will give attendees a crash course in ways to manage complex technical presentations without putting the audience to sleep, including a variety of styles, practice techniques, and refutation of some of the very bad advice often given to inexperienced academic presenters.  We want to emphasize that oral communication is not the same as written communication, and that in many ways a talk is a story about your research: figuring out that story and how to tell it is a very important part of scientific communication.

March 15, 2013 02:53 PM



Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }



#FREEBASSELDAY = #FREEINTERNET, originally uploaded by rejon.

Bassel is one of my best friends. Please #FREEBASSEL anyway you can,
creatively, with remixing, or simply retweeting. He has been locked up
unjustifiably for one year today. We need him out!

freebasselday.org

March 15, 2013 11:21 AM

March 11, 2013


Gail Carmichael

My thesis project is moving forward, which I'm thrilled about. Here's a high-level abstract that summarizes the system I am working on.

Crafting satisfying narratives while preserving player freedom of action is a longstanding challenge for computer games. Many games use a quest structure, allowing players to experience content nonlinearly. However, this risks creating disjointed stories when side quests only minimally integrate with the main story. We propose a flexible, scene-based story system that reacts dynamically to the player’s actions.

In the proposed system, stories are defined within a graph where nodes represent scenes and edges represent causality. Nodes are tagged with information including possible locations for the scene, the plans or goals connected to the scene, and the agents and objects involved in the scene. At any time, the distance from the player’s current game state to nodes in the story graph is measured according to five dimensions of nonlinearity: time, space, causality, agents involved, and the player’s goal. The system will use the distance to determine what nodes should be available at any given time. Scenes will be modified dynamically according to when and where they ultimately take place, ensuring that each node has a narrative connection to its predecessors. This system allows for potentially connected stories driven by player action, leading to a more cohesive emergent story.

March 11, 2013 03:10 PM

March 08, 2013


Gail Carmichael


After all the terrible controversy and the failed attempts of sabotaging her Kickstarter campaign, Anita Sarkeesian's first episode of her video series on Tropes VS Women in Video Games is finally online.  It's the first instalment of a two part series on the Damsel in Distress trope, and I have to say, it's kind of depressing!



The video starts by defining what a damsel in distress is: a woman in a helpless situation must be saved by a male character.  (Unlike the guys, she is unable to be the architect of her own escape.)  She is often the main motivation for that character's quest, an integral part of his narrative arc.

The idea has been around for a long time, but the introduction of two properties in 1933 really set things in motion for the trope's use in video games: Popeye the Sailor Man, who constantly rescues Olive Oyl in his adventures, and King Kong.  When Nintendo tasked Miyamoto to design a new arcade game for the North American market, he turned to King Kong for inspiration after failing to get rights to Popeye.  Enter Donkey Kong.

One of the main problems with this trope is its objectification of women.  It sets up a subject-object dichotomy in which subjects act, objects are acted upon.  Women are objects that are kidnapped and saved.  As one of my favourite quotes from the video says, "In the game of patriarchy, women are not the opposing team. They are the ball."

Many of the examples are from older games, but part two of the video on this trope will look at more modern examples.  It also promises to highlight games that "flip the script" for female characters.  I'm looking forward to it!

March 08, 2013 11:55 AM

Venture Beat recently ran an article about tackling tech's gender problem the right way (according to them, by teaching women to code). Part of the article discusses how initiatives like Hackbright Academy (a 10 week all-female programming boot camp), while positive, are not a long term fix.

A little light reading about women in computing! 
A little light reading about women in computing! / coleypauline

From the article:
So while we wait to tackle the root of the gendered-tech problem (education of girls beginning before they enter school), decades are passing and tech is becoming more gender biased, not less. In a sense, Hackbright and its ilk are letting motivated, smart women cut the line, perhaps helping to take a few years off the depressingly long curve of qualified women engineers over time.

But the quick fix isn’t the ultimate solution. As Fernandez himself pointed out in a recent blog post, the learn-to-code movement is meeting a very immediate need and fixing a sudden engineer shortage, but it’s not creating a stable, nurturing culture of thoughtful, experienced programmers.
What is the ultimate solution? I don't know, but I often find myself frustrated by the fact that, in many cases, we know something about what works, but don't implement it.
As just one example, the National Center for Women & Information Technology has a wonderful set of resources that both gives insight into the issue and offers solutions.  Two of my favourite techniques that can be used in undergraduate classes are pair programming and peer-led team learning.  These are proven to help retain women and also benefit men.  So why do I see these approaches used so seldomly in formal school settings?

I'm pretty sure that a major part of my life's work is going to be continuing to tackling this issue in high schools and universities.  Bonus if it's connected to a paying job!  If we're lucky, I and everyone else working on this won't have to be at it for too long before there is no longer an issue.  Here's hoping!

March 08, 2013 10:48 AM

March 06, 2013


Jon Phillips

.flickr-photo { border: solid 2px #000000; } .flickr-yourcomment { } .flickr-frame { text-align: left; padding: 3px; } .flickr-caption { font-size: 0.8em; margin-top: 0px; }

I’ve been training for this month for a lil bit of time. Fabricatorz launched http://masha-ma.com at Paris Fashion Week and handled her social media live for the event.

Now I’m in Paris, will cut thru Burrrlin (gucci time), and make doing some big planning and moving on #freebassel.

March 06, 2013 04:13 PM