Discovering the Python Community in Zimbabwe at their first PyCon
On the heels of attending a successful PyCon in Namibia in 2015, a small group of Python enthusiasts in Harare, Zimbabwe vowed to organize the first-ever PyCon held in Zimbabwe.
After months of planning on November 25th, 2016 they achieved their goal in dramatic fashion with an enormously successful sold-out conference at the ZESA National Training Center in Harare. I was privileged to give the keynote to an extremely attentive audience. For an hour, we had a tremendous time in discussing how to contribute to open-source successfully and how to grow ideas into successful open-source projects.
In all my years of speaking, I've never had such an incredible audience. Often at technical conferences audience members are more engaged with their smartphones than the speaker. Not so at PyConZim! Questions were thoughtful and engaging. Truly a pleasure.
Throughout the conference many enjoyable talks were given. I enjoyed Dennis Murekachiro's inspiring talk on how to be a game-changer as he encouraged Zimbabwe technologists not to settle for "good enough" but to work hard to use technology to better themselves and the communities they live in. Tendai Marengerke's talk on how to create reproducible research in Python was absolutely fascinating; it's a must-watch for anybody using Python in an academic setting.
Petrus Janse van Rensburg from South Africa gave an outstanding overview of challenges that low-bandwidth connections create in Africa and how he is working to solve them by re-designing the way e-commerce platforms operate. I can virtually guarantee we'll be hearing a more about him and his work in the coming months and years.
One of the most astonishing things about PyConZim is the way in which every single attendee is brilliant and, without fail, engaged with pragmatic ideas about how to use Python to make a better life for their communities. One could go to every PyCon on Earth and never find one as inspiring as PyCon Zimbabwe.
The highlight for me, though, was having the chance to meet Marlene Hangami and Ronald Maravanyika.
Marlene and Ronald have single-handedly started an organization to teach Python to young girls across Zimbabwe.
Fueled by a desire to simply improve the lives of girls in their country, they've started free workshops in community centers and now operate in over forty community centers across the country.
They've had to battle a number of difficult obstacles that would discourage most people but they're continuing on.
As a direct result of my trip to PyConZim, I've started working with Ronald and Marlene to start a program to bring female software developers to Zimbabwe to work with selected girls on Python-based projects to help out in their communities.
Mentors participate in projects that girls work on by volunteering as little as four hours of their time and conduct their mentorship via video-conference and email. It's a very simple way to advance the case for women in technology in Africa and beyond. More information on mentorship programs and application information is available here.
My humble thanks to everybody at the Python Software Foundation for sponsoring my trip to Zimbabwe and for sponsoring the conference itself.
Pythonistas (and a Python!) at PyCon Jamaica
This past November marked the first PyCon Jamaica. Held in the capital, Kingston, the conference began on November 17th with a day of tutorials followed by a single track of talks on November 18th. I attended both as a representative of the Python Software Foundation, which sponsored the conference, and as a speaker.
Python in Kingston’s Higher Education
Kingston, home to approximately 33% of Jamaicans, boasts several institutions of higher learning including the Caribbean Maritime Institute and the Mona campus of the University of the West Indies. PyCon Jamaica kicked off with tutorials at the University of the West Indies. Most of the tutorials focused on introductory topics (e.g. Introduction to Plone). Participants came from a wide range of backgrounds including mechanical engineers or undergraduates with a marketing concentration. Interestingly I was informed Python isn’t a part of the standard computer science offering at the university yet it has become a language of considerable interest in many of Kingston’s professional sectors.
David Bain, organizer of PyCon Jamaica and the local Python Jamaica user group, explained that he thinks the interest in Python has risen as students have become increasingly exposed to web technologies. Bain added that PyCon Jamaica is a way to help demonstrate to students and professionals the various applications Python has. "Jamaica wants to be seen as a viable source for local and North American nearshore developer talent, our event signals that software development talent is here," Bain explained.
Modernizing the Public Sector with Python
Conference talks were held at the Hope Zoo, a facility housing vast botanical gardens, a zoo, and a community center. There were three international speakers, Joir-dan Gumbs of IBM, Star Ying of the US Dept of Commerce, and myself, alongside several local speakers. The tutorials had been more student-centric, but the conference catered to those using Python in the Jamaican public sector.
A common theme from local speakers highlighted how Python has helped local professionals modernize outdated practices. Marc Murray of the Jamaican Ministry of Health described how he has used Python throughout his career of fifteen-plus years to automate processes and enable better data collection and data sharing. More than one speaker acknowledged that struggle of institutional knowledge silos in the local government. With Python, though, these knowledge silos have started to be disrupted. Agencies are able to share the same data sets with greater ease and promote transparency.
#PyConJamaica2016: Challenges #Python answers in gov't - information silos, use to inc info access, speed, remove redundancy @PythonJamaica
— Lorena Mesa (@loooorenanicole) November 18, 2016
Python's data-processing power was the star in a talk by student Dominic Mills. Mills recently completed an internship at CERN, where he built a Django prototype for debugging hardware in future experiments. Crucial to this project was not only the collection of data via Celery but the capacity to analyze it. Mills used bokeh for real time analysis of the sensor data, permitting monitoring and alarms to be raised if unfavorable conditions were found.
Collectively the speakers at PyCon Jamaica reflect how Jamaican programmers are embracing Python for data collection and analysis in a variety of specialties. Python’s open source packages and rich community support seemed to be its biggest selling points. Speaker Joir-dan Gumbs commented that, “the best part for me was the presentations of how Python is enhancing the lives of Jamaicans, as well as the networking.”
I’m excited to see what PyCon Jamaica 2017 will hold. Already the conference is rich in data science and data visualization content. After all, if PyCon Jamaica 2016 included an appearance from the Hope Zoo’s own python what will we see next? Perhaps two pythons, and of course many more Jamaican Pythonistas.
Time To Upgrade Your Python: TLS v1.2 Will Soon Be Mandatory
If you're using an older Python without the most secure TLS implementation, this is the year to get serious about upgrading. Otherwise next June you may not be able to "pip install" packages from PyPI.
PyPI's maintainer Donald Stufft recently announced that python.org and related sites will begin disabling the old TLS versions 1.0 and 1.1. This change was imposed on us by our content delivery network, Fastly, in response to a change imposed on them by the Payment Card Industry Security Standards Council. In order to continue serving websites that take credit card payments, Fastly is required to disable the old, insecure versions of TLS. Since the PSF's servers, including PyPI, use Fastly, the old versions of TLS will be disabled as well.
Fastly wrote in October 2015,
Warehouse, the future successor to PyPI, will also be affected by April's deadline, since Warehouse serves files from files.pythonhosted.org.
The more crucial deadline comes June 30, 2018. On that date all remaining python.org sites, including PyPI, will no longer support TSL 1.0 and 1.1. Older Python versions that do not implement TLSv1.2 will be prohibited from accessing PyPI.
See below for instructions to check your interpreter's TLS version. 1
Stufft writes, "I am going to see about possibly organizing some scheduled 'brown outs' of TLSv1.0 and TLSv1.1 prior to the cut off dates to try and help folks find places that will need updates. Any scheduled brownouts will be posted to status.python.org prior to happening."
Mac users should pay special attention. So far, the system Python shipped with MacOS does not yet support TLSv1.2 in any MacOS version; beginning next June these system Pythons will no longer be able to "pip install" packages. 2 Fortunately, it's easy to install a modern Python alongside the MacOS system Python. Either download Python 3.6 from python.org, or for Python 2.7 with the latest TLS, use Homebrew. Both methods of installing Python will continue working after June 2018.
1. To check your Python interpreter's TLS version, install the "requests" package and run a command. For example, for Python 2:
Or Python 3:
If you see "TLS 1.2", your interpreter's TLS is up to date. If you see "TLS 1.0" or an error like "tlsv1 alert protocol version", then you must upgrade. ↩
2. The reason Python's TLS implementation is falling behind on macOS is that Python continues to use OpenSSL, which Apple has stopped updating on macOS. In the coming year, the Python Packaging Authority team will investigate porting pip to Apple's own "SecureTransport" library as an alternative to OpenSSL, which would allow old Python interpreters to use modern TLS with pip only. "This is a non-trivial amount of effort," writes Stufft, "I'm not sure it's going to get done."
In the long run, the Python interpreter itself would easily keep up with TLS versions, if it didn't use OpenSSL on platforms like macOS and Windows where OpenSSL is not shipped with the OS. Cory Benfield and Christian Heimes propose to redesign the standard library's TLS interfaces to make it easier to swap OpenSSL with platform-native TLS implementations. ↩
PyPI's maintainer Donald Stufft recently announced that python.org and related sites will begin disabling the old TLS versions 1.0 and 1.1. This change was imposed on us by our content delivery network, Fastly, in response to a change imposed on them by the Payment Card Industry Security Standards Council. In order to continue serving websites that take credit card payments, Fastly is required to disable the old, insecure versions of TLS. Since the PSF's servers, including PyPI, use Fastly, the old versions of TLS will be disabled as well.
Fastly wrote in October 2015,
There have been serious and systemic security issues with earlier versions of TLS and its predecessor, SSL, including POODLE, Heartbleed, and LOGJAM. These threatened to break trust in fundamental methods of secure communication, exposing both you and your customers to breaches in security. The actions of the PCI DSS Council to maintain a high minimum bar are a step towards ensuring the security of all online business transactions.There are two deadlines to upgrade your Python to a version with the latest TLS. The first comes soon, on April 30, 2017, when python.org sites without Extended Validation Certificates will stop supporting TLS 1.0 and 1.1. These sites include:
- testpypi.python.org
- test.pypi.org
- files.pythonhosted.org
Warehouse, the future successor to PyPI, will also be affected by April's deadline, since Warehouse serves files from files.pythonhosted.org.
The more crucial deadline comes June 30, 2018. On that date all remaining python.org sites, including PyPI, will no longer support TSL 1.0 and 1.1. Older Python versions that do not implement TLSv1.2 will be prohibited from accessing PyPI.
See below for instructions to check your interpreter's TLS version. 1
Stufft writes, "I am going to see about possibly organizing some scheduled 'brown outs' of TLSv1.0 and TLSv1.1 prior to the cut off dates to try and help folks find places that will need updates. Any scheduled brownouts will be posted to status.python.org prior to happening."
Mac users should pay special attention. So far, the system Python shipped with MacOS does not yet support TLSv1.2 in any MacOS version; beginning next June these system Pythons will no longer be able to "pip install" packages. 2 Fortunately, it's easy to install a modern Python alongside the MacOS system Python. Either download Python 3.6 from python.org, or for Python 2.7 with the latest TLS, use Homebrew. Both methods of installing Python will continue working after June 2018.
1. To check your Python interpreter's TLS version, install the "requests" package and run a command. For example, for Python 2:
python2 -m pip install --upgrade requests
python2 -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
python2 -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
Or Python 3:
python3 -m pip install --upgrade requests
python3 -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
python3 -c "import requests; print(requests.get('https://www.howsmyssl.com/a/check', verify=False).json()['tls_version'])"
If you see "TLS 1.2", your interpreter's TLS is up to date. If you see "TLS 1.0" or an error like "tlsv1 alert protocol version", then you must upgrade. ↩
2. The reason Python's TLS implementation is falling behind on macOS is that Python continues to use OpenSSL, which Apple has stopped updating on macOS. In the coming year, the Python Packaging Authority team will investigate porting pip to Apple's own "SecureTransport" library as an alternative to OpenSSL, which would allow old Python interpreters to use modern TLS with pip only. "This is a non-trivial amount of effort," writes Stufft, "I'm not sure it's going to get done."
In the long run, the Python interpreter itself would easily keep up with TLS versions, if it didn't use OpenSSL on platforms like macOS and Windows where OpenSSL is not shipped with the OS. Cory Benfield and Christian Heimes propose to redesign the standard library's TLS interfaces to make it easier to swap OpenSSL with platform-native TLS implementations. ↩
“I use Python to help build the kind of world I want to live in” - Shannon Turner, Community Service Award Winner Q4
Shannon Turner has been fascinated with programming since she was a child, thanks in part to her grandmother, who loved video games. Watching her grandmother play, Turner would draw pictures on paper and ask, 'Wouldn't this be cool if this were part of the game?". “Yes,” her grandmother would agree, “so you’ll need to get very good with computers if you want to make games of your own someday.”
As an adult, Turner’s interest in programming grew. She taught herself to program and attended tech events but it didn't feel right. She grew frustrated at being one of the only women in the room, being talked down to, and not taken seriously. Then, after speaking with other women at the events, she would realize that it wasn’t just her, “...[that] we all had this shared experience of being talked down to and not taken seriously. That's when I decided to start teaching other women what I'd taught myself.” This is what motivated Turner to start Hear Me Code (HMC), a group that offers free, beginner-friendly coding classes for women in the Washington DC area.
The Python Software Foundation awards the 4th Quarter 2016 Community Service Award to Shannon Turner for her work on Hear Me Code:
RESOLVED, that the Python Software Foundation award the 4th Quarter 2016 Community Service Award to Shannon Turner. Shannon is the founder of Hear Me Code, an organization offering free, beginner-friendly Python coding classes for over 2000 women in Washington, DC. She teaches all the classes with the help of women who have previously taken the classes. She empowers hundreds of women to code with Python by lowering barriers to entry. More than just a class where women learn to build websites, Hear Me Code focuses on leadership development, peer mentoring, and turning students into teachers.
Hear Me Code
What started in 2013 as an informal class with a few friends seated at the kitchen table has grown to a group of over 2000 in the Washington DC area. Turner developed the curriculum, slides, and exercises for five lessons, making incremental changes and improvements each time she taught. In the beginning she taught all the classes herself, but quickly realized she would do even more good by helping her students become instructors themselves. To date, over 100 women who started as students have moved on to be teaching assistants and teachers in the group. “In our first two years,” says Turner, “over two dozen women credited Hear Me Code with providing them the skills and experience they needed to land a job in tech.”
At HMC, programming courses are taught with Python. Why Python? As Turner was teaching herself to code with a variety of languages, Python felt different. “I still struggled to learn it,” Turner recalls, “but it was much more intuitive than other languages I'd used.”
Helping Female Developers
HMC student Sonia Hinson started taking classes in January 2014. Since then she has completed most of the courses and moved on to being a teaching assistant and teacher. She says Turner encourages her students to become teachers by “promoting the idea that you learn best from teaching someone else programming and working with your neighbors to solve bugs and problems in code.”
Student Haynes Bunn would agree. She values Turner’s ability to identify people’s strengths and encourage students to get involved in teaching positions. By doing this, says Haynes, Turner is not just teaching women to code, “she’s also helping them to teach, to help others, and to be leaders.”
Turner would rather spend her time helping women through her networks than seek praise for all of her work. That’s not what motivates her, says Stephanie Nguyen, “her impact in the Python community and the women who she has empowered to code are all examples that speak loudly for her.”
Other Projects
“Now, in addition to running Hear Me Code,” says Turner, “I use Python to help build the kind of world I want to live in.” Some of her other projects include a visualization of 500 schools that aren't taking campus sexual assault seriously and a searchable database of 6000 museums across the US.
![]() |
| Shannon Turner, CSA Winner Q4 |
Turner lives in Washington DC with her pet bird, who she keeps tabs on with her Raspberry Pi.
















