# (0) 04 Nov 2019, 01:56PM: Art of Python Seeking Organizers for 2020:
In May, I chaired "The Art of Python", a festival of arts about programming that took place at PyCon North America. People presented short plays, monologues, songs, and a video remix that explored how it feels to program and play with Python.
I am very glad I did it! But I have to concentrate on other projects now.
I cannot be one of the co-organizers for "The Art of Python" at PyCon North America in 2020; I hope someone else steps forward to lead it so it can take place again. If you want to organize "Art of Python" at PyCon 2020, please submit a Hatchery proposal as soon as possible. The deadline for Hatchery proposals is January 3, 2020. If you are interested but need help to do it, post about that someplace public -- your blog, Twitter, etc. -- and tell me, and if I hear from multiple people, I'll put you in touch with each other.
To help: I have written up a retrospective and HOWTO document about "The Art of Python". It's in two parts: "Why I Did This" and "How I Did This".
As I say in there: I saw a lack. I was not and am not a professional playwright, performer, or festival planner. But I didn't have to be, and you don't either. You don't have to be a professional performer to show what you experience when you're programming -- you just need a stage, and I wanted to create the stage. And now we have. I hope the show goes on.
Thanks to Kim Wadsworth and Leonard Richardson for editing help.
# 01 Oct 2019, 10:02AM: Availability Update for October:
I'm going to be off social media a lot between October 4th and about October 30th. Please email if you want to reach me - https://www.harihareswara.net/ & https://changeset.nyc/#contact have my address - but I will probably be slow & terse in response.
# 30 Sep 2019, 11:36AM: The Breath Before:
A few days ago, Leonard and I went to see a movie at our local museum/arthouse theater. We settled into our seats and turned off our phones and chitchatted, and I mentioned a funny line from a Paul Ford interview.
A curator came in to briefly introduce the film, and mention the film series this screening was part of, and to tell us that the director would be there in person for a screening of another film several days from now. An appreciative "oooh!" rippled through the crowd.
And then the lights went down and everyone hushed and looked forward and the movie was about to start. And then it did, and it was fun, but the moment I most treasure was that little tiny moment of civilization where we were all waiting together in anticipation.
# 26 Sep 2019, 07:36AM: Cambrian explosion of discussions about the future of software freedom:
In 2009, Dreamwidth user rydra-wong did the great favor of making link roundups to help people keep track of a distributed conversation happening on lots of people's blogs about a current controversy.
I'd love for someone to take up that kind of work ("linkspam" roundups) or point to something similar, a Pinboard tag or a TagTeam instance/tag/team, to help us all see people writing about the future of open source software licensing. This post by Molly de Blanc and this one by Karl Fogel, for instance.
# 22 Sep 2019, 02:03PM: Futureproofing Your Python Tools:
The people who maintain Python and key Python platforms want to help you protect the code you write and depend on.
If you write software in Python, or depend on something that's in Python, this is for you.
Some of you are writing Python 2, or you still have software you depend on that is written in Python 2. January 1st, 2020, is the day that official support for Python 2 stops. So this is a fresh heads-up that you should really have a migration plan and start working on it, to move to Python 3. A lot of stuff you depend on already works on Python 3, and is even pledging to end Python 2 support in or before 2020. And it's easier than it's ever been to port your own code from 2 to 3.
You should probably upgrade to Python 3.7. If you want to test out 3.8, it has some changes in how it does warnings, and the first release candidate is out.
But, speaking of futureproofing:
Code authors move in and out of projects and companies. Six months or 18 months later, maybe you want to update and re-use, re-release or re-deploy code someone else wrote. Or you want your team to be able to reuse what you did after you leave, which means you need the code to run, and you need them to have the password so they can update stuff.
Have you written Python code that they have published as a package on the Python Package Index, pypi.org, so other people can use pip install to install it?
(And if you want to do that but don't know how? Check out this recently improved tutorial to help you do that.)
Publishing that package is a great way of making it so other people can run and deploy it, even within other parts of your organization.
But -- who actually has the keys to the castle? Who can upload a new version, or delete a version that has a problem?
You should probably make sure multiple people have either "owner" or "maintainer" privileges on the project on PyPI.
And you should review your project security history display, which lists sensitive events (such as "file removed from release version 1.0.1") in your PyPI user account and your PyPI project. We just added this display, so you can look at things that have happened in your user account or project, and check for signs someone's stolen your credentials.
And then how do you make it a little harder for vandals, spammers, and thieves to take over your account and upload malware or delete all the packages? Add two-factor auth for your login, like you would with your bank. Use an app on your phone to give you a six-digit code, or use a physical security device like a Yubikey.
And how do you make it easier to automate publishing new versions of your package, and make it safer to save your credential in the cloud? We've made it possible for you to create an "API token" where all it can do is upload, so you can use that instead of your PyPI password.
With well-tested Python 3 migration tools and new PyPI security features, now is a great moment to invest in robustness for Python software that you make or depend on.
[This blog post is kind of unwieldy, because it's about too many different things. I won't be publicizing it that much and instead will probably reuse text from it in more focused announcements elsewhere. But I'm publishing it here as a summary of my recent work, because management and communications for the projects above are what I've been working on recently for the Python Software Foundation. (A different kind of summary is on the Clients page for Changeset Consulting.)]
# (1) 08 Aug 2019, 11:49AM: When/How Do People Decide To Apply To CS Grad School?:
I'm trying to understand how people decide to go to CS grad school in the US. For instance, what proportion of PhD applicants are coming straight from undergrad, versus another graduate degree (such as an MS in math), versus industry? Do they generally decide first on what they want to research, whom they want to work with, or that they want to go to grad school at all? I presume there is a survey of this somewhere?
I've found the Computing Research Association's Center for Evaluating the Research Pipeline's report on why grad students choose computing, and I've also looked at the National Center for Science and Engineering Statistics website. I have found a little data on what proportion of doctoral recipients were previously in a baccalaureate program, a master's program, or industry, but not about what proportion of applicants, or
accepted applicants, come from those categories.
(Maybe there's paywalled research on this within the ACM's special interest group on CS education? If so, lemme know and I will try looking for that?)
The reason I am asking this is to help professors and guidance counselors I know (maybe you've heard that Outreachy has a new career advisor). They want to improve their abilities to help students and programmers consider research careers, and better target their outreach consider applying to specific graduate programs. How does the engagement funnel currently work? And thus, where are the gaps? I presume there are a bunch of people who would do well in grad school, and find it fulfilling, and use their research and their degrees in ways that would benefit the world, but no one ever says to them "hey have you thought about going to grad school," so they don't think of it as a possible thing for them.
# 05 Aug 2019, 09:01AM: Kickoff for Communications Work on the Python 2 Sunsetting:
Python's 2.x line will reach End of Life on January 1, 2020, meaning that the maintainers of Python 2 will stop supporting it, even for security patches. Many institutions and codebases have not yet ported their code from Python 2 to Python 3. And many of them haven't even heard yet about the upcoming EOL. Volunteers have made many resources to help publicize and educate, but there's still more work to be done.
So the Python Software Foundation has contracted with my firm, Changeset Consulting, to help communicate about the sunsetting of Python 2. The high-level goal for Changeset's involvement is to help users through the end of the transition, help with communication so volunteers are not overwhelmed, and help update public-facing assets so core developers are not overwhelmed.
During this project (starting now and going till the end of April 2020), Changeset's goals are:
- Create a concise page on python.org giving community guidance on the why and what of EOL
- Create and publicize a formal press release through the PSF
- Audit and update every mention of Python 2 on python.org, including in documentation and the wiki
- Develop a plan to handle redirecting https://docs.python.org/2/* (especially deep links)
- Publicize the new "what's up with EOL" page to a variety of audiences, respond to questions, and keep the page updated until PyCon US 2020 based on questions that come up
So, towards those goals, you'll see me with my colleagues:
- Researching, writing, and editing technical documents and the press release
- Corresponding with stakeholders, writing and publishing announcements and other communications in multiple media
- Initiating and facilitating meetings (I will try to make them very minimal and short; if I invite you, please let me know your response)
- Filing, triaging, labelling, prioritizing, and linking issues, such as in the website repo
For accountability, Changeset will provide reporting via:
I'm going to be asking for a lot of help along the way from the Python community: meeting with us, answering our questions, double-checking our drafts for accuracy, publicizing that EOL page to your circles, setting up some parties for January 1st. Thanks in advance and let's get the Python user base further along towards enjoying the shininess of Python 3.