# 16 Oct 2018, 11:22AM: NYC Comptroller Town Hall, And Reflections on Constraint:
Last night I suited up and went to a local town hall held by the office of New York City's Comptroller, Scott Stringer. (I am in the fuzzy foreground of the second photo.) After very short introductions from the venue host (CUNY Law School), Stringer and his staff, we went straight to questions!
I appreciated a lot of things about the event. There was an ASL translator on the stage, and when residents wanted to ask questions in Spanish, a staffer translated between Spanish and English for them. Stringer kept the lines moving by answering folks' questions but also limiting them to one question each (or they could head to the back of the line to get another turn), and interrupted rambly rants by asking for a question he could answer. And if people spoke up with complaints, he promised: fill out a constituent intake form and give it to one of my staffers, and we will call you by noon tomorrow. And free bottled water, next to the paper copies of audit reports and outreach flyers, was a nice touch.
I asked the first question: how can we save money in IT procurement? Perhaps by banding together in consortia with other municipalities to have better leverage with vendors, or making or using open source software? I fear I was not very clear and was misunderstood. Stringer replied by talking about the need to modernize the procurement process itself, which is evidently still paper-based and slow, and about how this depends on revising the City Charter. Wendy Garcia (the office's Chief Diversity Officer) followed up by suggesting that I myself might want to come to their office so they could help my business figure out where our services matched up with the city's contracting needs. [I spoke with her after the town hall to clarify: no, I'm not trying to get business for Changeset here, I'm just interested in the issue! (Maybe I misguided them by introducing myself as a consultant and wearing a suit. The suit was just to respect the occasion! Next time maybe I will wear a stylish dress and cardigan, which seems to be what middle-class women activists wear to these things??)]
I filled out a constituent intake form, and, sure enough, just before 10:30am today, I got a call from their office asking me to email a specific staffer with more details! Well done.
Other questions and answers included a wide variety of concerns: older guy who doesn't like streets getting named after politicians, frequent meeting questioner guy whose stuff was taken (and never returned) when he was arrested in 2015, the Major Capital Improvement rule landlords use to get around rent control, Department of Education buildings that perhaps ought to be reused instead of sold, divesting NYC's pension fund of fossil fuel, Stringer's political ambitions, an idea for stop sign speed sensors (like traffic light speed sensors), the closure of the jail on Rikers Island, helping immigrants pay the costs of applying for citizenship, sewer problems, the placements of homeless shelters, and helping residents use their on-time rent payments to count towards credit scores. My neighbors care about a lot of different things. I took a few notes and mostly sketched. There was this one power outlet mechanism embedded in the desk right in front of me and I drew it like five times and never got the angles to look right.
One interesting thing I learned: when the Comptroller's office audits a city department, it usually takes about 18 months, so they only go in and do an audit if they think it's likely they'll find something.
I went home and commented on the proposed National Park Service rule change "Special Regulations, Areas of the National Park System, National Capital Region, Special Events and Demonstrations". I commented on 4 things: making the swimming/wading rules more consistent, removing the "duplicative" criterion, the "atmosphere of contemplation" expansion, and the proposed permit application fees. And then I wrote a thing to prepare for a meeting today, while texting with a friend who's going through a rough time.
I don't know anyone who's not going through some kind of rough time. Or at least I can't think of any. If nothing else we have the awful "well, MY life is great, but the world is horrifying" awareness; it feels like we're betraying our neighbors when we enjoy our personal successes. I never know whether I'm doing enough; I have to define "enough" for myself, which feels audacious. Willow Brugh wrote about how she's implementing a concept I first heard about from Abi Sutherland in December 2016:
While I am pushing to find ways to gain (and deserve) greater influence in the world, those things which fall outside of my influence cannot be that which concerns me most. To do otherwise is a path to madness. I must trust that other capable people exist in the world, and that they are taking up their share just as I am taking up mine. As you are taking up yours.
# 09 Oct 2018, 12:12PM: Recent Diversions:
I went to a civic meeting the other day and sketched while listening, as I've been doing more and more lately. I had to try drawing a folding chair three times before I got the proportions and perspective mostly right. Also, it's surprising how soothing it is to draw super-repetitive shapes, like Venetian window blinds, and to indicate shadow or color with cross-hatching or fill dots.
On Sunday, Leonard and I saw a "Sam the American Eagle" compilation at the Museum of the Moving Image. Sam is amazing, as Leonard and I got to discuss in depth -- he's a minor character, but when you see 50 minutes of Sam in a row, you see interesting patterns. He's Nixon (eyebrows) and he's McCarthy ("I have here a list..."). He loves Wayne and Wanda partly because they're humanoid Muppets, not animals. He knows he's supposed to like classy old songs, education, decency, America, and Great Britain, but he has no capacity for analysis and no factual understanding of history or literature, and never enjoys a joke. He's lawful neutral; he doesn't care who gets hurt or helped, so long as everyone's deferring to authority and following rules. He's separated from his wife, and his kids don't talk to him. I watched The Colbert Report for years so I'm primed to appreciate this kind of character -- Colbert often described his character as a "well-intentioned, poorly informed high-status idiot".
(Watching a bunch of The Muppet Show also reminded me of how the Muppets influenced my basic approach to sketch comedy and acting. I am approximately a Muppet by default in most interpersonal interactions -- big facial expressions and whole-body reactions -- which was sometimes a bit of a trial for my director Aya.)
On Sunday I also got to play the game "Inhuman Conditions", which is crowdfunding on Kickstarter till this Thursday 11 October. I was first an investigator checking whether a suspect was a human or a robot. During this conversation I got to reply to a question with "I'll be the one asking the questions" which was thrilling. (Even though I lost that round - she was a robot after all, crap!) The next round, I was a suspect. How do you prove your humanity to an investigator? Try to be open about your imagination, your private life, your misapprehensions? Or is that exactly what a robot would do, to fool them??? A fun game.
# 06 Oct 2018, 12:20PM: Credits and References for "Python Grab Bag: A Set of Short Plays":
Today, at PyGotham 2018, Jason Owen and I presented "Python Grab Bag: A Set of Short Plays".* We predict a videorecording will be on PyVideo in the next few weeks.
This session is the latest in my line of non-traditional tech talks. I conceived of the idea. Thanks to Jason Owen for working on it with me - thinking of play topics, editing, rehearsing! I wrote almost all of these plays and he made them better. And, as we mentioned in "The Unvarnished Truth", we spent upwards of USD$1650 out of our own pockets on this session -- paying our director and audiovisual assistant, buying props, and renting rehearsal space. Probably closer to $1850 when it all comes in.
- our director, Aya Aziz
- Sarah Pavis for running sound and slides
- Dustin Ingram for a few cameos as an actor and for help with secondary A/V
- Mike Pirnat, Leonard Richardson, nycsubway.org, the Recurse Center, Elizabeth Yalkut, Betsy Haibel, Teresa Nielsen Hayden, James Vasile, Dave Anderson, Mark Smith, Sam Steinbock-Pratt, Andrea Parsons, and our preview audience for help writing, improving, scoring, rehearsing, illustrating, and making props for these plays
- the Neo-Futurists for their show "The Infinite Wrench" that we took as inspiration
- A. Jesse Jiryu Davis for being our session chair
- PyGotham and you for taking a chance on this ridiculous thing
In from import import import,** we mention Allison Kaptur's blog post on import and PyCon 2014 talk "Import-ant Decisions", and George London's PyGotham 2017 talk, "import madness # how to implement mergesort from scratch using only import statements".
In "A Proposal for Explaining PEPs", we briefly mention PEPs 347, 385, and 481, which moved Python development from CVS to Subversion to Mercurial to Git, and PEP 8000, which is working on governance questions.
In "GNU Mailman: A Pythonic Playlist", I discuss the history of Mailman release names.
"Generators: Taste the Freshness" draws on this explanation of generators in Python.
"This Is How We Do It" draws on this history of The Zen of Python, and on Larry Wall's "Perl, the first postmodern computer language".
"If Shakespeare Wrote Incident Reports" starts with a quote from Act I, Scene 5 of Hamlet.
"Code Review: Fast Forward and Back" is a summary of "Code Review, Forwards and Back" which originally appeared at PyGotham 2017 (video).
"Be A Better Bureaucrat: The Intellectual argparse Play" mentions James C. Scott's Seeing Like A State and David Graeber's The Utopia of Rules: On Technology, Stupidity, and the Secret Joys of Bureaucracy.
"The End (Of 2.7) Is Near (feat. Jason as Guido van Rossum)" starts by quoting Guido van Rossum's March 10, 2018 email to python-dev.
* Announcement, context, late-September reflections.
** For reference, in case the PyGotham 2018 site ever disappears, the play titles were:
- The Unvarnished Truth
- from import import import
- WHAT’S the DEAL with CLIENTS?
- A Play Entirely Full of Monty Python References
- A Proposal for Explaining PEPs
- GNU Mailman: A Pythonic Playlist
- Soup, Scrape, Sweep
- Generators: Taste the Freshness
- This Is How We Do It
- Cookie For Your Thoughts
- If Shakespeare Wrote Incident Reports
- Code Review: Fast Forward and Back
- When The Old Was New
- Things We Don’t Say At The Daily Standup Meeting
- The Relief of Reuse (The Colorful argparse Play)
- Be A Better Bureaucrat (The Intellectual argparse Play)
- Speaking Python
- The End (Of 2.7) Is Near (feat. Jason as Guido van Rossum)
# 04 Oct 2018, 04:42PM: Miscellaneous Recommendations:
# 03 Oct 2018, 05:16PM: Tidelift Is Paying Maintainers And, Potentially, Fixing the Economics of an Industry:
As the founder of Changeset Consulting, I keep my eye on consultancies and services in and near my niche, open source leadership, maintainership, and sustainability.* And I've known Luis Villa for years and got to work with him at Wikimedia. So yeah, I noticed when Tidelift announced its big new launch. And -- now, as a very-part-time consultant who helps Tidelift understand the Python world -- I am excited about their commitment to pay more than USD$1 million to maintainers (including "a guaranteed minimum $10,000 over the next 24 months to select projects").
Here's my take on the new Tidelift subscription model, the "lifter" role, and whom this works for.
For software businesses, this provides that missing vendor relationship, SLA, release cadence expectations, and general peace of mind for all of that unseen infrastructure you depend on. It's often easier for businesses -- of many sizes -- to pay a regular fee than to put open source project management work, dependency-updating, compliance checking, dependency security audits, or FLOSS volunteer relations on the engineering schedule.
For individual programmers and community-maintained open source projects, Tidelift is a potential source of substantial income. As a Pythonist, I hope to reach people who are currently core code contributors to open source projects in Python, especially on the Libraries.io digital infrastructure/unseen infrastructure/improve the bus factor lists. And I would like to reach projects like the ones Nathaniel Smith calls out in a recent post:
that (1) require a modest but non-trivial amount of sustained, focused attention, and (2) have an impact that is large, but broad and diffuse
and projects in the "wide open", "specialty library", and "upstream dependency" categories identified by the Open Tech Strategies report "Open Source Archetypes: A Framework For Purposeful Open Source".
For such people and projects, becoming a lifter is a promising model -- especially since the required tasks are fairly few, and are things maintainers should do anyway. I'm encouraged to see Jeff Forcier (maintainer of Fabric, Alabaster, and more) and Ned Batchelder's coverage.py getting onto the Tidelift platform.
And you can see estimated monthly income for your package right now. For some people, especially those whose healthcare doesn't depend on an employer, Tidelift payments plus some side consulting could be a sustainable, comfortable income.
Then there are folks like me whose contributions are only partially visible in commit logs (management, user support, testing, and so on), and groups that work together best as a team. Tidelift is also a potential source of income for us, but it's a little more complicated. Tidelift can send lifter payments to individuals, for-profits, and nonprofits, but: "If a package has multiple co-maintainers, you'll need to agree as a group on an approach." If you thought code of conduct conversations with your community were uncomfortable, wait till you bring up money! But, more seriously: I've been able to talk frankly with open source colleagues about thorny "who gets paid what?" questions, and if you're candid with your co-maintainers, the benefits may be pretty substantial. You can get advice on this conversation during the next live Tidelift web-based Q&A, Thursday, Oct. 11 at 2 p.m. Eastern Time (sign up at the bottom of the lifter info page).
Nonprofits, companies, and working groups that maintain projects can sign up now as lifters. Even if it's just a trickle of money right now, it might build over time and turn into enough to fund travel for an in-person sprint, contract work to improve continuous integration, an Outreachy internship, etc.
(One gap here: right now, Tidelift isn't great at supporting system-level packages and projects, like tools that get installed via apt or yum/DNF. I'm pretty sure that's something they're working on.)
What about noncommercial users or users who can't afford Tidelift subscriptions? The more lifters and subscribers sign up, the more those users benefit, too. Subscribers' funding means maintainers have time to make improvements that help everyone. And lifters agree to follow security, maintenance, and licensing best practices that also help everyone. Plus, Tidelift stewards libraries.io, a great resource for anyone who uses or develops open source (more on that). More money for Tidelift could mean libraries.io gets better too.
So I'm tooting a horn here and hoping more people sign up, because this is one of the more plausible ways open source sustainability could possibly work. Tidelift could be a real game-changer for the industry. Check it out.
* Examples: new competitors like Maintainer Mountaineer and OpenTeam, new funders like OSS Capital, and colleagues/referrals like Open Tech Strategies, VM Brasseur, Otter Tech, and Authentic Engine.
# 03 Oct 2018, 03:13PM: A Reasonably Fast Way To Construct A Writing Portfolio:
Someone in my network wanted guidance in building a professional (often software-related) writing portfolio for the first time -- they want to give other people a portfolio of work they've already done, so that those people can consider hiring them for paid writing gigs. This person wanted advice on what to choose, how to curate and structure and present the portfolio, and whether to keep it private or publish it somewhere public.
Here's some free advice on getting started with that. I'm sure there are better ways to do this and be more polished in the final presentation, but here's how I suggested they get started.
- Start by taking 1-2 hours to assemble a big rough list of what you've written, in the last 10 years or so, that you might conceivably want to share in this portfolio. Be wide and inclusive, and if this feels overwhelming, remember that this does not have to be comprehensive -- you just want samples of different categories (like "neighbor-friendly explanations of technical topics", "bug reports", "profiles of individual people", "replies to support requests", "nonfiction essays", "research papers", "public conference talks", "HOWTO tutorials", and so on).
- Decide whether this will be a public or private portfolio. If most of these pieces are ones you really don't want to share, online, with the public, under your wallet name, then you're going to be doing this as a private portfolio. Otherwise you'll turn this into a page or subsite of your public website, and you can mention and summarize the private pieces and say "available upon request".
- Select the best 1-3 examples for each category. This might involve digging because maybe now you'll remember another category or another piece.
- If it's a private portfolio, turn the whole thing into a giant PDF with chapter headings explaining what category each item is in. If it's public, do that, but also make a webpage -- Heidi Waterhouse's list and Betsy Haibel's list are straightforward examples you could use as patterns. If you want to be a little more explanatory and give the reader more guidance about the context for each piece, you could do something like what Lindsey Kuper does. And if you want to get really intense about it you could make something like what I've done with the Changeset Consulting "resources" page, with stock art!
- Every few months, review what you've written and see what you need to add to the portfolio. (I also keep a public mega-list of nonfiction and fiction, art, software, and zines I've made and a big list of my past talks, interviews, and stand-up comedy, which helps me when it's time to update the Resources page for Changeset.)
If you've been thinking of making a writing portfolio and putting it off, I hope this structure makes it more feasible.
# 20 Sep 2018, 11:18AM: I Joked That We Could Call Each Of The Mini-Plays 'What Are We Even Doing':
Last night I dreamed that I had to leave my home? hotel? and realized I had forgotten to don pants, and then realized I was supposed to get on a flight to Germany, and was trying to check in online within Google Docs on my phone.
Perhaps my creativity is so spent from writing and rehearsal for "Python Grab Bag" that it's really phoning it in for by-the-numbers anxiety dreams.
Yesterday was the first on-our-feet rehearsal. I'm so grateful that Jason and I hired our director, Neofuturist alumna Aya Aziz (more about her and her playwriting, acting, singing, and dancing -- as Aya Abdelaziz she also (sort of) portrayed me in a reading of the Aaron Swartz memorial play "Building A Real Boy" last year). The words are really coming to life as we speak them aloud and block the plays (decide who's moving and facing which way when) and figure out sound, light, props. Her direction is -- as I'd hoped -- making it much more likely that these will feel like theater, affect the audience both cerebrally and emotionally, not just slide away like an embarrassing middle school book report skit. (I am speaking here as someone whose only memory of Otto of the Silver Hand is that I wrote a rap about it for class.)
I fairly often feel an incredulous "what the hell are we even doing" feeling when I reflect on this weird freaking thing we're making. On one level it's the most logical thing in the world. It's a port from one venue to another; I've seen The Infinite Wrench dozens of times and we're adapting a Neofuturist theatrical approach to talk about what it's like to be a Python programmer. And I did a Neofuturist-inspired keynote at LibrePlanet last year, we did a play at PyGotham last year, and we maybe aren't even doing the most ambitious Python conference performance in recent memory -- K Lars Lohn's PyCon 2016 keynote was an intricately designed multimedia narrative of discovery and wonder. So even though the piece we are making and sharing is novel, we aren't straying THAT far from prior art.
But also, let's be real, there is a well-worn path of advice and examples to help a speaker talk about "how to do foo with bar" or "five ways to be better at managing people" or "open source is making a difference!" and if you give a kinda boring or redundant conference talk along those lines, it just slides into the rearview mirror. This weird thing we are working on will stand out. The optimal rate of criticism is not zero and I anticipate -- even if most of the audience enjoys it -- there will be at least a few people who think it's awful, a waste of time, takes a PyGotham slot that ought to have gone to a real talk, and think less of me for my bad judgment and poor skill. The chance of failure feels greater and the risk in failure feels higher.
This is part of what innovation feels like: whacking past vines with a stick, mostly but not 100% certain that this direction leads to a place worth finding, pattern-matching and guessing without a trail or a map. Risking failing. To quote Ramsey Nasser again,
When you're failing, you're exploring things that are in that grey area. That there may be interesting surprises there, or there may be things that you don't want, but you're willing... It's a sort of brave commitment to go there and to see what's out there. Failing is not wrong.
And perhaps the fact that I'm going ahead and wrestling with that fear, moving forward, instead of letting it stop me, is another reason my anxiety brain is all, "I give up. Uhhhhh, you're late for a flight and you forgot your pants. Oooooh scary! *finger-wiggles*"
# 11 Sep 2018, 08:55AM: Now Imagine Switching The Lead Actors For Those Two Shows:
I was in the midst of talking with my pal Jed about Star Trek: The Next Generation. He'd kindly checked whether I was ok hearing criticisms of this show-of-my-heart and I said dismissiveness no, criticism yes. We talked a little about Picard. I said how interesting it is that he's an introvert leader, how we don't often see that kind of person represented on TV. (And I informed him that I want him to text me immediately once he watches "Allegiance".) But he's still collaborative and listens well to his subordinates...
And Jed said: I know you've said that Picard taught you a lot about management. But what if you got into management because of watching Picard?
Me: you did not warn me you were going to be that incisive when we started this phone call.
I mean, maybe! In some ways Star Trek: The Next Generation* is to my management style as Mad About You is to my marriage style -- the formative-influence TV show that I, sometimes even consciously, modeled myself after. But maybe it goes deeper -- maybe those are also shows that made me think it would be awesome to be a leader, and to be married.
* And Mr. Rogers' Neighborhood.
# 10 Sep 2018, 01:31PM: Coming Back To My Senses:
A few miscellaneous thoughts:
I chose a driving school and have now had a few lessons. I'm already far better at appropriate mirror and blind spot checks, turns, stop sign stops, staying in my lane, controlling my speed, and keeping a safe distance from the vehicle in front of me. Next up: practice in lane changes (at speed, instead of slowing the hell down and snarling things up) and parallel parking.
My instructor has had to remind me: if I have to brake hard to a sudden stop (e.g., at a yellow light), I should check my rearview mirror first, to see whether I'm being tailgated -- if so, it may well be safer to run the yellow light, even if the light turns red while I am in the intersection! This is bouncing around my brain a bit before thoroughly settling in. The point of the rules is to increase safety, and it is better to break a traffic rule than to cause a collision. I am distantly reminded of Mr. Hatch, my high school American Literature teacher, teaching us about levels of moral reasoning in the context of reading Huckleberry Finn -- grasping the principles behind a system of rules helps a person make better decisions than they would if they just concentrated on doing as they're told.
And it's been raining a bit in New York City, so now I've gotten some fresh experience driving in wet conditions! And I have rejoiced in the rain and the lower temperatures, breaking out a belted, water-resistant knee-length tan trenchcoat I got for free at the WisCon clothing swap. It feels so cute and fall and wearing it with black boots, dark blue jeans, and a belted V-neck kelly green knit top felt so powerful and happy! This year I dropped off 20-30 items of my own and snagged a few really awesome pieces at the Clothing Swap -- the trenchcoat, a sparkly silver tasselled 1920s-style sheath dress (which I just had tailored for 20 bucks and now it looks so good on me), and a very bodyconscious above-the-knee black dress with a faux-wrap V-neck that flatters my torso.
The experience of wearing that black dress has already transformed me. The woman who donated it saw me wearing it during the Tiptree Auction and caught me during a break to say: "Did you get that from the Clothing Swap? It used to be mine! I saw you wearing it and thought, 'She looks better in it than I did! Bitch.'" And that was an affectionate compliment and I got it and felt like I had leveled up in a kind of femininity. Teasing has always been difficult for me to give and receive -- it's a highwire act to gauge intimacy well enough to trust/convey that the intent of an insult is to bond, not to wound -- and I feel like this woman gave me not only the gift of a kicky dress that suits me, but also a gift of spirit. It is as though she led me in a merry little dance, and for once, instead of falling or tripping, I followed her moves and unlocked the fun.
I feel like my sense of visual aesthetics has never been a strong point -- it's still a little surprising to me that I can find joy in a particular outfit, or please myself with a sketch. The other week I sketched a bit to quiet my distractible mind while in a long meeting. It turns out a gridded notebook (thanks for the old OSCON freebie, O'Reilly!) massively helps me sketch human-made objects. And the first time I try, I usually realize something I'm not quite getting right, quickly finish it, and then try to sketch the same thing again, and the second try is better. I've learned something about the proportions of the chair, the many nested borders of a window. It's so validating and inspiring to make a thing with my hands that did not exist before and then immediately make a clearly better version of that thing!
I was talking a few days ago with a new friend who mentioned that working and playing with her dog has helped her pay attention to being embodied. We're all animals. But sometimes we forget. I suppose the theme emerging in these reflections is that I'm exploring -- as a mechanized cyborg, and in fabric and on paper -- how my eyes and my skin want to dance with the world. The irreducible facts of motion, light, shape, texture, warmth, wet. And I can get more graceful with attentive practice, and what joy there is to be found here!
# (1) 04 Sep 2018, 11:38AM: Code Review Play at RubyConf, and Think Tank Fiction:
Jason Owen and I will co-present "Code Review, Forwards and Back" at RubyConf in Los Angeles, November 13-15 2018. We'll update and slightly lengthen the version we performed at PyGotham last year. If you'll be at RubyConf, consider watching our one-act play:
Your team's code review practices cause ripple effects far into the future. In this play, see several ways a single code review can go, then fast-forward and rewind to see the effects -- on codebase and culture -- of different code review approaches.
The setting: an office conference room. The characters: a developer, who's written a chunk of new Ruby code, and a team lead, who's about to review it. The code is not great.
See a fast-paced montage of ways things can go. Recognize patterns from your past and present. Learn scripts for phrasing criticism constructively. And laugh.
I've been doing a lot of theater-inflected conference presentations recently. I came up with the ideas for "Code Review, Forwards and Back" and "Lessons, Myths, and Lenses: What I Wish I'd Known in 1998" and "Python Grab Bag: A Set of Short Plays" (more details on all of these on my Talks page).
In some sense this is unsurprising, as I'm a programmer and public speaker who has dabbled in the more creative performing arts my whole life. As a child I had small parts in school* and community** theater, and my sister and I wrote and performed in some number of long skits for Indian-American association get-togethers (there was a lot of No Big Deal family-based practice here, as with writing and public speaking in general). I have also been willing to sing in public really quite out of proportion to my actual singing ability for a very long time. And I got all right at stand-up comedy and at comedy auctioneering.*** So I have started to bring those skills into my conference presentations, and am interested in how spectacle, fictional narrative, and different presentation formats can make different kinds of teaching and representation possible.
Someone else thinking about the value of storytelling in conference talks is Maria Farrell, who posted at Crooked Timber about that and about "think-tank fiction" (fictional stories/scenarios, sometimes composites of real situations and sometimes future projections, reflecting on and demonstrating the effects of particular policies and trends).
I find several of Farrell's reflections resonate with me, about the "quality of atmosphere" that obtains when you start telling a story at an event where it's unusual to do so, and:
...people at all-day tech events are really, really glad to just relax and have stories told to them. News flash. And actual stories, with, hopefully, meanings heading off on different trajectories, not TED anecdotes driving to One Big Lesson...
I hope Farrell can come to !!Con or a similar event sometime, to see how it nurtures some similar experiences.
There must be a bunch of talks like this and now my cataloguing fingers are itching. As Bruce Sterling wrote in "User-Centric":
To: the Team Coordinator
From: the social anthropologist
Subject: Re: *****Private message*****
Fred, people have been telling each other stories since we
were hominids around campfires in Africa. It’s a very
basic human cognition thing, really.
My colleague Erik Möller did a talk like the ones Farrell mentions at Wikimania 2013, "Ghosts of Wikis Yet to Come: Three Stories of Wikimedia's Future". And I think Tom Scott's scifi shorts and story-style talks, and the "Slaughterbots" video from Ban Lethal Autonomous Weapons, are worth checking out as exemplars.
I also love related "our technology will make this future possible/likely!" narratives like AT&T's 1993 "Connections" video. (The AT&T Archives page pointed me to this collection of similar concept videos I totally want to see, made by Ameritech, Motorola, Sun, NEC, etc. Natalie Jeremijenko and Chris Woebken collaborated on a 2009 montage I haven't watched yet, and there's a 2014 followup -- looking forward to diving in.)
* Not always onstage -- the first bit of project management I ever did was stage management. I fuzzily remember running a puppet show in elementary school, and officiously checking off attendance using a clipboard (oh how important I felt!) for some middle school thing.
** Perhaps most memorably: Rudy, Rudolph the Red-Nosed Reindeer's nerdy little sister, in "The Night Before The Night Before Christmas" at a local YW/MCA. I actually had lines in this role! To demonstrate Rudy's bookishness, the script had her say aloud, apropos of nothing, "O is for oxygen," "N is for nitrogen," "C is for carbon", and so on. In retrospect this dialogue has more verismilitude than I would like to admit.
*** And of course this feels completely normal to me, because, you know, you only have your own one life, and your own life has a way of becoming the yardstick rather than the judged.
But a great swathe of programmers and other technologists don't think of writing or putting on or starring in a small play as No Big Deal. Many haven't ever memorized lines. And sometimes I forget that, if you've taken a storytelling workshop and served as a dramaturg for someone's one-woman show, and you're a programmer who gets to speak at conferences like PyCon and FOSDEM, you're unusual. Your intersection of skillsets is rare.
And one of the intuitions that's helped me develop my career is that I can provide unique value where the intersection of my skillsets is rare.
# 13 Aug 2018, 12:38PM: Foreign Key:
I was born and raised in the US. I speak English natively and fluently, with a US accent.
A few times, in face-to-face, oral conversation, US-born colleagues or strangers have said something that reveals they assume I am an immigrant. I always found this bewildering; can't they hear my accent? In one case, last year, someone (a white person with a US accent) heard me say I was American, and replied "But your accent" -- the first time I'd ever experienced someone just making up a perceived Indian accent in my speech.
Turns out this happens frequently. Linguists in the US published research about it as early as 1992, and replicated findings, including in the piece "Code Switch" mentions. (Thanks to The League of Nerds for the bibliography that led me to the research papers NPR was citing.) From Okim Kang & Donald Rubin's "Reverse Linguistic Stereotyping: Measuring the Effect of Listener Expectations on Speech Evaluation":
In [reverse linguistic stereotyping], the speaker's language pattern is not the trigger to stereotyping processes but rather their object. In RLS, attributions of a speaker's group membership cue distorted perceptions of that speaker's language style or proficiency. Thus, Rubin and colleagues (see review in Rubin, 2002) have repeatedly documented that when listeners mistakenly believe they are listening to a nonnative speaker of English (NNS), they report hearing highly accented speech, and their listening comprehension significantly declines.
Well, at least now I know. Probably a ton of people have made this assumption over the years and I just never knew. And it'll probably keep happening; it's not like I'm going to start waving my long-form birth certificate around at the beginning of every meeting, party, and presentation. Bleh. Yet another thing.
# 07 Aug 2018, 10:37AM: New York State Licensed Driving Schools:
I have a driver's license but rarely drive, and the longer I go without practice, the more I think I ought to get some lessons in before getting back on the road. I'd like to feel more comfortable driving so I can share the work on long car trips, rent a car for hiking or activist work, and so on. So I decided to get some lessons from a driving school. I saw one in my area advertises itself as registered with New York State Department of Motor Vehicles as a driving school, and thought I may as well do my due diligence and check the accuracy of that claim.
Well, New York State DMV does regulate and certify driving schools and driving instructors; a driving school needs a license to sell instruction. Hella requirements and forms.
But there's no public list of driving school licensees. The NYS DMV provides a DMV-Regulated Facilities search on its site, for car repair shops, auto dealers, etc., but that does not include licensed driving schools. And the site lists providers of the in-classroom Point and Insurance Reduction Program (PIRP), in case you seek that. But I want behind-the-wheel lessons, not PIRP.
Short-term solution which I eventually found, and am sharing for future readers: you can call the NYS DMV's Bureau of Driver Training Programs (DTP) at (518) 473-7174, and ask them about a specific driving school (name and address), and they can verify whether it's licensed, and how long it's been licensed.
Long-term solution: I filed a Freedom of Information Law request for the list of licensed driving schools and I nominated that list in a dataset for New York's Open Data portal.
(More a daydream than any kind of solution: signing up to take a New York City Taxi & Limousine Commission-authorized behind-the-wheel course meant for New York City taxi drivers!!! Why half-ass my "get more confident as a driver" journey?!)
# 29 Jul 2018, 03:02PM: "Python Grab Bag: A Set of Short Plays" Accepted for PyGotham 2018:
Fresh from the waitlist onto the schedule: Jason Owen and I will be performing "Python Grab Bag: A Set of Short Plays" at PyGotham in early October. If you want to come see us perform, you should probably register soon. I don't yet know whether we'll perform on Friday, Oct. 5 or Saturday, Oct. 6.
(The format will be similar to the format I used in "Lessons, Myths, and Lenses: What I Wish I'd Known in 1998" (video, partial notes), but some plays will be more elaborate and theatrical -- much more like our inspiration "The Infinite Wrench".)
To quote the session description:
A frenetic combination of educational and entertaining segments, as chosen by the audience! In between segments, audience members will shout out numbers from a menu, and we'll perform the selected segment. It may be a short monologue, it may be a play, it may be a physical demo, or it may be a tiny traditional conference talk.
Audience members should walk away with some additional understanding of the history of Python, knowledge of some tools and libraries available in the Python ecosystem, and some Python-related amusement.
So now Jason and I just have to find a director, write and memorize and rehearse and block probably 15-20 Python-related plays/songs?/dances?/presentations, acquire and set up some number of props, figure out lights and sound and visuals, possibly recruit volunteers to join us for a few bits, run some preview performances to see whether the lessons and jokes land, and perform our opening (also closing) performance. In 68 days.
(Simultaneously: I have three clients, and want to do my bit before the midterm elections, and work on a fairly major apartment-related project with Leonard, and and and and.)
Jason, thank you for the way your eyes lit up on the way back from PyCon when I mentioned this PyGotham session idea -- I think your enthusiasm will energize me when I'm feeling overwhelmed by the ambition of this project, and I predict I'll reciprocate the favor! PyGotham program committee & voters, thank you for your vote of confidence. Leonard, thanks in advance for your patience with me bouncing out of bed to write down a new idea, and probably running many painfully bad concepts past you. Future Sumana, it's gonna be ok. It will, possibly, be great. You're going to give that audience an experience they've never had before.
# 18 Jul 2018, 06:58PM: Libraries.io and the Infrastructure of Hospitality:
So many times in my life in open source tools and platforms, I've run into the following problem:
We want to make a breaking change/prioritize work/get feedback.
Let's check with our downstreams.
How do we find and communicate with them?
We have stopgaps inside the application (like in-app and in-API messaging, Wikipedia banners) and outside (like creating users and announce mailing lists, publicizing social media broadcast venues, searching the web/GitHub for projects and people that mention/import our tool and pinging them personally).
Now, Libraries.io makes it way easier to be hospitable to my downstreams.
I co-maintain Twine, a utility that many developers use to upload packages to PyPI. We released 1.11.0 in March. The Libraries.io page about Twine shows me who's using it (see the screenshot on the left), and I can dive deeper to check who's pinned to an old version so I can ping them to check what's up. (Sometimes that conversation tells me about a problem in our upstream dependencies that I didn't know about.) If I want to survey some users to find out whether a particular breaking change would hurt them, this makes it way easier to find some representative users to ask, not just the power users and enthusiasts who take the initiative to reach out to me.
Libraries.io has an API so I could even automate some of this. And libraries.io covers npm, CRAN, PyPI, RubyGems, Maven, and a bunch more package managers across different languages and frameworks, so I'll see downstreams that aren't just in Python.
And the code is open source in case I want to understand how they rank projects in search results or add tox.ini support in their dependency checker.
I started drafting this post in March, and in the interim, I did a little paid work for Tidelift, the company that stewards libraries.io. So, disclaimer, I'm a bit biased now. But I thought libraries.io was supercool before Tidelift and I ever thought of working together. I'm glad the Ford and Sloan Foundations funded the initial version of this tool and I'm glad Tidelift is funding and using it now; it's already very useful, and I see it as part of the infrastructure that lets maintainers and users understand each other's needs.
# 18 Jul 2018, 11:42AM: Fear And Motion:
The other day I went on a little bike ride in my neighborhood, for exercise and to check mail at my post office box. I walked part of the way because sometimes I just didn't feel safe biking on the road, especially when construction blocks the bike lane and forces bicyclists to merge into the main traffic lane.
Some thoughts I had along the way:
- It just doesn't feel safe to share the road with cars. I wish it were legal for adults to ride on the sidewalk when it's safe to do so (when it won't cause danger to pedestrians, or to cars coming in and out of driveways).*
- Just as we Americans, when travelling abroad, plaintively wish that others would distinguish between America-the-government and Americans-the-people (as in, I myself am not representative of what my government does and please don't paint us all with the same broad brush), I imagine a bunch of Russians in the US right now deserve better than they're getting. I myself have said "Russians" or "the Russians" when I mean "the government of Russia" and should stop doing that.
- It's bitterly funny how I carry proof of my US citizenship with me when I leave my apartment, as though it were an amulet of protection, as though I will be able to force racists to honor my store coupon.
Today I feel better. I biked again today and tried a different street -- usually it's a busier thoroughfare, but today it had fewer cars, and (at my current stage of biking skill) I prefer the clarity of stoplights to the uncertainty of two-way-stop intersections. And - joy! - I biked home in the shade, which made me feel safer, because the sun in a motorist's eyes makes it harder for them to see me (the one time a car hit my bike, the sun was in the driver's eyes). I was able to bike the whole way to my destination and back.
After I came home, I reread a little more of Pat Barker's Regeneration, my current comfort reading. A main character, an anthropologist and psychologist, is counseling British veterans of trench warfare during World War I. He sees how their helplessness and immobility in the face of constant onslaught traumatizes them. I remembered a thing Mel Chua has taught in her "educational psychology for free-range learners" talk, about the factors affecting self-efficacy -- when you feel stuck and helpless while trying to learn something, it can help to get up, to stretch, to walk around, to remind yourself that you are in control of your own body. And I thought about what activities I genuinely find rejuvenating, taking me out of my worries and into the sensations and experience of the present moment and changing my experience of time. pidge once wrote, about motorcycling:
I ride because it makes me sane. It clears my head. It allows me to feel a sense of freedom. It's my 900cc therapy. When you are heading down I-5 at a speed that certainly isn’t legal, all of the bullshit that is in your head, all of your distractions, it gets the hell out or you turn into a wet smear on the asphalt. You are focused on nothing but the next quarter mile that will pass you buy at 9 seconds or so.
Over and over I find inertia drawing me to a sedentary life, and then over and over I inhabit my body and surprise myself with how much I love strenuously using it, how nourishing and joyful it is to power new journeys with my muscles. I hope I remember a little better this time.
* I looked up New York State traffic rules and New York City traffic rules to confirm; yup, as an adult, I am not allowed to ride my bike on the sidewalk. Side note: both the NYS Vehicle and Traffic laws and New York City Department of Transportation traffic rules have specific rules pertaining to horses, but neither of them defines "horse". In one case the NYC traffic rules refer to a "horse or other beast of burden" in case you want to use that while obscurely complaining to your housemate about carrying groceries.
# 11 Jul 2018, 12:12PM: Lower Ed: The Troubling Rise of For-Profit Colleges:
Lower Ed: The Troubling Rise of For-Profit Colleges in the New Economy by Tressie McMillan Cottom (2017, The New Press) is simply excellent. Here's an excerpt, here's Dr. McMillan Cottom's page about the book, here's her Twitter.
It's a book that makes scholarship accessible to a non-academic reader. It's a book that uses the author's experiences -- as a student, as an admissions sales rep, as a teacher, as a researcher, as a black woman, as a friend and daughter -- to vividly illustrate and bring the reader into theoretical understandings of systems, policy, and economic forces. It's sociology, it's investigative journalism, it's memoir, it's a lens on something I see every day (those subway/bus ads for education). It's witty and no-nonsense.
I thought I already knew that a lot of for-profit colleges were pretty bad. McMillan Cottom shows why they exist, why they are as they are, and what it'd take to change those forces. I understand the labor market better and I am now even more against mandatory degree requirements for job candidates. I understand the US student debt crisis better and understand why it's connected to the same forces that are making healthcare and retirement worse and worse in the US. Just to quote from the first few chapters (I captured many quotes because she makes so many great points):
As it turns out, there is such a thing as "bad" education. It is an educational option that, by design, cannot increase students' odds of beating the circumstances of their birth....
...the way we work shapes what kind of credentials we produce. If we have a shitty credentialing system, in the case of for-profit colleges, then it is likely because we have a shitty labor market. To be more precise, we have a labor market where the social contract between workers and the work on which college has previously relied has fundamentally changed and makes workers vulnerable.
While there is a lot of academic debate about the extent of that change and whether it signals progress or decline, there is substantial evidence that suggests all of those changes shift new risks to workers....
Whether you are a kindergarten teacher, an admissions counselor, or a college professor, working in education is a lot like being a priest. You shepherd people's collective faith in themselves and their trust in social institutions....
Despite our shift to understanding higher education as a personal good, we have held on to the narrative of all education being inherently good and moral. Economists E. Norton Grubb and Marvin Lazerson call this the education gospel: our faith in education as moral, personally edifying, collectively beneficial, and a worthwhile investment no matter the cost, either individual or societal....The contradiction is that we don't like to talk about higher education in terms of jobs, but rather in terms of citizenship and the public good, even when that isn't the basis of our faith....
I particularly want to recommend this book to people starting, running, working for, or affiliated with for-profit educational institutions, and yes, beyond code schools and programming bootcamps, I include the Recurse Center and other similar experiments. You may not think of yourself as an educational institution, and you may even try really hard to brand yourself without the word "educate" or any of its derivatives showing up in what you say about yourself. But you ought to know the landscape you're in, and the reasons for the credentialism you may pooh-pooh, and how your choices around accreditation, tuition, participant debt, credentialing, and vocational focus may differently affect participants of different classes and races.
I read this book in February and it's still on track to be the best book I read this year.
# 29 Jun 2018, 08:06AM PST: Open Source Bridge:
I'll be at the last Open Source Bridge today (in fact, Changeset Consulting is a sponsor), in case you want to wave hi.
# 27 Jun 2018, 05:50PM: Songs And Books That Have Helped Me Get Through News Despair:
When I feel despondent about my country and my world, a few things that help or have helped:
- Rebecca Solnit's nonfiction book Hope in the Dark (which I still have not finished) which makes the point that YOU JUST DON'T KNOW. You don't. You plant seeds and you may never get to see them sprout.
- Cory Doctorow's novel Walkaway, Annalee Newitz's novel Autonomous, and Margaret Killjoy's novella The Lamb Will Slaughter the Lion, which have people like my friends and me as creative and loving and disappointed and brave and effective protagonists
- Elvis Costello's song "Tramp the Dirt Down" (even if you feel no hope, transmute your rage into stubbornness)
- Josh Millard's song "Everything is Fucked (Keep on Going)" and Pete Seeger's song "Tomorrow is a Highway", on persistence and promise and the future
# 07 May 2018, 02:32PM: Tentative Taxonomy of Tech Talk Narratives:
Several months ago, as I was talking with Michael Rehse (my actor programmer friend who initially advised me on the code review play), we talked about the intersection of theater and technical talks, and taxonomized tech presentations. He and I came up with some:
- the MacGyver
- I did this ridiculous thing and it worked!
- the Stephen King
- I underwent horrors!* (Perhaps in retrospect the better trope namer here is "hell house" because these talks often end "beware and avoid my fate!" in the same way as certain scare-you-into-acting-morally Halloween hell houses.)
- the Amazing Grace
- I once was lost but now am found! (On this theme in Julia Evans's early blogging.)
- the Bob Ross
- Here's how you do foo with bar! (Perhaps that's appropriate for hands-on workshops and This Old House is a better trope namer here for lecture-style presentations.)
- the Mr. Rogers factory tour
- Here's how foo turns into bar! A soothing exploration of a complicated machine, following input as it turns into output. Variant: Macaulay-style "The Way Things Work" exploded diagram.
I wonder what other large categories there are for this.
Separately from that "what kind of story is this" categorization, a tech talk can have varying amounts of Reading Rainbow/!!Con-style emphasis on the discovery of joy that I discussed in "Toward a !!Con Aesthetic".
* I would genuinely love to go to a talk where the speaker started: "I could a tale unfold whose lightest word / Would harrow up thy soul, freeze thy young blood, / Make thy two eyes like stars start from their spheres, / Thy knotted and combined locks to part, / And each particular hair to stand on end / Like quills upon the fretful porpentine." And then talked about, like, a database migration.
# 12 Apr 2018, 10:29AM: On Online Advice:
I'll be speaking on a panel, "Social Media in Theory and Praxis: What is at Stake Now?" at the City University of New York (CUNY) Graduate Center, in New York, NY, on Wednesday, April 18, 2018 (next week). It's partly about how "[u]se of digital platforms and tools like Facebook, Twitter, YouTube, Instagram, and Google has altered cultural production, political processes, economic activity, and individual habits." And recently I've been thinking about advice, and how blogging and other social media affect this very fundamental interpersonal act.
I am a giant weirdo. What works for me might not work for you, and vice versa. Advice is like a diet plan. Our gut biomes are so varied and poorly understood that very strange-sounding diets inevitably work for some fraction of the population, and commonplace diet advice inevitably snarls up some people's digestive tracts. Similarly, your career, your household, your everything exists in a unique ecosystem, and advice you find condescending or hurtful may work for someone else, or even you ten years ago or ten years from now.
Sometimes I don't explicitly-enough distinguish between things that work prescriptively for myself and things that make sense to prescribe for All Of Humanity, and between prescriptive truths and descriptive truths.
Sometimes things I write down, even publicly, are aspirational and prescriptive self-motivational slogans. Many years ago, reading Steve Pavlina's wacky blog, I learned the concept of "lies of success": statements that are descriptively false -- or at least nonprovable -- but prescriptively true, like, "if I work hard and try new approaches when I get stuck, I will learn this". No one can promise that "will", so, it's not 100% accurate descriptively. But you may as well choose your unprovable and nonfalsifiable beliefs to serve your growth.
In every social context, there are topics that are apt to cause discord if we so much as name them -- sometimes the very word stops some people from thinking, like "abortion" or "cybersecurity". And when I write publicly, especially online, I do not control what social context my words are read in. So, some of these topics we can talk about in terms of our own values if we are super careful to be subjective and descriptive rather than prescriptive, but sometimes I find it hard to frame the conversation productively.
It's salutary for me to remember the ways in which I am an unextrapolatable weirdo. I'm grateful to all y'all for reminding me, pushing back when I act like my gut biome is the world.
# 11 Apr 2018, 10:17PM: My LWN Story Summarizing PyPI's Overhaul:
This coming Monday, April 16th, we plan to flip the switch on the new PyPI and redirect https://pypi.python.org web browser requests and pip install requests so the codebase serving them is Warehouse (which is in beta right now at https://pypi.org). I'm proud of our team's work and hope you find it useful.
I haven't blogged here in a while, but I've been writing a lot, mostly announcements and explanations listed on, or a few hyperlinks away from, the onwiki index to my PyPI work. When I can't give people choices (and, unless your organization sets up a private package index/repository, PyPI can feel like the only game in town), I want to give them a lot of lead time to test, file bug reports, and migrate, and I want to provide backstory.
So: today LWN publishes a new article by me, "A new package index for Python". In it, I discuss security, policy, UX and developer experience changes in the 15+ years since PyPI's founding, new features (and deprecated old features) in Warehouse, and future plans. Plus: screenshots!
This summary should help occasional Python programmers understand why a new PyPI codebase is necessary, what's new, what features are going away, and what to expect in the near future.
If you aren't already a subscriber, you can use this subscriber link for the next week to read the article despite the LWN paywall. Thanks to LWN for the venue and the subscriber links, and thanks to Jake Edge in particular for thorough editing. Thanks to my Warehouse team for fact-checking me.
# 12 Mar 2018, 03:21PM: Request: Donate To the Tiptree Award Auction:
The James Tiptree, Jr. Literary Award encourages the exploration & expansion of gender, and holds a fundraising auction at WisCon each year. I'm the auctioneer, which is a pretty fun form of community service, and serve on the Tiptree Motherboard. We're seeking donations of objects to be auctioned -- handcrafts, books, memorabilia, games, and art, especially with scifi/fantasy or feminist elements, are welcome.
I would personally love to get some donations this year of types I haven't yet seen:
- Games of all sorts -- board games, card games, indie games, video games (we could auction off a Steam code or a USB stick)
- Handmade blank books
- Art commissions, e.g., "I will draw a portrait of you"
- DVDs or CDs of feminist media, e.g., a The Middleman box set
- Your secret recipe for a dish you consider wowzers
Some items I'll auction live from the stage. Some, people will buy directly from a cashier, at the Gathering on Friday afternoon or from the Direct Sale table at the auction. Some, folks will bid on via a silent auction throughout the con. And a few, we'll auction online. I wrote last year about what an award does
, and the reflections I've seen from winners of the Tiptree Awards and Fellowships tell me those honors are doing the job -- encouraging creators and fans to expand how we imagine gender -- and by donating to the auction, you're supporting that.
The auction will be Saturday night, May 26th, and will be about 90 minutes long. If you want to come and you're local to Madison, you can buy a day pass at the door (just to attend WisCon on Saturday) for about $25. And it's totally fine to come to the auction just to enjoy the show, and not to buy anything.
Please feel free to signal-boost this, and if you're donating please fill out the form by May 15th. Thank you.
# 11 Mar 2018, 10:42AM: Recent Debugging And Confidence:
I am proud of myself for some recent debugging I've done on and with codebases and tools that I hadn't worked on before.
A few weeks ago, I was sitting next to a friend who co-maintains a web app and hadn't looked at it for a while. The styling was screwy. I asked whether some CSS or JS he depended on had upgraded, like jQuery or something. He said no, his site hosted all its dependencies. I opened up the site and checked the Network tab in Firefox Developer Tools and saw that it pulled in Bootstrap from a CDN. Ah, one of the other maintainers had added that! And updates to Bootstrap had screwed up the page's styling.
That same day, as a freshly minted co-maintainer of twine (a utility to upload packages to PyPI), I investigated a problem with our CHANGELOG. Twine's changelog, as represented on Read The Docs (example) and when I built the docs locally, only displayed version number 1.4.0 (2014-12-12) and two associated GitHub issues. This was inaccurate since the source file changelog.rst had 70+ items and ran up to version 1.9.1 (2017-05-27). I figured out that this was happening because changelog.rst is meant to be formatted so the Sphinx extension releases (which I hadn't used before) can parse it, and the current file wasn't syntactically (or semantically) adhering to releases's conventions. (Since then, with advice and help from some folks, I've released Twine 1.10.0 and started a new maintainer checklist.)
And then, a couple days later, I fixed my friends' blog. Their front page had reverted to a ten-year-old index page. I had never touched Movable Type before and hadn't used their particular managed hosting web GUI before, but I poked around (and checked for backups before changing anything) and managed to figure it out: during a May 2008 outage, someone had hand-made an index.shtml page, which was now overriding the index.html page in the server config. I figured it out and found and fixed it.
My mom says that when I was a kid, I took apart alarm clocks and spare hose attachments and so on, and put them back together just fine. She once came upon me taking something apart, and when she drew breath to admonish me, I said, "Amma, if I don't take it apart, how do I know what is inside? Don't worry, amma, I'm just looking at it, I'll put it back together when I'm done," and I did. She told me that I took apart a mechanical alarm clock, carefully spreading all the parts out on some newspaper, and put it back together, and it didn't quite work properly, so I took it apart again and then put it back together, and it worked, and I jumped for joy and said "I fixed it!" (I still feel that way when I fix something.)
At some point along the way I feel like I lost that calm confidence in my abilities, that "things are made of stuff" and what one person made another can fix. But I have it again, now, at least for some bits of software, and some purely mechanical stuff (yesterday, helping friends move, deciding to break down a big empty cardboard box, responding to "but it's so big, it won't fit on the stack" with "we have knives"). It doesn't feel courageous at the time, just sensible, but then I look back and feel like a badass.
If I had to point to the single biggest cause of this regained confidence, I'd point to the Recurse Center, where I got way more comfortable with bravery and failure in programming.
# 11 Mar 2018, 10:14AM: Not Teetotal, But Teemostly:
Here's something I'm really embarrassed to write, but want to mark, and maybe it'll help someone.
I've cut way down on drinking alcohol and am very glad I have done so.
Quick context: when I was growing up, I thought alcohol was Wrong. My parents did not drink alcohol at all and I believed what they told me in DARE and promised I would never smoke, drink, or take any other drugs.
For most of my time in college I did not drink alcohol at all, and held booze-free parties. While in college I visited Russia, where I was over the legal drinking age, and cautiously tried booze, taking notes the first time to check how my perception and judgment were affected. In my twenties I tried it more and it became a normal part of my life into my thirties.
I never perceived myself to have a problem with alcohol. Maybe once every twelve to eighteen months I'd misjudge my capacity and get to the vomiting and hungover stages, and a few times I said something really embarrassing or got hurt while drunk, but overall I thought I was fine, especially after I made a personal rule to only have a single drink per night when at a work-related event. Every once in a while I would find that the frequency had gone up from once or twice a week to nearly a drink every evening, and would cut back to zero or near zero for a while.
Then, last year, I had two bad experiences just a few months from each other, where I misjudged and drank enough to upset my stomach. What's worse, the second of those times was just after a great hiking trip and made the bus trip back home super awful, and made me completely cancel my plans (with a friend I rarely see) for the next day. I decided I absolutely needed to switch to other stress relief/conviviality choices, and went teetotal.
A month later, one afternoon, I was coworking with some colleagues in a shared coworking space, and heard a group of men I didn't know making some mocking and disturbing misogynistic jokes. I asked them to stop (I think they did; at least I stopped hearing them) but decided to get a drink with my colleagues, after work, to deal with the leftover nerves. As I did so I realized it had been a month since my last drink. It was the ninth of October.
I decided to try keep going like that, and only drink alcohol on the ninth of the month. That's what I've done since then (I make exceptions to, e.g., have a few sips of champagne to toast at my friends' wedding, but nothing like an actual serving of alcohol).
It's going well. I do not get drunk on the ninth of the month; I have a drink with a meal with a friend, then maybe a second a few hours later with Leonard. All my friends and colleagues are cool with it (I have the kinds of colleagues who put together surveys of what nonalcoholic drinks conference attendees want). It doesn't bother me to see other people drinking in moderation. It feels weird enough to be an enjoyable meta-habit (playfulness being a good way for me to trick myself into doing something that might otherwise feel tedious). I'm able to exert my best judgment while socializing. I listened the other day to the "Say Why to Drugs" episode on "Dry January" and yeah, like a lot of drinkers who experiment with taking a month off from all alcohol, I also incidentally spend a bit less money and sleep a bit better. And US politics is still super awful, and sometimes I still feel overwhelmed at my TODO list, but I hear that little "a drink would be nice" voice and then I go drink some water or do something else.
A lot of people I admire and like don't drink at all, and a lot of people I admire and like drink in moderation way more frequently than I now do. I am just talking about my own experience (and am trying to be concise and bring myself to overcome my embarrassment enough to actually hit Publish).
# 06 Feb 2018, 09:48AM: The Ambition Taboo As Dark Matter:
PyCon just rejected my talk submission,* so I'll try to finish and post this draft that I've been tapping at for ages.
My current half-baked theory is that programmers who want any public recognition from our peers, recognition that meaningfully validates our personal mastery, basically have to do that through one of a few fora that therefore accrue less-spoken emotional freight. And two of those places are code review in open source projects** and proposal review in tech conference talk submissions, and the fact that we don't talk enough about the role of ambition when talking about these processes leads to unnecessary hurt feelings.
For context: We give talks for varied reasons. To teach, to make reusable documentation, to show off things we've made or things we know, to burnish our credentials and thus advance our careers, to serve our corporate brands' goals, to provide role models for underindexed folks from our demographics, to give a human face to a project and make it more approachable, it goes on.
A conference talk is a tool in a toolbox that has a lot of other tools in it. (The Recompiler, Linux Journal and LWN pay for articles, for instance.)
And conferences are more than lecture halls, of course -- they're networking opportunities, communities of practice, parties, vacations, sprints, and so on.
But when we talk about the particular pain or joy of having a talk accepted or rejected from a conference, there's an emotional valence here that isn't just about the usefulness of a talk or the community of a conference. We're talking about acceptance as a species of public professional recognition.
I've found it pretty useful to think about public professional recognition in the context of Dr. Anna Fels's book Necessary Dreams. She points out that the childhood or adolescent desire for fame is often a precursor to a more nuanced ambition, combining the urge to master some domain or skill with the desire for the recognition of one's peers or community. This influences how I think about awards, about job titles, and about encouraging technologists in the public interest, and about the job market's role in skill assessment.
So how can a programmer pursue public mastery validation? Here's what I see:***
- contributing to open source software (mastery validation: maintainers merging commits and thanking/crediting contributor for work)
- presenting at conferences (mastery validation: program committee accepting talk)
- posting comments to gamified platforms like Reddit, Hacker News, and Stack Overflow (mastery validation: upvotes and replies)
- publishing academic research (mastery validation: journal accepting paper, peers reviewing paper positively)
- writing books (mastery validation: publisher accepting & publishing book)
- starting and architecting technically challenging projects (mastery validation: skilled technologists cofounding with or working for you, or relying on or praising your work)
So, this stuff is fraught; let's not pretend it's not. And we get rejected sometimes by conferences and talk about it, try to take the perspective that we're collecting "no's", we remind others that even successful and frequent speakers get rejected a lot and you can choose not to give up. And we give each other tips on how to get better at proposing talks. And that's all useful. But there's also another level of advice I want to give, to repeat something I said last year:
I try not to say "don't get discouraged," because to me that sounds like telling someone not to cry or telling someone to calm down. It's a way of saying "stop feeling what you're feeling." Instead, I try to acknowledge that something is discouraging but also -- if the other person's ready to hear it -- that we can come back from that: your feelings are legitimate, and here are some ways to work with them.
Some advice I hear about bouncing back from a conference talk rejection involves formalizing, creating systems to use to get better at writing proposals (my own tips mostly fall into this category) -- after all, in programming, you can learn to make better and better things without directly interacting with or getting feedback from individuals. The code compiles, the unit tests pass. And that can be soothing, because you can get the feedback quickly and it's likely to be a flavor of fair. (But that computer rarely initiates the celebration, never empathizes with you about the specific hard thing you're doing or have just done, and rarely autocredentials you to do something else that has a real impact on others.)
To formalize and abstract something makes it in some ways safer; it's safer to say "I'm working to pass the [test]" or "I'm building a [hard thing] implementation" or "I'm submitting a talk to [conference]" than to say "I am working to gain the professional respect of my profession". But that is one motivation for people to submit talks to tech conferences and to feel good or bad about the talks they give.
So part of my advice to you is: go ahead and be honest with yourself about how you feel. Rejection can be hard, working to get an unaccountable gatekeeper's acceptance**** and failing to get public professional recognition in your chosen field is a cause of anxiety, and so on. Be honest about how discouraging that can feel, and why, and what you wanted that you didn't get.
And another part of my advice is that I will ask, like the annoying programmer I am: what problem are you trying to solve? Because there are probably a lot of ways there that don't involve this particular gatekeeper.
And the most annoyingly empowering part of my advice is: Humans created and run PyCon and TED and Foo Camp and all the other shiny prestigious things; you're a human and you could do so too. Especially if you acknowledge not just your own but others' ambition, and leverage it.
* Maybe we'll do it in an open space anyhow.
** Another blog post for another time!
*** I've left some things out here.
We have some awards, e.g., ACM Distinguished Member, that you might get if you work really hard for decades in certain fields. That feels too far away for the kind of thing I'm thinking about.
I've left out the possibility of being promoted at your job, because many technologists perceive engineering job promotions as not particularly correlating with the quality of one's work as a programmer, which means a promotion doesn't send a strong signal, understood by peers outside one's organization, of validation of programming mastery. Then again, if your organization is old enough or big enough, maybe the career ladder there does constitute a useful proxy for the mental models of the peers whose judgment you care about.
I've left out various certifications, diplomas and badges because I don't know of any that meaningfully signal validation of one's mastery as a programmer industry-wide. And there's a lot of stuff to parse out that I feel undecided about, e.g., I find it hard to distinguish the status symbol aspect of admission from the signal that the final credential sends. And: A lot of people in this industry find it impressive when someone has been admitted to certain postsecondary engineering programs, regardless of whether the person graduates. And: In my opinion, the Recurse Center is an experience that has an unfortunate and unintended reputation for gatekeeping on the basis of programming skill, such that a big subset of people who apply and are rejected experience this as an authoritative organization telling them that they are not good enough as programmers (and Google Summer of Code and Outreachy have a related problem).
Of course, go ahead, write your own blog post where you talk about how wrong I am about what I list or exclude, especially because I come from a particular corner of the tech industry and I'm sure there's stuff I don't perceive.
**** Some conferences' gatekeepers are more unaccountable than others'; regardless, the feeling from the rejectee's point of view is, I bet, mostly the same. And you can start your own conference or join the program committee of an existing conference to see what it's like from the other side of the desk and wield a bit of the power yourself.