3) black magic IMHO. Would be nice to have some well defined path for the programmer to work on this, so that it could be seen as a separate layer for db configuration/tuning so that models can be left almost untouched on architectural changes.
2010/7/29 mdipierro <mdipie...@cs.depaul.edu> > The speaker raises some good issue with Django and some do apply to > web2py > > Aside for the many jokes which are indeed funny he complains about > scalability and make these valid points: > > 1) session should be stored client side for scalability (web2py and > Django both store them server side, although it it would be trivial to > have a client side option and it is on my todo list, I will take a > patch if somebody does this first) > > 2) it is important to be able to connect to multiple databases > depending on the request (Django cannot do it, web2py can) I also just > added a modification in trunk that allows to do: > > db=DAL([uri1,uri2,uri3]) > > and it will try to connect to uri1, then uri2, then uri3. Of course > you can do > > db=DAL(random_permute(uri1,uri2,uri3)) > > to share the load at random. web2py will also try them all in case of > failure and re-try 5 times. > > 3) it would be nice if the ORM and DAL were to be smart about de- > normalization and about multiple db connection. There is a lot that > can be done in this direction. web2py allows an easy API to > denormalize many2many: > > # define some shortcuts > D,F=db.define_table, Field > # define a table dog, a person, and ownership > d=D('dog',F('name')) > p=D('person',F('name'),F('dogs')) > L=D('ownership',F('person',p),F('dog',d)) > # denormalize p.dogs > p.dogs.requires=IS_IN_DB(db,d.id,d.name,multiple=True) > # p.dogs will be used in forms, when it changes update L > def f(form): > db(L.person==form.vars.id).delete() > [L.insert(person=form.var.id,dog=k) for k in > form.request_vars.dogs] > crud.settings.create_onaccept.person.append(f) > crud.settings.update_onaccept.person.append(f) > > In principle the job of the last 5 lines could be automated and be > done under the hood (what the user speaks about). It would be too much > magic but it would be convenient. We have been discussing some of > this. > > On Jul 29, 2:53 pm, Vidul Petrov <vidul.r...@gmail.com> wrote: > > Django (the opposite of RoR) sucks likes RoR (the Denmark salesman vs > > the desparate Kanzas Python programmers ambitions to create everything > > out of nothing). > > > > Probably you know what's the definition of the Nobel winners for > > intellect - adequacy. > > > > And in order to achieve adequacy we need compromises - web2py. > > > > On Jul 29, 7:08 pm, Wobmofo <muito...@gmail.com> wrote: > > > > > Cal Henderson delivered a very enterteining keynote at DjangoCon 2008. > > > Go watch the video if you haven't, it's really funny ! > http://www.youtube.com/watch?v=i6Fr65PFqfk >