# 07 Feb 2017, 11:18AM: Upcoming Talks:
I happened upon the New York state Assembly's website last week,* and noticed an upcoming hearing about "Government oversight of forensic science laboratories" (PDF), hearing oral testimony by invitation only. I wondered: Who's on the list of witnesses? And will any of them talk about the danger of closed-source, unauditable code used in forensic science in the criminal justice system?
I followed up, and we got me, plus Rebecca Wexler, the author of that piece, invited to speak. We're testifying tomorrow, Wednesday, February 8th, in New York City. In preparation, I'm conferring with Karen Sandler of Software Freedom Conservancy (who was slotted to speak but now can't) and with acquaintances who work in government forensic labs.
I did speech and debate in high school so in some sense I have been preparing for this for twenty years.
A little further off:
Next week, I will participate in the WONTFIX Cabal (Maintainerati) unconference for open source maintainers on February 15, 2017, in San Francisco, California, USA.
I will give the closing keynote address at LibrePlanet, a free software conference, March 25-26, 2017, in Cambridge, Massachusetts, USA. Tentative title: "Lessons, Myths, and Lenses: What I Wish I'd Known in 1998."
I will be one of the Guests of Honor at Penguicon, an open source and science fiction convention, April 28-30 2017, in Southfield, Michigan, USA.
* via Lauren Sperber's blog post about "the New York State Reproductive Health Act to get abortion removed from New York State's Penal Code"
# 30 Dec 2016, 02:06PM: On LiveJournal:
I've posted to MetaFilter about some recent goings-on at LiveJournal; if you have an LJ account you should probably take a look.
# 27 Dec 2016, 11:43AM: Yuletide 2016 Recommendations:
Every year the Yuletide fanfic exchange delivers a bounty of fun transformative works concerning books, movies, songs, games, news stories, and other parts of our media landscape. 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. I have only started on this year's harvest but I already have some favorites to recommend:
A hopeful story, using "Expert judgment on markers to deter inadvertent human intrusion into the Waste Isolation Pilot Plant" (you know, "Sending this message was important to us. We considered ourselves to be a powerful culture.") to tell a ghost map story. (If you want more hope about far future human civilizations, try the fanvid "Dance Apocalyptic" which cheered me this year. And here's more fic about those waste markers.)
This fairy tale, about children and destiny, stands alone so you can read it even if you've never looked at the illustrations that inspire it.
There was once a land, long before and far away from these troubled times, where every child was born with a desire and a destination marked upon them, so that they might know what dwelt in their future. Upon their left hand, a symbol to represent what would give them the greatest happiness in their life. And upon their right hand, a compass that would lead them in the direction of where their desire might be found.
If you liked Hail, Caesar!, perhaps you wanted to revel in the loveliness of Hobie Doyle, who is an understated instance of the Captain Carrot/Middleman/Captain America/Agent Dale Cooper archetype.
The Ghostbusters get a call to a theater built in 1925, and Patty Tolan really shines.
"The War of the Worlds and All That" is a Jeeves and Wooster story that has aliens and mentions Gussie Fink-Nottle and the scripture knowledge prize Bertie won in school, and it's a bunch of fun. And if you're missing the sartorial scheming, enjoy "Jeeves and the Christmas Socks". (I grew up on Wodehouse and on the Fry and Laurie adaptations -- relatedly, here's a sweet story about Tony and Control.)
It's been a while since I read Jurassic Park but "A Strange Attractor in a Stable System" gets Ian Malcolm's voice so right.
If you enjoyed the 1941 movie Ball of Fire (particularly relevant to Wikipedians, incidentally), how about a crossover story that includes The Middleman? And, speaking of The Middleman, "The Extraterrestrial Elf Emergency" includes a paragraph I adore:
"We don't have Christmas on my planet," they said plaintively, through a translator box at the base of their throat. "All our holidays are about military victories and death. Christmas seemed fun."
This Mulan story makes the Disney movie make more sense in ways I had not even thought before.
If you enjoyed Good Omens then perhaps you will like one or more of the three different stories in which those characters enact their own version of "The Devil Went Down to Georgia".
I've never seen the 1944 film Gaslight but this story, set after the film, is about bravery and recovery and resilience and I drank it deep and felt nourished.
No, she thought. I must stop being afraid and bear this until it is done and then, then I'll consider what to do next.
I also enjoyed stories transforming Mrs. Piggle-Wiggle, Fresh Off The Boat, Arrested Development, Arrival, Baby-Sitters Club, and the Mahabharata. And I haven't finished this year's Yuletide yet. Thank you, authors and organizers!
# 02 Dec 2016, 09:30AM: Answering the Phone:
In one of my earliest internships, I volunteered in the local district office of my state Senator (that is, the guy who represented my area in the upper chamber of California's state legislature). I reordered and rearranged informational brochures for our waiting area, I filed, I took phone messages, I think eventually I graduated to writing drafts of replies to constituents for the staffers to revise and send. I volunteered there for a summer, which means that my time there overlapped with the Senate's recess, so I remember a lot more constituent service calls than policy calls -- and the district offices probably got fewer of those calls than the Sacramento office did, anyway.
One day, someone called and said something like, "I'm calling about the Senator's ethics violation." I had never heard anything about this and said "I'm sorry, which ethics violation is that?" to which the caller said "You mean there's more than one?!" I sputtered and put them on hold and took a message or transferred them to a staffer, which I clearly should have done as soon as I heard the tone of their voice and their general topic of inquiry, but hey, inexperience.
Within a few days, there was a letter to the editor in the local newspaper that mentioned this call and named me (I'm pretty sure misspelling my name) while excoriating the Senator and our office. My boss and colleagues sympathized and told me these things happen, and basically reassured me that this was not a black mark on my Permanent Record.
Decades later, I'm calling my local city councilmember, my Senators and my Representative who represent me in Congress, and related offices, spurred by emails from NGOs, aggregators like
"We're His Problem Now" or Wall of Us, and local meetings. And sometimes I stumble over my words, not sure whether they want my name first or my message. But when the intern on the other end of the line says "I don't know what her position is on that; could you call back in 15 minutes? All the staffers who would know are in a meeting right now," I can smile and say "Yes, I can, and I know how it is, I've been on the other end of this call, it's fine." And at least I know I'm not utterly blindsidingly frustrating to deal with. I know, empirically, that I am not as bad as it gets.
# 27 Nov 2016, 08:55AM: Clover:
On Sundays I make omelets. Today's omelets included three diced cloves of garlic.
"I wish to make you aware that we are basically in a garlic ratchet. I will be increasing the number of cloves of garlic involved in our Sunday omlets basically ad infinitum. In sort of a manigarlic destiny approach. So if at some point you find it's going too far, well, file a complaint with your local consulate."
"Well, since I am the one who buys the garlic, I think I can pretty effectively --"
"Oh, that's where the executive orders come in. You think you control appropriations?"
"Are you going to draw from the Strategic Garlic Reserve?"
"There's a slush fund."
(I see that I sort of went from early US President to ... emperor? ... to modern US President over the course of this flight of fancy.)
# 08 Nov 2016, 03:34PM: Podcast Recommendations:
Podcasts I've been enjoying listening to recently include the following (I have not made my way through the back catalog of all of these, by the way):
- "Politically Reactive" with W. Kamau Bell and Hari Kondabolu: funny interviews about current political events. A favorite episode: their interview with Rachel Maddow.
- "How I Built This" from NPR, focusing on how people built new endeavors. A favorite episode: The story of Jane Wurwand, founder of Dermalogica.
- "Our Debut Album", in which comedians try to write songs. A favorite episode: "King of the Deep".
- "Say Why to Drugs" with Dr. Suzi Gage and Scroobius Pip, in which they share the current research on the effects of various drugs. (The bit of the intro where Pip says "pro-truth and anti-myth" has extra reverb or something and I adore it.) A favorite episode: caffeine.
- "Wolf 359", a scripted scifi podcast about a spaceship where things are getting sketchy. Listen from the first episode, but note that things get much more Battlestar Galactica-y starting in season 2.
- "The History of Philosophy in India", by Jonardon Ganeri and Peter Adamson. A couple favorite episodes: on the Mahabharata, and on women philosophers in ancient India.
- "Song Exploder", by Hrishikesh Hirway -- in each episode, musicians talk about how they made a particular song or score, and you get to hear the early components and drafts, and then you hear the finished piece. A few favorite episodes: Garbage ("Felt"), Weezer ("Summer Elaine and Drunk Dori").
- The Recompiler podcast, by Christie Koehler, on current tech events and interviewing interesting people in tech. A favorite episode: interview with Heidi Waterhouse.
- "Track Changes", from Postlight (a consultancy in NYC), in which Paul Ford and Rich Ziade talk with each other and/or guests about tech and design stuff. A couple favorite episodes: parts I and II of an interview with a guy who was a big cheese at Microsoft and who has good deadpan.
- "Looking Sideways", about many aspects of making things. A favorite episode: an interview with Deb Chachra.
- "StartUp", from Gimlet Media, telling the behind-the-scenes stories of people starting businesses. A favorite episode: "Shadowed Qualities" (although I think it won't hit you as hard if you haven't listened to previous episodes about Gimlet Media and founder/host Alex Blumberg).
- "Election Profit Makers", in which friends (one of whom is David "Get Your War On" Rees) rant about the 2016 US election season and swap tips about how to bet profitably on the election. I found out about this via MetaFilter and my Dreamwidth acquaintances and have barely listened so far but enjoyed what I've heard.
# 08 Nov 2016, 10:46AM: Election Day:
I voted today.
Starting Saturday, and for a bunch of Sunday and Monday, I phone-banked and text-banked for the Clinton/Kaine campaign. I also caught up with a few aunts and uncles of mine to remind them to vote, and to ask them to vote for Hillary Clinton.
One aunt of mine has stage IV cancer. It's inoperable. She has trouble getting around but her son will drive them both to the polls tomorrow. If she can't get out of the car, poll officials will come to her and bring her a ballot.
Today I put on a pantsuit and went to our pollsite to cast my ballot. We got there maybe fifteen minutes after the polls opened. Already a long, quiet line curved around the block, under early light in a clear sky.
In New York State: watch out for the so-called "Women's Equality Party".
In New York City: The official government poll site locator site will also tell you your electoral and assembly district, which might help you bypass the first queue when you get to your polling place.
Everywhere in the United States (and for US citizens abroad): IWillVote.com helps you confirm where you'll vote and learn voting requirements (such as whether your state requires you to bring ID).
Several US states have same-day voter registration so you can register and vote today.
If you're having trouble voting, you can call the Election Protection Hotline.
- 866-OUR-VOTE (866-687-8683) -- English language hotline
- 888-VE-Y-VOTA (888-839-8682) -- Spanish language hotline
- 888-API-VOTE (888-274-8683) -- Chinese, Vietnamese, Korean, Bengali, Hindi, Urdu, Tagalog
- 1-844-418-1682 -- Arabic language hotline
Spanish speakers in the US can also text VOTA to 47246 for voting help.
Now: more phone-banking.
# 02 Nov 2016, 11:09AM: Book Catch-up:
I need to catch up with my book reviews or at least log some of the books I've read and liked. I have some notes going back more than a year -- I'll do a very uneven and incomplete recounting just to start catching up.
In mid-2015, for instance, I read and enjoyed several stories in the Kaleidoscope anthology, Andrea Phillips's Revision, Jennie Crusie's Bet Me and Welcome to Temptation, a big chunk of Thomas Merton's New Seeds of Contemplation, about a third of Charles Platt's interview collection Dream makers: the uncommon people who write science fiction, and more. And I reread Losing Joe's Place by Gordon Korman. I remember the first time I ever read Losing Joe's Place, in a childhood bedroom in Stockton, to calm and entertain myself after a scary episode of Unsolved Mysteries. It still holds up as comfort reading.
This year I reread Ann Leckie's Imperial Radch trilogy (Ancillary Justice, Ancillary Sword, Ancillary Mercy). I'd read them as they came out but this was the first time I read them all in a row. As I mentioned in a Making Light comment which is a longer review of the third book (but I softened my view upon rereading), I thought the shape of the books' narratives was interesting -- the first book is like an arrow, and the second is like a V, going from spaceship (and functional community) to space station to planet and back again. What's the third one like? Another commenter, TexAnne, said: an orbit. Yes. These are books about power-over versus power-with, about an unreliable narrator, about the Borg as protagonist, about complicity, and -- Ancillary Sword especially -- trying to give up privilege when it's superglued to your hand and won't come off (Of Noble Family by Mary Robinette Kowal takes on that same issue and it's a reason I'm fond of them both). The most resounding and heartbreaking bit of Ancillary Sword is Queter saying that she can make you look at it. Zeiat's demonstration of cakes and counters -- how we socially construct differences & sameness -- has an enthusiastic explication by JJ Hunter. I'm reminded of the comparison in Emily Nagoski's book Come as You Are: The Surprising New Science that Will Transform Your Sex Life of us and constellations -- the effect of having the same parts, but arranged differently, can be tremendous. (And there's now a fan trailer for the Imperial Radch books!)
More as logging than as reviewing: I haven't yet blogged here about reading Too Like the Lightning by Ada Palmer, Known Associates by thingswithwings, Hold Me and other recent works by Courtney Milan, Seveneves by Neal Stephenson, Making Conversation by Teresa Nielsen Hayden, the Hamilton book, Zen Cho's The Terracotta Bride, Ken Liu's The Grace of Kings, Jeannie Lin's The Lotus Palace, The Unbeatable Squirrel Girl written by Ryan North, Colson Whitehead's The Underground Railroad, part of Breaking the Bow: Speculative Fiction Inspired by the Ramayana, and probably other books. And I want to note that in the last year I've reread, or reread most of, Inherent Vice by Thomas Pynchon, Travels by Michael Crichton, Zodiac by Neal Stephenson, American Taxation, American Slavery by Robin Einhorn, The Hundred Thousand Kingdoms by N.K. Jemisin, How To Win Friends and Influence People by Dale Carnegie, Getting to Yes by Fisher and Ury, A Semester in the Life of a Garbage Bag by Gordon Korman, and Dear Mr. Henshaw by Beverly Cleary -- plus probably other stuff I'm not remembering off the top of my head. I read Octavia Butler's Parable of the Talents and Parable of the Sower, one of which I'd read before and one of which I hadn't. Bracing, and inspiring the way that memoirs of successful activists can be inspiring.
Right now I'm making my way through Elinor Ostrom's Nobel Prize lecture, "Beyond Markets and States: Polycentric Governance of Complex Economic Systems", and Thomas Pynchon's Bleeding Edge.
# (1) 01 Nov 2016, 09:46AM: Political Memories:
I've been reminiscing about past US elections and administrations.* I've been paying attention to US federal politics since the early nineties, which means I remember a lot of details that many younger politics enthusiasts don't. I decided to dredge some of them up:
I imagine some of my readers will be utterly uninterested in this litany, and some will be a little curious, and some will say "AGGGGH" and remember a bunch of things they thought they had forgot in a partially pleasing and partially disorienting experience. I will admit that this entry is mostly aimed at that last group.
* I misheard Leonard or something and we came up with the phrase "Munchin' Accomplished" which he immediately realized ought to be the name of a George W. Bush-administration-themed food cart. It would serve:
- Freedom fries
- "Condoleezza" rice (her name is Italian, so, risotto maybe?)
# (1) 31 Oct 2016, 11:47AM: How Do We Encourage Technologists in the Public Interest?:
As I mentioned when the Recompiler interviewed me, my inspirations and role models in technology are technologists who serve the public interest. The person who introduced me to free and open source software, Seth Schoen, is a kind teacher and a rigorous thinker who deploys his software engineering expertise at the intersection of technology and activism. I was lucky enough to meet the right people early in my career so I see public interest technology as a desirable and viable career path AND something you can integrate into a career that doesn't focus on nonprofit/government work -- but not enough people know about it, and not enough institutions encourage it.
How do we help encourage and employ more Seths, more Bruce Schneiers, more Eleanor Saittas, more Kelsey Gilmore-Innises? If you were to say "Sumana, that's a pretty infosecurity-centric list there, what about people who are more about analytics to enable policy work, or the web developers at 18F, or --" then I would agree with you! This is a broad and deep field, and thus a broad and deep question.
Again and again, we were told that public interest organizations and government will not succeed if they do not quickly figure out how to better harness the wave of innovation sweeping the world, and that one key element of that challenge will be to implement more effective strategies for developing and integrating technologists into relevant organizations and projects.
That is from A Pivotal Moment: Developing a New Generation of Technologists for the Public Interest, a new report that aims to help philanthropists choose what to fund (and how) to make this change happen. This is not just a bunch of vague "let's grow the pipeline" stuff. The authors interviewed 60 experts, laid out 26 specific things we can do (many of which are already in progress), and made a bunch of recommendations. Section III, starting on page 10 (page 16 of the PDF), summarizes the interventions in five categories: interest cultivation, skill-building, recruitment and training, skill deployment, and growth and retention.
If you can influence decisions on grants or donations, or if you just want a framework for thinking about this problem and its solutions (and where your existing work sits in the ecology), check out the report.
# 27 Oct 2016, 11:06AM: Learning Styles:
For years, while mentoring others, I've been using these engineering learning styles as a tool to help newer engineers reflect on how they learn, and to give them a sense of the possible toolbox of learning approaches, so that if they get stuck, they can recognize what approach they're using and try another one. But students don't have different learning styles, really, per science-based required reading for a Software Carpentry train-the-trainer class I'm about to attend. I need to rework my advice.
# 15 Oct 2016, 01:55PM: New Zine "Playing With Python: Two of My Favorite Lenses":
MergeSort, the feminist maker meetup I co-organize, had a table at Maker Faire earlier this month. Last year we'd given away (and taught people how to cut and fold) a few of my zines, and people enjoyed that. A week before Maker Faire this year, I was attempting to nap when I was struck with the conviction that I ought to make a Python zine to give out this year.
So I did! Below is Playing with Python: 2 of my favorite lenses. (As you can see from the photos of the drafting process, I thought about mentioning pdb, various cool libraries, and other great parts of the Python ecology, but narrowed my focus to bpython and python -i.)
Playing with Python
2 of my favorite lenses
[magnifying glass and eyeglass icons]
by Sumana Harihareswara
When I'm getting a Python program running for the 1st time, playing around & lightly sketching or prototyping to figure out what I want to do, I [heart]:
bpython & python -i
[illustrations: sketch of a house, outline of a house in dots]
bpython is an exploratory Python interpreter. It shows what you can do with an object:
>>> dogs = ["Fido", "Toto"]
append count extend index insert pop remove reverse sort
And, you can use Control-R to undo!
[illustrations: bpython logo, pointer to cursor after dogs.]
Use the -i flag when running a script, and when it finishes or crashes, you'll get an interactive Python session so you can inspect the state of your program at that moment!
$ python -i example.py
Traceback (most recent call last):
File "example.py", line 5, in
toprint = varname + "entries"
TypeError: unsupported operand type(s) for + : 'int' and 'str'
[illustration: pointer to type(varname) asking, "wanna make a guess?"]
More: "A Few Python Tips"
This zine made in honor of
NYC's feminist makerspace!
CC BY-SA 2016 Sumana Harihareswara
Everyone has something to teach;
everyone has something to learn.
Here's the directory that contains those thumbnails, plus a PDF to print out and turn into an eight-page booklet with one center cut and a bit of folding. That directory also contains a screenshot of the bpython logo with a grid overlaid, in case you ever want to hand-draw it. Hand-drawing the bpython logo was the hardest thing about making this zine (beating "fitting a sample error message into the width allotted" by a narrow margin).
Libby Horacek and Anne DeCusatis not only volunteered at the MergeSort table -- they also created zines right there and then! (Libby, Anne.) The software zine heritage of The Whole Earth Software Review, 2600, BubbleSort, Julia Evans, The Recompiler, et alia continues!
(I know about bpython and python -i because I learned about them at the Recurse Center. Want to become a better programmer? Join the Recurse Center!)
# (1) 12 Oct 2016, 11:00AM: Rough Notes for New FLOSS Contributors On The Scientific Method and Usable History:
Some thrown-together thoughts towards a more comprehensive writeup. It's advice on about how to get along better as a new open source participant, based on the fundamental wisdom that you weren't the first person here and you won't be the last.
We aren't just making code. We are working in a shared workplace, even if it's an online place rather than a physical office or laboratory, making stuff together. The work includes not just writing functions and classes, but experiments and planning and coming up with "we ought to do this" ideas. And we try to make it so that anyone coming into our shared workplace -- or anyone who's working on a different part of the project than they're already used to -- can take a look at what we've already said and done, and reuse the work that's been done already.
We aren't just making code. We're making history. And we're making a usable history, one that you can use, and one that the contributor next year can use.
So if you're contributing now, you have to learn to learn from history. We put a certain kind of work in our code repositories, both code and notes about the code. git grep idea searches a code repository's code and comments for the word "idea", git log --grep="idea" searches the commit history for times we've used the word "idea" in a commit message, and git blame codefile.py shows you who last changed every line of that codefile, and when. And we put a certain kind of work into our conversations, in our mailing lists and our bug/issue trackers. We say "I tried this and it didn't work" or "here's how someone else should implement this" or "I am currently working on this". You will, with practice, get better at finding and looking at these clues, at finding the bits of code and conversation that are relevant to your question.
And you have to learn to contribute to history. This is why we want you to ask your questions in public -- so that when we answer them, someone today or next week or next year can also learn from the answer. This is why we want you to write emails to our mailing lists where you explain what you're doing. This is why we ask you to use proper English when you write code comments, and why we have rules for the formatting and phrasing of commit messages, so it's easier for someone in the future to grep and skim and understand. This is why a good question or a good answer has enough context that other people, a year from now, can see whether it's relevant to them.
Relatedly: the scientific method is for teaching as well as for troubleshooting. I compared an open source project to a lab before. In the code work we do, we often use the scientific method. In order for someone else to help you, they have to create, test, and prove or disprove theories -- about what you already know, about what your code is doing, about the configuration on your computer. And when you see me asking a million questions, asking you to try something out, asking what you have already tried, and so on, that's what I'm doing. I'm generally using the scientific method. I'm coming up with a question and a hypothesis and I'm testing it, or asking you to test it, so we can look at that data together and draw conclusions and use them to find new interesting questions to pursue.
So I'll ask a question to try and prove or disprove my hypothesis. And if you never reply to my question, or you say "oh I fixed it" but don't say how, or if you say "no that's not the problem" but you don't share the evidence that led you to that conclusion, it's harder for me to help you. And similarly, if I'm trying to figure out what you already know so that I can help you solve a problem, I'm going to ask a lot of diagnostic questions about whether you know how to do this or that. And it's ok not to know things! I want to teach you. And then you'll teach someone else.
- Expected result: doing run-dev.py on your machine will give you the same results as on mine.
- Actual observation: you get a different result, specifically, an error that includes a permissions problem.
- Hypothesis: the relevant directories or users aren't set up with the permissions they need.
- Next step: Request for further data to prove or disprove hypothesis.
In our coding work, it's a shared responsibility to generate hypotheses and to investigate them, to put them to the test, and to share data publicly to help others with their investigations. And it's more fruitful to pursue hypotheses, to ask "I tried ___ and it's not working; could the reason be this?", than it is to merely ask "what's going on?" and push the responsibility of hypothesizing and investigation onto others.
This is a part of balancing self-sufficiency and interdependence. You must try, and then you must ask. Use the scientific method and come up with some hypotheses, then ask for help -- and ask for help in a way that helps contribute to our shared history, and is more likely to help ensure a return-on-investment for other people's time.
So it's likely to go like this:
- you try to solve your problem until you get stuck, including looking through our code and our documentation, then start formulating your request for help
- you ask your question
- someone directs you to a document
- you go read that document, and try to use it to answer your question
- you find you are confused about a new thing
- you ask another question
- now that you have demonstrated that you have the ability to read, think, and learn new things, someone has a longer talk with you to answer your new specific question
- you and the other person collaborate to improve the document that you read in step 4 :-)
This helps us make a balance between person-to-person discussion and documentation that everyone can read, so we save time answering common questions but also get everyone the personal help they need. This will help you understand the rhythm of help we provide in livechat -- including why we prefer to give you help in public mailing lists and channels, instead of in one-on-one private messages or email. We prefer to hear from you and respond to you in public places so more people have a chance to answer the question, and to see and benefit from the answer.
We want you to learn and grow. And your success is going to include a day when you see how we should be doing things better, not just with a new feature or a bugfix in the code, but in our processes, in how we're organizing and running the lab. I also deeply want for you to take the lessons you learn -- about how a group can organize itself to empower everyone, about seeing and hacking systems, about what scaffolding makes people more capable -- to the rest of your life, so you can be freer, stronger, a better leader, a disruptive influence in the oppressive and needless hierarchies you encounter. That's success too. You are part of our history and we are part of yours, even if you part ways with us, even if the project goes defunct.
This is where I should say something about not just making a diff but a difference, or something about the changelog of your life, but I am already super late to go on my morning jog and this was meant to be a quick-and-rough braindump anyway...
# 28 Sep 2016, 04:43PM: Analogy:
At MidAmericon II I got to shake hands with Dr. Stanley Love and tell him that I liked his speech (he had accepted the Campbell Award for Best New Writer on behalf of his friend Andy Weir). When I later recounted this to friends I found myself saying things like "I reassured an astronaut, which means I will surely go to heaven" or "I couldn't lie to an astronaut! That's a sin!"
This led me to realize that astronauts are, vaguely, to the general US public now as Catholic nuns (at least schoolteacher nuns) were to previous generations. They are cloistered away to be closer to heaven. They have to live in close quarters and collaborate under conditions of micromanagement. They go through arduous selection processes and care a lot about education. Nuns had Rome, astronauts have Houston. We are in awe of their dedication and endurance and altruism and grace. And just the sight of one of their uniforms/habits triggers that reaction of awe.
(Your mileage may vary, conditions may apply, vanity, vanity, all is vanity.)
# 26 Sep 2016, 09:33AM: iCalendar Munging with Python 3, Requests, ics.py, and Beautiful Soup:
Leonard and I love seeing movies at the Museum of the Moving Image. Every few months we look at the calendar of upcoming films and decide what we'd possibly like to see together, and put it on our shared calendar so we remember. And for every showing (example) the MoMI provides an iCalendar (.ics) file, to help you add it to your electronic calendar. But it's a pain to individually download or refer to each event's .ics file and import it into my electronic calendar -- and the museum's .ics files' DTEND times are often misleading and imply that the event has a duration of 0 seconds. (I've asked them to fix it, and some of their calendar files have correct durations, but some still have DTEND at the same time as DTSTART.)
Saturday morning I had started individually messing with 30+ events, because the MoMI is doing a complete retrospective of Krzysztof Kieslowski's films and I am inwardly bouncing up and down with joyous anticipation about seeing Dekalog again. And then I thought: I bet I can automate some of this tedious labor!
So I did. The create-fixed-ics.py script (Python 3) takes a plain text file of URLs separated by newlines (see movie-urls-sample-file.txt for an example), downloads iCalendar files from the MoMI site, fixes their event end times, and creates a new unified .ics file ready for import into a calendar. Perhaps the messiest bit is how I use a set of regular expressions, and my observations of the customs of MoMI curators, to figure out the probable duration of the event.
Much thanks to the programming ecology that helped me build this, especially the people who made RegExr, Beautiful Soup (hi Leonard), Requests, ics.py, and the bpython interpreter, and the many who have written excellent documentation on Python's standard library. Thanks also to Christine Spang, whose "Email as Distributed Protocol Transport: How Meeting Invites Work and Ideas for the Future" talk at Open Source Bridge 2015 (video) introduced me to hacking with the iCalendar format.
- It can be a bit slow as the number of URLs adds up -- it took maybe 5 minutes to process about 31 events. I oughta profile it and speed it up. But I usually only need to do this about six times a year.
- This script is not careful, and will overwrite a previously created .ics file at the same address (in case you're running it twice in one day). It has no tests and approximately no error-checking. This was a scratch-my-own-itch, few-hours-on-a-Saturday project. No Maintenance Intended.
- Absolutely not an official project of the Museum of the Moving Image.
# 22 Sep 2016, 03:09PM: New Essay: "Toward a !!Con Aesthetic":
Over at The Recompiler, I have a new essay out: "Toward A !!Con Aesthetic". I talk about (what I consider to be) the countercultural tech conference !!Con, which focuses on "the joy, excitement, and surprise of programming". If you're interested in hospitality and inclusion in tech conferences -- not just in event management but in talks, structure, and themes -- check it out.
Christie Koehler also interviews me about this and about activist role models, my new consulting business, different learning approaches, and more in the latest Recompiler podcast.
[announcement cross-posted from Geek Feminism]
# 13 Aug 2016, 12:40PM: Habit, Identity, Self-Care, and Shame:
Lately I've been working to acknowledge and honor the difference it makes to me to invest in various activities and habits when they do make a difference to me. Exercising every day, and setting out my workout stuff the night before so I can just grab it in the morning. Witnessing live music. Talking with friends via voice or in person, more often than would happen by chance. Using Beeminder to increase the quantity and frequency of good habits, and LeechBlock to reduce the amount of time I spend on Twitter or MetaFilter. Praying every day. Keeping my work area and my chunk of the bedroom relatively uncluttered, so I feel more peaceful and focused. And beside the noticeable positive effects are some strange echoes and murmurs that are also worth attention.
When the bedstand and bureau and desk are clear of clutter, sometimes I feel unmoored, as though I am surely just moved into or about to move away from this apartment. A life with great expanses of unused horizontal surface area is unfamiliar enough to me that it feels liminal, not mine. Yet, anyway; perhaps I can get used to it.
And sometimes, I feel shame about what I want or need, shame about what sustains me. This is different from anti-"guilty pleasure" bias. I engage in self-care in response to specific stress or disappointment. When a blow hits me, I curl up with the latest Courtney Milan romance novel and some combination of tea, cognac, corn nuts, and chocolate. And feminism has helped me overcome fatphobic and anti-feminine prejudice that castigated these forms of comfort. For instance, I now much more rarely use the word "trashy" for a certain genre of fiction; just as Disneyland takes a hell of a lot of engineering, fiction that conveys engaging characters and a diverting plot through accessible prose takes quite a lot of craft. And besides, what I'm feeling isn't guilt anyway; guilt is about what you've done. Shame is about what you are.
I can see that it helps me to use Beeminder and LeechBlock, to exercise, to pray, to make people laugh, to see live music. So why the sense of shame? I think it's because if I like or need those things, then I am not entirely autonomous, I am not entirely self-disciplined, I am not a brain in a jar. My body needs things, my sociability needs to be fed, my focus and persistence need assistance. The analysis presented by the social model of disability holds true here; I get the message that the way I am is wrong, but when I stop accepting that assumption and start systematically asking "why?", I figure out that it's because there's an assumption in my head that I should be as efficient and autarkic as a space probe.
So perhaps, along with "trashy", I should watch out for places in my internal narrative where "need" and "weak" and "strong" show up. Because yes, I need, and maybe needing feels weak, but if I recognize that need and then take care of it, aren't I strong as well?
I'm also disentangling my intuitions about care and power. I am the one setting up these habits, these guardrails, and I'm doing it as self-love, not as self-punishment or as a power play against another faction of myself. My mindfulness meditation practice has been reminding me to be less clingy about what I think my identity is, and Emily Nagoski's excellent Come as You Are: The Surprising New Science that Will Transform Your Sex Life suggests it's helpful to think of one's self as a swarm or constellation. This approach helps me get less hierarchical about all the varying bits of me. So instead of rebelling, I can say "argh" and then say to myself "yeah I know" and then breathe and do the process anyway.
And I can see how I need to show myself self-love via accommodation. I am like both the builder of the building and the person with accessibility needs who needs to use that building. Wouldn't I want some other builder to build hospitably, and wouldn't I want other building users to joyfully make full use of the accommodation available?
And that loving approach, plus seeing my past successes, makes it easier for me to work the way that works for me. Timers, minigoals, setting up mise-en-place ahead of time. The timers and minigoals don't have to be optimal, just right enough to get me in the right neighborhood, then iterate from there. I can have patience and trust the process.
Perhaps the biggest change, the biggest unmooring, is to my identity. I was always behind on correspondence, always surrounded by clutter, fairly sedentary, and I had not realized how these formed part of the furniture of my mind until I started dismantling them. I am curious what the new configuration will be, and whether it will have a chance to consolidate before another set of changes begins.
Thanks to my friend J. and my friend and meditation teacher Emily Herzlin for conversations that led to this post.
# 10 Aug 2016, 10:17AM: Grief:
It's been a tough week. Wednesday of last week, I learned that Kevin Gorman had died. He was only 24 years old. I met Kevin through my work at the Wikimedia Foundation. He was a feminist activist who put a tremendous amount of energy into making Wikipedia a better resource for everyone. He added and improved articles, and he taught others, and he took on the emotional work of moderating and responding to voices that were arguing against feminists, and of fighting harassment (in all his communities). As he said on his user profile:
I dislike systemic biases; both those caused by our gender, racial, and geographic biases, and those caused by no abstract available bias and its kindred. One of my stronger interests on Wikipedia is making available online in a freely available format content that cannot be currently be found on the Wikimedia projects because of our systemic biases. I think that this is some of the most important work that can be done on Wikipedia at this time.
I had known that he'd been fighting various illnesses for some time, but I was still shocked to hear of Kevin's death; he was far too young. My condolences to his family and his friends and his many collaborators in free knowledge and justice. Kevin and I didn't have that many conversations but in every one I heard his deep passion for the work of improving our culture on all levels; he never ceased to be shocked at things that aren't right, and to channel that shock into activism and organizing. I will miss his dedication and I will remember his ideals.
He was only 24. As I handle more and more death I come to learn which deaths cause more painful griefs. I seem to believe, somewhere deep inside, that people younger than me really shouldn't die, that it breaks an axiom.
And then the next day I learned that Chip Deubner had died. Further shock and grief. I met Chip because we worked together at the Wikimedia Foundation; he was a desktop support technician, and the creator and maintainer of the audiovisual recording and conference systems, and then rose to manage others. And I can attest to his work ethic -- he cared about the reliability of the tools that his colleagues used to do their work, and he was that reliable himself, ready at a moment's notice to take on new challenges. He demonstrated a distinctive combination of efficiency and patience: help from Chip was fast, accurate, effective, and judgment-free. If anything, he was too reticent to speak up about his own frustrations. I was glad to see him grow professionally, to take on new responsibility and manage others, and I'm glad he was able to touch so many lives in his time on earth -- I only had a few memorable conversations with him, since he lived in the Bay Area and I mostly telecommuted from New York, but I know he enjoyed office karaoke and that many WMF folks counted him as a friend, and grieve him as one. He was a maintainer and a keeper and a maker of things, in a world that needs more such people. He will be in my thoughts and my prayers. (I wrote much of this in a guestbook that might decay off the web, so I'm publishing the words here too.)
Chip died of a brain tumor. He knew he was dying, months before, so he left his job and went back to his family home in Missouri to die. He died on July 9th. And I didn't know, and didn't have a chance to say goodbye, and I suspect this is because I am not on Facebook. Thus, for the first time, I am seriously considering joining Facebook.
Sometimes, in the stupor of grief, I find comfort in doing certain kinds of work -- repetitive, well-specified, medium-cognition work without much call for self-expression. So the article about Hari Kondabolu on English Wikipedia is a lot better now. I took it from 22 citations to 78, found an openly licensed photo to use, and even created the stub of a Telugu Wikipedia page. My thanks to the makers and maintainers of Citoid and the VisualEditor -- with these tools, it is a positive delight to improve articles, a far better experience than in 2011.
Hari Kondabolu turns his anger into comedy. I turn my grief into Wikipedia edits. We all paint with our pain. If we do it right and we're lucky, the stuff we make helps, even if it's just two inches' worth of help, even if it just helps ourselves.
# 04 Aug 2016, 03:51PM: Advice on Starting And Running A New Open Source Project:
Recently, a couple of programmers asked me for advice on starting and running a new open source project. So, here are some thoughts, assuming you're already a programmer, you haven't led a team before, and you know your new software project is going to be open source.
I figure there are a few different kinds of best practices in starting and running open source projects.
General management: Some of my recommendations are the same kinds of best practices that are useful anytime you're starting/running/managing any kind of project, inside or outside the software world.
For instance: know why you're starting this thing. Write down even just a one-paragraph or 100-word bulleted list description of what you are aiming at. This will reduce the chance that you'll look up one day and see that your targeted little tool has turned into a mess that's trying to be an entire operating system.
And: if you're making something that you want other people to use, then check what those other people are already using/doing, so you can make sure you suit their needs. This guards against any potential perception that you are starting a new project thoughtlessly, or just for the heck of it, or to learn a new framework. In the software world, this includes taking note of your target users' dependencies (e.g., the versions of Python/NumPy that they already have installed).
Resources I have found useful here include William Ball's book on theatrical direction A Sense of Direction, Dale Carnegie's How to Win Friends and Influence People, Fisher & Ury's Getting To Yes, Cialdini's Influence: The Science of Persuasion, and Ries & Trout's Positioning: The Battle for Your Mind.
Tech management: Some best practices are the same kinds of habits that help in managing any kind of software project, including closed-source projects as well.
For instance: more automated tests in/for your codebase are better, because they reduce regressions so you can move faster and merge others' code faster (and let others review and merge code faster), but don't sweat getting to 100%, because there's definitely a decreasing marginal utility to this stuff. Travis CI is pretty easy to set up for the common case.
I assume you're using Git. Especially if you're going to be the maintainer on a code level, learn to use Git beyond just push and pull. Clone a repo of a project you don't care about and try the more advanced commands as you make little changes to the code, so if you ruin everything you haven't actually set your own work back. Learn to branch and merge and work with remotes and cherry-pick and bisect. Read this super useful explanation of the Git model which articulates what's actually doing what -- it helps.
Good resources here include Brooks's The Mythical Man-Month, DeMarco & Lister's Peopleware, Heidi Waterhouse's "The Seven Righteous Fights", Camille Fournier's blog, and my own talk "Learn Tech Management in 45 Minutes" and my article "Software in Person". I myself earned a master's in technology management and if you are super serious about becoming a technology executive then that's a path I can give more specific thoughts on, but I'm not about to recommend that amount of coursework to someone who isn't looking to make a career out of this.
Open source management: And some best practices are the specific social, product management, architectural, and infrastructural best practices of open source projects. A few examples:
If you're the maintainer, it's key to reply to new project-related emails, queries, bug reports, and patches fast; a Mozilla analysis backs up our experience that a kind, fast, negative response is better than a long silent delay. Reply to people fast, even if it's just "I saw this, thank you, I'm busy, will get to this in a few weeks," because otherwise the uncertainty is deathly and people's enthusiasm and momentum drip away.
Make announcements somewhere public and easily findable that say something about the current state of your project, e.g., about whether it's ready to use or when to expect it to be. This could even just be someplace prominent in your README when you're just getting started. This is also a good place to mention if you're going to be at any upcoming conferences, so people can connect to you that way.
Especially when it comes to code, docs, and bug/feature/task lists, work in the open from as early as possible, preferably from the start. Treat private work as a special case (sometimes a useful one when it comes to communication with users and with new contributors, as a tidepool incubates growth that can then flow into the ocean).
I am sad, as a FLOSS zealot, to say that you should probably be on the closed-source platform that is GitHub. But yeah, the intake funnel for code and bug contributors is easier on GitHub than on any other platform; unless you are pretty sure you already know who all the people are who will use and improve this software, and they're all happy on GitLab or similar, GitHub is going to get you more and faster contributors.
You are adjacent to or embedded in other programming communities, like the programming language & frameworks you're using. Use the OSI-approved license that the projects you're adjacent to/depending on use, to make reuse easier.
It's never too early to think about governance. As Christie Koehler of Authentic Engine warns, to think about codes of conduct, you also gotta think about governance. (The Contributor Covenant is a popular starting point.) If you can be under the umbrella of a software-related nonprofit, like NumFOCUS, that'll help you make and implement these choices.
Top reading recommendation: Karl Fogel's Producing OSS is basically the bible for this category, and the online version is up-to-date with new advice from this year. If you read Producing OSS cover-to-cover you will be entirely set to start and run your project.
Additionally: Fogel also co-wrote criteria for assessing whether a project "is created and managed in a sustainably open source way". And I recommend my own blog post "How To Improve Bus Factor In Your Open Source Project", the Linux Foundation CII criteria (hat-tip to Benjamin Gilbert), "build your own rockstars" by one of the founders of the Dreamwidth project, and "dreamwidth as vindication of a few cherished theories" by that same founder (especially the section starting "our development environment and how we managed to create a process and culture that's so welcoming").
Obligatory plug: I started Changeset Consulting, which provides targeted project management and release management services for open source projects and the orgs that depend on them. In many ways I am maintainer-as-a-service. If you want to talk more about this work, please reach out!
# 04 Aug 2016, 11:55AM: MidAmericon and Zambia:
MidAmericon II, the 74th Worldcon (a long-standing yearly celebration of scifi and fantasy and the fandom thereof) has just released its programming schedule. I'm participating in several program
items. All of the following take place August 17-21, 2016, at the Kansas City Convention Center in Kansas City, MO.
- Panelist, "The Interstices of Historical and
Fanfiction", Wednesday Aug 17, 7pm-8pm, KCCC 2204
- Panelist, "The Imaginary Book Club", Thursday Aug 18, 11am-noon, KCCC
- Panelist, "Bad Boy Woobie", Thursday Aug 18, 1pm-2pm, KCCC 2204
- "Comedy Tonight!" (I'll perform about 30 minutes of stand-up comedy during this
three-person showcase), Thursday Aug 18, 7pm-8:30pm, KCCC 3501B
- Panelist, "The New Space Opera Golden Age on the
Screen", Friday Aug 19, 10am-11am, KCCC 2503B
- Auctioneer for Tiptree Award Auction, Friday Aug 19, noon-1pm, KCCC Flexible
- Panelist, "The Art and Science of Fiction Translation",
Friday Aug 19, 2pm-3pm, KCCC 3501F
- Panelist, "Comics Confrontational! Social
Issues in Recent Comics", Saturday Aug 20, 10am-11am, KCCC 2206
- Panelist, "Representation in Comic Books:
From Absences to Affirmatives", Saturday Aug 20, 1pm-2pm, KCCC 3501B
At this Worldcon I will finally get to meet, for the first time, Ken Liu, whom Leonard and I published in Thoughtcrime Experiments seven years ago. I predict I will meet him because he and I will both serve on that scifi translation panel, and I'll see friends Elise Matthesen and Teresa Nielsen Hayden because we're also on sessions together. Will I get to see other friends? Only future Sumana knows.
Then, in late August and early September, I'm visiting family abroad. Specifically: my sister Nandini, an extremely impressive person, works for the United Nations Capital Development Fund as a Digital Finance Country Technical Specialist. In case you haven't heard of UNCDF:
UNCDF is the UN's capital investment agency for the world's 48 least developed countries. It creates new opportunities for poor people and small businesses by increasing access to microfinance and investment capital. UNCDF focuses on Africa and the poorest countries of Asia, with a special commitment to countries emerging from conflict or crisis.
Getting this job meant that she and my brother-in-law moved to Zambia. I will make my first ever trip to Africa in order to see them! And I'll get to see Victoria Falls. If you know someone in Lusaka you think I should meet, especially anyone interested in open source software, please let me know!
# 02 Aug 2016, 09:26AM: A Few Thoughts On Recent Scifi/Fantasy:
Star Trek Beyond is actually a Star Trek movie rather than an arbitrary summer blockbuster wearing Starfleet paint. (I thought the MacGuffin was going to be the resonator from "Gambit" but the movie ended up being more like "The Wounded". Actual Trek episodes! Yay!)
Naomi Novik's Uprooted features a grand library of magic-related books. In this scene a young woman is seeking writings by the magician who most inspires her, a woman named Jaga, or by magicians like her, and speaks with the disapproving Father Ballo:
"Are there any other spellbooks like Jaga's here, that I might look in?" I asked, even though I knew Ballo didn't have any use for her.
Father Ballo is the fantasy equivalent of a Wikipedia deletionist. Indeed, given Novik's love of fandom and the internet, I would venture to guess that she's aware of the echo and doing it deliberately.
"My child, this library is the heart of the scholarship of magic in Polnya," he said. "Books are not flung onto these shelves by the whim of some collector, or through the chicanery of a bookseller; they are not here because they are valuable, or painted in gold to please some noble's eye. Every volume added has been carefully reviewed by at least two wizards in the service of the crown; their virtues have been confirmed and at least three correct workings attested, and even then they must be of real power to merit a place here. I myself have spent nearly my entire life of service pruning out the lesser works, the curiosities and the amusements of earlier days; you will certainly not find anything like that here."
..... [some of the excluded works] seemed perfectly reasonable formal spellbooks to me, but evidently hadn't met Father Ballo's more rigorous standards.
And a few recent short stories to recommend:
# 14 Jul 2016, 01:08PM: A Great Explanation of WebDriver and Browser Automation:
Maja Frydrychowicz's "Untangling WebDriver and the Browser Automation Landscape I Live In" is a delightful, very satisfying read. It covers the difference between the W3C WebDriver specification and Selenium WebDriver, explains their history and future, and uses the Firefox ecology as the concrete browser example so you understand how the components fit together. Also, Frydrychowicz drops in this punchline:
and some day all browsers will implement it in a perfectly compatible way and we'll all live happily ever after.
Upon reading the post, I noted:
I look into the middle distance, more motivated, yet calmer as well. I seem to hear the opening notes of "Fanfare for the Common Man" somewhere behind me. Automated browser testing seemed overwhelming previously, something to be left to Experts who knew this strange tongue. But now I know the power is in my hands; the map gleams and names that formerly confused me now fall into place. My world makes more sense; I have better comprehension of lists like PhantomJS's list of relevant test frameworks and their corresponding test runners. What might not be possible in this fresh new light?
So, if you feel faintly alienated and unmoored when trying to understand automated browser testing, check out the post.
(I know Maja Frydrychowicz because we both participated in the Recurse Center. Want to become a better programmer? Join the Recurse Center!)
# 04 Jul 2016, 04:58PM: Five Loosely Connected Things:
- Unexpected beauty: There's a little stretch of quiet waterfront walkway with benches tucked away behind the Astoria Costco. It's just north of Rainey Park.
- Fierce spycrafty women: At the launch party for Genevieve Valentine's new book, Icon, I purchased it plus The Girls at the Kingfisher Club. Both recommended! Valentine engages in a recurring focus on women who fight their way out of institutional and interpersonal status traps -- using deception, self-control, fashion, and any other means at their disposal -- to achieve freedom and security for themselves and those they care about, and I consistently enjoy it.
- Incisive comedy: Hari Kondabolu has a new album coming out! And he and W. Kamau Bell have a new podcast!
- A little better every day: Beeminder continues to be a great tool to help me make better choices that will lead me towards my goals.
- Bees and art: The current exhibition at Socrates Sculpture Park includes a salvaged piano turned into a beehive -- and earthworks and gardens that attract pollinators. I like to imagine it would be a safe place for a woman to make bees in public (short story by Alexandra Erin). That piece of fiction is sad and funny and incisive about the necessity of being fierce and spycrafty in order to be a woman, about bees, about unexpected beauty, and about doing a chunk of work every day and witnessing what emerges. I recommend it.
: Comedy Reading
# 30 Jun 2016, 11:19AM: Ambition And Failure:
People who are trying to make stuff often feel like we're failing. Ira Glass's articulation of the gap between taste and skill gets at this. He suggests making more stuff, for deadlines, for others, as a rhythm to push you to progress through that gap. But how do you keep up your morale during that push?
I'm a Recurse Center alumna, and that community often shares learning tips that are relevant to this struggle. For instance, I recommend Allison Kaptur's "Effective Learning Strategies for Programmers", which suggests reframing failure -- and reframing praise and success. Even if the tips I get via RC are programmer-centric, I can usually reuse them in other activities, such as growing my business. And earlier this year, in Ramsey Nasser's keynote The Unfortunate Value of Failure at !!Con 2016 (transcript & video), I heard a different nuance that really spoke to me. Here's the chunk of the captions/transcript that particularly resonated:
I have the same anxieties at 29 as a programmer that I did when I was a teenager. I don't feel measurably better about myself as a programmer over the last ten years, although it is objectively true that I'm a better programmer. Just looking at my GitHub repo, I can see rationally that I have actually improved, but I was trying to figure out why I didn't feel any better.
And my understanding of it... This may be different for other people, but this is my take on it. I don't think that my feeling about my skill as a programmer is actually tied to my skill at all. It's actually tied to the things that I'm trying to do, at whatever skill level I'm at. So when I was 19, I was just trying to make websites. And it was really hard. Right? And ten years later, I'm trying to write a symbolic compiler. And that's really hard. And the diff between what you're trying to do and what you're able to do is how you feel. And as I got better as a programmer, I just kept trying harder and harder things.
So the feeling is constant. Right? That's why there's no point where everything will just feel wonderful. Because I have to do this. I would have to just make basic websites for the rest of my life. And I would feel great. My anxiety would go away. I can whip up a website really, really quickly. But that's not actually what I'm excited about anymore. So my ambitions and the things that I'm excited about grow with my skill. And that's what keeps that feeling constant. That's what it's been for me. Like, right now, I'm running this whole presentation out of custom slide show software that I wrote, and I'm terrified that it's just gonna explode. Like, eat this presentation in front of everybody. And I hope it doesn't.
So if we can't eliminate it, I think we need to learn to love it. Right? We need to embrace it as part of the craft of programming. And not as this thing to be avoided. Failure... When you fail, that means you're pushing yourself. That means you're reaching beyond what you're capable of, because you want to be better. When you're failing, you're learning and you're growing. Right? You're sort of saying to yourself... Whatever you know now is great. It's wonderful. But there's more that you want. Right? It's a sense that you haven't given up on just absorbing as much as you can. 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.
As a homeschooling parent once wrote: "The only thing that makes you smarter is doing hard things." (From the same parent: "I do think that one of the greatest educational gifts I can give her is confidence that she can seek out challenges and master them." and: "being out there on the edge of what you maybe-can't do. That's the place that you value, because that's where you stretch".)
# 21 Jun 2016, 12:28PM: On A Fraught Word:
(This is a blog post specifically aimed at people who aren't in or from the United States and who have conversations with people from the US, especially online. Also, content note: I explain what lynching is and why it's a bad idea to joke about it, with examples.)
Sometimes when people are joking about vigilante justice, they might use the word "lynch," like "we ought to lynch so-and-so," and think it is a harmless and hyperbolic way of saying "we ought to punish them". As a person who likely (if you are reading this blog) cares about inclusivity and social justice, you probably should not use this term in this way. While some people certainly think it has that generic and benign meaning, in the US (the country whose history I know best), it mostly means white people getting together in mobs to kill black people -- for succeeding, for daring to buy houses or vote, or simply for anything deemed unacceptable by those angry racist mobs. It very rarely still happens here, but it was a more common occurrence not so long ago, such that the history and ramifications of this particular form of race-based terrorism are still very present in the American conscience.
In the summer of 1955, Emmett Till, a 14 year old black boy from Chicago, was spending the summer with family members in Mississippi, when he was suddenly accused of breaking the South's unwritten rules of interracial conduct by catcalling a white woman. He was abruptly apprehended by an angry white mob, tortured, and lynched. His mother asked for him to have an open-casket funeral, so people could see the extent of the battering and butchery, and newspapers around the country published the photos. This raised the consciousness of Americans across the nation and helped to spur the movement for civil rights in the United States.
More recently: in the 1990s, a black man (Clarence Thomas) was nominated to be a US Supreme Court justice. Anita Hill, an accomplished black female lawyer and Thomas's former employee, came forward and publicly stated that he had sexually harassed her. This accusation, and the subsequent televised judicial hearings, were a watershed moment that brought the issue of workplace sexual harassment into widespread national debate. Thomas responded to the accusations by calling them "a high-tech lynching". Hill was alternately applauded and attacked; however, the hearings ultimately proved no obstacle for Thomas, as the legislature went on to confirm his appointment. Twenty-five years later, Justice Thomas still sits on the US Supreme Court.
I know the basic facts above from memory, and those of us who were raised in the USA basically know much of this stuff by heart as part of the history of hate crimes. So that's the kind of shit that we are reminded of when someone jokes about lynching, and why you probably just shouldn't do it around us.
(Thanks to Camille Acey for suggesting revisions that improved this piece. And thanks to the white person I spoke with on this point in private conversation; I adapted that conversation into this post.)