Tuesday, October 17, 2017

Why Become A PyCon Sponsor?

Sponsors help keep PyCon affordable and accessible to the widest possible audience. Sponsors are what make this conference possible. From low ticket prices to financial aid, to video recording, the organizations who step forward to support PyCon, in turn, support the entire Python community. They make it possible for so many to attend, for so many to be presenters, and for the people at home to watch along.

The benefits of sponsorship are many - here are a few to consider:
  • Being part of the biggest and most prestigious Python conference in the world.

  • Being matched with those who could potentially become clients.

  • Staying in front of your current customers - 3300+ attendees will see your products. 
Building relationships with the Python community - people look to sponsors to see who is using and supporting Python.

  • Recruiting - if you’re hiring, PyCon is the place to be.

  • A private meeting or interview room to conduct business onsite. 

  • The opportunity for innovators and practitioners in your company to talk about how you’re using Python.

Depending on your level of sponsorship, packages include complimentary conference passes, booth space, lead retrieval scanners, speaking opportunities, and a table in the Job Fair.

We’re flexible and willing to work with you to design the sponsorship package to fulfill your business needs. Starting a discussion now is a great way to design a more custom program for you. Our sponsorship prospectus can be found here: https://us.pycon.org/2018/sponsors/prospectus/

PyCon 2018
Huntington Convention Center May 9th - May 17th, 2018 Cleveland, Ohio USA
For more information please contact: pycon-sponsors@python.org

                                                                  Photo by Mike Pirnat

Thursday, October 12, 2017

Thomas Kluyver, Community Service Award 3rd Quarter 2017 Recipient

People love Python for its ease of use, breadth of modules, and vibrant community. These qualities are made possible by people like Thomas Kluyver who, during the course of his career using Python for scientific research, has identified and implemented various modules, upgrades, and enhancements to Python. He is also an active member of the Python community, attending conferences, participating in his local Python User Group, and contributing his expertise to Python Subreddits.

For these reasons, the Python Software Foundation has awarded Thomas with the Q3 2017 Community Service Award.

RESOLVED, that the Python Software Foundation Q3 2017 Community Service Award be given to Thomas Kluyver for his contributions to the Scientific Python Community. Thomas has also served on many other open source projects and is active on the Python subreddit helping many people in the Python community.

Contributions to Scientific Python

Thomas earned his Ph.D. in plant biology at the University of Sheffield in England. As a scientist, Thomas’ interest in programming stemmed from childhood where he learned QBasic with support from his father. During his Ph.D. program, Thomas became a regular contributor to Jupyter/IPython, working single-handedly to port it from Python 2 to Python 3. This caught the attention of Fernando Pérez, creator of IPython and co-founder of Project Jupyter, who just happened to be looking for a post-doc. “Given his amazing contributions even while he was still a student,” says Fernando, “I was looking for an opportunity to engage him more with the project.” Thomas accepted the offer to work with Fernando at UC Berkeley developing IPython and open source tools for science. Looking back Thomas recalls, “it was a great opportunity for me.” Thomas stayed at Berkeley for 2 years before returning to England for a position at the University of Southampton. There he continues to work on Jupyter and IPython and is also involved in the NGCM Summer Academy, teaching scientists a variety of computational skills in Python.

Contributions to Other Open Source Projects

Thomas has worked on a number of tools outside of his profession as well, such as Flit. Flit is a packaging tool which aims to make it simpler to publish your Python code on PyPI. This tool and the concepts it presents have led to discussions about standard interfaces for different packaging tools to work together better, documented in PEP 517 and 518. Nick Coghlan, a CPython core developer who has worked with Thomas in his efforts to help move the Python packaging ecosystem forward, characterizes Thomas contributions to Flit as “rather than just writing it as a standalone tool, Thomas worked hard to ensure that the underlying interoperability standards also evolved to make it easier to write tools like Flit, and that such tools integrate nicely with frontend installation tools like pip.”

Distributing applications to end users is still a weak point for Python, whereas distributing libraries and developer tools have become better equipped to handle this challenge in recent years. That is why Thomas built Pynsist, a tool to build Windows installers for Python applications. Pynsist can even build a Windows installer from a Linux system, which builds on the work of other projects like NSIS. Fernando says, “considering that Thomas is mostly a Linux user, this is a great example of how he does work that has great value to the Python community even beyond his immediate needs.”

Contributions to the Python Community

Thomas is a regular speaker at Python events around the world such as SciPy, PyData, EuroSciPy, and PyCon conferences. He is also involved in his local Southampton Python User Group. “Basically he's all over the community,” says Fernando, “helping others on the mailing lists, working on IPython/Jupyter, building multiple tools of great value to many, and teaching across a variety of spaces.” Fellow Jupyter/IPython developer and Flit collaborator Matthias Bussonnier agrees saying, “Thomas has always cared a lot about community and has spent hours teaching new contributors how to do things, even if it would take him less time to do them himself.”

Why Python?

Working on the Black Python
When asked why Python is his language of choice, Thomas explains, “It's a beginners language, but it's also a language that many experienced programmers are using to solve real problems. I also like the breadth of domains in which Python is used and the strong open source ethos in the community around Python.”

As if Thomas has yet to prove the full breadth of Python’s domains, Thomas recently participated in the World Robotic Sailing Competition. His team entered in their model sailboat, named the Black Python, which carries a Raspberry Pi to control the sails and the rudder. The Black Python took first place in the 'micro sailboat' class both this year and last. Read more about this project on their blog.

Despite these significant accomplishments, Thomas recognizes the support he has gotten over the years recalling, “I've benefited immensely from other people: from my father helping me to learn programming, to the IPython team welcoming me and bringing me into the scientific Python community, to the thousands of programmers whose open source code I've used.”

Community Service Award Winner 2017Q3 Thomas Kluyver

Monday, October 02, 2017

Python Software Foundation Fellow Members for Q3 2017

We are happy to announce our 2017 3rd Quarter Python Software Foundation Fellow Members:

Aisha Bello 
Brian Costlow 
Carol Willing 
Carrie Anne Philbin 
Cory Benfield 
Damien George 
Daniel Pope 
Daniele Procida 
Dusty Phillips 
Jackie Kazil 
Laura Cassell 
Lorena Mesa 
Łukasz Langa 
Peter Inglesby 
Ruben Orduz

Congratulations! Thank you for all of the contributions you continue to make. We have added you to our Fellow roster online. 

The PSF Fellow Work Group was established in July of 2017. This is the first set of Fellows the Work Group has reviewed and voted on. Since we are a new group, we spent a few months establishing policies and criteria.

The work group voted to review nominees 4 times a year:

  • Q1: January to the end of March (01/01 - 31/03) Cut-off for nominations will be February 20. New fellows will be announced before March 31.
  • Q2: April to the end of June (01/04 - 30/06) Cut-off for quarter two will be May 20. New fellows will be announced before June 30.
  • Q3: July to the end of September (01/07 - 30/09) Cut-off for quarter three will be August 20. New fellows will be announced before end of September.

  • Q4: October to the end of December (01/10 - 31/12) Cut-off for quarter four will be November 20. New fellows will be announced before December 31.

In addition to the schedule, we also voted on the following criteria:

For those who have served the Python community by creating and/or maintaining various engineering/design contributions, the following statement should be true:
Nominated Person has served the Python community by making available code, tests, documentation, or design, either in a Python implementation or in a Python ecosystem project, that 1) shows technical excellence, 2) is an example of software engineering principles and best practices, and 3) has achieved widespread usage or acclaim.

  • For those who have served the Python community by coordinating, organizing, teaching, writing, and evangelizing, the following statement should be true:
Nominated Person has served the Python community through extraordinary efforts in organizing Python events, publicly promoting Python, and teaching and coordinating others. Nominated Person's efforts have shown leadership and resulted in long-lasting and substantial gains in the number and quality of Python users, and have been widely recognized as being above and beyond normal volunteering.

  • If someone is not accepted to be a fellow in the quarter they were nominated for, they will remain an active nominee for 1 year for future consideration.

  • It is suggested/recommended that the nominee have wide Python community involvement. Examples would be (not a complete list - just examples):

    • Someone who has received a Community Service Award or Distinguished Service Award
    • A developer that writes (more than one) documentation/books/tutorials for wider audience
    • Someone that helps translate (more than one) documentation/books/tutorials for better inclusivity.
An instructor that teaches Python related tutorials in various regions
    • Someone that helps organize local meet ups and also helps organize a regional conference.
Nominees should be aware of the Python community’s Code of Conduct and should have a record of fostering the community.

  • Sitting members of the PSF Board of Directors can be nominated if they meet the above criteria.
If you would like to nominate someone to be a PSF Fellow, please send a description of their Python accomplishments to psf-fellow at python.org. If you send in your nomination before November 20, it will be considered in Q4. More info is available here.

We are still looking for a few more voting members to join the Work Group. If you are a PSF Fellow and would like to join, please write to psf-fellow at python.org.

Friday, September 29, 2017

A New Python Security Mailing List

The Python community takes security very seriously. In an effort to enhance security and promote transparency about security matters, the Python Security Response Team (PSRT) has created a security-announce mailing list. This mailing list will allow the PSRT to communicate about security-related matters to anyone in the Python community who signs up. Join this list to stay on top of the most recent security fixes to the Python language. Click here to learn more about the mailing list and to sign up!

Tuesday, September 26, 2017

Join the Python Developers Survey 2017: Share and learn about the community

2017 is drawing to a close and we are super-excited to start the official Python Developers Survey 2017!

We’ve created this survey specially for Python developers who use it as their primary or supplementary language. We expect the survey findings to help us map an accurate landscape of the Python developer community and to provide insight into the current major trends in the Python community.

Your valuable opinion and feedback will help us better understand how different Python developers use Python and related frameworks, tools and technologies. We also hope you'll have fun going through the questions.

The survey is organized in partnership between the Python Software Foundation and JetBrains. After the survey is over, we will publish the aggregated results and randomly choose 100 winners (from those who complete the survey in its entirety), who will each receive an amazing Python Surprise Gift Pack.

Monday, September 25, 2017

The PyLady Behind PyLadies: Lynn Root, Community Service Award 2nd Quarter 2017 Recipient

PyLadies is an international mentorship community for women that use Python. Started with a grant in 2011, PyLadies has continued to bring women into the Python community through a variety of methods, including hosting events in local PyLadies chapters as well as offering a grant opportunity to attend PyCon. One woman in particular has contributed to PyLadies' success, for which the PSF recognized her as a Community Service Award recipient for the 2nd Quarter of 2017:
RESOLVED, that the Python Software Foundation Q2 2017 Community Service Award to Lynn Root for her work as the founder of the San Francisco Chapter of PyLadies, a member of the Django Software Foundation, and as a tireless volunteer at PyCon.
PyLadies in the early days, the Start of the San Francisco Chapter

If you can name one person associated with PyLadies, it is Lynn Root. Lynn’s relentless support, organizing, and evangelizing on behalf of PyLadies is known by many. “Lynn’s enthusiasm and passion for bringing more women into tech are well complemented by her organizational skills, which were especially needed at pivotal moment in early PyLadies history. Lynn helped grow PyLadies into, what is now, a global organization that’s had a huge impact on the Python community,” PyLady Esther Nam, one of the founders of the PyLadies Los Angeles chapter, explains.

In late 2011, Lynn began learning to program, as some of graduate programs she was considering required her to have some programming expertise. “I reached out to San Francisco’s Women Who Code to organize a Python study group,” Lynn recalls, trying to find like-minded women to join. She had used Python in a weekend hackathon and found it to be a beginner friendly language. The following year, in 2012, PyCon was held in Santa Clara.  “Lynn reached out and organized a carpool of Bay Area Pythonistas to attend the conference”, Esther remembers. PyLadies from the first chapter in Los Angeles attended, where Lynn met with them to learn more about PyLadies.  The next month, she founded the San Francisco chapter. Lynn continued to act as a principal organizer for PyLadies San Francisco for the next four years.

Growing PyLadies in the Global Community

Overlapping with her time as PyLadies San Francisco lead organizer, Lynn championed other significant projects including the creation of `pip install pyladies`, the PyLadies open source kit for new organizers. The development of open source tools for PyLadies has been instrumental in getting the word out about PyLadies. Lynn was able to use these tools to help start international PyLadies communities in Stockholm, Zagreb, and Brno.

Lynn also took an active role in bringing PyLadies content to PyCon. During Lynn’s first term on the Python Software Foundation Board of Directors in 2013 to 2014, Lynn helped plan and run the first PyLadies Charity Auction at PyCon. Months of work go into organizing the charity auction; it requires donations to be procured beforehand, besides auctioneering on-site. The inaugural PyLadies Charity Auction raised $10,000.00 USD for PyLadies. Commenting in a 2013 press release about the auction, Atlanta PyLadies founder Laura Cassell explains, “we're all so resourceful already that I suspect this money is going to go a long way towards helping women who want to get into the industry. I'm still a little misty-eyed at the whole thing, to be honest."

Besides her PyLadies work, Lynn has been a speaker at PyCon four times, PyCon Lightning Talk Chair since 2014, frequent session runner, and recurring PyCon volunteer.

PyLadies Benevolent Dictator for Life?
I asked Lynn if she has ever been called the PyLadies Benevolent Dictator for Life (BDFL).  Lynn shook her head, she does not see herself in that fashion. But it is hard to refute the strong footprint she has left on the PyLadies community. Lynn has written several Python open source tutorials, like the web scraping with scrapy and postgres, that are often used in PyLadies workshops and are highly visited (over 65,000 times to date this year!), and has spoken at PyCons around the world: EuroPython, PyCon Finland, and PyCon Brasil. Lynn was the original PyLady I consulted with when starting the PyLadies Chicago chapter in 2014.

From founding her local PyLadies chapter, to volunteering at PyCon, to catalyzing other initiatives like the Django Software Foundation, Lynn has been an unwavering advocate for women in the Python community and for the broader Python community itself. The thing that Lynn says has been most satisfying for her as a Python community organizer and advocate has been the rise of women in Python. “In 2012 only 8% of speakers at PyCon were women now in 2017 we have approximately 33%”.

With the rise of PyLadies at PyCon and throughout the world, it’ll be exciting to see what comes next for the PyLadies community and for those that have helped make PyLadies such a tremendous success.

Monday, September 18, 2017

Improving Python and Expanding Access: How the PSF Uses Your Donation

The PSF is excited to announce its first ever membership drive beginning on September 18th!  Our goal for this inaugural drive is to raise $4,000.00 USD in donations and sign up 3,000 new members in 30 days.

If you’ve never donated to the PSF,  you've let your membership lapse, or you've thought about becoming a Supporting Member - here is your chance to make a difference.

Join the PSF as a Supporting Member or Donate to the PSF

You can donate as an individual or join the PSF as a Supporting Member. Supporting members pay $99.00 USD per year to help sustain the Foundation and support the Python community. Supporting members are also eligible to vote for candidates for the PSF Board of Directors, changes in the PSF bylaws, and other matters related to the infrastructure of the foundation.

To become a supporting member or to make a donation, click on the widget here and follow the instructions at the bottom of the page.

We know many of you already make a great effort to support us; you volunteer your time to help us keep our website going, you join working groups to help with marketing, sponsorship, grant requests, trademarks, Python education, and packaging. Even more, you help the PSF put on PyCon US, a conference we couldn’t do without the help of our volunteers. The collective efforts and contributions of our volunteers help drive our work. We will forever be grateful to the people who step forward and ask, “What can I do to help advance open source technology related to Python?”

We understand that not everyone has the time to volunteer, but perhaps you’re in a position to help financially.

We’re asking those who are able, to donate money to support sprints, meet ups, and community events. Donations support Python documentation, fiscal sponsorships, software development, and community projects. They help fund the critical tools programmers use every day.

If you're not in a position to contribute financially, that's ok. Basic membership is free and we welcome anyone who would like to join at this level. Register here to create your member account, log back in, then complete the form to become a basic member.

What does the PSF do?

  • We fund great projects. So far this year we have approved over $200,000.00 USD in grants to over 140 events worldwide. We’re on track to surpass last year’s total of $265,000.00 USD in grants to 137 events in 45 different countries.

  • We organize and host PyCon US. This year’s event brought together 3,389 attendees from 41 countries, a new record for PyCon! Our sponsors’ support enabled us to award $89,000.00 USD in financial aid to 194 attendees.

  • We celebrate awesome Python contributors. Community Service Awards are given out quarterly, honoring individuals who support our mission. 

  • We implemented a trial Python Ambassador program that we hope to expand in the next year. This program provides funding for a dedicated Pythonista to travel locally to perform Python outreach. 

  • We provide fiscal sponsorship support for Python projects, where the PSF collects targeted donations and reimburses expenses on that projects' behalf.

  • We support Python programmers worldwide by funding sprints and workshops that enable people to work on Python-related projects that advance the mission of the PSF. 

Here is what one of our sponsors has to say about why they contribute to the PSF:

“Work on stuff that matters is one of O’Reilly’s core principles, and we know how very much open source matters. The open source community spurs innovation, shares knowledge, encourages growth, and creates industries. The Python Software Foundation is a prime example of the power of open source, showing how focused, thoughtful, and consistent efforts can create a community whose impact extends far beyond meetups and lines of code. O’Reilly is proud to continue to sponsor this great foundation.”
-- Rachel Roumeliotis, Vice President at O’Reilly Media and Chair of OSCON

Lastly, if you’d like to share the news about the PSF’s Membership drive, please share a tweet via the tweet button here:

Or share a tweet with the following text:

Donation & Membership Drive @ThePSF. Help us raise $4K and register 3K new members in 30 days! http://bit.ly/2h3dxpb #idonatedtothepsf

We at the PSF want to thank you for all that you do. Your support is what makes the PSF possible.

Thursday, September 14, 2017

Au revoir PyCon Pune

By Anwesha Das

February 2017 marked the beginning of a new journey for a new regional Python Conference - PyCon Pune.

PyCon is the meeting place for community. It gives Pythonistas an opportunity to come out of the virtual world and meet the real people behind the nicknames and the handles. It gives them an opportunity to learn new things and share their knowledge with others.

Considering the vast geographical territory of India, a single PyCon event wasn’t sufficient. PyCon Pune offered the Python community another chance to interact.

It was a four-day event; the main conference on the first two days and development sprints the second two. It was a single-track event, so all 550 attendees could attend all the sessions.

The inside story:

Pune, also known as the Oxford of the East, is amongst the fastest growing cities in the Asia Pacific region. Pune witnessed this PyCon at a hotel called Amonora, the Fern. The venue was beautiful, and we were grateful to have it: just a few weeks before the conference began, we were afraid we would have no venue at all!

The event had been located at one of oldest engineering colleges in Pune, but the venue canceled two weeks prior to the conference. Not quite the kind of news any organizers would like to hear, last minute (I can vouch for that, I was one of them).

Python Software Foundation then extended its hand to help. Team PyCon Pune as well as the Python community in India cannot thank the PSF enough for this.

PyLadies in PyCon Pune:

The PSF has always been a huge supporter of PyLadies. This time, they offered to share their booth with us. PyLadies had a huge presence at the event. From volunteering, to management, PyLadies were there everywhere. Yes, “Python is for girls.” And if we PyLadies need support in the face of a crisis, the PSF is there to hold us.

United we stand:

The first ever thing that we decided for the conference was the quote to be used on the conference t-shirt.

“Came for the language, stayed for the community”, by Brett Cannon

This set the tone of the conference. The conference is a completely volunteer-driven event: the website, finance, AV and the overall management were run by volunteers, celebrating the community in the truest sense. Help poured in from pythonistas worldwide. The logo was designed by Ryan Larch from Australia. Python communities from all over India along with Python Pune and PyLadies worked tirelessly together to make the event a success. These people keep the soul of Python (the community and language) alive.

Day 1 and Day 2 of the main conference:

With a welcome note by Kushal Das, the chair commenced the conference. The first keynote was by Honza Král. He talked about his journey in the open source world. It was interesting to know about his hurdles and how he overcame them. It is also always inspiring to see at masters were students once too. Next, Anand Chitipothu taught us to write beautiful code.The post-lunch session began with the keynote by the “official Perl guy” of the Python community, John “Warthog” Hawley, who described the path from software to hardware hacking.

The day ended with an enchanting experience - a keynote by Pravin Patil, a teacher who uses Python to teach Physics. Python plus Physics plus a Laser equaled magic in his presentation.

Katie Cunningham began Day 2, followed by the Economics Professor Stephen Turnbull. He has helped to develop Ghostscript, XEmacs, Python, and GNU Mailman. He offered a word of encouragement to us saying, “You can help develop Python - and you should!” After lunch, Nick Coghlan delivered his keynote. He discussed “opportunities and challenges in open collaboration.” The last keynote talk was by Terri Oda, about security in the open source world.

This led to the end of the main conference. The mentors for the dev sprints spoke on what they were going to work on. An open feedback session marked the close of the main conference.

Day 3 and Day 4 of the Developers Sprint

For sprints, the conference moved to the Red Hat office in Pune. A dozen projects added features and fixed bugs during the final two days of the conference. The sprints had proven to be the most popular portion of the conference: Tickets had sold out within a week.

The Red Hat office looked like a hackerspace over the weekend. People were coding, learning, having fun and celebrating Python. It was the first ever dev sprint experience for more than 95% of the attendees. It took most of the people to some time to understand what is going on and how they could participate.

Slowly folks started flocking around different mentors. There were good number of people gathering around Nick—many Pythonistas have a dream to become CPython core developers. More than 10 patches were submitted to the language. Web.py, ElasticSearch, Django, es-django-example, OpenCabs, Pagure and micropython held sprints as well. The actual number of patches submitted can be found here.

I took shelter in the micropython and hardware room, where we were worked on fun bunny boards with esp8266 devices. John was there guiding us, changing our lives (my life for certain) with blinking LEDs. The best surprise came at the end. He gave each of us a bunny board. What a lovely souvenir to take home!

The conference is intended to give people the feeling of community. The event is over but the spirit is hasn’t diminished. Please join us next year for PyCon Pune 2018, February 8 - 11.

Wednesday, September 13, 2017

PythonDay Mexico: Recap of the Inaugural PythonDay in Mexico

It has been three years since I first  learned about PyCon. I watched some workshops and talks and I was amazed by how inviting, open and inclusive the community was. In fact, that was one of the key aspects that inspired me to learn Python, use it, help build the Python community here in Mexico.

Fast forward to the beginning of this year: I was contacted by the organizer of LinuxChix in Mexico, who is also member of PyLadies, with the idea of organizing a PythonDay in Mexico. This first PythonDay, she suggested,  had the purpose of bringing a PyCon to Mexico. We eventually found another woman who shared the same ideal and we set about working to bring the Mexican Python community to an event that, hopefully, inspired them to be better Pythonistas the same way the first PyCon i witnessed did to me.

We first wondered how big of a community we had in Mexico. Despite being involved with Python for three years I barely knew the people or meet ups, apart from PyLadies, in Mexico devoted to the language. We figured that with Mexico being a country of 130 million there was large chance there would be a sizable population interested in Python. Along the way we discovered that the Python community in Mexico is not only vast, but also scattered across the nation. These reasons only encouraged us more to organize a PythonDay, it would be a great starting point to bring together the community.

Who came to PythonDay Mexico

We selected June 10, 2017 as the day for the first PythonDay Mexico. People from all over the country came to meet their fellow Pythonistas and listen to the amazing talks we selected for this year.

Initially we expected about 160 people, but we could not have been farther off! Over 400 people registered for the event and in its peak, approximately 300 Pythonistas were in attendance. We were glad to learn that 30% of the attendees in the event were women, which is not a high number, but in comparison to the roughly 15% of  women in technology it gives hope to learn that many women are interested in programming.

Attendees traveled up to 1270 miles to attend PythonDay Mexico. In terms of geography there were attendees from Sinaloa, Jalisco, Hidalgo, Nuevo Leon, Puebla, Mexico City and Yucatan and every one of them was excited to hear the talks and workshops as well as to meet other Python lovers.

During the event we did not have any incident or complaint; everybody followed and honored the Code of Conduct lending to a greatly collaborative. Honestly we could not have asked for a better audience. But then again, Python communities all over the world are like this, awesome.

A Global Selection of Python Speakers

PythonDay Mexico had an amazingly diverse set of speakers. We had people from Paraguay, India, USA, Italy, Germany and Mexico. Even if our speakers could not be physically present, they made efforts to actually engage and interact with the audience in their remote presentations. Many of our remote speakers are a part of the Python Software Foundation Board of Directors like Naomi Ceder, Trey Hunner. Board member Lorena Mesa gave her talk in person.

Topics covered by the talks and workshops included data science, machine learning (e.g. deep learning), CPython, Python core development, Python in web development, Python extensions in other languages (Rust, Go), Testing, building bots with Python and getting Python ready for production. The range of topics permitted a bit of something for everyone.

We at PythonDay want to thank everyone that helped make this possible. The organizers spent many months talking, planning, getting funds and convincing people that Mexico is a great place for Python. The PSF was a major player in the making of this event, given that not only were they one of our major sponsors but were also a wonderful source of speakers, advice and even promotion of the event. Of course the speakers and volunteers were also a huge part of the success of this event. Finally, the event would not have been possible without the attendees, without them the event would only have been a bunch of speakers and swag.

What’s next?

Our mission after PythonDay Mexico is to bring a PyCon to Mexico and to keep connecting all the people interested in Python within Mexico with programming and events. For PyConMx we are actively seeking volunteers and organizers, if you'd like to help us or learn more you can contact us at pythonday.mx@gmail.com or mx@pyladies.com, we really hope to hear from you!

Wednesday, August 30, 2017

Python in Nigeria

In 2015, the PSF sponsored the first Python event in Nigeria - the Codesses Workshop in Lagos. In 2016, the number of events increased to 13, and there have been 28 events funded so far in 2017! What has happened in the last 2 ½ years to create such a demand for learning Python in this part of the world?

Aisha Bello
I spoke with Aisha Bello about this. She serves as vice-chair for the Python Nigeria community. She has helped co-organize and support a number of Django Girls workshops in Namibia and Nigeria, and also co-organizes PyLadies Nigeria. Aisha is enthusiastic about the  Python community, with a strong desire and passion for social change, women’s tech education and empowerment in Africa. She currently works as an Associate Systems Engineer for Cisco Systems.

Chukwudi Nwachukwu
Sharing his thoughts as well, is Chukwudi Nwachukwu, PSF Board Director, and Team Lead Integrations, TechAdvance. He is also a volunteer member of the PSF Grants Work Group, helping to review requests from Africa and all over the world. He has also been invited to speak at PyCon NG in September. When I asked why he’s passionate about Python, he said, “Python is easy on the brain and I thank Guido [van Rossum]for such a concept.”

Python + Community

Smart Girls Project
According to Aisha, Python is popular in Nigeria because it’s one of the easiest ways to learn programming. Knowing how to code opens up many career options. The advantages of open source software are becoming more well-known in this region, and have allowed the community to grow because they’re not tied to any one vendor. She notes: “What we have is community. It means a lot to people that there is a common place or forum where they’re not afraid to share their struggles and ideas with people with like minds. We took the Python language and community and made it our own.”

Django Girls Lagos
Chukwudi believes that “the recent urge for more women to be in the workforce of Nigeria through IT has been a huge factor in the growth of Python programming. The Federal Government of Nigeria has also keyed into this drive by choosing Flask as a framework of choice to be taught in their Npower programme.” In addition, Django Girls events nationwide, startup companies incorporating Python as part of their stack, and IT companies training people to code in Python, have all made Python a leading programming language in Nigeria.

Funding for Events

Aisha and Chukwudi agree that getting funding for events in Nigeria is challenging. Often, it’s startups that come forward to help sponsor events. Aisha believes that “By creating more awareness and putting ourselves more out there, we’re hopeful things will change. Organizations like Github, the PSF, and the Django Software Foundation believe in us, and sponsor our events even when no one else will.”

Fortunately, the Django Girls Foundation offers help through their Organizer’s Manual and a template for how to run a workshop: the Coaching Manual. These documents provide a framework to help groups get started. Having a professional-looking proposal goes a long way toward convincing organizations to support these events.

Positive Outcomes

Many of the participants of these workshops have gone into IT careers, received internships, become mentors, organized workshops, and are actively involved in helping out the community.  Outreach to girls in primary and high schools is working too. Girls are learning to program in Python, and most importantly, they’re learning how to use the tools to continue in their journey toward a career.

One very real example is what Abocoders did in collaboration with DjangoGirls in Lagos. Girls who had been displaced from their homes due to Bokoharam in the North were able to learn about computers and programming. In addition, they each got a refurbished computer to use during and after the workshop.

#GirlCodersRock came out of one of the events. An attendee of a Django Girls event in Nigeria is now an intern at TechAdvance, where Chukwudi works. She’s now coding Python full time. There are many Python-related jobs being advertised right now in Nigeria - Google Nigeria and Upperlink are hiring, and Alljobs.ng has 40+ listings. It looks like the trend will continue.

Chukwudi has seen a large increase in members both on slack channels and mailing lists. The community is very excited about the first PyCon Nigeria, September 15-16, 2017, in Lagos. It’s the largest gathering for the Python community in Nigeria, and is organised by members of the Python Users Nigeria Group, a nonprofit organisation dedicated to advancing and promoting the use of the Python programming language in the country.

Django Girls Lagos
Chukwudi suggested that I speak with a woman he mentors, Hamdalah Adetunji, about her road to a career in programming. She explained: “It is all a step towards growth and progress, but I hope one day in the near future, I get to do more than wish I wasn't the only female on the team. I hope to mentor women to give back the amazing support I have received all through my journey, and also let them know they can be anything they want to be as long as they are focused and determined."

Thursday, August 10, 2017

The Ethical Maintainer: Community Service Award Recipient Glyph Lefkowitz

Glyph Lefkowitz was barely 20 years old when he promised himself, "I am never going to use a proprietary programming language again!" He had been writing a Java application for his first professional programming job, which he had started directly after high school. The firm was a mom and pop shop that sold inventory software. Glyph was hired to rewrite their application for a contemporary platform: Java's Abstract Window Toolkit. With the hubris of the young, he promised, "Sure, I can rewrite your whole application in a new language." He could do it working only four days a week, too, and make time to work on his multiplayer online game.

"I had a pretty terrible experience with Java," he says. In those early days of the Java AWT, on classic Mac OS it leaked a tiny bit of memory every time it opened and closed a window, and in his application, nearly every task a user desired required opening and closing a window. On the constrained Macs of the time, the application would crash after about 100 tasks, often taking the whole OS down with it. The AWT was proprietary, so there was no way to fix the bug himself. "I was fired," says Glyph, "because I was having a nervous breakdown over this."

The Birth of Twisted

Meanwhile, Glyph was also building his multi-user text adventure in Java. He wanted to rapidly experiment with varied gameplay logic, and to avoid constantly restarting the server as he tried new code, he built a system in Java that could load new modules at runtime. When, burned by his Java defeat, he switched to Python, he found that practically all of the Java code required to load modules and execute them simply disappeared.

The switch from Java to Python had another effect, which profoundly determined the direction of Glyph's career. He discovered async.

Glyph's friend James Knight, who would become an original contributor to Twisted, helped with the Python port. The initial code for the Python server ran a thread per player, but Knight used a select call to determine, within each thread, whether it was time to read a message from the player or send one. When young Glyph saw that code he was astonished. "It's doing two things at once! But it's also kind of one thing." After all the bugs he'd battled in his multithreaded Java, he thought, "Couldn't we just do one thing all the time?" He and Knight rewrote the entire game server as a single-threaded event loop. He liked how it simplified the code. Only one thread accessed a shared data structure at a time. His original motivation to use an event loop was not efficiency: rather, it was how much easier it was to make his code correct.

Glyph says that his strength, in his 20s, was knowing what he didn't know. His father is a programmer, and he taught Glyph that most programming techniques are already well-known. Therefore when Glyph and James Knight got their event loop working, Glyph thought, "Someone must have done this before." He searched on Alta Vista and found the ACE project, which included a C++ event loop. Glyph refined his Python event loop based on the best practices he found in ACE, and this became the basis for Twisted, which is now one of the oldest and most influential of all Python libraries.

Based on this early experience discovering that event loops were a well-known technique, Twisted's motto is "no new ideas allowed." Twenty years later, however, Glyph has begun to innovate on the margins. For example, his Tubes library implements asynchronous I/O as "flows" of data with flow control and backpressure. But when it comes to event loops, he says, "There's so much prior art that coming up with new inventions is not worthwhile."

Twisted's Influence On Python

In the second quarter of 2017, the Python Software Foundation recognized Glyph Lefkowitz with a Community Service Award for his work on Twisted and his contributions to the Python community. Nick Coghlan nominated him, saying that Twisted "predates almost all other Python event handling systems by years, and still has by far the most comprehensive set of network protocol handlers." The decade-long journey from PEP 342's generators-as-coroutines, which enabled Twisted's inlineCallbacks feature and Tornado's Futures, to native coroutine support with "async" and "await", began with Twisted. Coghlan says that evolution could be reasonably described as taking the concepts first embodied in Twisted and drawing them ever closer to the center of the language.

In 2012, Guido van Rossum began writing asyncio, an async framework for the Python standard library. He collaborated closely with Glyph, as well as Tornado's maintainer Ben Darnell, to incorporate their best ideas in asyncio. He was interested in Twisted's notion of a Deferred, but he couldn't seem to understand it. Glyph says that trying to explain Deferred to Guido "was the worst time I've ever had on a mailing list." Guido wrote, "I really don't get Deferreds. Don't bother pointing me to docs or tutorials; I tried and failed." He said that Glyph's "snarky tone is seriously affecting my ability to process your response." Then he went silent for a week.

Glyph was devastated. He felt like he'd been flamed and ghosted by the founder of the language itself. Then Guido suddenly returned to the mailing list, with what Glyph calls "the most trenchant and keenly observed critique of the Deferred module. It was possibly the best code review I've ever received." It was suddenly clear that Twisted's Deferred would interoperate just fine with the new asyncio event loop. "We were all on board."

Responsibilities of Open Source Programmers

Glyph is distinct among Python programmers for his outspoken views on ethics. In his 2015 PyCon talk he proposed that programmers write a code of ethics, similar to other professions such as medicine and journalism. If we don't, he says, "someone else is going to do it for us, and they are not going to understand our field well enough to do it correctly." Since software is eating the world and it influences nearly all economic activity, we have a grave obligation to write code ethically.

Open source programmers often think we owe our users nothing, because we give away code for free. But this attitude ignores the benefits that we've gained. "Being an open source maintainer has opened all sorts of doors for me," says Glyph. "Whenever anyone does anything with Twisted the credit accrues to me. That's not really accurate, because there are lots of other maintainers like Amber Brown, David Reid, Ashwini Oruganti, Jean-Paul Calderone, Moshe Zadka, and Christopher Armstrong." Regardless, anyone who releases open source code engages in a subtle exchange with users, which obliges the coder to uphold some responsibilities. In my conversation with him, Glyph identified three responsibilities for open source programmers: to make clear promises, to secure our code, and to release code of appropriate quality.

Open source maintainers are uniquely obliged to make clear promises. If a maintainer abandons a project, her main obligation is to announce her departure and to transfer control. "Being an open-source maintainer is not a life sentence," says Glyph. But it is irresponsible to make a worthy piece of software, gain users, then disappear without a word.

We also have a responsibility to protect our personal information security; for example, a Python project maintainer must protect her PyPI account so her users know they won't be hacked when they install her package. That responsibility is shared with the community's infrastructure maintainers, and Glyph cites PyPI as one of the best modern examples. "It doesn't get enough credit because of Python's checkered history with packaging," he says, "but the way Donald Stufft thinks about practical information security, and the other folks who work on PyPI as well, and the resources the PSF has invested there," have laid a foundation for securely distributing open source Python.

And finally, many of us set a low bar for the quality of code that we release: if the project scratched our own itch, we might as well open-source it. In Glyph's opinion, we must more carefully consider the impact of the code we give away, because we can't predict how it will be used. Glyph knows that many of the largest sites run Twisted somewhere in their stack, and he feels the responsibility keenly.

"A lot of our software completely escapes its originating context," says Glyph. The author might intend to release a mere prototype, but downstream packagers come to depend on her code, and other programmers even farther downstream might not know they depend on it at all. Of course, software users share some responsibility for auditing what code they use. "This responsibility is not black or white," says Glyph. "There's small tradeoffs and fractional proportions. It's not 100% yours or not, but you've got to think about it."