IntroToPeak/ToDo
Misc. ideas/issues for the tutorial (authors' list):
- Lesson 4
- needs to mention readline/history in n2 (and n2's help looks maybe broken in a couple of areas, which I should bug Ty about) (RDM: done, but I may not have mentioned everything you wanted mentioned)
- more about n2's functions/abilities (RDM: I added some more stuff, but not much)
- URL is "scheme:body", body is not a "path" (RDM: fixed)
- Connection isn't a config key/component key - the name is (RDM: reworded, but may still not be clear enough)
- Use hello.db instead of test.db (RDM: I purposely used test.db rather than hello.db because it is supposed to be a test database, representing the "real" corporate database. But if you want to change it, I've no huge objection.)
- More LinkRef explanation: when you can or can't use it
- Put global.ini in PEAK_CONFIG, explain loading order again
- DM's and commands need to use get() instead of __contains__ (RDM: fixed)
- Lesson 2
- Recap is missing info about storage.DMFor
- Need to expand on the topic of transaction aborts (esp.: when/when not to initiate one in your code)
- Need an IGreetingService or some such, so we can demo the [Component Factories] configuration
- This would then be usable by UI's like web, XMLRPC, etc.
- Might be a good way to encapsulate certain aspects, including both greetings and edits
- Create a "hello world" socket service, that you connect to and are greeted by (then disconnected); this would let us demo several things, including:
- EventDriven
- ZConfig schemas
- PEAK+Twisted
- accessing the IGreetingService to get the greeter
- Need for commands to write where they're told (self.stdout)
- Maybe adaptation from IGreetingService to a Twisted protocol or factory?
- Kind of hard to show in context of EventDriven, though.
- Minimal CGI using print >>self.stdout w/generic greeting
- Add PATH_INFO parsing to greet a specific person
- Use CGI and FastCGI containers to launch the app
- (Maybe other containers, too, if PyWCI standard catches on by then...)
- Move up to peak.web
- Adapt the IGreetingService to a Web UI wrapper
- Unfortunately, peak.web is a huge leap, since it requires path/hierarchy and adaptation
- Perhaps there's a less steep area we can find to introduce those concepts in first
- 'peak.security' might also need a gentler introduction, so it's familiar by the time you get to peak.web
- Maybe the socket "hello service" could grow a bit of a protocol with user/password, so we can show security there
Suggestions made by others:
- Create a GUI interface to the corporate helloworld app, using something like QT or GTK
- Demonstrate more aspects of peak.model by adding some more business logic to model.py (similar to the current greeting() method)
- Make unittests an integral part of the tutorial. This should give new users an idea of how test-first development is done in practise.