Sunday
Deliverence
Tim Knapp
xml rules
4 actions
replace: theme -> content
append: content -> after theme
- good for javascript
prepend: content -> before theme
- drop: remove problematic elements from theme or content
example from open source designs.
css selectors or xpath exprs
Firebug right-click copy xpath
deployment:
- proxy (easiest), inplace debugger
- wsgi (using repoze)
- collective.xdv (precompiled xslt, fastest?) might require valid xml
javascript onevents should be applied to tags after page is loaded
Grok
Grok smashes zcml
model-view-templating
test driven
view <- grok.addForm
Te Tuhi Video Game System
Douglas Bagnall
drawings -> game
parse picture evaporate the most common colour
- not quite wave front flood-fill custom C code
remove group close things together 3-150 sprites K-means clustering reduced bitmap 16 regions around a sprite neural network: each direction votes game balancing: forks a game which non visually tests the game directed mutation
halo.gen.nz/tetuhi
Voovees.com
Indy Liu
Animation create on net, and share
Python-Ogre
oo scene graph cross plat, opengl/directx shaders plugins
LaunchPad
Zope3 and Twisted no ZODB - PostgreSQL by Canonical all types of test Zope test browser -> doctest Windmill for javascript testing complete test suite... 4hrs PQM for small sanity tests BuildBot run tests on Amazon EC2 Sample data caused problems.. tearDown slow...easier to clear all data Zope test layers a bit of a pain Code reviews tests should explain what they're doing
envs Multiple environments are good Production, Edge (beta), Staging (sandbox)
branches: devel, stable, db-devel, db-stable, production
SQLObject -> Storm https://storm.canonical.com/
lazr.delegates -> view classes batching
collections lib/lp/code/model/branchcollection.py lib/lp/code/interfaces/branchcollection.py
from zope.interfaces.verify import verifyObject
Zope "adapters are like C style casts"
lazr.restful and lazr.restfulclient
Code layout matters
ZCML is not fun Use tags
lazr common components lazer-js cool javascript widgets
eat your own dogfood, but don't drink your own coolaide
Launchpad => 25 fulltime coders
distributed code reviews - based on email - in launchpad
open sessions
Testing
troubles with doctests
selenium
Balsamiq for prototypes
Graphics/Games
inkscape
squirtel
Hugon
Synfig
Los Cocos
AppEngine
leave sysadmin to Google
BigTable - very different model to RDBMS: latency, only 1000 objs at a time, indexing denormalization needed
incredibly stable
Distributed Rev Control
Darcs Arch -> TLA -> Baz -> BazaarNG
-> Bazaar -> Mercurial
BitKeeper GIT
Mercurial only tracks file, Bazaar tracks dirs GIT doesn't track moves Bazaar explorer
Augmented Reality
Magnet
PyS60 croozeus.com
STB Tracker
cserf
Douglas Bagnall
- ctypes - pushes
- pyrex - pulls
- swig - knits
- python/c api - tedious
- cserf
- don't run it twice
github.com/douglasbagnall/pyserf
Debugging Live
Rob
open.org.nz
log everything
logging framework
install a signal handler to re-read config file?
syslog-ng - centralize
ack - grep on steroids
pydbgr
IPython
pdb
signal handler to launch pdb
twisted manhole... run in a thread
thread_tb
bots: twisted.words wokkel makes xmpp even easier
