This 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
- authentication class for python-social-auth integration code
- start with a skeleton of the js project
- really deal with permissions, and make a caching backend for it
- deal with deduplication in preparation for an import script
- write an import script, should be much easier now that the graphing backends and bulk insert stuff is already there
- unbreak all those broken tests (only 6 pass at the moment, the schema changed quite a bit and the tests need to be readapted for it)
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
- rewrote bulk operations in the python api to utilize the raw sql bulk functions
- wrote some orm manager integration for iplus1
- wrote a tastypie resource for iplus1
Week 8 7/7
- major optimizations in the sipy backend, replaced most python code with numpy code
- 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 tastypie 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
- unbroke most of the schema. shit should be testable again. added migrations.