[Dev] PyCon Report
Katie Capps Parlante
capps at osafoundation.org
Wed Mar 30 22:14:51 PST 2005
one more pycon report:
(http://wiki.osafoundation.org/bin/view/Journal/KatiePyConReport20050330)
Sprints
-------
I found the sprints to be very rewarding, a good use of two days. We
split up into two groups, where we had one or two volunteers and one or
two osaf helpers in each group. One pair worked on a delicious parcel
and one pair worked on a flickr parcel.
Lessons learned about writing chandler parcels
----------------------------------------------
(+) Debugging xml is a real pain. Watching people try and find a typo in
a namespace really makes one wince.
(+) xml is not the right solution for defining Kinds and Attributes. It
may be the case that we still want to use xml for block instances. If
so, we could consider using an xml format more suited for UI layout.
(Alec has been thinking about this: AlecFlettXulVsCpia).
(+) We have too much boilerplate for common tasks. Part of this is a
consequence of splitting out data definition in xml and then associated
python code in a separate python file, which would go away if we get rid
of parcel xml. If we do keep parcel xml as a format for defining some
items, we should make better use of defaults. (John has been pointing
this out all along.)
(+) Some of our names are rather awkward, including WakeupCaller and
DetailTrunkSubtree.
(+) Python folks are not excited about our too-deep parcel/package
hierarchy. "import osaf.framework.blocks.yadayada" smells like Java to
them (not a good smell in their opinion). Note that "flat is better than
nested" is a Python value. While we had talked about flattening the
hierarchy overall, I'd now also like to consider getting rid of the "osaf".
(+) We needed feedback at each step of the process that step was
successful. For the menu and the detail view, this was pretty easy. For
defining new kinds and noting whether or not we populated the repository
with new items, we found Morgen's web repository viewer essential. We
should update the tutorial with explanations of how to verify that each
step has been successful. The full credit answer would be to have unit
tests for each step.
(+) Both parcels used some dialog code that Morgen had written some time
earlier. Both parcels wanted a reasonable URL type for certain
attributes. Both parcels would want a preference panel. To really
support parcel development well we'll want a better set of utilities and
apis to support things a parcel will want to do.
We had talked about many of the problems noted above before the sprint,
and had talked about various options to fix them, but there was
something about standing over someone's shoulder and watching someone
struggle through it that really sealed the deal for me. I have
completely accepted that the parcel xml experiment was a failure. Mea
culpa. Alec had a good story to describe how many of us felt at the
sprint: We've been living in a room full of tacks. We've learned to step
around them and can manage ok, but when we invited friends over they
kept stepping on tacks. It would be a lot nicer to live in a room
without tacks; its worth the effort to pick them up. I already knew
about most of the tacks; the sprint experience strengthened my resolve
to fix them sooner rather than later.
Lessons learned about sprinting
-------------------------------
(+) The ideal setup (imho) would be to divide the sprint work into
projects, and then have two person pairs for each project (pair
programming). In this case, a good pairing would be one person already
familiar with writing parcels, and one person new to parcels.
(+) It would be valuable to do sprint projects where both people were
already working on chandler, not just as an exercise in exposing new
people to chandler. Most of the other sprints seemed to have this
flavor. It was great to spend time working directly on code with remote
folks.
(+) It would be valuable to do pair programming to sprint on projects
back at osaf. We might consider doing pair programming sprints at osaf
(no conference needed), particularly when remote folks come to visit.
Other notes about the sprint
----------------------------
(+) The flickr and delicious schemas motivated the use of "global
attributes" -- the first example we've seen. One can see wanting the
"tag" attribute on both to be semantically the same attribute, without
forcing their Kind classifications into the same hierarchy that defines
the tag attribute. We had a lightbulb moment where Alec understood that
we wanted to support that for the first time -- and the concomitant
realization that other folks new to the project might also be unaware of
that goal.
Extending Chandler Talk and Chandler BOF
----------------------------------------
The talk didn't exactly go smoothly from my perspective: we had demo
troubles, I didn't really practice my part of the talk effectively, and
I didn't sleep the night before (jet lag catching up with me). I managed
to crash my mac when trying to use it as a backup demo (plugging in my
display dongle while launching Chandler seemed to make my mac very
unhappy). That said, we managed to accomplish these things:
* We demonstrated that Chandler isn't vapor.
* We showed stamping in action, and people got it.
* We showed a working parcel that people had written during the
sprints. People understood that with a little bit of code and xml you
could extend Chandler with new item types and pick up interesting
features like stamping.
* Between the BOF and the talk, we demo'd Chandler on both Mac and
XP -- people were interested to see a cross platform widgets app in python.
From that perspective, it was a success. The BOF ended up being a
fairly informative QA session (which we didn't get to have at the talk,
as it was short). Alas, I didn't take notes.
Other Notes
-----------
I didn't go to many talks, as I left the conference early and spent much
of the time I was there catching up with folks.
(+) Immediately after our talk there was a talk on developing cross
platform apps in python with wxPython, given by ... Nathan R Yergler of
Creative Commons! (Nathan works in Indiana, apparently). I missed most
of his talk, but talked to him briefly afterwards. He too has been
struggling with mac issues, and was happy to hear that Stefan was making
progress actively fixing mac problems.
(+) Cross platform app development in general, and wxPython in
particular (including some frustration with the wxMac port not being on
par with the others yet), was a common topic of discussion. Nick Bastin
was talking about ways to use swt in python, including gcj tricks
similar to what Andi did with Lucene, or recreating the java layer in
python. I ran into several people using wxPython -- I think folks who
aren't too worried about os x are fairly happy. Some folks are going the
route of using the X11 port on os x. I'm sort of curious what Chandler
would feel like on the X11 port.
Cheers,
Katie
More information about the Dev
mailing list