[TriZPUG] Project Night Project
Chris Calloway
cbc at unc.edu
Fri Aug 31 01:16:14 CEST 2012
Executive Summary:
A good project night project would be to make an mbox file suitable for
importing into our current email list archives from the cooked archives
of our old email list.
And Now For Something Completely Different (from an abstract):
A the last after-meeting, there were five of us hanging out until the
bitter end. Michael Hrivnak asked what goes on at project night? Are
people really pair programming?
I said it was a bit more organically do-acratic than that. I described
that most people were working on their own things, some people even
working on work. But that people generally spoke up if they wanted to
work with someone else, had an idea or question, or wanted help. I said
I generally came to project night with something to work on and rarely
ended up working on that thing because I'd end up working with someone
else on whatever they needed. Pairing happens at project night, just not
necessarily by design or intention and not in call cases.
The organizer of any particular the project night sets the tone to his
or her liking. The project nights Calvin has been calling he classifies
as "informal" and that's been working pretty well for most people who
come. There's an occasional "what's going on here?" freak-out, but most
people get it as soon as they see it.
There was a project night where I announced beforehand that I'd work on
the Django Bootcamp take home assignment with anybody who wanted to show
up and work on them, and then nobody from the bootcamp showed up at the
next project night. Then again, there was a project night where I was
working on core Python issues and was hoping to involve someone else in
that work, and instead ended up spending the the evening answering new
to Python questions. That's just life. Things happen organically rather
than the way we plan.
Alex Kesling said it would be good to have projects for people to work
on at project night. I kind of thought, well, there are so many things
people are already working on. And often I see people who aren't
finishing the projects they already started get new ideas and want to
recruit other people to do them. There are always project ideas for
people with nothing else to do: (see
http://whartoniteseekscodemonkey.tumblr.com/). The thing is, most people
already have enough to do and most people have their own ideas. They are
just looking for like-minded people around whom to work.
However, there is a lot of merit to what Alex suggested, despite my
pessimism. There are always people new to Python who just want some
direction regarding which direction to take. I'm pretty sure the next
new to Python person who asks me what to do next, I'll point at the
Python Koans. It really is a Pythonic Zen experience. The brilliance of
the guy who gave the Python Koans "talk" at PyOhio, where the whole
session of the talk was silence as people worked through the koans,
still just makes me laugh.
But beyond new to Python or "what's going on here?" questions, I hear a
lot of, "How can I help?" and "What can I do to help?," questions. These
questions are sometimes tough because although I often need a lot of
help, sometimes helping people help, or getting help in a form that is
actually helpful, can be more difficult than doing something yourself
even if you don't have the time. I've had bosses whose whole outlook on
work was how to avoid getting "help," because there's no work quite as
painful as work where the upper management has concluded that you need
some extra "help" (cue management consultants and the whole script from
Office Space). But I've been thinking a lot about this idea of
ready-made projects and how someone who wants to help can help and have
it be actually helpful.
Now that project is staring me right in the face. If someone wants a
project, or if there needs to be a project for project night, or if the
question is "How can I help?," then I have a project that I should
particularly farm out, especially at this time when there are far too
many projects to juggle.
Background:
TriZPUG was one of the first Python user groups. It was certainly the
first Python user group with its own website separate from python.org
wiki pages. It was also one of the first localized Python user groups
with an email list.
When TriZPUG got started, the PSF had only just formed. The main Python
organization before the PSF was the Python Software Association (PSA),
sometimes called the Python Software Activity, which did things like put
on the first nine or so Python conferences in Washington, DC. The PSA
was a lot more do-acratic and less bureaucratic than the current PSF.
(Today's PSF bureaucracy is actually a necessary thing, not a bad thing,
in order to do legal software property conservancy.)
The PSA was pretty loose: you paid $25 and your were in. It was mostly
government employees in and around Washington, DC, most of whom,
including GVR, would go on to join Digital Creations (now Zope
Corporation) at which time the PSF was formed to keep the Python
copyright from flowing to whomever GVR happened to be employed by at any
moment.
This is kind of a gloss, and ignores the intermediate Python Software
Consortium. But one of the do-acratic things various members of the PSA
did was run some Python infrastructure, namely python.net.
Python.net provided the first TriZPUG email list:
http://starship.python.net/mailman/listinfo/triangle-zpug
By 2007, python.net was kind of an orphan. The PSF's python.org had
become the hang-out for Pythonistas. Python.net mostly provided
homepages and web space for most of the earliest Python pioneers. But it
didn't really have the support it had before the PSF took over
python.org. Python.net suffered a couple of nasty crashes. Many of the
early Python pioneers did not continue to support it after the crashes.
It had become too easy to host your own site and get your own blog.
After the second crash, some of us in TriZPUG decided it would be better
if we followed the lead of some more recent Python user groups and moved
our email list to the more stable python.org. The second crash had
severely disrupted our volunteer coordination for the biggest event we'd
ever staged. The old email list had become a problem.
It took about a year after that decision to find the right people in
python.org to make this happen as this was also about the time that
mail.python.org was going through some management lapses. I even tried
to find someone in TriZPUG to be the python.org postmaster after a call
for help went out from the PSF. But eventually a new python.org
postmaster was found, Brad Knowles, who was super nice and got our email
list moved to where it has lived since May 16, 2008:
http://mail.python.org/mailman/listinfo/trizpug
As part of the move to python.org Brad offered to move our python.net
archives to python.org. All he needed was the mbox file for our email
list. Unfortunatly, our mbox file had not survived the python.net
crashes. At least not a comprehensive mbox file. Only an mbox file since
the last crash or two. All that really survived comprehensively were the
"cooked" archives that MailMan makes from an mbox file:
http://starship.python.net/pipermail/triangle-zpug/
For MailMan to absorb old archives into a new email list, it needs to
recreate the cooked archives from an mbox file. There might be a way to
hack MailMan's archive import feature to accepted cooked archives, but
it was beyond where our volunteer postmaster help at python.org was
willing to go. They did make a valiant effort at reconstructing an mbox
from the cooked archives.
But the format of the cooked archives had changed over the years
2002-2008, and so it wasn't as simple as it first seemed. Things like
the format of the email headers changed over the life of the email list.
We arrived at a point where we had exhausted the reasonable efforts of
the python.org postmasters to import the old archives into the new list.
So to this day, we have archives split between python.net and python.org.
However, as part of our TriZPUG to TriPython name change, I have been
talking to Brad Knowles once again. With a little advance notice Brad
is happy to change the name on our email list when we need. And he
offered once again to try to import our old python.net archives. I
reminded him of the previous effort to do so. But once reminded, we
talked about making another more intensive effort to recreate and mbox
file from the python.net cooked archives. Python's support for mbox
manipulation has come a long way in the last four years:
http://docs.python.org/library/mailbox.html
Brad said if we can recreate the mbox file from the cooked archives,
he'd like to try to import the archives once again so we would have
comprehensive archives all in one place.
The Project:
1) Get the old cooked gzipped archives at:
http://docs.python.org/library/mailbox.html
using something like the urllib module or the requests package.
2) Expand the cooked archives with something like the gzip module.
3) Examine the archives and figure out a way to parse them into
individual messages with header metadata. Classic text parsing.
4) Understand where the parsing has to deal with different metadata
formats in the cooked archives. Deal with it. Classic real world text
parsing.
5) From the parsed data, reconstruct an mbox file called
triangle-zpug.mbox using something like the mailbox module.
6) Be prepared to make changes if necessary. Life is contingent in many
ways. Things often don't work as planned. There are some old cooked
archives beyond May 2008. Sometimes people posted to the old list by
mistake after May 2008. One of the best pure Python discussions this
group ever had was in April 2009 on the old list. It went on for days
before someone realized, hey, how come this thread is on the old email
list? You might want to reconstruct an mbox with all the old archives,
and be prepared to reconstruct them again if the MailMan import cannot
mix old and new archives from the same month.
You might want to do some testing. Testing might be pretty difficult.
Mock only gets you as far as unit testing. This will require real
functional and system testing. You might need to make test builds of
MailMan. You will probably have to work closely with the python.org
postmasters who are running the import steps. You might need to get the
current mbox file from the python.org postmasters in order to do
realistic testing.
The building and testing of this project could be involved. It may be a
good candidate for continuous integration, especially if a lot of
changes arise. And I would just anticipate a lot of changes for this
project.
7) Be prepared to fail. Life is contingent in many ways. Things often
don't work as planned. It might be there there will never be sufficient
information in the cooked archives to make the MailMan import work in
ways acceptable to the python.org postmasters.
8) This project would really do well to have a least one pair of people
working on it. This doesn't sound like a really good loner project.
9) This project really needs to be in a publicly visible repository. You
might get tired of it and other people could pick it up. You might get
stuck and need more eyes on it. You might need more than a couple of
people to help make it work. Your team might be geographically
distributed around the Triangle. You want it so that when you are done,
anyone can download the finished product, run it, and get the mbox file
needed.
10) I'm certainly willing to help anyone who wants to work on this
project at project night (as in help get you pointed in a right
direction, help explain something that may not be clear to you, or help
you get unstuck, rather than do it for you or even with you though I
may). I'll be at the September project night. I'll have to miss the one
in October. (At least the one in Carrboro. There's a possibility a
project night at NCSU could be spun up by then.) But then I should be
around for all the following project nights for awhile.
11) You also don't really need me at all to do this project. The project
parameters are pretty well laid out here. This could be a self-starter
for the right self-starter.
12) It would be great if you could let the email list know if you are
working on this. We wouldn't want several people working on this in
isolation without knowledge of each other.
13) It would be great if when you say you are working on this, you are
actually working on this, rather than planning, intending, or wanting to.
14) Whenever possible, join the people already working on a project
rather than making a new project.
15) It's not necessary for this to be done in time for the October name
change. It's a do-acratic thing. It will be done when you do it.
--
Sincerely,
Chris Calloway http://nccoos.org/Members/cbc
office: 3313 Venable Hall phone: (919) 599-3530
mail: Campus Box #3300, UNC-CH, Chapel Hill, NC 27599
More information about the TriZPUG
mailing list