Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /var/www/twodee/blog/wp-includes/wp-db.php on line 668

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/twodee/blog/wp-includes/class-wp-block-list.php on line 199

Deprecated: Creation of dynamic property Automattic\Jetpack\Connection\Manager::$error_handler is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-connection/src/class-manager.php on line 91

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Instagram_Gallery::$is_wpcom is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Mailchimp::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php on line 17

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 21

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather::$is_wpcom is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php on line 22

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Gutenberg_Available_Extensions::$wpcom_is_site_specific_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/gutenberg-available-extensions.php on line 20

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 23

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Memberships::$wpcom_is_site_specific_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php on line 24

Deprecated: Creation of dynamic property WPCOM_REST_API_V2_Endpoint_Subscribers::$wpcom_is_wpcom_only_endpoint is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/subscribers.php on line 15

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property Automattic\Jetpack\Sync\Queue::$random_int is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/vendor/automattic/jetpack-sync/src/class-queue.php on line 38

Deprecated: Creation of dynamic property WPCOM_Widget_Goodreads::$shelves is deprecated in /var/www/twodee/blog/wp-content/plugins/jetpack/modules/widgets/goodreads.php on line 33

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /var/www/twodee/blog/wp-includes/script-loader.php on line 348

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_classic_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 347

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 349

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$toolbar_block_side is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 350

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$panels_block is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 351

Deprecated: Creation of dynamic property Advanced_Editor_Tools::$used_block_buttons is deprecated in /var/www/twodee/blog/wp-content/plugins/tinymce-advanced/tinymce-advanced.php on line 354

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Block_Type::$plan_check is deprecated in /var/www/twodee/blog/wp-includes/class-wp-block-type.php on line 333

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/twodee/blog/wp-includes/class-wp-term.php on line 198

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/twodee/blog/wp-includes/class-wp-term.php on line 198
» In Real Life

teaching machines

In Real Life

September 18, 2016 by . Filed under
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383

Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378

Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379

Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380

Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381

Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382

Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
public, writing.

For SIGCSE 2017, I’m reading a bunch of graphic novels related to computer science and technology. First up is In Real Life, by Cory Doctorow and Jen Wang. I share here notes and reactions from my reading.

Spoilers lie ahead. I have to write as much down as I can, because the book is due back to the library soon. I won’t own it, but not because it isn’t worth owning.

Synopsis

Anda is new in town. She’s at the tender age of 16, that time where we start to outgrow our parents. She is not the slim, underdressed heroine that we find in graphic novels that want to sell. Rather, she is short and squat. Romantic love is not on her radar, but she hangs out with boys all the time—in the computer lab. This is a girl who’s about to change. She’s about to become…connected.

A “girl gamer” and clan leader named Liza visits Anda’s computer programming class and shares about an online game called Coarsegold. She invites all the girls in the class to join her girls-only clan. At home, Anda seeks her mother’s permission to join, saying the things a mother wants to hear from her introverted daughter, “A speaker came to my class today and said it would boost my self-esteem to play with a guild. It’s like a team sport.” Moments later, Anda is crafting her avatar, a Warrior named Kalidestroyer.

Other players quickly recognize Anda/Kalidestroyer’s skill. After she fells an army of undead with her spiked flail, clan member Sarge compliments her, muddying the distinction between avatar and human, “I like you, Anda. You’re like me, you’re bloodthirsty.” Ironically, Sarge hates to be called Lucy, her player’s name.

Sarge and Kalidestroyer join forces to destroy gold farmers, who violate the terms of the game by amassing resources to sell to individuals who don’t want to spend the time leveling up and collecting things themselves. Anda silently questions the integrity of this, but Lucy’s attention makes it hard for her to say no.

When Lucy dies in a battle, Anda continues the mission solo and slaughters a room full of busy farmers. But with the fog of Lucy lifted, she has a chance to see one of the gold farmers for who he really is: a 16-year-old Chinese boy trying to make ends meet. His name is Raymond. Though Lucy finishes him off after she respawns, Anda continues to meet with Raymond in the game, privately, learning of his 12-hour workdays at the computer, his injured back, and his lack of healthcare. Anda becomes determined to help him out.

But when Anda’s mother discovers that she has been chatting with “strange men on the internet,” she loses access to the game. While sulking in front of the television, she learns about strikes and collective bargaining, which she believes are key to fixing Raymond’s situation. Anda sneaks online at an internet cafe and tells him how he must organize with his coworkers and demand benefits from their boss. They agree to meet again the next day.

Raymond isn’t there the next day. One of Raymond’s coworkers tells Anda that Raymond was fired for conspiring against the company. When Lucy overhears their conversation, she charges Anda with conspiring with gold farmers. Lucy commands her tiger to go after the gold farmer, but Anda slices the tiger in half. This leads to a showdown between the two friends. Anda wins, if you can call it that.

The clan soon learns of Lucy’s and Anda’s duel and their raids on gold farmers, which violate the clan’s mission. Both of their memberships are suspended. All this turmoil coincides perfectly with Anda’s family vacation to the Grand Canyon. Anda is unable to work up a smile for the camera.

Back home, Lucy videochats with Anda. Lucy tells her that one of Raymond’s friends is looking for her. Anda sneaks out to the internet cafe to find him, but she has to create a new avatar since Kalidestroyer is blocked. She chooses the Sprite, the same class as the gold farmers. But her hopes are dashed when she realizes how weak her avatar is, and there’s no way she’ll be able to find Raymond’s friend with her low experience levels—until Lucy sends her a contact list of new clan members that had been training with them. Protected by their strength and resources, Anda finds Raymond’s friend, who chastises her for foisting Western ideas on a country that she doesn’t understand.

Still, he seeks her help in organizing his coworkers. On Anda’s request, the clan members distribute a manifesto to all Raymond’s gold farming coworkers. The manifesto calls for the employees to unite and seek benefits that will help them all. The plan works, and their employer concedes.

When the complete picture of Anda’s advocacy for Raymond and his coworkers is revealed, she and Lucy are unblocked from Coarsegold. At a parent night for her programming class, Anda is praised by clan recruiter Liza for standing up against bullying, which is enough for Anda’s mother to restore her internet access.

In the closing scene, Lucy and Anda are inducted as full clan members in a grand ceremony. Raymond shows up to dance with Anda. He has found a new gold-farming job, one that lets him spend time actually playing Coarsegold in order to harvest upper level resources. The ballroom empties when Lucy suggests they all go on a raid.

Themes

The book is called In Real Life, so we can pretty confidently say that one of its themes is the intermingling of the game and the outside world. Indeed, we see many examples of this:

Another major theme is the internet’s power to organize. Anda’s clan in Coarsegold draws in a profile of player that you don’t often find two of in the same hometown: a girl gamer. But within the game, scores of such women gather together in raiding parties. At the end, the clan members are able to distribute the manifesto out to the employees almost instanteously. Doctorow admits in the introduction that the ease of organizing is not necessarily positive: “thugs, bullies, racists, and loonies never had it so good.” He compares the cost and administration of activism in the 1980s the present day, robbing us of all our excuses for not taking a stand. These days you can still sit while taking a stand, says this book.

Doctorow additionally hopes, “that readers of this book will be inspired to dig deeper into the subject of behavioral economics and to start asking hard questions about how we end up with the stuff we own, what it costs our human brothers and sisters to make these goods, and why we need them.” I think this hope was clouded a bit by the fact that physical consumerism wasn’t a large part of the story. Sure, there was some ice cream, a few television binges, and an allusion to cheap manufacturing of zippers. But the connection between stuff and real human labor was an invisible bridge, if I ever saw one. Rather, the laborers were mostly gold farmers and the stuff was virtual stuff. Sadly, virtual consumerism just doesn’t tug at the heartstrings like physical consumerism. Probably because it’s all fake, and there are no chemicals and fumes involved. Maybe I’m just not young enough to be tempted virtual goods, but I don’t see them valued to the same degree as physical ones.

Conclusion

In Real Life shared the story of a girl who joined an online game to be somebody she was not in the physical world. Finally in a place where she was confident and respected, she had a chance to reveal her full human self, which probably wouldn’t have happened at school or even the D&D club. This is the power of the internet. It’s the door to many worlds, enough for each of us to be president or astronaut.

As a computer science educator, I could see myself using this book in an ethics course or in our orientation course for first-years. The technical content is low, but the conversation starters are many.