Cogito, Ergo Sumana
Sumana oscillates between focus and opportunity

: "Useful Music": The content management platform Cargo makes Soundcloud mixes of "Useful Music": "Mixes to support your production(s)." These generally have no English lyrics and I've been finding them pretty chill and nice as work background.

I think they may be using some kind of natural language generator to write their blog. Or they've hired George Lazenby.

Filed under:

: Dappling: The light through the window is still beautiful.

Filed under:

: Autumn and Reckoning: In late September, I took a one-week vacation. Which is to say, I took several days off from my client work, and I did a lot of biking around to different New York City parks. I contacted a few friends I hadn't seen in a super long time and we met and talked (distanced, masked except for short periods while someone was eating -- and I kept my mask on while my friends were eating, and vice versa) in parks in Queens and Brooklyn. Or I sat on a bench and sketched while listening to a podcast, or I lay down on a picnic blanket (a staff gift from when I worked at Wikimedia) and I read. (I've just started Laurie J. Marks's Elemental Logic fantasy quartet and I like it a lot.) The weather was dry and crisp-to-warm and I had a very nice time. It was amazing to see and chat with multiple non-Leonard people in a week. By Friday afternoon my brain felt freshly full in a way that reminded me of going to in-person conferences.

I had read guidance on COVID-19 transmission and how to prevent it, and I reasoned (and my friends did too, of course) that it was safe enough to do this. On Saturday a few days ago I repeated this and went to Brooklyn to see two other friends this way.

Recently the plateau of safety has been eroding. The case count in New York City is trending up. Just now I checked New York City's COVID-19 milestones/goals page and the New York Times's NYC COVID case count tracker. New cases started rising in September and are still going up. The NYT reports: "Over the past week, there have been an average of 553 cases per day, an increase of 59 percent from the average two weeks earlier."

I talked with Leonard briefly. Given the stats, we ought to cut down on the risky things we're doing. But .... there's nearly nothing to cut.

I recognize that anyone can say "we have been cautious" and you have no way of checking their actual discipline level against your standards without fairly extensive surveillance and logging, but perhaps these broad strokes help you assess our assiduity. There's a growing consensus that it's key to reduce exposure to aerosol transmission -- but we were already wearing cloth masks at all times outside the apartment, avoiding crowds and unmasked people, and avoiding indoors spaces as much as possible (our local corner shop for 5 minutes once a week or so; the in-building laundromat, early in the morning, about every 5 weeks; in-and-out of the local post office to check my PO Box every few weeks). We've bought an air purifier. We have not eaten in a restaurant, indoors or outdoors, since March.

But there is one thing I can cut. This "seeing friends" thing, even though it's always outdoors. I can be stricter if I see friends -- stricter on distance (more like 10 feet, and using a measuring tape to make sure), no eating (and thus no mask removal), shorter durations. And I could limit the number of households I see to just one, going into a proper pod. Or we could just dial it all the way down to zero. Figuring that out.

I have been trying out different ways to motivate myself to exercise, and I found "you get to see a friend!" pretty motivating for the bike rides (sometimes about 90-120 minutes each way). And I got to see my friends and talk with them, learn new stuff, explore things through that digressive figuring-things-out kind of conversation. I know researchers for ages have been looking into in-person conversation and how to make online stuff a better simulacrum of it, and a zillion more people became citizen scientists in this field this year, especially in work and education. My experience right now is: there exists no replacement for in-person socializing, for me, that gives me all the same stuff that I value, that I think I need.

My sadness at losing this is just one of the many sadnesses of this pandemic. It's a small one, comparatively. But it's there.

It's autumn here, a season of transformation and of reckoning with the growing darkness. In many faith traditions, sometime soon we'll get to the rituals about bringing the sun back. I suppose that's something we're doing already, donning our masks, waving at our friends instead of hugging, stewarding our own little flames.

Filed under:

: Changes Coming To Pip In October 2020: People who deal with Python: Changes are coming to pip, Python's package installation tool, in October 2020. Please share this migration guide and our video with your circles.


I'm working on improving the Python packaging toolchain, foundational work that will (in the long run) make the whole Python experience way less confusing. In the short term this may mess with some people's workflows, so we want lots of people to hear about it now.

The pip team made a 2-minute video to explain what's up:

We are also doing user experience studies, and want you to sign up if you ever do anything with Python (whatever your level of skill/experience).

Please boost this toot or retweet this tweet if you want to help us get the word out.


Computers need to know the right order to install pieces of software ("to install x, you need to install y first"). So, when Python programmers share software, like when they publish packages on the Python Package Index or internally in large companies, they have to precisely describe those installation prerequisites. And then pip needs to navigate tricky situations when it gets conflicting instructions.

Up until now, pip's been very inconsistent in handling this stuff, which makes it easy for your Python environment to get messed up. That's why we successfully applied for $407K in funding from Mozilla and the Chan Zuckerberg Initiative to finish and roll out a proper dependency resolver for pip. The goal is that pip will get better at handling that tricky logic, and easier for you to use and troubleshoot.

You can test the new behavior (in beta) right now by using an optional flag in pip 20.2. And in pip 20.3, coming in October, the new behavior will be the default.

Once you're using the new resolver, pip is going to be stricter and more consistent. So things won't mysteriously break as much, and we can add more features that lots of people want.

But! Right now, a ton of people unknowingly have Jenga towers of wobbly dependencies in their environments and will run into pain when we make the resolver stricter and more consistent. And this may lead to you getting stuck in troubleshooting, assuming that pip caused the problem, when actually the deeper cause is conflicts among how your upstreams specify requirements (TensorFlow just fixed a related thing, for example).

So: We're trying to get Python users to try out the beta of the new resolver that's available in the current stable release of pip (20.2), fix your own environments, report bugs in your upstreams in advance, and report bugs to us so we can fix them in the next couple weeks. We started spreading the word about this a few months ago. And now: video! People watch videos, I hear? I hope this helps.

: Availability This Week: Heads-up about availability: I'm attempting to take this week (Sept 21-25) off from client/Changeset work, doing lots of biking and reading and writing. Letting you know in case you email me about anything.

Filed under:

: Some Followups From LibrePlanet 2017: I see that back in March 2017, I made a draft of some followup notes for my LibrePlanet 2017 keynote "Lessons, Myths, and Lenses: What I Wish I'd Known in 1998" (schedule description, video, in-progress transcript). I'm going to barely annotate/format this and post it as more of a found artifact and less of a designed communications instrument.

Wampanoag people

The Infinite Wrench

Mel Chua, Alex Bayley, Ashe Dryden, Christie Koehler

Open Source Bridge 2012

Kevin Gorman & Chip Deubner

Geek Feminism

Hans Reiser

Jupyter, Library Simplified, Zulip & zulipbot & good code review, Software Carpentry (save a day of work a week for the rest of their working lives), Dreamwidth and dw-dev, Beautiful Soup, Archive of Our Own, GNU Mailman and what's new in Mailman 3

Seth Schoen


Joseph Reagle


Vajra Chandrasekera

: Guitars And Rock Climbing, But As Analogies For Less Glamorous And Immediately Appealing Actitivies: I was explaining to a friend a few days ago the thing I mention in my RC & MetaFilter post, about how I'm trying to avoid saying "community" when I might mean "constituency" or "group" or similar. And perhaps we should say "society" sometimes -- a group that shares some norms and heritage and places to talk with each other, but doesn't necessarily take responsibility for anything. And how the phrase "the open source community" is laughable.

But wait, they said, noting that in open source everyone has to operate by some shared rules, right?

Well, kinda, yes, I said, in that everyone's working with openly available code that's under an OSI-approved license. But they're in such different situations, and paid vs. unpaid is just part of it! Think about people who play the guitar. A rock star, a session musician, a music teacher, a member of a garage band, someone putting videos on YouTube as a kind of audition for stardom, a beginning student .... they all might be playing the same sheet music or tab, but they're really doing different things.

[The field guide to open source project archetypes that Open Tech Strategies and Mozilla are developing (PDF of the first edition) is an excellent framework for thinking about these different situations and how they structure open source projects' capabilities, who's in charge, and what you can expect.]

Then, yesterday, I was reading, then skimming, a deeeeeeeply domain-specific, detail-heavy blog post about how to implement something of particular interest to the author. And at the end, of course, they say that they're starting an open-source implementation, a prototype. And I felt as though I could see into the future -- this person creating a bit of an application, other people loving it, the project growing in popularity and importance to others, the creator wanting to step away and explore other stuff. And there the timeline fractures, depending on whether anyone took steps to get it under someone else's care, get a company to steward it or grow a vibrant collective around it.

There are a bunch of developers who want to do hard things the same way that mountain climbers want to climb hard mountains. And as a side effect of this sometimes they emit some open source artifacts, as pitons sunk into the mountainside, and if you want to follow the way they went, very closely, you can reuse those pitons. Which is great and useful.

But that is only a first step towards infrastructure -- towards robust, comfortable, safe, scalable systems. And I am the millionth person to complain on her blog about the asymmetry and fragility and just inherent ridiculousness of how much really important, widely-depended-on infrastructure in our industry is basically "reuse the leftover pitons from past explorers". But it is still complainworthy. I hereby complain. Complain! And there's a reason so many of us are doing things about it (as in my case recently and for the last five years).

2020 October

3 entries this month.

Categories Random XML

[Show all]

You can hire me through Changeset Consulting.

Creative Commons License