I believe that it is time to resurrect the Omaha Python Users Group. I attended that Python Advocacy meeting on Day 1 of PyCon and listened to Jeff Rush and then talked to the leader of ChiPy, Chris McAvoy. There is an advocacy open session tonight @9pm after the OLPC show and tell session. I am hoping to work with others there to set up a system to share web resources, mailing list, website, etc between users groups. People should be able to go to the python site and “Find a local users Group”. The users groups could video tape speakers, and then share those videos for use at other user group meetings and for advocacy in general. A central point for available speakers and a centralized place for companies like O’Reilly, to offer products, books, and other give-aways that could be requested and used by the different users groups.
Of late there has been much to do about the crop of Python based web frameworks. Is one superior to another? Currently, I don’t believe so they all have strengths and weaknesses and I could make a good argument for most of them. However, in the midst of this current genesis there are some shining stars that I think are setting the way forward. These stars are not the frameworks themselves but components that are written to be framework agnostic. For example, Paste, WSGI, SQLAlchemy and ToscaWidgets. By supplying these fundamental and highly useful tools, they are empowering the current and future web frameworks.
I think that all of the frameworks should look for commonality that can be shared, that can be improved for the benefit of all. Even if you want to have a full single source stack as opposed to a best of breed stack plugin architectures should be the standard. So advancements can spread between the frameworks.
What about the frameworks? I believe that in the end their will be two major web frameworks, Django and TurboGears/Pylons. Twisted won’t go away and neither will Nevow but they won’t match the popularity of the two majors. However, I firmly believe that all of the frameworks will have similar traits and in time will tend to a center balance point using different toolkits as the “preferred”.
leader: Mark Ramm
ref: http://us.pycon.org/TX2007/TutorialsPM#PM2
AJAX ~ JSON is the communication protocol between the client and server
- @expose(allow_json=True) … JSONifies the return results(dictionary or string)
Widgets ~
- Widget Browser
- how widgets are written/disecting ala the AutoComplete widget
- current form widgets vs. toscawidgets — when that time comes, it shouldn’t even cause a bump unless you are using nested forms, — that api will change (for the better)
- setting form widgets to default values
Break
Hints:
In Controllers: Just inherit from controllers in your nested controllers, don’t use controllers.RootController everywhere otherwise you’ll end up with name space collisions and CP won’t behave as expected.
SQLAlchemy
Hints:
ActiveMapper is pretty much deprecated. Elixir is the upcoming replacement.
Genshi
Why Genshi –
- Error Handling — kid explodes and gives the line # of the compiled kid template (.pyc) that blew, Genshi gives you the line, column in the original source code/template.
- Lets you use XML includes and do XML includes in “if” tags
More SQLAlchemy
http://www.sqlalchemy.org/docs/tutorial.myt
More Genshi Mark will post the Ulitimate-Wiki code later today/night
Authentication
TurboGears includes the Identity module. It uses a simple db back end but that can be changed out to an LDAP if desired. There exists an SO provider and an SA provider. There is a page on the old trac, it might be in RoughDocs by now. There is an AD backend too. The LDAP and AD providers only do Authentication, Authorization is handled by the a db local to the app.
Sites Using TurboGears
Sessions
There is a CherryPy (CP) session filter that you just turn on. In the .ini files — dev or app, etc
3 backends: file, memory, postgresql
In the future it will be the CP session Tool instead of Filter
CherryPy.????? is a great place to put thread local stuff
Performance and Filters: Cache Filters – is CP deprecating it? Will CP make it a Tool, or if it is more WSGI friendly, will it turn to beaker?
mark.ramm@gmail.com
MochiKit
Is the most under appreciated js package. Mark prefers it to prototype.js. Bob Ippolito json — mochikit. Is tested on ie, ff and the mac browser — is tested hard. Javascript that Doesn’t make you want to shoot yourself in the head. It has a version of the script.acoul.us but uses mochikit instead of prototype. Bob is said to be a testing task master.
hint:
Don’t get caught in the DOM scripting cess pool. 2 secs to download and 20 secs to render. That is bad. DOM scripting is not evil but too much of it is.
installing pylint is a little more complicated then necessary because it doesn’t specify it’s requirements for easy_install and it also doesn’t list download locations for logilab-common and logilab-astng in it’s cheeshop record
in your workingenv:
easy_install pylint
then switch to the tmp directory in your workingenv, and download the two packages you need:
wget ftp://ftp.logilab.fr/pub/astng/logilab-astng-0.16.3.tar.gz
wget ftp://ftp.logilab.fr/pub/common/logilab-common-0.21.1.tar.gz
then unpack them and install them:
tar -xzvf logilab-common-0.21.1.tar.gz
cd logilab-common-0.21.1
python setup.py install
cd ..
tar -xzvf logilab-astng-0.16.3.tar.gz
cd logilab-astng-0.16.3
python setup.py install
now test pylint by calling it from the command line. If all is well you should get no error messages/warnings and the standard help output.