Page 1 of 17  >> (less recent)

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

What is pyvideo.org

pyvideo.org 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 pyvideo.org.

Status

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!

Dennis v0.6 released! Line numbers, double vowels, better cli-fu, and better output! Tue, 16 Dec 2014

What is it?

Dennis is a Python command line utility (and library) for working with localization. It includes:

  • a linter for finding problems in strings in .po files like invalid Python variable syntax which leads to exceptions
  • a template linter for finding problems in strings in .pot files that make translator's lives difficult
  • a statuser for seeing the high-level translation/error status of your .po files
  • a translator for strings in your .po files to make development easier

v0.6 released!

Since v0.5, I've done the following:

  • Rewrote the command line handling using click and added an exception handler.
  • Merged the lint and linttemplate commands. Why should you care which file you're linting when the linter can figure it out for you?
  • Added the whimsical double vowel transform.
  • Added line numbers in the lint output. This will make it possible to find those pesky problematic strings in your .po/.pot files.
  • Add a line reporter to the linter.

Getting pretty close to what I want for a 1.0, so I'm pretty excited about this version.

Denise update

I've updated Denise with the latest Dennis and moved it to a better url. Lint your .po/.pot files via web service using http://denise.paas.allizom.org/.

Where to go for more

For more specifics on this release, see here: http://dennis.readthedocs.org/en/latest/changelog.html#version-0-6-december-16th-2014

Documentation and quickstart here: http://dennis.readthedocs.org/en/v0.6/

Source code and issue tracker here: https://github.com/willkg/dennis

Source code and issue tracker for Denise (Dennis-as-a-service): https://github.com/willkg/denise

6 out of 8 employees said Dennis helps them complete 1.5 more deliverables per quarter.

Dennis v0.5 released! New lint rules, new template linter, bunch of fixes, and now a service! Sun, 24 Aug 2014

What is it?

Dennis is a Python command line utility (and library) for working with localization. It includes:

  • a linter for finding problems in strings in .po files like invalid Python variable syntax which leads to exceptions
  • a template linter for finding problems in strings in .pot files that make translator's lives difficult
  • a statuser for seeing the high-level translation/error status of your .po files
  • a translator for strings in your .po files to make development easier

v0.5 released!

Since the last release announcement, there have been a handful of new lint rules added:

  • W301: Translation consists of just white space
  • W302: The translation is the same as the original string
  • W303: There are descrepancies in the HTML between the original string and the translated string

Additionally, there's a new template linter for your .pot files which can catch things like:

  • W500: Strings with variable names like o, O, 0, l, 1 which can be hard to read and are often replaced with a similar looking letter by the translator.
  • W501: One-character variable names which don't give translators enough context about what's being translated.
  • W502: Multiple unnamed variables which can't be reordered because the order the variables are expanded is specified outside of the string.

Dennis in action

Want to see Dennis in action, but don't want to install Dennis? I threw it up as a service, though it's configured for SUMO: http://dennis-sumo.paas.allizom.org/

Note

I may change the URL and I might create a SUMO-agnostic version. If you're interested, let me know.

Where to go for more

For more specifics on this release, see here: http://dennis.readthedocs.org/en/latest/changelog.html#version-0-5-august-24th-2014

Documentation and quickstart here: http://dennis.readthedocs.org/en/v0.5/

Source code and issue tracker here: https://github.com/willkg/dennis

Source code and issue tracker for Denise (Dennis-as-a-service): https://github.com/willkg/denise

3 out of 5 summer interns use Dennis to improve their posture while pranking their mentors.

Dennis v0.4 released! Tweaks to Python 3 support, overhauled linter, string-by-string lint rules ignoring Thu, 01 May 2014

What is it?

Dennis is a Python command line utility (and library) for working with localization. It includes:

  • a linter for finding problems in strings in .po files like invalid Python variable syntax which leads to exceptions
  • a statuser for seeing the high-level translation/error status of your .po files
  • a translator for strings in your .po files to make development easier

v0.4 released!

v0.4 sports an overhauled linter. Instead of two rules ("malformed" and whatever the other one was), it now has a bunch of much smaller and more specific rules! Also, I renamed the rules so they are all numbered!

See the table of error/warning rules and their numbers here: http://dennis.readthedocs.org/en/v0.4/linting.html#warnings-and-errors

Additionally, dennis hits false positives for a variety of reasons. If you're doing a "keep the errors out of production!" kind of thing, then false positives can prevent locale files from making it. That sucks!

To alleviate this, dennis now allows you to tell it what to ignore in the extracted comments. What's an extracted comment? It's a comment in the .po file that starts with #.. You can specify the extracted comments with "context" or similar mechanisms depending on how you're extracting strings. You can tell dennis to skip specific rules or skip all the rules on a string-by-string basis.

Ignore everything:

#. dennis-ignore: *
msgid "German makes up 10% of our visitor base"
msgstr "A német a látogatóbázisunk 10%-át teszi ki"

Ignore specific rules (comma-separated):

#. dennis-ignore: E101,E102,E103
msgid "German makes up 10% of our visitor base"
msgstr "A német a látogatóbázisunk 10%-át teszi ki"

Ignore everything, but note the beginning of the line is ignored by dennis so you can tell localizers to ignore the ignore thing:

#. localizers--ignore this comment. dennis-ignore: *
msgid "German makes up 10% of our visitor base"
msgstr "A német a látogatóbázisunk 10%-át teszi ki"

I also tweaked some of the Python 3 support code because it looked at me funny.

Also, universal wheel!

For more specifics on this release, see here: http://dennis.readthedocs.org/en/v0.4/changelog.html#version-0-4-may-1st-2014

Documentation and quickstart here: http://dennis.readthedocs.org/en/v0.4/

Source code and issue tracker here: https://github.com/willkg/dennis

2 out of 10 people saw the Pirate translation on The Web We Want (Mozilla). Arrr!

Dennis v0.3.11 released! Fixes and Python 3 support Mon, 21 Apr 2014

What is it?

Dennis is a Python command line utility (and library) for working with localization. It includes:

  • a linter for finding problems in strings in .po files like invalid Python variable syntax which leads to exceptions
  • a statuser for seeing the high-level translation/error status of your .po files
  • a translator for strings in your .po files to make development easier

v0.3.11 released!

v0.3.11 adds Python 3 support (there might be problems, but it's working for me) and adds error detection for the case where there's a } but no {.

Definitely worth updating!

8 out of 11 people who have heard of Dennis and continue to ignore its baby mews of wonderfulness also have a severe allergy to rainbows and kittens.

Django Eadred v0.3 released! Django app for generating sample data. Fri, 18 Apr 2014

Django Eadred gives you some scaffolding for generating sample data to make it easier for new contributors to get up and running quickly, bootstrapping required database data, and generating large amounts of random data for testing graphs and things like that.

The v0.3 release is a small one, but good:

  • Added support for Python 3.3 and later (Thank you Trey Hunner!)
  • Fixed test infrastructure and added tox support.
  • Fixed documentation.

There are no backwards-compatability problems with previous versions.

To update, do:

pip install -U eadred

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

What is pyvideo.org

pyvideo.org 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 pyvideo.org.

Status

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 pyvideo.org

pyvideo.org 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 pyvideo.org.

Status

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 blip.tv into something more HTML5-palatable (I could use help with this--my encoding-fu sucks)
  • fix other blip.tv 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.

Me: 2013 retrospective Fri, 20 Dec 2013

I had a pretty intense 2013, but overall I think it was a good year. I say that with full knowledge that I had 2013 goals, but I have no idea where I wrote them down. Oh, well.

First off, I started or helped start a lot of new projects this year:

  • dennis: lint .po files for strings that will set production on fire and translates .po files to aid development (awesome)
  • ernest: sprint coordination system (awesome)
  • douglas: my complete overhaul of Pyblosxom (in development)
  • tedmund: console based slide presentation system
  • james: cli for deployment with chief
  • eugene: comms system for Artemis simulation
  • victor: system for sussing out version information for dependencies (failed project)
  • fredrik: Flask template (obsolete)
  • harold: rough feedback/support system (prototype)
  • captain shove: the mighty new deployment system we'll switch to in 2014
  • hy: dialect of Lisp that runs in Python vm

Fredrik is obsolete. Victor was a failed project. Captain Shove and Hy are doing well and other than helping to start them off, I haven't touched either in some time. I work on Dennis, Douglas and Ernest regularly. I'm thinking about Harold, but probably won't do anything with it for a while.

I also spent a ton of time working on existing projects:

I'm probably missing a bunch there. It's hard to keep track of what one did on other peoples' projects.

I got a lot accomplished at work this year:

  • I joined the sec-champs group and now help manage and coordinate security releases for Django and other software we use on our websites. (Security)
  • I performed an audit on playdoh-lib and helped coordinate a bunch of updates including to Django 1.5. (Security)
  • I helped work on Captain Shove which is a new deployment system to replace Chief. (IT)
  • I worked on l10n issues, created dennis and rewrote the deployment scripts for Input and SUMO to eliminate production problems related to errors in translated strings. (L10N)
  • I worked on community building as a mentor for SUMO and Input projects (more Input than SUMO) helping guide new contributors towards their first contributions. I should be doing a lot more on this front. One thing I did with Miro, Pyblosxom and other projects I've worked on is to keep track of people who have contributed to help keep them around. That sounds goofy, but it helps build lasting communities. (Community building)
  • I helped fix some quality problems with the Kitsune and Fjord test suites and I'm working with Bob from QA on updating the Input tests. (QA)
  • Implemented a more flexible filter/query system in Elasticutils and maintained it for the year. (Maintainer)
  • Did a ton of work on SUMO and Input.

Challenges I worked on this year:

  • I keep getting dinged in performace reviews for being acerbic (that's probably the nicest word for it). I recognize that it sucks to work with acerbic people and regardless of how busy or stressed out they are.

    I finally started working on it in earnest probably around August. I hope I'm more pleasant to work with. We'll see what people think.

  • Everyone above me in the Mozilla org chart left.

    At the beginning of 2013, it was something like me -> James -> Mike -> Todd -> Gary.

    Now it's me -> Ricky -> Wil -> Rick -> Harvey -> Jay.

    I'm still working on SUMO and Input, but the Webdev group went away and the SUMO engineering team got shifted between groups. I'm feeling ok about it, but wonder if all that shifting makes it difficult for me to be noticed.

  • I'm working on too many things and thus many things are starving for attention. That's a simple sentence for a very complex situation which involves all sorts of thought-provoking questions like, "why?" and "why is it important for all things to be worked on?"

    I stopped maintaining Pyblosxom. I stepped down from my work on MediaGoblin. I'm being more careful about what I commit to and try to commit to things that I feel that I'm the best fit for. I'm working on reducing context-switch time so I'll work on certain projects for longer periods of time, then put them down for longer periods of time. I'm trying to ask for help more often and spread the workload around and I'm trying to make helping me easier.

  • I need to spend more time on pyvideo.

    This is an important project. It just keeps getting back-burnered and when I have time to work on it, crazy ass things come up which need to get fixed immediately.

    For example, blip.tv ditched a bunch of Python conference accounts. We scrambled to download those videos and now we're hosting them. That took a ton of time.

    Regardless, I started several code overhauls that I need to finish. That's blocking everything else and that sucks. I really need to get that done.

  • I have a new roommate and having two roommates is crazy. I don't even know what to do to alleviate this short of just get through the day one day at a time.

  • I need to take better care of myself.

    This is a hard one. It's easy to push off me-focused things when there's so many things that need doing. I haven't a good answer here, yet, but maybe being more aware of it is helpful.

  • I got shingles. That sucked.

In 2014, I want to:

  • Continue to get better at front-end development.
  • Spend time working on pyvideo, richard, dennis and ernest and get them to better places.
  • Figure out what to do with Elasticutils: Overhaul it to make it suck less? Pass it off to someone else to maintain? Figure out a list of 5 things to fix now and let it continue to be mediocre?
  • Overhaul my blog. Douglas is coming along nicely. After I finish getting that working, I'll re-theme it. This is lower priority than the other things here, but it'd be nice to finally do this year.
  • Work on empowering and enabling other people to do things rather than blocking them. This one is hard and tricky especially where my free time is unpredictable on account of roommates and obligations I have no control over.

It's been a busy year and there are things I should be doing better, but generally speaking, I think I did pretty ok.

Page 1 of 17  >> (less recent)