Cogito, Ergo Sumana

picture of Sumana's head

Sumana Harihareswara's journal

(2) : "Trade Me" and Courtney Milan: Today I snarfled up Trade Me, a new contemporary romance novel by Courtney Milan. It stars a Chinese-American woman studying computer science at UC Berkeley. It's about class and classism, deconstructing the Prince Charming/billionaire trope in romantic fiction, Bay Area tech, ally fails, how to deal with cops, authenticity and adaptation, safety and freedom, trust, parents, and work. And one of the main secondary characters is trans, and all the physicality in the relationship is super consensual, and there is a kind-of reference to Cake Wrecks, and (maybe only I see it) to Randall Munroe's "What If?" blog. I link it thematically to Jo Walton's The Just City, Ellen Ullman's The Bug, and the good parts of Amy Tan's The Joy Luck Club. It's pretty great. (ROT13'd trigger warnings that are spoilers: qvfbeqrerq rngvat naq gur arne-qrngu bs n cnerag.)

I'd heard a bit about Milan before via metaphortunate and rachelmanija and enjoyed the Ask A Man blog, but hadn't gotten around to reading a novel by her yet. Then I heard that Trade Me would star someone who sounds far more like me than a lot of protagonists do, and decided it was time to try out this whole ebook-reading thing. Glad I did!

I know more and more romance authors are writing books with protagonists like me these days, not just Milan, and I should check them out. (Milan, like me, likes Zen Cho, and she further recommends another lawyer romance author, Julie James. According to Milan, James "writes ladies who unapologetically have careers and who care about those careers and don't have to sacrifice them in a fit of self-immolating pain at the end of the book." Hurray!) But I'm going to dwell a moment on how fascinating I find Milan in particular.

First off is the software thing. She wrote and wants people to reuse a chunk of GPL'd software to autogenerate links to a particular book at multiple bookstores. Also she used to use Gentoo. Of course she gives her readers permission to strip DRM from their copies of her books. Basically I would not be surprised if there is super flirty pair programming or a double entendre in a bash script in a future Milan book.

Her FAQ goes into more detail on what she does and why. She's neurodiverse, she encourages fanfic, and she has interesting ideas about the romance genre, diversity, and pay.

She brings an analytical approach to all aspects of her work (informed by her past as a chemist, programmer, and lawyer), and is willing to frankly and transparently talk about circumlocutions and the ways powerful systems, organizations and people -- deliberately or inadvertently -- suppress free speech. As a woman of color ("half-Chinese" in her words) she's also especially aware of the importance of writing fictional representations of women of color in STEM, and of fixing broken standards that lead to unequal representation.

If you are into legal minutiae you might enjoy her post on impotence and annulment; even if you aren't, you might like to see her hypothesize a bit about Regency vase cartels. I totally want to attend the workshop she did providing "a very broad overview of how people thought about property throughout history. When she writes historical romance, she writes people who could have existed as outliers; "I import modern morals into my historical romances. In my mind, that's a feature, not a bug."

Since a great "Must Pleasures Be Guilty?" WisCon panel I did in 2010, I've been particularly interested in new perspectives on the stigmatizing of intentionally pleasurable entertainment, and Milan's "The stigma of happy (a rant)" provides! Milan respects pleasure as a good and, in her work, aims to illustrate the work it takes to get to happy. She can snark about the "shame" of reading something pleasurable (and her fake book covers are spot-on), but she can also go deeper and show that another world is possible, one where we can have healthy, respectful conversations about women's sexual desires.

Milan and I are both geeky feminist Asian-American women who went to Cal and are interested in law, writing, and programming. Trade Me cost USD$3.99 (ebook); I can't put a price on what it feels like to read fiction meant for me, by someone who's only a few alternate universes away from me.

Filed under:

: Programmers Who Then Do Something Really Different: I recently learned that Courtney Milan, a romance author who's worked as a lawyer and programmer (much like sci-fi author Ken Liu), has also written some ecommerce-related PHP code and released it under the GPL, which makes my day.

I try to keep a mental list of people who have done substantial programming or computer science work and then taken their expertise to a very different field of endeavor, such as music, activism, electoral politics, or fiction writing. We're used to hearing about programmers moving into tech management (including founding startups or managing open source communities) or teaching engineering, but I like to remember that programmers also run for Congress and write TV shows.

The list goes on and on (and I am oversimplifying labels here and leaving a zillion people out -- this is just some people I have heard of):

  • Randall Munroe, cartoonist
  • Vienna Teng, musician
  • Jonathan Coulton, musician
  • Ken Liu, fiction author
  • Charles Stross, fiction author
  • Darcy Burner, Congressional candidate & activist
  • Seth Schoen, activist
  • Vernor Vinge, fiction author
  • Ellen Ullman, fiction author
  • Ryan North, cartoonist
  • Neal Stephenson, fiction author
  • John O'Neill, fiction editor
  • Naomi Novik, fiction author
  • Kristofer Straub, cartoonist
  • Leonard Richardson, fiction author
  • probably Jerry McNerney, Congressional Representative
  • Jane Espenson, screenwriter
  • Courtney Milan, fiction author
  • Ken MacLeod, fiction author
  • Zoe Keating, musician
  • Kathy Sierra, horse trainer & interdisciplinary educator
  • Mel Chua, education researcher
  • James Vasile, lawyer
  • Valerie Aurora, activist
  • Mary Gardiner, activist
  • Danny O'Brien, activist
  • Aaron Swartz, activist
  • Diana Gabaldon, fiction author
  • Luis Villa, lawyer
  • Jamie Zawinski, nightclub owner
  • Fureigh, musician
  • Danni (friend of mine), bike mechanic

This is trivia, and I am temperamentally suited to accumulating trivia. But I also like remembering that everyone I meet may have skills I don't immediately see. This bartender, that full-time parent, the candidate for city council whose junk mail I just got -- this might be the second or third or fourth career for any of them, and if we got to talking, maybe we'd all get super animated as we told stories about hilarious bugs.

(0) : Catching Yourself: Friday night, on a date with my husband, when it came up in a conversation about class and geography and family, I tried to remember his ex's name and couldn't.

Earlier today, talking with a friend about the layers of MediaWiki's infrastructure, I momentarily forgot the term "Gadgets."

Nothing else quite like that moment, realizing that when you weren't looking, your mental neighborhood changed, and you changed with it.

(0) : Unlocking The Funhouse (Mirror): In technology (as in many communities), capitalism makes it hard for us to understand what we're good at. A few source texts, and then a sketch of some contours.

  1. The "No true Scotsman" fallacy.
  2. Shweta Narayan on category structure, cognition, and side effects.

    We tend to have this idea that categories, like "bird" or "food" (or like "human" or "white", which is what this is all really about) are like solid boxes. Entities are either in them or out of them, with a clear and unchanging boundary, and everything inside is an unsorted & equal jumble, and everything outside ditto.

    This notion gets strongly underscored by our cultures, so it can be hard to ... er... unpack. But the fact is, cognitive categories aren't actually like boxes. They have internal structure, and fuzzy boundaries (which people can draw in different places, and move depending on context), and these things matter hugely in how we think about and deal with oppression....

    we need to be aware of category-centrality as well as membership....

  3. Huckleberry Finn, specifically:

    "All right, then, I'll GO to hell"--and tore it up.

    The nuance I still ponder is: Huck doesn't say his way is right. He decides he's wrong but he's going to do it anyway. He decides to be a hypocrite. He does not see himself as articulating a new consistent ethical framework under which he is morally right; he is accepting the status and the consequences of his actions in the religious framework everyone's taught him, but he decides not to let that get in the way of what he feels compelled to do. It's a different kind of resistance.

    I heard an echo of this moment in "The Rundown Job" (Leverage, S05E09), when a government official tries to get Eliot, who used to do wetwork, to leave the Robin Hood-type vigilante outfit he's with now:

    Colonel Vance: The world can always use more good guys.
    Eliot: Yeah, well, too bad we're the bad guys.

  4. "Why Job Titles Matter To Me", a piece I wrote last year.
  5. Deb Chachra on discomfort with the identity "maker" and the primacy of "making".

    I educate. I analyse. I characterize. I critique. Almost everything I do these days is about communicating with others. To characterize what I do as 'making' is either to mistake the methods -- the editorials, the workshops, the courses, even the materials science zine I made -- for the purpose. Or, worse, to describe what I do as 'making' other people, diminishing their own agency and role in sensemaking, as if their learning is something I impose on them.

  6. "MDN MozFest outcomes: self-teaching", a summary by Jeremie Patonnier that said one of the tools that self-directed learners most want is "Tools to measure/evaluate one's level of knowledge."

You may not be able to tell from this blog that I, like many people in tech, do experience self-assessment vertigo. Software engineering includes a zillion skills (it's clearly not just computer science) and no one knows all of them. We're so bad at assessing who's good at what that we end up pronouncing that the only way to tell whether someone is "good" is to work with them, or we use "culture fit", personal recommendations, and other easier-to-grasp handles as lossy proxies. The bizarre informational distortion of the job market makes it even harder to get a clear picture of one's own skills, "objectively" and relative to others. Even if, like me, you are not currently looking for a job as a programmer!

Outside of academia and Hacker School, the primary way I hear people talk about technical skill assessment is in relation to the job market or job titles. (And even in academia it's early days yet in teaching software engineering.) In open source we sometimes make one-time assessments as to whether individual people are ready to become maintainers, but other than that, the discourse I hear is about matching candidates with paid employment, and so we assess ourselves and each other in terms of potential job titles.

Just as there is no inherent genre to books (the "genre" of a book is a way to market it to the readers who would like it) there is no inherent category "backend engineer" or "business analyst" etc. That's just a convenient name that we have socially constructed to kind of correspond to a set of skills. (And so the goalposts move so easily it's as though they're on casters freshly sprayed with WD-40 by someone shouting "But no true hacker...")

Within individual organizations, there's some consistency in what a particular job title means. But the job descriptions the public sees are often wishlists that don't distinguish between "desired" and "required" qualifications for a particular title. And a "hey you're interesting for position x" email from a recruiter gives us a data point, even if it's super wrong, and maybe even so wrong that it is demoralizing to candidates! ("Shit, the only recruiters who reach out to me are so dumb and desperate that they don't count" or "Crap, I still look like a foo instead of a bar".) We get a lot of noise mixed in with the data.

My particular set of skills does not correspond to any particular well-known bucket, and I should not let that make me feel bad.

Buuut of course socially constructed things are real too! And it is useful to know whether I am correctly performing the role of "fullstack developer" or "devops expert" or "community manager", to know whether I can attract the particular kind of attention I want! And it's useful to know when I should say, "yes, according to the tech industry's dominant hierarchy, the work I enjoy and think is most important marks me as low-status, unintelligent, and ignorable. So what."

Even if I can get away from looking at myself as a good little worker bee, impostor syndrome and Dunning-Kruger both affect self-assessment. While I believe I am fighting both, it may be unavoidable that the only way to get better at self-assessing a skill is to get better at the skill in question, reflecting all along the way. Thus: a code review group. (Check out how I briefly describe my programming skill level in that post, by referring to what I can and can't do.) Thus: my Mailman work. Thus: blogging. Sketching out where I am so I can see where I've been. These points of data make a beautiful line.

(2) : My Mailman Adventure Continues: I have now submitted two merge proposals to Postorius, the administrative web UI that Mailman users will use to manage their list subscriptions and moderate messages. I've also submitted two pull requests to HyperKitty, the "archiver" web UI that Mailman users will use to browse list archives. (Launchpad calls my submissions "merge proposals", GitHub calls them "pull requests", old-school hackers call them "patches", and I call them "yay".)

I'm a lot more comfortable with Launchpad and Bazaar now. "Team branches" section of the Launchpad help, "Bazaar for Web Devs", and the test Launchpad site helped me get into the swing of things. I also got to use git cherry-pick and git rebase -i in the course of my work, which put a bit of swagger in my figurative stride.

At Wikimedia I deeply absorbed the lesson of internationalization and localization (i18n/l10n) -- you never hardcode strings in a user interface! Instead you call a messages store so you can present the translation of that string in the user's preferred language. So it came easily to me to make those kinds of improvements to Postorius and HyperKitty: going through the HTML templates, and marking phrases like "Previous email" with special syntax denoting them as messages to be translated.

I started off trying to use a regex to change or at least find all the user-visible strings, but that got super tiresome (edge cases, syntax, etc.), and I also ended up making a few grammar-type improvments along the way. So I got a lot of quality time in with emacs these past few days. I hadn't anticipated that systematically reviewing all the templates would give me such a thorough overview of HyperKitty and Postorius, but that was a nice side benefit as well. As I went, I noted the line numbers of some particularly confusing bits, so I can ask questions in IRC later.

I've done some wiki gardening and am thinking about what to do next. I'd like to be fixing some of HyperKitty's outstanding bugs, since HyperKitty's on the critical path for the 3.0 release, but I'm not sure which of them are still reproducible; many of the bugs were reported years ago. So it would make sense for me to triage those bugs, but to do that I'd need a working HyperKitty installation. There's an incompatibility between the latest HyperKitty code and the latest Mailman core code, so I'd have a bit of trouble setting up a test install. (That's also why the demo site is running an RPM based on the last git tagged version, which is not the most recent commit. I am glad that this helped me learn about tagging in Git!)

Since I haven't yet heard a similar "the master branch of Postorius doesn't install/run/integrate with Mailman master" pronouncement, and Postorius is also a web app whose readiness is a dependency for the Mailman 3 release, I'll try concentrating on that. My current plan is to set up an installation, pick another open bug no one else is working on, and try to fix it.

(0) : Ruthanna Emrys, A Writer I Like: Are you reading the fantasy or science fiction of Ruthanna Emrys? I recommend it.

I found out via Ada Palmer's glowing review about "The Litany of Earth". This is your way into Emrys's work if you want stories about secrets, furtive faith, government mistakes, and the silenced Other from a well-known narrative. "The Litany of Earth" hits about two thirds of my "some things I like in fiction" list, especially "recognizing and even celebrating the work of underappreciated people."

Sometime later in 2014 I wandered across "Seven Commentaries on an Imperfect Land", which is a good place to start with Emrys if you like stories about religious communities, hospitality, fighting illness and drought, girls, women, and making friendships across boundaries. People familiar with fables or Judaism will get something extra out of the allusions. Among other things I like in fiction: "point-of-view character outwitting or outworking a terrifying antagonist."

Then yesterday I read "Exposure Therapy" (Part I, Part II). If you like fast-moving prose, Harry Potter/Global Frequency-style "you have been selected for a special secret mission" plots, good-faith cooperation, scientists, and phobia, check it out. It has "closely observed characters going through uncomfortable changes in life and identity," which I like, but the reason I particularly recommend it is that it hits with a whanging great mallet another of my favorite tropes: the (eventually triumphant) struggle to empathize with the Other.

All three of these stories are, in some way, about one of the most important themes in speculative fiction: empathy with the Other, especially if we get to see the struggle it takes to get it. (The power of that trope, by the way, is a big reason why the Star Trek: The Next Generation fable "Darmok" and Deep Space 9's "Duet" make us cry, and why Orson Scott Card's Pastwatch: The Redemption of Christopher Columbus is genuinely readable.) The personal is political here; temperamentally and ideologically I want to treat others as I wish to be treated, respectfully, assuming good faith until counter-evidence arises, reciprocating with mutual aid, and inviting to join in common causes.

If her fiction is any guide, Ruthanna Emrys gets that. (Also, at a recent WisCon, she enjoyed the "Imaginary Book Club" panel that my friend and I originally conceived, so clearly she has good taste.) I look forward to reading more of her work!

Filed under:

: Political Fanvids: Last week I saw a video about short online videos that critique film, or, as the narrator calls them, "video essays". (Content warning: includes Isla Vista killings video.) I was annoyed that the narrator said there weren't many such videos that take a political perspective challenging the original sources, so I sent him a bunch of links via Twitter. (Tweets: 1, 2, 3, 4, 5, 6, 7, 8, 9.)

For specific examples of videos that criticize film(s) politically, I mentioned "Hey Ho", "...on the dance floor.", "How Much Is That Geisha In the Window", "The Price", "Handlebars", "Hourglass", "Women's Work", "Vogue", "It Depends on What You Pay", and "Thrift Shop" (notes). I also pointed Lee at some additional sources of recommendations: some "metavid" listings on Fanlore, the Museum of the Moving Image's 2013 "Cut Up" exhibit, the "vids with a message" playlist at a WisCon vid party, and vids-related communities on Dreamwidth. And I mentioned legal advocacy regarding fanwork, the history of vidding since 1975, and more resources for video scholars.

You can probably guess how I feel about a man being surprised that there's a bunch of relevant work, mostly by women, that he's overlooked.

: More Fanvids: I delved into the Festivids small fandom vid exchange archives (yay tags) and found some cool stuff to share.

Funny: a vid about The Thick of It emphasizing physical comedy and incompetence.

New perspective: "The Ballad of Wesley Crusher" (the vidder's notes point out that young Wesley's fascination with exploration and discovery "gets translated into an adoration for Starfleet, which is exactly the wrong place for him").

Tearjerkers: women's friendship in Community and Parks & Recreation (and check out the discussion of characterization of women in the comments); a vid about an Indian women's sports movie I have never seen and now want to; the triumph of Leslie Knope; the loyalty of Gromit to Wallace; courage in Apollo 13.

: A Few Technical Talks I've Really Liked:

Someone at Hacker School asked people to list programming/technical talks they'd liked, and to include links, context, description, and what makes it great. I said:

  • A Dozen Databases in 45 Minutes -- audio (click "Download audio of this session"), liveblog. You are a developer confused about what data storage tool to use. If your understanding of data storage tops out at "Mongo is webscale" or "mysql + memcached = win"; then this talk is for you." So the speaker gives a whirlwind tour of several database management systems, including the first explanation of why you'd give up consistency for performance that has ever made sense to me!

  • Cache me if you can: memcached, caching patterns and best practices -- slides, video. You are a developer who has heard that you should cache things and has worked on systems that have deployed to production. The speaker explains how memcached works, what it DOES NOT AND CANNOT do (I love that -- the use case is so much clearer to me now), and walks you through using it.

  • Python Epiphanies -- exercise, video. You are a Python developer who's written a few thousand lines of code, cumulatively, and you aren't clear on what decorators, iterables, partials, generators, and/or namespaces really are, or when/how to use them. This tutorial walks you through those. I had lightbulb moments here around how most things I'm used to doing in Python are syntactic sugar over double-underscore-methods, and I am more comfortable understanding and using the features I mentioned. (Also check out "Loop Like a Native" for more similar enlightenment.)

  • Freedom, Security, and the Cloud -- slides. You have to deploy code in the cloud and sometimes you pay cloud platform/hosting providers, and you want to understand the current security/privacy/sovereignty threats and solutions. The speaker gives you a clear (if chilling) understanding of the current systems and their vulnerabilities, and what we can do to mitigate risk, while also being super funny. Audio will be available someday soon.

  • Fundraising: Under the Hood -- video. You are a Wikipedia editor or reader who has seen those fundraising banners; you want to understand the system that displays those banners, interacts with payment gateways so donors can donate in a zillion currencies and countries, prevents fraud, double-checks the accounting with payment processors, and notifies everyone of everything. I like that the speaker demonstrates why and how a big system works by helping you see all the problems that the components solve.

  • Wikimedia Foundation January 2014 site performance update -- video starts ~37 minutes in?, slides. Context: you are a Wikimedia Foundation worker or Wikimedia volunteer who wants to understand why we should prioritize the speed of site response. I like the way the speaker contextualizes the importance of the work and helps less technical people understand terminology.

  • Designing Poetic APIs -- video, slides. You are a developer who sometimes has to create APIs or libraries, and you'd like a framework for the decisions you have to make. The speaker gives you useful principles with good and bad concrete examples for each.

An incomplete list for sure! I would love for other people to publish similar lists on their blogs. And I try to do similar things in my speeches, in case that is helpful.

Also, I wish these speeches had transcripts. So I have posted on the Transcripts for Everyone! community to request that!

: Signs And Language: I spent the summer of 2001 in Russia, where I saw this movie theater advertising Pearl Harbor with Ben Affleck (the banner, transliterated) and Crouching Tiger, Hidden Dragon (the marquee, translated). If you don't yet know Cyrillic, maybe you can use this to learn the letters "f", "p", "l", and "r"! Also during this period I saw a transliteration of "Erin Brockovich" (which looks very wrong and should be "Erin Brockovna") and a translation of "X-Men" (as "People X").

A few years later, in southern India, I saw that enterprising advertisers were giving away (read: affixing to homeowners' gates) "No Parking" signs ... that is, small metal sheets printed with 90% ad, 10% "No Parking". The ad I photographed particularly confused the issue by proclaiming: "Healthy & Tasty cooking oil: No cholesterol / No trans-fat / No parking".

: Hacking on Mailman using Launchpad and Bazaar: I am starting to hack on Mailman, per my plan for early 2015 -- and along the way, I'm also learning how to use Launchpad and Bazaar.


To quote maintainer Barry Warsaw's architectural overview, "GNU Mailman has been around since the early 1990s, when John Viega wrote the first version to connect fans with the nascent Dave Matthews Band, the members of which he was friends with in college." DAVE MATTHEWS BAND! I think this is amazing.

The developers just released 3.0 beta 5, Warsaw saying the 3.0 release is "really quite close now". As steering committee member Terri Oda explained and as Warsaw detailed when announcing the first beta of Mailman 3 in April 2014 (and in the architectural overview), the new suite has some cool new abstractions and a bunch of great new functionality.

Here are some pages I've found helpful while diving in. (Many are outdated; when the wiki conversion finishes up, I hope to do some gardening and updating.)

I've also enjoyed reading Warsaw's blog, and learning more about the weird ways of ISPs and email providers. As one exchange on the Mailman support list went:

This morning all of my subscribers with aol addresses were automatically unsubscribed from my list.
Why today? I thought all the DMARC issues had been resolved in the latest mailman version, and it's been 8 months now since the changes at AOL.

--Any suggestions?

AOL has been having serious delivery problems. It's not just you.

My suggestion would be to sigh wearily and add the subscribers back in.


Mailman developers host their code, do code review, and track bugs on Launchpad, which Canonical runs.

I'm more familiar with Gerrit, Bugzilla, Trac, FogBugz, and GitHub, but I know Launchpad some. A few years ago, I wrote an overview of how Launchpad developers review each other's code, including the "merge proposal" concept (very roughly like a pull request; example). And I have used the bug tracker in the past -- it's similar to other bug trackers. So I have already been a tourist in Launchpad, which makes it easier to jump in as an expat. I'm still working on understanding the interaction of series, milestones, and releases with branches.

(I am very lucky in that I have a spouse who used to develop Launchpad itself (specifically the API) whom I can ask plaintively for help.)

You can create a test project on staging -- I will be doing this to learn Launchpad and Bazaar better. By the way, the RSA fingerprint (for when you upload or download code via the command line) changes, possibly every week when they wipe test data, and there's no place to verify that fingerprint.

Launchpad works best hand-in-hand with....


Canonical created Bazaar, a distributed version control system, several years back. I hadn't used it before starting to work on Mailman.

Again, I'm lucky -- Leonard worked in Bazaar for years (I am rather better than he is at git, so here's where the tables turn).

Some Bazaar resources (I have not looked at all these yet):

I am overcoming the differences between Bazaar ("bzr") and Git, but slowly. For instance: in Git, when you clone a repository, you're also getting all the branches. In contrast, with Bazaar, you download each branch separately, and they go into separate directories. For instance, if you want the foo and bar branches of testproj, you'd make local directories to house them, like:

$ mkdir testproj
$ mkdir testproj/foo
$ mkdir testproj/bar

Also, to oversimplify, when you do a merge in Bazaar, Bazaar just cares about merging the diffs -- you won't necessarily get all the commits (and commit messages) from the other branch grafted onto your branch. Or at least this is what I've run into -- I'm working on it!

: Snapshots of Yesterday: A small gallery of photos from yesterday.

calculating how much donors had matched

And once I knew that Dreamwidth was about to donate $7,000 to complete my $15,000 matching challenge:

holding the envelope

beginning to mail the envelope

dropping the envelope into the mailbox

just mailed the check!

And then I called Christie and Kirsten and Reid, with hope and joy.

I am so grateful to Dreamwidth, to the 90+ donors who gave in this campaign, to the Stumptown Syndicate, to the advantages I've had that have allowed me the extra income that I could funnel into this cause, and to all of us who are working on these shared goals. Thank you.

: Five Things Make a Post:

Feminist joke

This morning, Leonard worked on making some cinnamon rolls. "It's really hard to find yeast," he said after venturing to our neighborhood shops. My instant reply: "Maybe you could use early money instead."

"Just drop some coins in some warm water?"

"Yeah, but they have to be from about 1800."

Lesser-Known Uniformed Services

Karnataka descendant Dr. Vivek Murthy got sworn in on his family's Bhagavad Gita to become the current United States Surgeon General. Go Kannadigas!

So, when I was younger, the most interesting thing about the Surgeon General was that the title pluralizes to "Surgeons General." Right now I think the most interesting thing is that the US Surgeon General oversees the "6,700 members of the U.S. Public Health Service Commissioned Corps" (which includes, like, dentists, veterinarians, and some engineers). There are five (official) branches of the US Armed Forces, but the federal government also has two additional uniformed services, the United States Public Health Service Commissioned Corps (history) and the National Oceanic and Atmospheric Administration Commissioned Officer Corps.

And one place that these public health professionals learn is the Uniformed Services University of the Health Sciences. Where for about half USU's medical students, the first time they encounter military life is on campus (including wearing uniforms to class every day). On the other hand you have adults who have never lived in civilian housing before (as I interpret based on this "student housing" advice).

What a fascinating day-to-day atmosphere that must make. And speaking of atmosphere, yes, there is a National Oceanic and Atmospheric Administration Commissioned Officer Corps.

During the years before the First World War, all [Coast and Geodetic Survey] work was conducted by civilians even though shipboard personnel wore uniforms that were virtually indistinguishable from Naval uniforms. With the entry of the United States into the war in 1917, the commissioned service of the C&GS was formed in order to eliminate the anomalous condition that arose during the Civil War, which placed civilian assistants accompanying armed forces in jeopardy of being considered spies if captured by the enemy.
Fun fact: the NOAA is -- like the Census Bureau and the US Patent and Trademark Office part of the US Department of Commerce. Another fun fact: the NOAA Commissioned Officer Corps rules for personal appearance and personal gear includes the word "Scrunchies".

Big Endeavor Changes

Someone I know as an open source community manager is leaving her job to go get a Ph.D. She'll be researching collaboration, innovation, and organizational learning in the Linux kernel community -- neat!

Someone I knew as a sociologist concentrating on organizational theory now works as an attorney for the US Department of Justice fighting organized crime and gangs. Wow!

Feminist poem

Don't be shy
Take a look
And apply
The Ada Initiative is growing! Announcing our search for a new Executive Director

Blast From The Past

On New Year's Day a dozen years ago I shared a solution to an exercise from Gödel, Escher, Bach.

: Stumptown Syndicate Challenge Match Extended to Tomorrow:

We extended the deadline. You have one more day to make me write a $15,000 check for inclusive tech instead of $6K. The new deadline is December 31, 4:30pm ET/1:30pm PT, so I have time to drop off the envelope at the post office and get it postmarked 2014.

Updated 31 December: We made it!

: Various Thinky Or Funny Links: Enjoy!

(2) : Yuletide Recommendations: Every year the Yuletide fanfic exchange delivers a bounty of fun and goodness, and enables me to refuel my participation in fandom. (Last night at the Hacker School holiday potluck (I brought beet juice), I ended up having at least one earnest conversation about fan fiction and other transformative artwork.) I myself have, as they say, committed fanfic a few times, but right now I'm much more a reader and cheerleader than a fiction-writer. So let the recommending commence!

In the subverting childhood mass-media memories category:

The Mystery of the Third Storey (3506 words) by Anonymous
Chapters: 1/1
Fandom: Jane Eyre - Charlotte Bronte
Rating: General Audiences
Warnings: No Archive Warnings Apply
Relationships: Jane Eyre/Diana Rivers
Characters: Diana Rivers, Jane Eyre, Edward Rochester, Bertha Mason
Additional Tags: Alternate Universe - Detectives, Alternate Universe - Canon Divergence

Diana Rivers is a promising young detective in the sleepy village of Morton. One day a letter arrives from Jamaica, which leads her to journey across the country to Thornfield Hall, where a strange mystery awaits her.

The Birds of the Sky and the Beasts of the Field (1865 words) by Anonymous
Chapters: 1/1
Fandom: The Sound of Music - Rodgers/Hammerstein/Lindsay & Crouse
Rating: Teen And Up Audiences
Warnings: No Archive Warnings Apply
Relationships: Baroness Elsa von Schraeder/Maria (Sound of Music)
Characters: Maria (Sound of Music), Elsa Schraeder
Additional Tags: Alternate Universe, Yuletide Treat, Misses Clause Challenge

Maria leaves the convent, but not to be a governess to seven children. There's someone else who needs her.

The Affair of the Filched Fic (1958 words) by Anonymous
Chapters: 1/1
Fandom: Mathnet
Rating: General Audiences
Warnings: No Archive Warnings Apply
Characters: Kate Monday, George Frankly, Graciela Hernandez (OFC), Nina Hernandez (OFC)
Additional Tags: Yuletide, Characters Writing Fanfiction, Case Fic

A Yuletide fic goes missing. Set in a glorious AU where Yuletide exists but everyone still has 80s hair.

In the mpreg is hot category:

So Goddamn Beautiful (4693 words) by Anonymous
Chapters: 1/1
Fandom: Saga (Comics)
Rating: Not Rated
Warnings: Creator Chose Not To Use Archive Warnings
Relationships: Alana/Marko (Saga)
Characters: Alana (Saga), Marko (Saga)
Additional Tags: Alternate Universe, Mpreg, Non-Chronological

Or, Twelve Things That Alana Didn't Expect When Marko Was Expecting

Snapshots from an AU where it's Marko who got pregnant instead of Alana.

In the awwwww gruff curmudgeons opening up category:

Training Styles (1268 words) by Anonymous
Chapters: 1/1
Fandom: Protector of the Small - Tamora Pierce
Rating: General Audiences
Warnings: No Archive Warnings Apply
Characters: Keladry of Mindelan, Wyldon of Cavall, Nealan of Queenscove
Additional Tags: Post-Series, New Hope, Training, Banter, Mentor/Protégé, Yuletide, Yuletide 2014

Kel has an unexpected visitor.

Mind Over Matter (1108 words) by Anonymous
Chapters: 1/1
Fandom: Hot Fuzz (2007)
Rating: General Audiences
Warnings: No Archive Warnings Apply
Relationships: Nicholas Angel/Danny Butterman
Characters: Nicholas Angel, Danny Butterman
Additional Tags: Fluff, Pre-Slash, Missing Scene

Mainly, Nicholas just wanted Danny to come out of the coma.

In the someone in this universe gets to be happy?! category:

Unsteady Ground (10108 words) by Anonymous
Chapters: 1/1
Fandom: The Thick of It (TV)
Rating: Mature
Warnings: No Archive Warnings Apply
Relationships: Nicola Murray/Malcolm Tucker
Characters: Nicola Murray, Malcolm Tucker, Terri Coverley, Glenn Cullen
Additional Tags: Alternate Universe - Canon Divergence, Season/Series 03, Infidelity

Malcolm stops the second he's through the door, stares right at her before demanding, "Am I going to enjoy hearing your explanation for how you've lost your fucking mind?"

"Yes," Nicola says, the bitterness rising in her throat, ignoring Terri standing right behind Malcolm, able to hear every word. "Because clearly that's what happened, I decided to end a twenty year marriage to the father of my kids on a whim. Got me all figured out, haven't you." She wants, so badly, for her voice to stay hard and dismissive, but despite Nicola's best efforts, a wobble slips through right at the very end.

(AU, set during Series 3.)

In the pastiches so spot-on they feel like missing scenes from the original category:

Odds Against (2568 words) by Anonymous
Chapters: 1/1
Fandom: Robot Series - Isaac Asimov
Rating: General Audiences
Warnings: No Archive Warnings Apply
Characters: Susan Calvin, Alfred Lanning
Additional Tags: Case Fic, Robots

A steel factory robot starts predicting the results of horse races, with perfect accuracy. With Alfred Lanning flapping wildly, Susan Calvin investigates.

floraphilia (1343 words) by Anonymous
Chapters: 1/1
Fandom: Hot Fuzz (2007)
Rating: Teen And Up Audiences
Warnings: No Archive Warnings Apply
Relationships: Nicholas Angel/Danny Butterman

Nicholas grieves. Danny helps. (Kind of. Not really, but it's the thought that counts, right?)

And finally, because it's Yuletide, in the only this character could give this other character this specific gift category:

Soft Offering (1034 words) by Anonymous
Chapters: 1/1
Fandom: Imperial Radch Series - Ann Leckie
Rating: General Audiences
Warnings: No Archive Warnings Apply
Characters: Mercy of Kalr, Justice of Toren One Esk Nineteen | Breq

A gift from one ship to another.

Filed under:

: *crackle*: After we watched The Ref and ate our Thai takeout, I web-sought a fire log video and started playing it. "It's amazing that people make these," I said. Beat. "I am sort of waiting for Mike Gravel to show up at any moment, though."

A few minutes later: "Is there a problem with the net? Because the video paused. And I didn't stop the fire."

Filed under:

: Textboxing Day: I've known Brendan for more than a decade. Today I went back and read a bunch of his old blog posts. I clicked back and back and back, through jobs, girlfriends, cities, games, stories. He and I both blog less frequently than we used to, and I am indulging in nostalgia.

Mixed in with the big milestone and goal announcements, with anecdotes and narrative experiments and songs, with autobiography and eulogy and documentaries of courage and pain, are things I didn't know were going to be big deals: when Google Summer of Code started, or when Brendan joined Twitter.

Some things haven't changed; I too am tired of the backspace key's behavior in browsers. And Brendan successfully gloated about liking Calamity Jon before me, as I only discovered Calamity Jon via "Just One More Thing" this year. I kept seeing accurate predictions as I read back; for instance, we did get both a Netflix for books and an iTunes for TV show episodes.

He wrote about transparency in art, about "consideration and logical rigor, about resisting the cheap shots and the urge to smirk", about graph-of-nodes nonlinear narrative structure, about epistemic closure, about changing your vocabulary, about his origins as an artist, a role-player, and a citizen of the commons.

Nine years ago Brendan quoted Jake Berendes:

flawlessness is not the goal. a compulsive habit of creation matched with an editorial mindset is a far more viable goal.


Brendan, thank you for your habit of creation, and for your taste, and your kind voice and your unwavering support. Frequently, just as I hit Publish on a new post, I think of you and hope you will like it; I hope you like this too, though I think you may blush.

(1) : Good And Bad Signs For Community Change, And Some Leadership Styles: So let's assume you want to improve a particular community, and you've already read my earlier pieces, which I am now declaring prerequisites: "Why You Have To Fix Governance To Improve Hospitality", "Hospitality, Jerks, and What I Learned", and "Learn Tech Management in 45 Minutes" (all the way through the Q&A). And let's assume that you care about the community having a good pathway to inclusion, and that the community is caring or collaborative, rather than cordial, competitive, or combative.

When I look at an open stuff community, here are some factors that make me optimistic:

  • people with social capital in the project, whom other participants respect, support my goals in private conversation
  • even better: such people have reached out to me, of their own initiative, about it
  • even better than that: such people are already taking real action
  • I have personal relationships with at least one influential project leader
  • I am in the private spaces where project leaders talk
  • either the project's still new and the norms are in flux, or there's a new initiative or subcommunity where I can influence norms or even amend the rules of the game before they jell and harden


  • the founder of the project exercises charismatic/inertial authority and either does not support my goals, or is too afraid of conflict to take real action
  • per Selena Deckelmann's advice, "If someone is treating you with contempt, or you are using contempt in arguments, that's a big warning sign."
  • there is a private space where important conversation happens and I'm not invited
  • I, or someone else who shares my goals, has been unsuccessful in getting the community to do something small towards my goals. For instance, assuming my goal is improving gender diversity in a male-dominated workplace, I haven't been able to get them to adopt a first code of conduct, or improve a CoC to have real enforcement provisions, or participate in a women-centric job fair, or make a token effort towards diversity in guest speakers.
  • not just the rules of the game, but the dominant worldview, and perhaps the major actors, haven't changed in, say, more than three years

To achieve change in this kind of situation, you have to have enough social skills to be able to make relationships, to notice whether contempt has made an appearance, to grok the subtle stuff. A systems approach (leader as engineer) will get you part of the analysis and part of the solution; you also need relatedness (leader as mother). Requisite variety. In the face of a problem, some people reflexively reach more for "make a process that scales" and some for "have a conversation with ____"; perhaps this is the defining difference between introverts and extroverts, or maybe between geeks and nongeeks, in the workplace.* We need both, of course - scale and empathy.

A huge part of my job for the last four years was struggling with the question: how do you inculcate empathy in others, at scale, remotely? How do you you balance genuine openness to new people, including people who think very differently from you, with the need for norms and governance and, at times, exclusion?

Huh, I wonder whether this is the first blog entry I've ever tagged both with "Management and Leadership" and "Religion".

* My ambidextrousness on this count just makes me feel alien wherever I go. In open source, I am Mr. Rogers or Oprah Winfrey, with my supernatural enthusiastic extroversion and persuasive skills. In any non-engineering context, I am Tony Stark or a forgettable guest hacker on Numb3rs, quick with an X-ray view of underlying assumptions and incongruencies, brusque, wary of small talk, excusing myself from the party to get a quick alone break.

(1) : Why You Have To Fix Governance To Improve Hospitality: Fundamentally, if you want to make a community hospitable,* you need to work not just on individual rules of conduct, but on governance. This is because

  1. the particular people implementing rules of conduct will use their judgment in when, whether, and how to apply those rules, and
  2. you may need to go a few levels up and change not just who's implementing rules, but who's allowed to make rules in the first place

Wait, how does that work?

In my Wiki Conference 2014 keynote address (available in text, audio, and video), and in my PyCon 2014 poster about Hacker School, I discuss how to make your community hospitable. In those pieces I also mention how the gatekeeping (there is an initiation/selection process) and the paid labor of community managers (the facilitators) at Hacker School help prevent or mitigate bad behavior. And, of course, the Hacker School user manual is the canonical document about what is desired and prohibited at Hacker School; "Subtle -isms at Hacker School" and "Negative comments" have more ruminations on how certain kinds of negativity create a bad learning environment.

Sometimes it's the little stuff, more subtle than the booth babe/groping/assault/slur kind of stuff, that makes a community feel inhospitable to me. When I say "little stuff" I am trying to describe the small ways people marginalize each other but that I did not experience at Hacker School and thus that I noticed more after my sabbatical at Hacker School: dominance displays, cruelty in the guise of honesty, the use of power in inhospitable ways, feeling unvalued, "jokes", clubbiness, watching my every public action for ungenerous interpretation, nitpicking, and bad faith.

You can try to make rules about how things ought to be, about what is allowed and not, but members of the incumbent/dominant group are less accustomed to monitoring their own behavior, as the Onlinesmanship wiki (for community moderators) reminds us:

Another pattern of the privileged: not keeping track of the line between acceptable and unacceptable behavior. They only know they've crossed the line when someone in authority tells them so. If this doesn't happen, their behavior stays bad or gets worse....

Do not argue about their intentions. They'll swear they meant no harm, then sulk like fury because you even suggested it. In most cases they'll be telling the truth: the possibility that they were giving offense never crossed their minds. Neither did any other scenario, because unlike real adults, they take no responsibility for getting along with others. The idea that in a cooperative work situation, getting along with one's fellow employees is part of the job, is not in their worldview.

This too is a function of privilege. They assume they won't get hit with full penalties for their first offense (or half-dozen offenses), and that other people will always take on the work of tracking their behavior, warning them when they go over the line, and explaining over and over again what they should have done and why. It's the flip side of the way people of the marked state get hit with premature negative judgements (stupid, dishonest, sneaky, hysterically oversensitive) on the basis of little or no evidence.

And, in any community, rules often get much more leniently interpreted for members of the dominant group. And this is even harder to fight against when influential people believe that no marginalization is taking place; as Abi Sutherland articulates: "The problem with being lower on an unstated social hierarchy is that marginal judgment calls will reliably go against you. It's an excusable form of reinforcement."**

Changing individual rules isn't enough. After all, individual rules get made by particular humans, who -- here, instead of babbling about social rule system theory at you, I'll give you a sort of sidebar about three successive levels of governance, courtesy of my bachelor's degree in political science:***

Actors: The actual set of people who run an organization or who shape agendas, on any given day, have particular ideas and policies and try to get certain things done. They implement and set and change regulations. Actors turn over pretty fast.
For example, in its five-year history, Hacker School has had employees come and go, and new participants have become influential alumni.
Dominant worldviews: More deeply and less ephemerally, the general worldview of the group of people who have power and influence (e.g., Democrats in the executive branch of the US government, sexists in mass media, surgeons in operating rooms, deletionists on English Wikipedia) determines what's desirable and what's possible in the long term. Churn is slower on this level.
For example, dominant worldviews among Hacker Schoolers**** include: diversity of Hacker Schoolers, on several axes, helps everyone learn more. Hiding your work, impostor syndrome, too much task-switching, and the extrinsic motivation of job-hunting are common problems that reduce the chances of Hacker Schoolers' success. Careers in the tech industry are, on balance, desirable.
Rules of the game: What is sacred? What is so core to our identity, our values, that breaking one of these means you're not one of us? The rules of the game (e.g., how we choose leaders, what the rulers' jurisdiction is) confer legitimacy on the whole process. Breaking these rules is heresy and amending them is very hard and controversial.***** Publicly disagreeing with the rules of the game costs lots of political capital.
For example, the rules of the game among Hacker Schoolers, as I see them, include: the founders of Hacker School and their employees have legitimate authority over admissions, hiring, and rule enforcement. Hacker School is (moneywise) free to attend. Admission is selective. A well-designed environment that helps people do the right thing automatically is better than one-on-one persuasion, which is still better than coercion.

(Where do the four Hacker School social rules fall in this framework? I don't know. Hacker School's founders encourage an experimental spirit, and I think they would rather stay fluid than accrete more and more sacred texts. But, as more and more participants have experienced a Hacker School with the four social rules as currently constituted, I bet a ton of my peers perceive the social rules as DNA at this point, inherent and permanent. I'm not far from that myself.)

(I regret that I don't have the citation to hand, and would welcome the name of the theorists who created this model.)

So, if you want a hospitable community, it's not enough to set up a code of conduct; a CoC can't substitute for culture. Assuming you're working with a pre-existing condition, you have to assess the existing power structures and see where you have leverage, so you can articulate and advocate new worldviews, and maybe even move to amend the rules of the game.

How do you start? This post has already gotten huge, so, I'll talk about that next time.

* I assume that we can't optimize every community or activity for hospitality and learning. Every collaborative effort has to balance execution and alignment; once in a while, people who have already attained mastery of skill x just need to mind-meld to get something done. But if we want to attract, retain, and grow people, we need to always consider the pathway to inclusion. And that means, when we accept behavior or norms that make it harder for people to learn, we should know that we're doing it, and ask whether that's what we want. We should check.

**See the second half of "One Way Confidence Will Look" for more on the unwillingness to see bias.

*** I am quite grateful for my political science background -- not least because I learned that socially constructed things are real too, which many computer science-focused people in my field seem to have missed, which means they can't mod or make new social constructs as easily. Requisite variety.

**** A non-comprehensive list, of course. And I don't feel equal to the more nuanced question: what beliefs do the most influential Hacker Schoolers hold, especially on topics where their worldview is substantially different from their peers'?

***** The US has a very demanding procedure for amending the Constitution. India doesn't. The US has had 27 amendments in 227 years; India, 98 in 67 years. I don't know how to interpret that.

: Join Me In Donating to Stumptown Syndicate and Open Source Bridge: Woman laughing alone with salad, by reidab, CC BY-NC-SAI'm donating up to $15,000 to the Stumptown Syndicate -- depending on how much you are willing to match by December 29th Updated: 31st at 1:30pm Pacific Time. Please join me by donating today and doubling your impact!

Updated 31 December: We made it!

I really love Open Source Bridge, which Stumptown Syndicate runs. I've spoken there every year since 2010, and it's the tech conference that has imprinted itself on my heart -- informative technical talks, inspiring ideas that help me improve how I do my work, and belly laughs and great food (see right). I love that I can tell friends "Come to OSB!" without having to add "but watch out for..." the way I do with so many other conferences. Hospitality lives in the DNA of Open Source Bridge, so it's a place where people from different projects and backgrounds can share their experiences as equals. Wikimedians, Linux developers, Mac users, designers, hardware hackers, managers, knitters, teachers, and everyone from Fiona Tay to Ward Cunningham swap tips and inspire each other. I especially appreciate that Stumptown Syndicate curates an inclusive all-genders tech conference where I'm never the only woman in the room; in fact, in 2014, half the speakers were women.

I don't live in Portland, so I don't get to benefit directly from most of Stumptown Syndicate's events. But they document their processes to make a playbook, and they built and improve open conferenceware and an open source shared calendar, all of which contribute to the infrastructure of inclusion for everyone to reuse.

With some more cash in the bank, the Syndicate can look at adding childcare to its events, improving access and scholarship options for low-income participants and guest speakers, and improving the audiovisual experience (with faster video processing or transcripts/captioning).

So: I'll match donations starting today and ending on December 29th 31st at 1:30pm Pacific Time, whether corporate or individual, one-time or recurring memberships. Please donate now to help raise $30,000 for Stumptown Syndicate and Open Source Bridge!

Updated 31 December: We made it!

Filed under:

: Some Fanvids I've Enjoyed Recently: Many of these came to my attention thanks to singlecrow's link to a rec post; thanks!

"Level Up", a Buffy vid by such_heights. A great match of song and topic, with an inspiring focus on the courage and growth of the whole gang.

The "Every Frame a Painting" series by Tony Zhou, analyzing various uses of film form. In particular the "What is Bayhem?" analysis helped me enjoy Hot Fuzz on a new level when Leonard and I re-watched it the other day.

"It's Still Science Fiction to Me", a multifandom vid by azurish. A funny, joyous, clever, and celebratory tour of the last several decades in film and TV speculative fiction. Partially inspired by bironic's mindblowing "Starships" vid, have you seen it? and also by:

"Hey Ho", a Marvel Cinematic Universe vid by thuvia ptarth. As chaila puts it, a "completely scathing critique of the way Marvel sells the military-industrial complex." I also agree with tardis_stowaway -- it "manages the tricky balancing act of being enjoyable to watch while delivering a powerful, disturbing critique."

: My Next Few Months: Last week I got back from AdaCamp Bangalore, some family visits, the community-builders' meeting within Mozilla's workweek, and some volunteering with Stumptown Syndicate to support Open Source Bridge 2015. I set off on those travels basically right after I spent six weeks improving my webdev skills at Hacker School, which I started a few days after I finished up my four-year stint at the Wikimedia Foundation. So it's been intense!

I'm concentrating on a bunch of errands and backlogged volunteer work in the next few weeks, and then in the new year, for several months, I want to do activist and maker work. (I can go without getting paid right now, and I'm fine with doing this as a volunteer. It's not emotionally sustainable for activists and open source contributors to put in huge gobs of volunteer work over and above full-time jobs. And it's not financially sustainable for most people to work as activists for money (not to mention argh the nonprofit-industrial complex). But Leonard and I are very fortunate in that we can switch; sometimes he supports the household and sometimes I do.)

My plan:

Spend about 20 hours/week writing open source code that ships and that others directly depend on. I have worked on open source projects that hundreds of millions of people depend on, e.g., MediaWiki, but I wasn't a code contributor. I've written open source code that shipped, e.g., my MC Masala site, but my projects were toys or I was the main customer (one exception being "Missing From Wikipedia"). In 2015 I aim to meld these skills.

Right now I'm planning on contributing to GNU Mailman as a volunteer. I know Terri Oda, one of the maintainers, and talked with her in Portland. The Mailman 3 refactor looks like a promising field, fresh code with work tasks of about the right size and shape for me. My Python's good enough. The codebase has comments, docs, and tests. I hear the community is friendly, and I know Terri, and I live close enough to another key contributor that I can probably arrange some in-person hackdays. I'll get to munge stuff dealing with underlying protocols like SMTP, and it's a project lots of other open source projects depend on, so I'll have an impact.

Ideally, by the end of the PyCon sprints, I'll be contributing to code review and comaintaining something. I'll be better at making the systems I want to make. And I'll be confident and seasoned enough that I could plausibly go find a full-time Python web development job, should I wish. That's really more of a self-assessment heuristic than a goal. More importantly, I'll have the experience necessary to give good and credible advice for marginalized people in tech who want to follow that path, and I'll have better wisdom that I can share with allies and imbue into systems to help those people.

Spend about 20 hours/week working to make open stuff friendlier and more diverse. This is time to volunteer on Stumptown, to continue my volunteer duties on the Ada Initiative Board of Directors, to teach Ally Skills workshops, and do miscellaneous other outreach and writing. I'm also open to a little bit of consulting, but will be redirecting some requests to Ashe Dryden or Julia Rios or other experts.

My goal with these activities isn't so much to grow as an activist; rather, I want to give back to these communities that have given me so much, and to help them in ways I'm uniquely positioned to do well. But I'm building on my strengths as a project manager, communicator, and leader, and I'm learning how to be an effective board member and influencer.

Ideally, by late April (after PyCon): Open Source Bridge and Stumptown Syndicate will have better documentation and more vigorous processes that help attract, retain, and grow volunteers; dozens or even hundreds of motivated open stuff participants, especially Wikimedians, will be better feminist allies; and the Ada Initiative will remain swimming along happily and effectively. The infrastructure of our movement will be in even better shape, and I'll have no qualms about changing my commitments to suit my abilities, my interests, and the movement's needs.

As I said when I announced that I'd be leaving WMF, I'm open to new opportunities, especially New York City-based work in empowering marginalized groups via open technology. But if nothing new comes up, internally or externally, I have a reasonable plan for the next four months. Which is nice.

: Blog Posts Are A Way For Tabs To Make More Tabs:



(2) : A Code Review Group: I'm interested in piloting a peer code review group, structured like a writer's group. So next month I'm starting one out in New York City, starting with Hacker School alumni and participants, and I figured I'd put some logistics and reasoning here for my own future reference and to help anyone who'd like to do something similar.

Basics: Part of the point of a writers' group is to get participants to produce work consistently, and part of the point is to help everyone learn craft -- the authors and the critiquers. So I'm trying out a similar structure for this pilot. We will meet in person; I think that criticism is often a lot easier to take in person, and I know it's easier for me to take in person. We'll meet about every 3 weeks, midday Saturday or Sunday, to critique two works of code. We'll have a rotating schedule of who's responsible for writing code and who's responsible for reviewing it; I am maintaining that schedule. (I'm copying the frequency and format from writers' groups like Leonard's.) I figure we'll run this with about 5-6 people for four months, hopefully giving each person a chance to have their code reviewed twice, and then reevaluate and see what to keep, change, or give up.

Who?: It felt natural to me to start this in the Hacker School community. Anyone who's going or gone to Hacker School is someone who accepts the social rules we've set up to make learning easier, and is generally collaborative and friendly. Also, alumni can use Hacker School for stuff like this outside of normal work hours, which means we can use a HS conference room (and projector!) for the group meetings.

What language?: Since Python is the only language I am fluent in and it is the language I'd prefer to work in and grow in, most code we review will be in Python. I consider myself an intermediate Python programmer (very comfortable writing list comprehensions, but still need to stop and look up exception-handling syntax when I need it; see "mcmasala" for a recent code sample). Fortunately, Python's enough of a lingua franca, and there's a wide enough variety of skill levels in the Hacker School community in New York, that several programmers were willing to sign up to an intermediate-and-higher Python-specific group. After the pilot period, I think the group will evaluate the idea of expanding to other languages, and see how we feel about skill heterogeneity.

New code only?: I'm not sure whether people will end up submitting already-written or fresh code for the group to critique. I personally think that it would be fine to circulate bespoke and/or already-working-on-it code. Sometimes I might be working on something that's so huge that it doesn't make sense to extract a small-enough chunk of it for peers to review, so I'd write something from scratch instead. Sometimes I'd really want my peers to look at something that I have already been noodling with. I'm curious what other code review groups have found when experimenting on this axis.

Submission length?: My current wild-ass guess is that each submission for review should be somewhere between 32 and 2048 lines of code, but, given that (as in import this) is ~6 lines other than a giant string, I am happy to deal with codebases of lengths 4-31 as well, for the length of the pilot. :)

Time commitment?: As far as I can tell, here's the format and time commitment for this pilot:

  • Everyone: in-person meeting every three weeks for about four months, January-April -- probably about 60-90 minutes long each time, with about 30-45 minutes for each work (the critiquers offering praise and criticism of the work, and the author responding at the end).
  • Per person: Twice during the pilot: writing code and emailing it (or a link to it) to the rest of the group, a week ahead of the meeting.
  • Per person: Before every meeting, so, about 5 times: reviewing the author's or authors' code ahead of time and writing out notes, so it's easier to give specific praise and criticism at the meeting, and to email to the author(s) afterwards. (I say "author's or authors'" because even if you're one of the two authors who submits code for a particular meeting, you'll still have to review the other author's code for that meeting.) Writing a critique will probably take the participant at least 30 minutes per critique.
  • Organizer: a few hours total of scheduling, sending nag emails, and writing writeups like this one. :)

I'm opening comments on this post specifically to hear from other people who have participated in code review groups, about what has worked and not worked for you. And of course other people should feel free to reuse bits of these ideas to start groups that meet online, or go multilingual, or meet more or less frequently, or what have you!

Filed under:

about Sumana Harihareswara


RSS feed
LiveJournal feed
Spam As Folk Art microblog
Twitter feed

weblog powered by NewsBruiser
Bloggers' Rights at EFFSupport Bloggers' Rights

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.