LinuxSoftware

Coding and tramping in Aotearoa / New Zealand

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

PyWeek

Hugon

Synfig

PyLepton

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