You are here: Home V2 Software Software More ... Developer Notes Legacy Notes CCPN programming workshop 2008

CCPN programming workshop 2008

Description of workshop, participants, and comments/feedback.

Program (approximate)

Tue 5 Feb (Biochem):

12.30-13.30: Lunch (and make sure people are set up with computers)
13.30-14.30: Introduction to CCPN API (Wayne)
14.30-15.30: Exercise 1: TopObject and Repository (Chris)
15.30-16.00: Tea
16.00-17.30: Exercise 2: ChemComp, Molecule and MolSystem (Chris)

Wed 6 Feb (EBI):

09.30-10.30: Exercise 3: Structure Ensemble (Wayne)
10.30-11.00: Coffee
11.00-12.30: Exercise 4: Experiment to PeakList (Wayne)
12.30-13.30: Lunch
13.30-15.30: Exercise 5: Resonance, Constraint and FormatConverter (Wim)
15.30-16.00: Tea
16.00-17.00: Discussion



Attended (7):

Jimmy Rosen (Utrecht)
Huanwang Yang (RCSB)
Magnus Lundborg (Stockholm)
Steve Madding (BMRB)
Gary Thompson (Leeds)
Seigfried Schloissnig (Heidelberg)
Jurgen Doreleijers (CMBI)

Cancelled (1):
Christian Ludwig (Birmingham)



  • Add isOrdered, isUnique information to documentation multiplicity column
  • Add TopObjectClass to package documentation
  • Avoid x = func() in code if you do not need x but only the effects of func
  • Provide function to automatically make a StructureEnsemble chain minus coordinates
  • rename check(All)Valid assert(All)Valid, add is(All)Valid returns bool, deprecate check(All)Valid
  • Utility code. (AtomSets e.g.). More prominence? Move?? Access from C? dependency on Analysis?
  • Test backwards compatibility in DOCR/FRED.
  • Look at compatibility server.
  • Add newProject utility function DONE
  • When deleting objects at end of failed create, the exception raised should be the original one. If this is not possible just keep first exception. NB check if and when there may be ill effects in other objects? DONE
  • Remove obsolete experimentType attribute from model. DONE.
  • 'Key attribute or link not set' - error message too cryptic.
    Also output tag of missing element. DONE
  • Do uniqueness checknig before type checking in setter functions to genereate more relevant error messages if passing in e.g. a set. DONE.
  • Add list-of-fields function DONE.
  • Add stringify-contents function DONE.


Course blips:

  • Crisp up documentation and material.
  • Steve: Exercise examples a bit too cryptic to understand question (even). But to the point (Jurgen). Suitable size (Jimmy).
  • Talk about current, not about past code  (though that depends on  audience).
  • Use stable (and tested) version for teaching


Design, doc and user interaction:

  • Jimmy/All: Design choice is to have a very complex model, and very simple access. Hard to get your head around. More discursive object documentation would be nice, especially for core classes.
  • Spronk overview documentation would be nice.
  • Gary: discussion of PeakDim PeakDimContrib, etc. would be useful (note: Wayne now adding this to exercises). Main problem missing is overview doc.
  • Steve: MolSystem.Atom and MolStructure.Atom confusing. If not avoidable, at least emphasize. Gary: hard for those who know C but not OO.
  • 'epydoc' Good. Std. We should use epydoc for util at least. We should also make more effort to document functions so this can be used by automatic documentation tools.
  • Utility functions have to be clearly documented and easily accessible.
  • Write documentation for guidance on XML file structure.
  • Jester - auto lets 'if' br yes/no, looks at unit test
  • More tests, preferably automated
  • Make low-volume announcement list so people can opt out of the debug stuff
  • Make clear distinction between manuals and tutorials!
  • Need to clarify difference between AtomSet and ChemAtomSet