Page 1 of 2  >> (less recent)

pyvideo status: April 9th, 2015 Thu, 09 Apr 2015

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


It's been about a year since my last status report. The last year was tough for a bunch of reasons I don't want to go into. On top of that, I was pretty burned out and I had a ton of other stuff I needed to do. So I didn't do much with pyvideo for a long time.

However, we had a lot of help from other people. Sheila Miguez took over adminning the site and added a bunch of conferences. Paul Collins did a ton of work fixing technical debt issues and cleaning up richard codebase. Trey Hunner got richard working with Python 3. Spencer Herzberg, Magnun Leno, Reiner Gerecke, Wes Turner, Benjamin Bertrand, and Burak Guven fixed a bunch of bugs, added new functionality and cleaned up documentation.

I started to get back to things mid-March. I started with the ansible work that Sheila did and tweaked it so we could use it to deploy pyvideo. Then I redid all the infrastructure, updated richard to Django 1.7, fixed a bunch of django-browserid related issues, nixed some code and did some other cleanup. Then I had a few days left before PyCon US 2015 and I decided to throw together a rough playlist implementation.

Playlists are something Sheila and I have talked about for a while. It's great that pyvideo is an index of videos, but until now there's been no good way of collecting a subset of videos you think are interesting to watch later. There's been no good way of curating a group of videos and then sharing that list with other people. Perhaps you want to help people learn Flask. Perhaps you want to share videos about debugging in Python. Perhaps you want to collect videos related to a class you're teaching. Perhaps you want everyone to experience Erik Rose: Man of Mystery.

I landed a rough implementation of playlists today. It's not perfect; it's missing some key things. I wrote up some issues in the richard issue tracker for features that should get implemented to make it really useful. Even without some of those things, it's useful today.

Want to try it out?

Sign in to pyvideo. You'll see a "My playlists" link in the navbar at the top. Go to that page and create a playlist.

Now you can go to any video page on the site and add that video to your playlists.

All playlists are public. You can share the url of your playlists with other people.

Next step is to implement some of the other features listed in the richard issue tracker. If there are other things you want to see or you bump into problems, toss an issue in the tracker.

I hope you find it helpful!

Me: 2014 retrospective Thu, 19 Feb 2015

This is belated because I've been busy.

2014 was crazy. It had a lot of epically lousy parts, but also had some good parts. Like 2013, I don't know what I did with my 2014 goals.

2013 involved a lot of projects. 2014 involved fewer.

  • dennis: Lots of development on Dennis. It's really come along as a tool, though I wish I had more users since that would help flesh out issues.
  • denise: A web front-end for dennis. I did some work on it, but it needs some more to remove some of the sharp edges.
  • ernest: Everyone has a Bugizlla front-end--this is mine. I work on this with Mike, Ricky and Rehan. We made some solid improvements in 2014. Having said that, it's still pretty hacked-together and it's not generally useful to anyone else.
  • denton: A bunch of us keep a log of what we've worked on day-to-day in Standup. Denton pulls the weekly data and throws it into an email. It doesn't sound like much, but it runs on a RHEL 5 system with an aged Python 2.6 and it's a pain in the ass to use. Given that, Denton has virtually no dependencies and sports its own (mildly terrible) template parser. It continues to be a mildly fun hobby project to tinker with periodically.
  • elasticutils: I did a ton of work on ElasticUtils so that people could use it and get over the Elasticsearch 0.90 -> 1.x hump. After talking with Honza, Jannis, Erik and Rob at PyCon US 2014, we decided it wasn't worth keeping ElasticUtils going. Honza built elasticsearch-dsl does some of the things ElasticUtils does, but better. Several Django-focused shim libraries that sit on elasticsearch-dsl have appeared since then. In January 2015, I deprecated the project and no longer work on it.
  • richard, steve and pyvideo: I did a bunch of work on these three right after PyCon US 2014 and then I totally burned out. Sheila took over admin of pyvideo. I tried to reduce my role to fixing architectural problems with richard and steve. I haven't spent much time on either, though. I'd like to spend more time on them, but now I'm having difficulties finding free time to spend. These projects are currently struggling.

I also spent time on a bunch of other projects:

  • peep: I helped a bunch on peep adding support for github tarball urls which we use a lot for Input and SUMO. I'm now a maintainer and help out with project maintenance.
  • django-ratelimit: James did an overhaul that I reviewed and helped with.
  • Sandstone: Schalk built this project as a Bootstrap version of Mozilla Sandstone look and feel. I was thinking I'd use it, but it seriously lacked documentation so I helped work on that for a while.
  • elasticsearch-dsl-py: I spent a portion of PyCon US 2014 sprints talking with Honza, Rob and Jannis about what I liked about ElasticUtils and we worked out parts of the elasticsearch-dsl-py API. Since then, I very occasionally comment on issues. I'd like to spend more time on this project, but Input and SUMO are still stuck on Elasticsearch 0.90, so I don't have anywhere to use it, yet.

At work, I spend most of my time on fjord which powers Mozilla Input.

2014 was interesting:

  • The sec-champs group fizzled out. I continue to help manage Django security updates across the various Mozilla web-sites. (Security)
  • I continue to work on l10n issues by improving the Dennis PO/POT linter. I also wrote Denise which anyone (particularly translators) can use without having to install Dennis. (L10N)
  • I got around to writing a site-health dashboard for Input. This makes it much easier to spot issues after deployments and code changes. (IT)
  • I wrote a smoketests test suite using Selenium for Input. This reduced goofs with feedback that we had periodically. (QA)
  • We set up Fjord to work with Vagrant. The vagrant provisioning script is a bash shell script and isn't idempotent which is a bit of a drag occasionally. However, this system has made it a lot easier for new people to contribute to Fjord/Input development. L. Guruprasad helped a ton here. (Community building)
  • I overhauled the feedback forms on Input making them more responsive, accessible and generally better. (UX/UI)
  • I wrote a translation system for Input which does automated machine and human translation. It's currently using Gengo, but the system is modular so we could write modules for other translation companies. This translates incoming feedback in non-English languages allowing our analysis tools to operate on everything in English. (Software engineering)
  • I started a Dashboards for Everyone project which coupled an API for querying feedback on Input with some examples using d3 for converting that code into dashboards. I thought this project would do a lot to alleviate peoples' needs for data, but as far as I can tell, it never caught on. (Software engineering)
  • Early in 2014, I started working on a data retention policy for Input data. Over the course of 2014, this policy gelled and was implemented. (Privacy)
  • In 2014, I committed to writing up project plans for the bigger Input projects and maintaining them in public. The thinking was that this lets other people follow along and correct missteps. Also we have a record of why we did certain things the way we did them. In reality, I don't think anyone really cared and/or looks at them. Still, it occasionally helps me, so that's probably good enough. (Project management)

Challenges for the year:

  • I think I'm easier to work with than I was in previous years. I spent some time fixing how I did things. Over the course of 2014, the indications that I was hard to work with have mostly disappeared. It's entirely possible that's because I switched projects and work with different people now. As a side note, User Advocacy group at Mozilla is amazing to work with.
  • I'm still working on too many things. I continued working on fixing this. I retired ElasticUtils which was taking a lot of time. I retired from working on playdoh, funfactory and friends. Still, there are projects I want to work on that I haven't/can't, so that bums me out.
  • Two roommates is still crazy. It'll be like that for a while, I think.
  • Wearing lots of hats on the Fjord/Input project really took a toll: project manager, architect, lead/solo developer, QA, deployer, ... I do it all. I learned I can do this, but that it's exhausting and I spent most of 2014 feeling overwhelmed and like I can't move fast enough. I really appreciate Ricky, Rehan and Mike helping with reviews and technical questions I have, else I would be sunk.

In 2015, I want to:

  • Spend time working on pyvideo, richard, dennis and ernest and get them to better places.
  • Overhaul my blog. Douglas is great, but the blog theme has issues and has since I last overhauled it in like the mid-2000s.
  • Find more time to tinker. I had like zero tinker time in 2014--it was just too crazy. No tinker means I'm falling behind (or at least feeling like I'm falling behind).
  • Blog more. I did a few impressive things. I wish I had blogged about them so that there's a record of me doing those things and also so that others could learn from my experiences. It's hard to find the time, though.

That's 2014 in a nutshell!

pyvideo status: April 9th, 2014 Wed, 09 Apr 2014

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


I fixed a few issues and finally (finally) pushed out major site updates. Some of them are implemented in the worst possible way (e.g. facet filters for the search page), but some of them are great (e.g. Amara subtitle support).

I'm still struggling with a lot of technical debt on the site and a lack of time to really focus on it. That's mostly what's been making fixing the issues, improving the site and adding conferences take so long.

Sheila and I will be at PyCon US and hanging around for sprint days. If anyone is interested in sprinting, we'll be there. Even if we don't get any coding done, figuring out how to solve some of the bigger problems and planning what should be done in the next year would be a huge accomplishment.

If you're at PyCon and see either of us, feel free to give us a piece of your mind in regards to how you use PyVideo and what could be better.

pyvideo status: February 15th, 2014 Sat, 15 Feb 2014

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


Over the last year, a number of things have led to a tangled mess of tasks that need to be done that were blocked on other tasks that were complicated by the fact that I had half-done a bunch of things. I've been chipping away at various aspects of things, but most of them were blocked on me finishing infrastructure changes I started in November when we moved everything to Rackspace.

I finally got my local pyvideo environment working and a staging environment working. I finally sorted out my postgres issues, so I've got backups and restores working (yes--I test restores). I finally fixed all the problems with my deploy script so I can deploy when I want to and can do it reliably.

Now that I've got all that working, I pushed changes to the footer recognizing that Sheila and I are co-adminning (and have been for some time) and that Rackspace is graciously hosting pyvideo.

In the queue of things to do:

  • finish up some changes to richard and then update pyvideo to the latest richard
  • re-encode all the .flv files I have from into something more HTML5-palatable (I could use help with this--my encoding-fu sucks)
  • fix other metadata fallout--for example most of the PyGotham videos have terrible metadata (my fault)
  • continue working on process and tools to make pyvideo easier to contribute to

That about covers it for this status report.

Questions, comments, thoughts, etc--send me email or twart me at @PyvideoOrg or or @willcage.

pyvideo status: November 24th, 2013 Sun, 24 Nov 2013

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


Lot of stuff has happened since the last status report, but there are four things of note:

  1. Sheila is now a co-admin of She has been for a couple of months. I need to update the site to reflect this.

    I'm really psyched about this. It's a ton of work and I'm just not managing it well. Splitting the work should make it more manageable.

  2. Back in July, Sheila poked me about a tweet Jesse wrote suggesting Rackspace was interested in sponsoring Open Source projects. She contacted Jesse and set everything up.

    I'm psyched that Rackspace agreed to sponsor by providing free hosting. Several months later, I moved from where it was before to a vm at Rackspace.

    I'm really excited about this! It makes a bunch of problems that I was trying to figure out what to do about go away.

    Thank you, Rackspace!

    I need to update the site to reflect this.

  3. Sheila discovered that was expiring a bunch of accounts that held conference videos and that those videos would go away. She and I scrambled to download all the files from blip and move them to Rackspace cloudfiles. It's about 600 videos and around 250gb of data.

    In the process of doing that, we saved videos for DjangoCon EU 2010, DjangoCon EU 2011 and PyGotham 2012. I added these to today. These videos have pages that are stubs with no metadata. I've got that in my queue of things to fix.

    Also, the thumbnails for all the videos on are on my laptop which isn't very helpful. I need to move those and update the videos in

    As a side note, if we didn't have hosting from Rackspace, we'd have been totally screwed. Thank you, Jesse Noller and Rackspace!

  4. I've been working on the richard codebase fixing architectural problems, reducing the complexities and trying to clean it up so it's in a better state. That work is almost done. When it is, I'll update with the new site. At this rate, I think I can finish the work this year, but that assumes there aren't any more emergencies.

  5. I've been thinking about how to build a better communication channel for so people can more easily follow what's going on so they can act on things they're interested in. has a "site news" section. It's a pain in the ass to use and it's not syndicated anywhere and it's likely no one sees it.

    Blogging status reports like this on my blog is better, but I don't think my blog is very widely read. Making my blog more widely-read seems like a lot of work and I'm not sure I can do it effectively anyhow.

    So I've decided to ditch the "site news" section of and switch to Twitter. I started a @PyvideoOrg account.

    I'll tweet site updates, calls for help and newly posted conferences. I'm tossing around tweeting new videos when they get posted, but videos tend to get posted in huge batches and getting > 40 tweets all at once is a total drag. I'll have to think about that some more.

    Follow @PyvideoOrg if you're interested! Also, feel free to tweet at that account.

    I need to update the site to reflect this.

Also, in my life things are pretty crazy. I have a new kid and juggling everything was impossible for a while. I think that should easy up now and I can spend more time on going forward.

That's the state of things!

Also, thank you thank you thank you thank you Rackspace!

pyvideo status: April 3rd, 2013 Wed, 03 Apr 2013

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


  • Videos for PyCon US 2013 are still going up. There are 115 posted and live now. There are around 30 that are waiting for presenters to look at the metadata and tell Carl whether the metadata is good or not. More on that later.

  • Several new people submitted patches to richard! Several of the patches were fixes to broken things they saw on I've applied the fixes to the site directly, but have been waiting on making any non-critical updates to the site until after things have cooled off. I think I'll do a site update in the next week or so.

  • PyData 2013 was recorded. When videos are posted, they'll be in the PyData category. I don't know what the posting schedule is.

  • I was contacted a couple of times by the inimitable Montréal Python to post their videos. They're going to test out steve which is the tool I've been writing for the last 6 months to make it possible for other folks to generate the video metadata needed by

    I eagerly look forward to their progress and to their videos getting on the site.

    If it works out well, I'll blog more about steve and look for volunteers to use steve to generate the video metadata for the ever increasing backlog.

  • Several people are gittip'ing me. It's not a lot of money, but that and the many emails I've gotten over the last few weeks about the site have been really great. I work on in my free time of which I don't have a lot. It's nice to know that prioritizing work over other things helps you.

That's the gist of things!

Most of the PyCon US 2013 videos that aren't live are waiting for presenters to tell Carl at NextDayVideo (carl at nextdayvideo dot com) whether the metadata is good.

  • If you see your name on this list and you've told Carl the metadata is fine already, please send him a friendly reminder.
  • If you see your name on this list and you haven't told Carl anything, please send him a "yes, this is great!" or the list of things you need corrected.
  • If you see a friend on this list, tell your friend to do one of the above.

I'll update this list as I'm aware of changes. However, I don't work for NextDayVideo, so it's entirely possible my list is not current and/or there are errors. If so, please let me know.

Here's the list (last updated 2013-04-12 7:13am -0400):

  • Digital signal processing through speech, hearing, and Python -- Mel Chua
  • Faster Python Programs through Optimization -- Mike Müller
  • Python beyond the CPU -- Andy Terrel, Travis Oliphant, Mark Florisson
  • Code to Cloud in under 45 minutes -- John Wetherill
  • A Gentle Introduction to Computer Vision -- Katherine Scott, Anthony Oliver
  • Documenting Your Project in Sphinx -- Brandon Rhodes
  • Contribute with me! Getting started with open source development -- Jessica McKellar
  • Intermediate Twisted: Test-Driven Networking Software -- Itamar Turner-Trauring
  • Gittip: Inspiring Generosity -- Chad Whitacre
  • The Magic of Metaprogramming -- Jeff Rush
  • You can be a speaker at PyCon! -- Anna Ravenscroft
  • sys._current_frames(): Take real-time x-rays of your software for fun and performance -- Leonardo Rochael
  • Planning and Tending the Garden: The Future of Early Childhood Python Education -- Kurt Grandis
  • powerful pyramid features -- Carlos de la Guardia
  • Python for Robotics and Hardware Control -- Jonathan Foote
  • Copyright and You -- Frank Siler
  • Chef: Automating web application infrastructure -- Kate Heddleston
  • Numba: A Dynamic Python compiler for Science -- Travis Oliphant, Siu Kwan Lam, Mark Florisson
  • Integrating Jython with Java -- Jim Baker, Shashank Bharadwaj
  • Iteration & Generators: the Python Way -- Luciano Ramalho
  • ApplePy: An Apple ][ emulator in Python -- James Tauber
  • Distributed Coordination with Python -- Ben Bangert
  • Become a logging expert in 30 minutes -- Gavin M. Roy
  • PyNES: Python programming for Nintendo 8 bits -- Guto Maia
  • Purely Python Imaging with Pymaging -- Jonas Obrist
  • Namespaces in Python -- Eric Snow

These are all set now:

  • IPython in-depth: high-productivity interactive and parallel python -- Fernando Perez, Brian Granger, Min RK
  • Pyramid for Humans -- Paul Everitt
  • Learn Python Through Public Data Hacking -- David Beazley
  • Rethinking Errors: Learning from Scala and Go -- Bruce Eckel

Adding Persona authentication to richard Tue, 19 Mar 2013


This is a post covering my first time experience with integrating Persona authentication into my Django project named richard. I briefly cover why I did it, what I used, and list the commits I did the work in as an example of how it can be done. I hope this helps others implement it on their sites..


A month ago, I added Persona authentication support to richard. This allowed me to use Persona authentication for I did this for several reasons:

  1. I wanted to try it out and see how well it worked on a small Django site (tl;dr works great---I'll use this on all my sites)
  2. I wanted people to authenticate with an email-based identity rather than a social network based identity
  3. I wanted to allow people to create accounts on, but didn't want to deal with the responsibility of protecting things like passwords

So that's where I'm coming from.


I used django-browserid which gives you some JavaScript and a few template tags that make it easy to incorporate Persona authentication into a Django app.

It took about 15 minutes to get it working. I've made some minor edits to the code since then and updated to v0.8 of django-browserid. All told, I think I've spent a couple of hours on Persona implementation.

In the process of doing that work, I hit a few minor issues, created some pull requests, helped with other pull requests and became one of the maintainers. Yay!

Here are the commits I did the work in. I figured the diffs might help you implement similar things on your sites:

That last commit updates to django-browserid master tip to pick up a fix to login failures if BROWSERID_CREATE_USER is False. That fix will be released in v0.8.1 soon.

further reading

The Mozilla Persona site helps understand why it exists and has a Developer FAQ.

The django-browserid docs are pretty good and walk through setting it up, advanced usage, and troubleshooting. I encourage you to read through them in full---it'll give you a better understanding of the pieces.

Dan Callahan did a talk at PyCon US 2013 on Persona. That's worth watching. It covers why Mozilla built it, how it works, and why it's important that it works that way. He also demos integrating it into sites and talks about using Persona authentication alongside other authentication methods.

If you're interested in adding Persona authentication to your Django site and need help, let me know.

pyvideo status: February 3rd, 2013 Sun, 03 Feb 2013

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


  • Videos for PyCon AU 2012 are posted.

    That's probably the last conference I'm going to do on my own. More about that later.

  • I've made some big changes to richard. For one, formatted fields use Markdown instead of HTML now (yay!). I've improved the API. I've made a lot of layout tweaks and user interface improvements.

  • I pushed out steve v0.1 and then promptly made a bunch of fixes, tweaks and changes. So I need to do a new release soon. steve is the utility people can use to generate conference data for See the commandline chapter for details.

I've been working on getting steve and richard to the point where I'm neither doing all the work nor am I the bottleneck for work being done.

I still need to write up a blog post on how to use steve to generate JSON files for That will make it possible for anyone to add conference video.

I'm working on changing richard to allow for other people to edit video metadata. It'll continue to be curated, but this will make it possible for other people to help because there are like 1600 videos and the repository continues to grow and I'm just one man. I have some of this worked out on paper, but it needs to be implemented.

That's the current push. I'm hoping to have a lot of this done for PyCon 2013.

pyvideo status: September 14th, 2012 Fri, 14 Sep 2012

What is is an index of Python-related conference and user-group videos on the Internet. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


I posted the videos for SciPy US 2012 earlier today. They're missing summaries and Carl is forwarding me a bunch of data correction requests. I'll work through that over the next few days.

SciPy 2012 had ok metadata. I spent about 3 hours on SciPy 2012 over the last few weeks.

Next in the hopper are PyCon AU 2012, DjangoCon US 2012 and PyCon DE 2011. You can see the queue of conferences here.

Thinking about a tip jar takes a lot of time. Plus the software it runs on is pretty cool and could/should be used for other domains. This is less of a hobby and more of a part-time job.

I've been (slowly) working on collaboration features in richard that make it easier to delegate the work to other people. Even with that, I'll be spending a lot of time on this.

One thing I was thinking about doing was adding a tip jar sort of thing to My questions to you are:

  1. is that offensive?
  2. is this site valuable enough to you that you would tip me?
  3. what systems are good for this sort of thing? PayPal? gittip?

pyvideo status: September 6th, 2012 Thu, 06 Sep 2012

What is is an index of Python-related videos on the Internet. For the most part, it's a collection of videos from Python-related conferences. Saw a session you liked and want to share it? It's likely you can find it, watch it, and share it with


I posted the videos for EuroPython 2012 last night. Many thanks to Omar who pulled together metadata for the conference.

If you look at the videos on the site, the data is kind of a mess. I spent a bunch of time reconciling issues with the data from the YouTube feed with data from the EuroPython 2012 site and fixed a lot of issues, but there's still a lot left to do.

I spent about 10 hours working on the data for EuroPython 2012.

My current plan is to leave it like this for now and forge ahead to catch up with other conferences from 2012. Then I'll go back and continue working on a system for crowd-sourcing metadata fixes. That will make it easier for anyone to fix data they see is wrong and also remove me as a bottleneck to a better index of Python video.

I'm working on SciPy 2012, PyCon AU 2012, and PyCon DE 2011. You can see the queue of conferences here.

Page 1 of 2  >> (less recent)