Rest In Peace: John Hunter, matplotlib author, father has passed away.

by jesse in ,


I was extremely sad in hearing about this this morning - John Hunter, author of matplotlib and tireless open source/Python community contributor has passed away after an intense and short battle with cancer. He is survived by wife and three daughters.

John hunter crop 2

Many of us - both professionally and personally have benefited from John's work in the open source and Python community. Just a few weeks ago he delivered a keynote at the SciPy 2012 conference, shortly upon his return from that he was diagnosed with advanced colon cancer and passed away from treatment complications.

It is, in fact, a sad day for all of us in the community - but most of all, a terrible day for his family. 

Fernando Perez has posted a heartfelt and detailed post on John and his contributions - Gael Varoquaux has also posted a moving statement on John's contributions, quoting:

A man who gave a lot, not asking for anything in return

And:

Many have benefited from the silent efforts of John, and are not fully aware of how he generously invested his time and talent for the benefit of others. Matplotlib, the Python plotting library that he created in 2002, has propelled Python as a major tool for scientific research and engineering. The impact of John’s efforts go well beyond Matplotlib.

And quoting Travis Oliphant from the memorial webpage:

Those who contribute much to open source, as John did, do so at the expense of something - often it is time with family.

I can not add anything beyond that this is a terribly sad day for many. 

Please consider donating to his memorial fund put together by the Numfocus group - All donations will be sent to a fund that will be established for the care and education of Clara, Ava, and Rahel. I encourage companies who have benefited from his works to do the same.

As a parent, and a Python programmer, I have no words except to pass my condolences on to his family and friends. I was never lucky enough to meet John except through his works, but I consider him a friend nonetheless.


Python.org Redesign Proposals: Due in 7 days.

by jesse in , ,


I hope you didn't miss all the posts, but if you did, the Python Software Foundation opened a Request For Proposals for the complete overhaul and redesign of Python.org a little while ago. The deadline for proposals is July 21st 11:59pm - that means you have 7 days left to submit proposals/bids.

If your team/organization is planning on submitting a proposal; and might need a little time, it would be good to let the us know that ASAP - you can send email to jnoller@python.org or the team at psf-redesign@python.org.


PSF Grants, and some additional color

by jesse in , ,


Doug Hellmann and Mike Driscoll put up an excellent post on the Python Software Foundation blog about most of the grant-type work that the foundation performed over the 2011 year. To add some color to it - reviews and discussions about grants and awarding this comprises quite a bit of the board-level work that goes on (excluding individual committees).

You can see from the post quite a bit of the capital spent goes to support other conferences - as I've stated before, money that comes into the foundation in the forms of donations and PyCon "revenue" goes back into the system to be issued out to things like this.

This is why I am so hot to encourage grants around Porting to Python 3 - I think that the PSF can, in the next year, increase grant work for conference and outreach as well as developer work (such as porting libraries and other projects). None of these things should be solely focused on CPython alone - PyPy, Jython, etc should all be recipients of grants.

And therein lies the rub.

The PSF does not "go looking" for places to issue grants - the PyPy grant at PyCon 2011 was a bit of an aberration in that I proposed it to the board directly.

We need applications from the community! We can do things such as cover meetup fees for user groups, or help fund conferences, or development work. Jessica McKellar, I and others recently revamped the PSF grants page to hopefully provide a better outline of how grants work.

If you have more questions - feel free to ask me here or via email - the PSF's mission is happily broad, and we're here to serve and represent the community as best we can. But we do need to hear from you!

 

 


2011 In Review: The Python Portion

by jesse in , , ,


As I said in my post this morning - "2011 in Review: The Personal Portion" - it's that time where we're all taking stock and reflecting back on 2011.

In this post's case, I'm taking stock of the things that changed for me - things that stick out in my mind and projects I've either started, floundered or run completely into ground.

Design and Experience Matter

Perhaps the biggest shift for me in Python-as-a-whole is a movement more towards the social / management aspects. I'm a Python Software Foundation board member, so obviously me needing to take a "bigger view" isn't that surprising. What has been surprising to me is that everywhere I turn, I see things we as a whole can do better.

Now, before you think I'm about to go off the deep end; let me assure you - I wouldn't trade the community I'm lucky to be part of for anything, as I've said more eloquently before. However, only a fool believes that anything is perfect, and only the insane only focus on the flaws.

Taking a step back, I've seen more and more things that I think we can do a better job at, and these realizations all revolve around my continued "transition" from more back-end to more front-end design and coding. As I've become more focused on the users/community and those who are new, I've grown to internalize the fact that design and experience matter not only in code, and in a GUI, but they matter to a community and language as a whole.

I've spent the better part of this past year focused on issues around this - encouraging people to get involved in the "softer" side of things - helping out with documentation, mentorship and education, trying to get people to think more about one another and those just getting started and introduced to things.

I think that we as a community - and I mean everyone - from Django to Plone, from Twisted to Tornado, from PyPy to cPython can take a look at the "more human" aspects and find things to improve. Sometimes it requires fresh eyes to show you what's broken - people who do code reviews regularly know this.

For an example, look at Kenneth Reitz' Requests module - billed as "HTTP for Humans" - this might be a perfect example of the point I'm trying to get across. Built on top of "less friendly" libraries, it's API is a joy to use. It's simple, it's clear - the documentation is well done and the entire project feels very welcoming. Perhaps "Welcoming" is the best word for what I'm looking for.

I get stuck in wanting to fix "all the things" - and I can't help but get mired down in the details of how we make everything more welcoming and the experience better, how do we lower the barrier and reduce friction. The result is that I've broken my promises to myself and taken on more things than I can possibly hope to do justice.

How do we make things more welcoming, how do we help the new people, how do we help those of us growing stuck in our ways to find and explore new things? How can we do this as a community to lift us all up? What I think we need is a series of small, positive changes. Little things like, say:

  • User friendly READMEs and Documentation. Yes - I said friendly - don't assume your users are magical super smart engineers and users. While the article is more web focused, I enjoyed "The Myth of the Sophisticated User" - please don't assume people are running bleeding edge version of everything, and please don't assume everyone knows 20 years of Python package development.
  • Mentorship! Set up something within your project or team that is focused on mentoring people to a point where that person is comfortable to be a contributor.
  • Stop the vitriol. If you find yourself angry when you're typing that reply to a mailing list; walk away. If you see others being hostile or just flat out rude, call them out on it (privately first, no reason to be a jerk). Aim to be polite and welcoming.
  • The next time you're putting something up on the web? Take a moment to think about or learn about making something - yes - pretty and usable. Even if it's something simple, take a moment to realize that you're building something that may be your future user's first experience with you. It may be as simple as picking up "Design for Hackers" (which I quite liked) or just going with something with sane defaults - like twitter bootstrap.
  • Speaking of sane defaults - please be opinionated. When a new user wants to install something, don't give them the complete history of packaging, just gently explain to them how to do it. Even if I don't agree with the way you do that, it's a far cry from 20 years of development history being dumped on someone when a simple pip install <blah> could work. The same goes for your software: Pick sane, rational defaults and abstract away as much as you can. Put examples of usage before the API in documentation.
  • APIs and syntax matter: your communications channels to your users are APIs and syntax just as much as your actual code and libraries.

Moving on - I hate to say it this way; but think of the Users and target audience. Remember, you - the person reading this - and I - are in a tiny minority of the population where software (for the most part) isn't magic, we understand history and we're very tolerant of unfriendly things and failures because that's how we "grew up".

Not everyone knows how to build an interpreter; or a web framework - it doesn't mean they still can't contribute.

The Python Software Foundation

As most of you know - I am one of the directors of the Python Software Foundation, and have been the past two years. 2011 was another year where the PSF got to do some pretty cool things. I've been stressing and pushing more and more that the PSF has to be focused not just on the "IP" of Python, or just on cPython development - we have to take a larger view of the entire community - this means encouraging projects such as PyPy, outreach workshops, conferences, etc via grants and support.

You should really take a look at the Python Software Foundation's blog - Doug Hellmann, Brian Curtin and others have done their best to document and showcase what the PSF has been up to, and where we're trying to help.

My primary focus has been encouraging things such as the Outreach and Education committee, and working behind the scenes with a lot of people to improve the Python.org infrastructure. More recently I've been working on a project which should hopefully become public soon - but is tied to my first point about Design and Experience and the PSF.

I want the PSF to grow in the good works it performs - more grants as we can afford it, getting better hosting for things as needed, helping out projects like Read The Docs or helping push forward Python 3. The PSF is the Python Software Foundation - we need and should be supporting and helping everything from PyPy to PyPI, cPython to Scipy.

I think the best way for me to help here is to pick up where I left off documenting the PSF. Once again - the design and interface matter.

The Sprints Committee

As part of my board work back in 2010 I helped start the Python Sprints project - and under Brian Curtin's guidance in 2011, it has continued to make small donations in places it matters. In 2012, I'd like to see if I can spin back around and help it grow more and flourish, perhaps even be able to provide more money where it's needed. It's growth has been slow - but that's also due to us seeing less sprints overall it seems.

GetPython3.com

Started as a side project (yes. another one. sigh.) Get Python 3 is meant to serve as a pile of information and resources about Python 3 - and as many of the aspects of Python 3 as possible. Where to get funding, how to port, what is ported. I've actually gotten some excellent help from others (see github) and I'm hoping to grow it more. I've gotten pretty good feedback on it - and I never turn down a patch!

Python (Core) Mentorship

Driven from my experience with the first point about being welcoming, I've done my best to spin up the Python Core Mentorship group, a team / list focused on mentoring new people into contributing to core Python. To quote the home page:

The mission of the Python Core Mentor Program is to provide an open and welcoming place to connect students, programmers – and anyone interested in contributing to the Python Core development. This project is based on the idea that the best way to welcome new people into any project is a venue which connects them to a variety of mentors who can assist in guiding them through the contribution process, including discussions on lists such as python-dev, and python-ideas, the bug tracker, mercurial questions, code reviews, etc.

While traffic is low, I think it has done it's job - as with everything else on my list, I'd like to see growth - as it is, due to everything else on my plate, others have stepped up to help lead and guide the group. As it is, I've run into a case where as I've found with many other projects like this - people are already "tapped out" - myself included. More on resource contention later - and I should really do a poll and gauge the list for the relative level of success they feel the group has engendered.

Python Speed Project

Another side-burner project is the Speed.python.org project - this one makes me sad(der) than my other time-starved projects. While we have finally been able to set it up as a PyPy build slave and have it feeding results to speed.pypy.org (see the speed-python results), it has not taken off as much as I hoped. We have a beast of a machine (see my initial announcement) - but we've hit the resource wall like everything else. Not enough people with enough time and the right skills.

The Elephant in the room: PyCon 2012

My single biggest project this year has been getting PyCon 2012 ready to fly - everything from getting the new website launched, the staff assembled, writing a code of conduct, and providing white-glove service and support (and getting) our amazing list of sponsors.

I can't really estimate how many hours I've "worked" on Python - but I can tell you every hour has been worth it. Even though it's sucked my time from other things and projects, it looks like it's going to be an amazing conference. We have robots, we have amazing talks, amazing keynote and plenary speakers (Paul Graham and Stormy Peters for starters). We have awesome tutorials and even more to come.

PyCon represents the single biggest "community act" that the Python Software Foundation performs - not only does the PSF fund PyCon, but it manages it, assumes the risk, etc. I wrote about it in detail in my post "Making the Case for Sponsorship" and in the "Everybody Pays" post. I'm hoping to continue to write up more and more of the details of the inner workings of PyCon, as I think it's an important series of data points and lessons. Remember - any funds "left" from PyCon go the PSF which allow the foundation to issue grants to other conferences, to developers, groups and workshops. It helps us help you.

PyCon 2012 is the thing I am most proud of; we have 80 sponsors and partners (Such as OpenHatch and PyLadies), we have a solid team of organizers working together to bring PyCon 2012 to fruition. We have a robust financial aid program as is tradition. I can only hope that I have the tenacity and will to see it come together and be able to look at a sea of 1500 Pythonistas - new and old in Santa Clara.

ps: You can register here. :)

Blood from a Stone

How do you get more time from people who are busy? Time and Time again, I've found myself asking that question. Each one of the projects I've listed has hit the same issue over and over again. How do you get the volunteers necessary to help? Heck, even my call for help with multiprocessing in August fell on a mostly flat note - probably due to me.

I no longer feel "ok" asking for help with new projects simply due to the fact that I know everyone is busy - it's insane of me to ask people to take their time away from their projects or families or jobs.

What that means however is that I have completely failed in the not-taking-on-new-things department - and I don't see this changing much without me flat out learning to tell myself "no". I believe in this community - I believe in the people, the friends I have, the language and everything involved. It's not just another tool for me; it never has been. I'm still learning, and mostly failing (or flailing, depends on where I'm standing).

Finishing this one off

Looking at the list I've typed out above, I suddenly have the feeling that I didn't actually do much last year, I know thats wrong (a nasty look from my family members would easily remind me of that). I have been able to help out where I can making things more friendly, more welcoming and to reach out when and where I can to offer help, and support.

I've watched the community change in some dramatic ways, I've looked on as PyPy has gained amazing momentum, more and more vendors and companies have come out with Python support and stating that they're using Python (and are hiring). I've gotten to work with PSF members, the board, and many, many others - all I can do is keep at it, and hope I do things justice.