Notice
This page show a previous version of the articleThis is a general work log updated <strike>daily</strike> <strike>weekly</strike> sometimes...
This week's TODO list:
- make sure code works, fix bugs, breakage
- work some more on the api:
- add oauth2 authentication
- start with a skeleton of the js project
Work log
Week 1 19/5
Monday
- compiled dependencies and tools (sage, git, etc..)
- set up virtual env
- set up pytoeba-dev repo/structure
- setup pytoeba's project structure
Tuesday
- added sentence and link models
- threw out sage and compiled scipy/numpy
- explored agpl for graph manipulation
Wednesday
- added log model
- added correction model
- added tag models
- added audio model
- set up work log
Thursday
- read py.test documentation
- read django testing documentation
- wrote a passing test for the sentence manager
Friday
- read "Test Driven development with Python"
Saturday
- Finished the sentence manager
Week 2 26/5
Monday/Tuesday
- added scaffolding/structure for tests and fixtures using py.test
- added database/form validation tests for:
- sentence/link models
- correction model
- tag models
- audio models
- generated coverage reports
Wednesday
- refactored tests and fixtures to be more modular
- added more tests and expanded the manager some more
Thursday/Friday/Saturday
- N/A
Week 3 2/6
- python api for CRUD operations on Sentences/Tags/Links
Week 4 9/6
- User, SocialAccount, Wall, Comment, Message models/managers
- python-social-auth integration
Week 5 16/6
- Haystack integration
- mirroring haystack's searchqueryset api on models with indices
- Added indices for sentences, comments, messages, wall posts, comments
Week 6 23/6
- Exposed tastypie model resources (still needs work)
- Added HTTPBasicAuth/SessionAuth to the api
- Exposed haystack's auto_query through tastypie
Week 7 30/6
- fixed various bugs
- reorganized graphing code into backends (now we're pypy ready)
- wrote a networkx graphing backend (pure python)
- reorganized permissions code into backends
- sql optimizations (bulk upsert, bulk update, etc...)
- reading ng-book
- major optimizations in the sipy backend, replaced most python code with numpy code
- rewrote bulk operations in the python api to utilize the raw sql bulk functions
- wrote orm manager integration for iplus1
- wrote a tastypie resource for iplus1
Week 8 7/7
- more sql optimizations, this time in the part of the graphing code that gets the subgraph, more to come (dropping down from orm code to raw sql).
- hooked most python api to tasty pie resource classes, the api should support write functions and other custom read queries now.
- fixed various bugs in haystack integration, did more testing on it.
- wrote 2 custom pagination classes for the orm/tasty pie
- hooked pagination classes to tastypie resources
- hooked haystack autoquery to relevant tastypie resources (more to come here, it should support as much filtering and ordering as the searchqueryset api supports probably)
- added outline to a plan to switch from O(n2) links in the Link table to O(2n) links using connected components. Also plans to support tatodb instead of the link table+ graphing backends
- wrote cffi bindings for iplus1 following the available python extension. It should probably be fine to run this under pypy as well once jake gets the bindings to work.
- addressed some of liori's comments on the latest mega patch