Successfully reported this slideshow.
Large-scale, cross-platform synchronization using embedded python <ul><ul><li>PyCON 2006 </li></ul></ul><ul><ul><li>Alexis...
Wireless Generation <ul><li>Education software for K-12 teachers </li></ul><ul><ul><li>Most essential: teacher/student int...
Architecture
Large-scale <ul><li>X.10 6  students </li></ul><ul><li>Y users </li></ul><ul><ul><li>Y Palm(tm) handhelds </li></ul></ul><...
Cross-platform <ul><li>Various breeds of Windows </li></ul><ul><li>Mac OS 9 + X </li></ul><ul><li>Palm's sync model </li><...
Synchronization <ul><li>1-to-n database synchronization </li></ul><ul><ul><li>Relational-to-relational mapping </li></ul><...
Why embedded python <ul><li>Cross-platform </li></ul><ul><li>Nice interface with host system </li></ul><ul><ul><li>Single-...
Design
Cross-platform upgrades <ul><li>Isolated building blocks a benefit </li></ul><ul><li>Remote upgrades by swapping zipped li...
From n to n+2 platforms <ul><li>From windows to OS X + linux </li></ul><ul><ul><li>Write pilot-link adapter </li></ul></ul...
Issues <ul><li>Memory-management can be tricky </li></ul><ul><ul><li>Used too many object allocations </li></ul></ul><ul><...
Conclusion <ul><li>High-level problems deserve a high-level language </li></ul><ul><li>Cross-platform coding is fun again....
<ul><ul><li>Thank you </li></ul></ul>
Upcoming SlideShare
Loading in …5
×

Large-scale, cross-platform synchronization using embedded python

1,945 views

Published on

A talk I gave at PyCon in 2006

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Large-scale, cross-platform synchronization using embedded python

  1. Large-scale, cross-platform synchronization using embedded python <ul><ul><li>PyCON 2006 </li></ul></ul><ul><ul><li>Alexis L ê -Qu ôc </li></ul></ul>
  2. Wireless Generation <ul><li>Education software for K-12 teachers </li></ul><ul><ul><li>Most essential: teacher/student interaction </li></ul></ul><ul><ul><li>Handheld devices + “sync station” </li></ul></ul><ul><ul><li>Robust, simple software </li></ul></ul>
  3. Architecture
  4. Large-scale <ul><li>X.10 6 students </li></ul><ul><li>Y users </li></ul><ul><ul><li>Y Palm(tm) handhelds </li></ul></ul><ul><ul><li>Y “sync stations” </li></ul></ul><ul><li>Oracle DB with python, lots of SQL and gigabytes of assessments </li></ul>
  5. Cross-platform <ul><li>Various breeds of Windows </li></ul><ul><li>Mac OS 9 + X </li></ul><ul><li>Palm's sync model </li></ul>
  6. Synchronization <ul><li>1-to-n database synchronization </li></ul><ul><ul><li>Relational-to-relational mapping </li></ul></ul><ul><li>Code synchronization </li></ul><ul><li>SyncML dialect </li></ul><ul><ul><li>Transaction-oriented </li></ul></ul><ul><ul><li>Xml-encoded </li></ul></ul>
  7. Why embedded python <ul><li>Cross-platform </li></ul><ul><li>Nice interface with host system </li></ul><ul><ul><li>Single-threaded network code using asyncore.py (+ openssl) </li></ul></ul><ul><ul><li>Simple GUI code based on winpython or macpython </li></ul></ul><ul><li>Easy to test </li></ul><ul><li>Safe: no buffer-overflows, etc. </li></ul>
  8. Design
  9. Cross-platform upgrades <ul><li>Isolated building blocks a benefit </li></ul><ul><li>Remote upgrades by swapping zipped libs </li></ul>
  10. From n to n+2 platforms <ul><li>From windows to OS X + linux </li></ul><ul><ul><li>Write pilot-link adapter </li></ul></ul><ul><ul><ul><li>much much better than Palm's original HotSync </li></ul></ul></ul><ul><ul><li>Write GUI adapter </li></ul></ul><ul><ul><li>Use different package maker </li></ul></ul><ul><ul><li>... and we're done </li></ul></ul>
  11. Issues <ul><li>Memory-management can be tricky </li></ul><ul><ul><li>Used too many object allocations </li></ul></ul><ul><li>Profiling tools a bit lacking </li></ul>
  12. Conclusion <ul><li>High-level problems deserve a high-level language </li></ul><ul><li>Cross-platform coding is fun again... </li></ul>
  13. <ul><ul><li>Thank you </li></ul></ul>

×