web2py 1.91.4 - new LGPL3 license

2010-12-24 Thread Massimo Di Pierro
Thanks to our 100+ contributors. This is our best release ever. 

[download here](http://www.web2py.com/examples/default/download).

--
Free open source full-stack framework for rapid development of fast, scalable, 
secure and portable database-driven web-based applications. Written and 
programmable in Python. LGPLv3 License
--


Over time we added lots of new features.

Integrated Database Abstraction Layer with support for SQLite, PostgreSQL, 
MySQL, MSSQL, FireBird, Oracle, IBM DB2, Informix, Ingres, and Google App 
Engine (CouchDB support experimental). Automatic migrations (both create table 
and alter table).

Wed based IDE with [wizard](http://www.web2py.com/demo_admin/wizard/index), 
[designer](http://www.web2py.com/demo_admin/default/design/demo_app1), 
[editor](http://www.web2py.com/demo_admin/default/edit/demo_app1/models/db.py), 
[internationalization 
interface](http://www.web2py.com/demo_admin/default/edit_language/demo_app1/languages/it-it.py),
 database administrative interface, 
[testing](http://www.web2py.com/demo_admin/default/test/demo_app1), [ticketing 
system](http://www.web2py.com/demo_admin/default/errors/demo_app1), shell, 
mercurial integration and [ready layouts](http://www.web2py.com/layouts) and 
plugins.

Powerful Role Based Access Control and integration with OpenID, Oauth, CAS, 
PAM, Facebook, Linkedin, Google, Twitter, Janrain. API to create web services 
(json, xml, rss, jsonrpc, xmlrpc, amfrpc, soap) generate RTF, Latex and PDF, 
send SMS services and accept Credit Card payments with AuthorizeNet and Google 
checkout [via 
plugin](http://web2py.appspot.com/plugin_checkout/default/checkout)

Authomatic form generation and processing.

[Very secure](http://www.pythonsecurity.org/wiki/web2py/): granular access 
control, XSS prevention, SQL-Injection prevention, form validation and url 
validation, csrf prevention, hashed password, signed urls, HTML sanitization.

The most pythonic template language with full python support + 
include/extend/blocks. 

[Lots of users](http://groups.google.com/group/web2py), [many apps deployed in 
production ](http://www.web2py.com/poweredby), and many [example 
apps](http://web2py.com/appliances).

[Excellent online documentation](http://web2py.com/book) (537 pages when 
printed)

In the last year the database abstraction layer and the template language have 
been completely re-written (each implemented in one file each, 
[template.py](http://code.google.com/p/web2py/source/browse/gluon/template.py) 
and [dal.py](http://code.google.com/p/web2py/source/browse/gluon/dal.py)) so 
can be used with other python frameworks.

All in one package without dependencies. Does not require installation and can 
run off a USB stick (like having a Python based Heroku in your pocket). Runs on 
CPython 2.4-2.7, Jython and PyPy (experimental).

Runs on Google App Engine.

[Professional support and long term support 
agreements](http://experts4solutions.com) for those who want/need it.

The license changed today from GPL2+exception to LGPL3. You can release your 
web2py apps commercially and closed source (python bytecode compiled).
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


buckingham 1.0

2010-10-18 Thread Massimo Di Pierro
Dimensional Analysis / Formula Validation/ Units Conversion / Error Propagation
In one single small file without dependencies

buckingham.py

http://code.google.com/p/buckingham/

based on the Buckingham Theorem

How to use

download the module
download Python
start Python
import the module:
 from buckingham import Number, sin, cos, exp, log, allunits, pm
Example of dimensional analysis and conversions

 a = Number(10,dims='meter/second')
 b = Number(2,dims='yard/minute')
 c = a + b
 print c.convert('kilometer/hour')
(36.109728 ± 0)
 Number(1,dims='joule').convert('eV').value
6.2415096471204178e+18
 print c.value, c.error, c.units()
10.03048 0.0 meter*second^-1
Without conversion results are always in:

meters, seconds, grams, ampere, kelvin, currency (and combination)
The error is the standard deviation assuming the true value is Normal 
distributed

Error propagation assumes independence

 a = Number(1,dims='decimeter^3')
 b = Number(2,dims='liter')
 c = Number(5,dims='gram/centimeter^3')
 d = (a + b)*c
 print d.convert('kilogram')
(15.00 ± 0)
Simplified syntax

 globals().update(allunits())
 length = (4+pm(0.5)) * meter
 velocity = 5 * meter/second
 time = length/velocity
 print time
(8.00 ± 1.00)/10 
Example of formula validation

 a = Number(10,dims='meter/second')
 b = Number(2,dims='yard^3')
 c = a + b
Traceback (most recent call last):
...
RuntimeError: Incompatible Dimensions
Examples of error propagation

 a = Number(10,error=2,dims='meter/second') # (10±2)m/s
 b = Number(5,error=1,dims='hour')  # (5±1)h
 c = a*b
 print c.convert('kilometer')
(1.800 ± 0.509)x10^2
 print c.convert('lightyear')
(1.903 ± 0.538)/10^11
 print c.convert('kilometer').value
180.0
 print c.convert('kilometer').error
50.9116882454
Examples of more complex formulas

 c = a**4/(7*b) 
 print '%s %s' % (c,c.units())
(7.94 ± 6.54)/10^2 meter^4*second^-5
For pure numbers sin, cos, exp, log are also defined. You can use a.is_pure() 
to check if a number is pure.
Financial application example

 coupon = Number(200,error=1,dims=dollar/day)
 expiration = Number(1,error=0,dims=year)
 payoff = coupon*expiration
 print payoff.convert('dollar')
(7.3048 ± 0.0365)x10^4
I.e. $73048 dollars with $365 dollars of one sigma uncertainly

Latex Output

 print payoff.as_latex()
(7.3048 \pm 0.0365)\times 10^{4} 
Rouding

Notice the output as a string always uses scientific notation and value is 
automatically rounded compatibly with error/uncertainty in result.

Supported units and combination of

ampere, angstrom, atm, attoL, attoampere, attoangstrom, attoatm, attoau, 
attobar, attocalorie, attocoulomb, attocurrency, attoday, attodollar, attoeV, 
attoev, attofarad, attofaraday, attofermi, attofoot, attogram, attohenry, 
attohour, attohz, attoinch, attojoule, attokelvin, attolightyear, attoliter, 
attometer, attomho, attomile, attominute, attommhg, attonewton, attoohm, 
attopascal, attopound, attopsi, attopure, attoquart, attosecond, attosiemens, 
attovolt, attowatt, attoweber, attoyard, attoyear, au, bar, calorie, centiL, 
centiampere, centiangstrom, centiatm, centiau, centibar, centicalorie, 
centicoulomb, centicurrency, centiday, centidollar, centieV, centiev, 
centifarad, centifaraday, centifermi, centifoot, centigram, centihenry, 
centihour, centihz, centiinch, centijoule, centikelvin, centilightyear, 
centiliter, centimeter, centimho, centimile, centiminute, centimmhg, 
centinewton, centiohm, centipascal, centipound, centipsi, centipure, 
centiquart, centisecond, centisiemens, centivolt, centiwatt, centiweber, 
centiyard, centiyear, coulomb, currency, day, deciL, deciampere, deciangstrom, 
deciatm, deciau, decibar, decicalorie, decicoulomb, decicurrency, deciday, 
decidollar, decieV, deciev, decifarad, decifaraday, decifermi, decifoot, 
decigram, decihenry, decihour, decihz, deciinch, decijoule, decikelvin, 
decilightyear, deciliter, decimeter, decimho, decimile, deciminute, decimmhg, 
decinewton, deciohm, decipascal, decipound, decipsi, decipure, deciquart, 
decisecond, decisiemens, decivolt, deciwatt, deciweber, deciyard, deciyear, 
dekaL, dekaampere, dekaangstrom, dekaatm, dekaau, dekabar, dekacalorie, 
dekacoulomb, dekacurrency, dekaday, dekadollar, dekaeV, dekaev, dekafarad, 
dekafaraday, dekafermi, dekafoot, dekagram, dekahenry, dekahour, dekahz, 
dekainch, dekajoule, dekakelvin, dekalightyear, dekaliter, dekameter, dekamho, 
dekamile, dekaminute, dekammhg, dekanewton, dekaohm, dekapascal, dekapound, 
dekapsi, dekapure, dekaquart, dekasecond, dekasiemens, dekavolt, dekawatt, 
dekaweber, dekayard, dekayear, dollar, eV, ev, exaL, exaampere, exaangstrom, 
exaatm, exaau, exabar, exacalorie, exacoulomb, exacurrency, exaday, exadollar, 
exaeV, exaev, exafarad, exafaraday, exafermi, exafoot, exagram, exahenry, 
exahour, exahz, exainch, exajoule, exakelvin, exalightyear, exaliter, exameter, 
examho, examile, examinute, exammhg, exanewton, exaohm, exapascal, exapound, 
exapsi, exapure, 

web2py book 3rd ed

2010-08-25 Thread Massimo Di Pierro

The third edition of the web2py book is out:

http://www.lulu.com/product/paperback/web2py-%283rd-edition%29/12199578

also available in pDF and online for free in html at http://web2py.com/book

It includes documentation about many features not documented in the  
2nd edition including:

- alternate login methods (openid, oauth, rpx, etc.)
- application level routes
- computed fields and virtual fields
- recursive selects and dal shortcuts
- field type list:linteger, list:string, list:reference
- more deployment recipes and scalability suggestions
- more details about GAE deployment
- building modular apps with components and plugins
- info about plugin_wiki (more or less described in this video: 
http://vimeo.com/13485916)



--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations/


P3D visualization package

2009-12-21 Thread Massimo Di Pierro

http://www.web2py.com/p3d

A Python library that generates processing.js code for 3D rendering  
and visualization including a pure python algorithm for computing iso- 
surfaces from VTK files. The generated 3D objects can rotated in the  
browser. Requires a browser with canvas support, jquery and  
processing.js.


This is implemented in modules/p3d.py and works with any python web  
framework including web2py, Django and Pylons.


License BSD.

Massimo
--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations/


Sneaky web server 0.1

2009-09-24 Thread Massimo Di Pierro
A fast portable pure-python multithreaded experimental WSGI web server  
in 300 lines of code:


Python 2.4,2.5,2.6 version:

http://code.google.com/p/web2py/source/browse/trunk/gluon/sneaky.py

Python 3.0,3.1 version:

http://code.google.com/p/web2py/source/browse/trunk/gluon/ 
sneaky3.py


1) Some third party benchmarks are in the doc strings but you should  
run them yourself. These are benchmarks for the servers, not the  
frameworks.


2) We are not sure it is perfectly WSGI compliant but it is very  
similar to Cherrypy wsgiserver 3.2.


3) Experimental means we are still ironing down WSGI compliance and we  
have not tested chunked uploads (only regular uploads).


4) This is distributed with web2py, it works with web2py, but until we  
have more tests done, web2py still uses cherrypy's wsgi server in  
production.


5) The license is GPL but we are going change it to MIT of BSD or  
Apache when done.


6) We are posting here because we hope you will give it a try and  
report compatibility issues with your favorite framework and browser.  
This will help us fix problems and turn into a fast production server.

--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations/


web2py 1.66.2 is OUT. New web2py book (2nd Ed.) is out too.

2009-08-27 Thread Massimo Di Pierro

The new web2py book is available on lulu.com

 http://www.lulu.com/content/e-book/web2py/4968879

Lots of new stuff with100 more pages (341 pages in total). Covers
Auth, Crud, Services, interaction with Pyjamas, PyAMF, and better
deployment recipes.

Massimo 
--

http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations/


web2py 1.64.0

2009-06-11 Thread Massimo Di Pierro

web2py 1.64.0 is out

http://www.web2py.com

new features:

- full Jython support, including xzJDBC for sqlite and postgresql.

   install jython and run: jython web2py.py -h

- models are 2.5x faster

- better LDAP support

- custom forms

Example:

#in model
db.define_table('person',SQLField('name')

# in controller
def index(): return dict(form=crud.create(db.person))

# instead of usual view
{{=form}}

# now you can use a custom view:
{{=form.custom.begin}}
{{=form.cusom.label.name}}: {{=form.custom.widget.name}}
{{=form.custom.submit}}
{{=form.custom.end}}


--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


web2py 1.63 is OUT

2009-06-04 Thread Massimo Di Pierro

web2py 1.63 is OUT

Check out the new features in this slides:

http://www.scribd.com/doc/16085263/web2py-slides-version-163

Massimo

P.S. with love and respect to all other python programmers out there!
--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


web2py 1.62.1

2009-05-19 Thread Massimo Di Pierro

Hello everybody web2py 1.62.1 is out

http://www.web2py.com

Here is a video of some of the new features:

http://www.screencast.com/t/OH8Uc5ab6

New features:
- admin interface reads web2py twits
- deploy on Google App Engine directly from the web based admin
- commit your apps to mercurial repos directly from admin (requires  
easy_install mercurial)
- every app has its own ajax shell (allows multiline commands and  
database interaction)
- when files uploaded in database are downloaded, original filename is  
used to set content-disposition.
- new welcome scaffolding app has Authentication, Role Based Access  
Control, CRUD, and Menu turned on by default
- choice of third party authentication mechanisms including BASIC,  
GMAIL, LDAP

- new .w2p file format for distributing zipped applications
- new MENU helper for pure CSS popup and cascading menus.
- WingIDE support
- Better internationalization
- runs with Python 2.4, 2.5, 2.6.2 and some of it runs on Jython and  
IronPython (the database drivers and web server do not).


The rest is backward compatible as usual.

IMPORTANT:

web2py includes the only Database Abstraction Layer / ORM that works  
on both the Google App Engine and relational databases (sqlite, mysql,  
postgresql, mssql, firebird, oracle, db2). You write once and it runs  
everywhere. You DO NOT NEED to use the Google API to access the Google  
Datastore as you do when you use other web frameworks on GAE.


web2py writes SQL for you (and you don't even need to see it) and  
automatically creates a web based interface to your data.


web2py includes a web base administrative interface for installing,  
creating, editing, debugging, testing, deploying and managing your  
applications. You only use the os shell if you chose to.


web2py  includes a ticketing system that logs all errors and issues  
tickets to visitors.


web2py runs everywhere python runs including iPhone, Windows CE, N800  
and of course, Windows, Mac, Linux.


Massimo
--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


web2py 1.59

2009-03-18 Thread Massimo Di Pierro

web2py 1.59 is out

http://www.web2py.com

Check out this video about the new features:

http://www.vimeo.com/3703345

What is web2py?
=

- It is the web framework used by PyCon 2009 for registration.
- It a very easy and very powerful Python web framework.
- It is fast and rock solid.
- It has a very clean design and it is  strong on security.
- Includes a web based development environment, maintenance   
environment, and database administrative interface.

- Includes a Database Abstraction Layer that works with SQLite, MySQL,
PostgreSQL, FireBird, MSSQL, Oracle, DB2 the Google App Engine. The
DAL does migrations, handles aggregates, nested selects, inner and  
outer joins.
- Includes a pure Python based template language with no indentation   
requirements.
- Includes jQuery, simplejson, markdown, feedparser, PyRSS2, nicEdit,   
EditArea, Amy Editor.
- Runs on any platform that runs python. The binary versions can  run  
off a USB drive.
- The same apps can run on a PC with Oracle or on the Google App   
Engine or on Windows Mobile, without changes, including the DAL.
- Includes API for authentication and record-level group based access  
control.


New features In 1.59:
=
- DB2 support
- new Service interface to expose functions in CSV, XML, JSON,  
JSONRPC, XMLRPC and AMFRPC (Flash//Flex)
- optional Amy editor (instead of edit_area) has keyboard shortcuts  
and autocompletion



--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


web2py 1.56.4

2009-02-24 Thread Massimo Di Pierro

web2py 1.56.4 is out

http://www.web2py.com

What is web2py?
=

- It is the web framework used by PyCon 2009 for registration.

- It a very easy and very powerful Python web framework.

- It is fast and rock solid. It has a very clean design and it is
strong on security.

- Includes a web based development environment, maintenance
environment, and database administrative interface.

- Includes a Database Abstraction Layer that works with SQLite, MySQL,
PostgreSQL, FireBird, MSSQL, Oracle, AND the Google App Engine. The
DAL does migrations.

- Includes a pure Python based template language with no indentation
requirements.

- Includes jQuery, simplejson, markdown, feedparser, PyRSS2, nicEdit,
EditArea and a lot more.

- Runs on any platform that runs python. The binary versions can even
run off a USB drive without dependences.

- The same apps can run on a PC with Oracle or on the Google App
Engine or on Windows Mobile, without changes, including DB API.

New features In 1.56.4:
=
- Bugs fixes in docs and new authentication API

New features In 1.56:
=

- Authentication
- Authorization (Role Based Access Controller)
- CRUD
- portable url fetch function
- portable geocoding function
- PEP8 compliant
- Python 2.5
- Runs on Jython (although without db drivers)
- Runs on IronPython (although without CSV, db drivers and internal   
web-server)

- DAL shortcuts
- SQLFORM has default image preview
- new generic.html view
- more examples and documentation
- always backward compatible

Example of code
=
## in model db.py
from gluon.tools import *
db=SQLDB('sqlite://storage.db')
db.define_table('puppy', db.Field('name'),   
db.Field('image','upload'))

auth=Auth(globals(),db)
auth.define_tables()
crud=Crud(globals(),db)

## in controller default.py
def user():
 to expose register, login, logout, etc 
return dict(form=auth())

@auth.requires_login()
def data():
  to expose select, create, update, delete, etc 
 return dict(form=crud())

@auth.requires_login()
def download():
 for downloading uploaded images 
return response.download(request,db)

## in view default/user.html
{{extend 'layout.html'}}
div{{=form}}/div

## in view default/data.html
{{extend 'layout.html'}}
div{{=form}}/div

This code will allow to register, login, change password,
upload images of puppies (with relative names), select puppies, edit
records, read and preview images, enforce authorization, and more.

Thanks to all the contributors:
===

* Attila Csipa (cron job)
* Bill Ferrett (modular DAL design)
* CJ Lazell (tester)
* DenesL (validators)
* Douglas Andrade (2.6 compliance, docstrings)
* Francisco Gama (bug fixing)
* Fran Boon (authorization and authentication)
* Fred Yanowski (XHTML compliance)
* Jonathan Benn (is_url validator and tests)
* Jose Jachuf (Firebird support)
* Kyle Smith (javascript)
* Limodou (winservice)
* Marcel Leuthi (Oracle support)
* Mark Larsen (taskbar widget)
* Mark Moore (databases and daemon scripts)
* Markus Gritsch (bug fixing)
* Martin Hufsky (expressions in DAL)
* Mateusz Banach (stickers)
* Michael Willis (shell)
* Nathan Freeze (admin design)
* Niall Sweeny (MSSQL support)
* Niccolo Polo (epydoc)
* Ondrej Such (MSSQL support)
* Pai (internationalization)
* Phyo Arkar Lwin (web hosting and Jython tester)
* Robin Bhattacharyya (Google App Engine support)
* Sharriff Aina (tester and PyAMF integration)
* Sterling Hankins (tester)
* Stuart Rackham (MSSQL support)
* Telman Yusupov (Oracle support)
* Timothy Farrell (python 2.6 compliance, windows support)
* Yarko Tymciurak (design)
* Younghyun Jo (internationalization)



--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


web2py 1.56 is OUT

2009-02-05 Thread Massimo Di Pierro

web2py 1.56 is out, including a new web site with better documentation

http://www.web2py.com

What is web2py?
=

- It is the web framework used by PyCon 2009 for registration.

- It a very easy and very powerful Python web framework.

- It is fast and rock solid. It has a very clean design and it is  
strong on security.


- Includes a web based development environment, maintenance  
environment, and database

administrative interface.

- Includes a Database Abstraction Layer that works with SQLite, MySQL,  
PostgreSQL, FireBird, MSSQL, Oracle, AND the Google App Engine. The  
DAL does migrations.


- Includes a pure Python based template language with no indentation  
requirements.


- Includes jQuery, simplejson, markdown, feedparser, PyRSS2, nicEdit,  
EditArea and a lot more.


- Runs on any platform that runs python. The binary versions can even  
run off a USB drive without dependences.


- The same apps can run on a PC with Oracle or on the Google App  
Engine or on Windows Mobile, without changes, including DB API.



New features Include:
=

- Authentication
- Authorization (Role Based Access Controller)
- CRUD
- portable url fetch function
- portable geocoding function
- PEP8 compliant
- Python 2.5 and Python 2.6 compliant
- Runs on Jython (although without db drivers)
- Runs on IronPython (although without CSV, db drivers and internal  
web-server)

- DAL shortcuts
- SQLFORM has default image preview
- new generic.html view
- more examples and documentation
- always backward compatible

Example of code (complete app)
=
## in model db.py
from gluon.tools import *
db=SQLDB()
db.define_table('puppy', db.Field('name'),  
db.Field('image','upload'))

auth=Auth(globals(),db)
crud=Crud(flobals(),db)

## in controller default.py
def user():
 to expose register, login, logout, etc 
return dict(form=auth())

@auth.requires_login()
def data():
  to expose select, create, update, delete, etc 
return dict(form=crud())

@auth.requires_login()
def download():
 for downloading uploaded images 
return response.download(request,db)

## in view default/user.html
{{extend 'layout.html'}}
div{{=form}}/div

## in view default/data.html
{{extend 'layout.html'}}
div{{=form}}/div

This complete code will allow to register, login, change password,  
upload images of puppies (with relative names), select puppies, edit  
records, read and preview images, enforce authorization, and more.


Thanks to all the contributors:
===

* Attila Csipa (cron job)
* Bill Ferrett (modular DAL design)
* CJ Lazell (tester)
* DenesL (validators)
* Douglas Andrade (2.6 compliance, docstrings)
* Francisco Gama (bug fixing)
* Fran Boon (authorization and authentication)
* Fred Yanowski (XHTML compliance)
* Jonathan Benn (is_url validator and tests)
* Jose Jachuf (Firebird support)
* Kyle Smith (javascript)
* Limodou (winservice)
* Marcel Leuthi (Oracle support)
* Mark Larsen (taskbar widget)
* Mark Moore (databases and daemon scripts)
* Markus Gritsch (bug fixing)
* Martin Hufsky (expressions in DAL)
* Mateusz Banach (stickers)
* Michael Willis (shell)
* Nathan Freeze (admin design)
* Niall Sweeny (MSSQL support)
* Niccolo Polo (epydoc)
* Ondrej Such (MSSQL support)
* Pai (internationalization)
* Phyo Arkar Lwin (web hosting and Jython tester)
* Robin Bhattacharyya (Google App Engine support)
* Sharriff Aina (tester and PyAMF integration)
* Sterling Hankins (tester)
* Stuart Rackham (MSSQL support)
* Telman Yusupov (Oracle support)
* Timothy Farrell (python 2.6 compliance, windows support)
* Yarko Tymciurak (design)
* Younghyun Jo (internationalization)

--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


T3 on GAE

2008-12-08 Thread Massimo Di Pierro


 http://web2py.appspot.com/t3/default/wiki/main(there is a  
video tutorial)


T3 version 0.2 is out. Now you can develop for GAE on GAE and it  
could not get any easier.


T3 is a development platform (built on web2py) that works like a WIKI  
and it lets you embed python code and components in wiki pages.  
Components include CRUD forms, attachments, reviews, comments, google  
checkout buttons, charts, all web2py helpers, functions and  
validators, and any user defined function.


T3 lets you create models, procedures, and edit stylesheet using the  
web interface. Everything is stored in the database. Nothing on  
filesystem.


The entire platform runs everywhere python runs, including GAE.

Massimo

--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


Google Checkout Level 1 and Level 2 ported to the Google App Engine

2008-10-29 Thread Massimo Di Pierro

Live demo with examples:

 http://web2py.appspot.com/plugin_checkout

Source code:

 http://mdp.cti.depaul.edu/appliances/default/show/43

--
http://mail.python.org/mailman/listinfo/python-announce-list

   Support the Python Software Foundation:
   http://www.python.org/psf/donations.html


web2py 1.40 is out

2008-09-04 Thread Massimo Di Pierro

web2py 1.40 is out

A web2py book is out too:
http://he-cda.wiley.com/WileyCDA/Section/id-321954.html

Here is a sample:
http://mdp.cti.depaul.edu/examples/static/web2py_manual_cut.pdf

Here are some videos:
http://www.vimeo.com/videos/search:web2py

version 1.40 includes:

- Database Abstraction Layer for SQLite, MySQL, PostgreSQL, MSSQL,  
FireBird, Oracle, and the Google App Engine.
- More handlers for wsgi, fastcgi, mod_python and cgi (for the google  
app engine).

- Setup scripts for production deployment.

SUPER EASY
===

Here is an example of a complete minimalist web app:

   def index(): return Hello World

Here is an example of a complete minimalist web app with a counter:

   def index():
 session.counter=session.counter+1 if session.counter else 1
 return dict(counter=session.counter)

EXPRESSIVE
===

Here is an example of a complete app that asks your name and greats  
you with an AJAX flash message:


def index():
   form=FORM(INPUT(_name='your_name',requires=IS_NOT_EMPTY 
()),INPUT(_type='submit'))
   if form.accepts(request.vars): response.flash='Hello  
'+form.vars.your_name

   return dict(form=form)

POWERFUL
==

Here is an example of a complex query (nested select):

rows=db(db.table1.field1.belongs(db()._select 
(db.table2.field2)).select(orderby=db.table1.field2,limitby=(10,20))


a left join:

rows=db().select(db.table1.ALL,db.table2.ALL,left=db.table2.on 
(db.table1.field1==db.table2.field2))


Have fun!

Massimo


--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


KPAX CMS - The human CMS from another planet

2008-06-03 Thread Massimo Di Pierro

Hello everybody,

I just released the KPAX CMS 1.0 beta (based on web2py).
Create web pages, wikis with locking and versioning, blogs, chats,  
surveys, video/audio streams. No programming required. Runs off a USB  
drive too.

The name is temporary.

Here is a screencast/tutorial http://www.vimeo.com/1098656
Download from http://mdp.cti.depaul.edu/appliances

Massimo


Some features:
Lots of a Ajax for user friendly interaction.
Granular Access Control mechanism based on group membership.
Users can create and join groups. Group owner can require approval of  
memberships applications.

Users can post news and turn them into RSS feeds.
Users can create folders and insert pages in folders.
Users can create surveys and assignments (including anonymous).
Users can create and join chat lines. Chats synchronously and  
asynchronously,  like a discussion board.
Folder pages can be public web pages,  public or private wikis, can  
accept comments, and can contain documents.

Pages have versions and can be compared with previous versions.
Wiki pages have locking so no conflicts.
Documents in pages can be media files. If they are large they are  
streamed.
Media files are played by the built-in flash player. Movies can be  
played full-screen.

Assignment are automatically graded and generate reports and statistics.
WYSIWYG editor (similar to but easer than Word)
System errors result in tickets issued to the visitors.  All errors/ 
tickets are logged.

Web based administrative interface.
Web based database administrative interface.
Secure.  Secure cookies  Server-side sessions.  Server-side form  
validation. No SQL Injection flaws.
Scalable using threads and/or processes (multiple installation behind  
load-balancer).

Uploaded documents/media can be stored in filesystem or database.
Server runs on Windows, Mac, and Linux.
Client/Ajax code compatible with IE6+, Firefix 2+, Safari 3+.
Works with Sqlite (built-in), MySql, PostgreSql, and Oracle.   
Transaction safe. SQL generated via meta-programming.
Works with any CGI, FastCGI and WSGI server including CherryPy’s  
(built-in),  Apache,  and Lighttpd.
Written in Python. The code is concise and readable.  All web forms  
are automatically generated.

Automatic migrations for easy upgrade.--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html