Grand Theft Childhood is a new book about kids and video games (via Cyborg’s Picnic). It reveals the results of a Harvard video game study that challenges conventional wisdom about the effects of gaming. I didn’t read the book, but did read a bit about the study on the web.

“For many children and adolescents, playing video games is an intensely social activity, not an isolating one.

“Many games involve multiperson play, with the players either in the same room or connected electronically. They often require that players communicate so that they can coordinate their efforts. Our research found that playing violent video games was associated with playing with friends.

“For younger children especially, games are a topic of conversation that allows them to build relationships with peers.”

“According to research on the effects of violent media, the ESRB may have parts of its ratings system backward! One of the predictors of which violent media are likely to result in violent real-world behavior is material that does not show the realistic negative consequences of violence, such as pain, suffering and blood.19 Violent video games that are rated M are more likely to show those negative consequences. Those that are rated T or E achieve such lower ratings in part by not showing those negative consequences: dead bodies just disappear; blood is animated rather than realistic. Also, those games in which the player is rewarded with extra points for avoiding a violent confrontation (e.g., the SWAT series) are given the same M rating as those games in which the player is given extra points for piling up virtual corpses.”

“As we watched and listened to him, it became apparent that the primary attraction for him wasn’t the Pokémon games themselves, but the social interactions they triggered with peers. It gave the boys — as with many video games at that time, it was mostly boys who played — a non-threatening common experience to talk about. This let them build relationships and explore new social roles.

#Our son and his friends reveled in their mastery of the games’ arcane rules and in their knowledge of the characters’ names and special skills. These were things that the adults around them did not comprehend or appreciate, which gave the children a highly valued sense of power and importance. Michael would electronically trade Pokémon characters with his friends the way his father had traded baseball cards a generation earlier.

Much of what we found surprised us. The data were both encouraging and, at times, disturbing. The more we analyzed our own data and looked at other research, the more we realized that we — parents, politicians, researchers and child advocates — probably worry too much about the wrong things and too little about more subtle issues and complex effects that are much more likely to affect our children.

Wrong Questions, Wrong Assumptions.
The study argues that “instead of looking for a simple, direct relationship between video game violence and violent behavior in all children, we should be asking how we might identify those children who are at greatest risk for being influenced by these games.”

Some of what the study reports seems intuitive to me as a parent, but I do think there is a place for cartoon violence. Knocking out Pokemon seems significantly more benign than bloody killing and I can’t see any correlation to violence. I agree that its a social thing. There may be other games where the cartoon violence more closely mimics real life without any gory simulation, but I don’t know as I buy it. Does witnessing the frog in a blender
cause someone to be more or less likely to torture amphibians?

I’m not much of a gamer. I prefer to find delight in creative projects that feel like play. It might be some remnant puritanical work ethic from my New England roots, or perhaps its just that most games aren’t well-suited to my demographic. Nonetheless, I’m intrigued by game design and find that some aspects of game design can be applied generally to software design, as well.

I read today a nice discussion of Wii Fit. Shigeru Miyamoto, famed Nintendo game designer who created Super Mario and the Wii, is known for designing for the expression on someone’s face when they play the game — they should smile and be happy, not frustrated. With the Wii, he designs for everyone in the room, not just the game player. I like the idea of using the Wii for fun fitness training. Taking game elements and applying them to boring or otherwise frustrating activities has potential.

“Ideas make games fun, not graphics” — Luke Nihlen

I wanted to take the output of a command and put it in a temporary variable so I can append a string to it. (Trying to script perforce to append something to my client spec without interactive involvement.)

First attempt:
$ p4 client -o > $CLIENTSPEC
c:cygwinbinbash: $CLIENTSPEC: ambiguous redirect
I later learned that redirect is only for files.

Next attempt:
$ TEST=`p4 client -o`
$ echo $TEST
//depot/apps/diamond-calendar-preview/… //sallen-LENOVO/svn/openlaszlo/branches/pagan-deities/diamond-calen //depot/apps/diamond-amaranth-ms2/… //sallen-LENOVO/svn/openlaszlo/branches/pagan-deities/diamond-amaranth- //depot/sandbox/my-webtops/… //sallen-LENOVO/svn/openlaszlo/branches/wafflecone/diamond/client/my-webtops/. ..
which seems to have swallowed line endings and only provided the last few lines of output.

My colleagues at Laszlo, Trebor Fenstermaker and Chris Pettitt and ptw, showed me the error of my ways and provided some good tips. Trebor noted that there is a length limit for shell variables and that line endings will get lost. Chris introduced a combination of pipe and awk -v which did the trick. At first I thought Tucker’s simple echo solution wasn’t working, but he pointed out that I just needed to properly parenthesize my commands.

What worked:
p4 client -o | awk -v append=” //depot/apps/test/… //sallen-test/svn/openlaszlo/branches/pagan-deities/test/…” ‘{ print $0 } END { print append }’ | p4 client -i

Even simpler:
(p4 client -o; echo ” //depot/apps/test/… //sallen-test/svn/openlaszlo/branches/pagan-deities/test/…” ) | p4 client -i


  • Redirect only works for files, there are lots of different types of redirects (> is a simple redirect of stdout to a file, >> will append to a file, 2> will redirect stderr)
  • awk -v will define a variable which can then be used in the awk script
  • You need to properly parenthesize your commands:

    ( p4 client -o; echo “Thing to append” ) | p4 client -i

    The parens will execute the p4 and echo commands in a sub-shell so the output of both will be piped to the next. Without the parens you have said:

    p4 client -o; ( echo “Thing to append” | p4 client -i )

    I.e., run the client command, then run echo to a pipe.

  • Pipe will let you take the stdout of one command and send it to the stdin of another: