IRC log of #zope3-dev for Monday, 2005-10-17

* benji_york is away: I'm busy00:10
*** SteveA_ is now known as einheit00:20
*** tav has joined #zope3-dev00:23
*** tav has quit IRC00:28
*** Alef has quit IRC00:37
*** hazmat has joined #zope3-dev00:38
*** yota has quit IRC00:50
*** einheit has quit IRC00:51
*** ignas has quit IRC00:51
*** ignas has joined #zope3-dev00:52
*** ChrisW has joined #zope3-dev01:09
ChrisWhmmm, no philiKon?01:10
*** tiredbones has joined #zope3-dev01:38
srichterChrisW: he is sleeping01:50
ChrisW*sigh*01:50
ChrisWI'm looking for kupu-knowledgeable people01:51
ChrisWlooks like a great piece of software with zero useful documentation :-(01:51
*** _method has joined #zope3-dev02:24
*** _method is now known as jmethod02:25
jmethodDoes anyone know about this error from svn trunk? ConfigurationError: ('Unknown directive', u'http://namespaces.zope.org/zope', u'role')02:28
jmethodIn securitypolicy.zcml?02:28
*** jmethod has quit IRC02:31
*** ChrisW has quit IRC02:37
*** benji_york is now known as benji02:41
*** benji is now known as benji_york02:42
*** benji_york is now known as benji_york_zope02:42
*** benji_york_zope is now known as benji02:44
*** newpers has joined #zope3-dev02:57
newperswith 1 person working, how long should it take to complete a project that allows users to pick themes and build websites around the chosen themes.  a user registration/credit card system is also needed.03:05
benjihard to say newpers, does this theoretical person already know Zope 3?03:06
newpersit's me!03:07
newpershaha03:07
newpersno, not really03:07
* benji is so supprised03:07
newpershaha03:07
* newpers is laughing out loud, btw03:07
*** Alef has joined #zope3-dev03:08
benjimy dead-pan delivery works really well over IRC03:08
newpersheh03:08
benjifor building websites TTW, you might want to check out (the still young) CPS Skins for Zope 303:08
newpersthanks03:09
benjinewpers, note that it is *really* alpha so far, but you might get something out of it03:10
newpersi could work on the other aspects of the system, then03:10
benjiwhat kind of credit card processing are you doing?03:10
newpersto be determined03:11
benjioh, in that case, it'll take one week to get it working03:11
newpershaha03:11
newpersit's hard to find good humor on irc03:12
newpersbut i've managed to do so03:12
benjiwhere?03:12
newpers:)03:12
newpersone week!  i'll give you $12 an hour03:12
benjilol!03:13
newpers:P03:13
newperswell, thanks for the CPS Skins heads up03:16
benjiNP03:16
*** hazmat has quit IRC03:34
*** Alef has quit IRC04:16
*** tvon has quit IRC04:39
*** MacYET has joined #zope3-dev06:09
*** benji has quit IRC06:43
*** newpers has quit IRC06:54
*** MacYET has left #zope3-dev07:00
*** haruki has joined #zope3-dev07:28
*** yota has joined #zope3-dev07:36
*** dobee has joined #zope3-dev07:48
*** yota has quit IRC07:53
*** yota has joined #zope3-dev07:56
*** bskahan has joined #zope3-dev08:12
*** yota has quit IRC08:22
*** method has joined #zope3-dev08:23
*** method is now known as jmethod08:24
jmethod  File "/usr/local/zope/Zope-3/src/zope/app/server/main.py", line 69, in debug    db = multi_database(options.databases)[0][0]08:27
jmethodNameError: global name 'multi_database' is not defined08:27
jmethod , anyone?08:27
*** zagy has quit IRC08:37
*** sashav has quit IRC08:37
*** zagy has joined #zope3-dev08:45
*** zagy has quit IRC08:49
*** zagy has joined #zope3-dev08:50
*** jmethod has quit IRC08:54
*** natea has quit IRC08:57
*** natea has joined #zope3-dev08:58
*** hdima has joined #zope3-dev09:28
*** gdsgdsgvdd has joined #zope3-dev09:40
gdsgdsgvddi am implementing a cookie based authemtication, and getting an error--Attribute error - 'None type' object has no attribue ID09:42
gdsgdsgvddwhat does this mean... what could be the problem09:43
*** yota has joined #zope3-dev09:45
gdsgdsgvddplease can someone help!09:45
*** MJ has quit IRC10:00
*** tarek has joined #zope3-dev10:09
*** sashav has joined #zope3-dev10:09
*** yota has quit IRC10:12
*** tekNico has joined #zope3-dev10:15
*** sashav_ has joined #zope3-dev10:16
*** ChrisW has joined #zope3-dev10:23
*** dobee_ has joined #zope3-dev10:27
*** dobee has quit IRC10:28
gdsgdsgvddi have used None type object in cookieAuth.py adapter file ----if username is None -then this-else-10:28
*** ChrisW has left #zope3-dev10:29
*** sashav has quit IRC10:29
*** sashav_ is now known as sashav10:29
gdsgdsgvddis the error --Nonetype object has no attribue id-- pointing to the None in the cookieAuth.py file10:29
*** dobee_ has quit IRC10:51
*** dobee has joined #zope3-dev10:51
*** MJ has joined #zope3-dev10:53
*** yota has joined #zope3-dev11:06
*** dobee has quit IRC11:08
*** dobee has joined #zope3-dev11:14
*** dobee_ has joined #zope3-dev11:25
*** dobee has quit IRC11:25
*** dobee_ has quit IRC11:31
*** dobee has joined #zope3-dev11:32
*** dobee has quit IRC11:37
*** dobee has joined #zope3-dev11:38
*** gdsgdsgvdd has quit IRC11:57
*** Theuni has joined #zope3-dev12:39
*** klaus has joined #zope3-dev12:42
*** regebro has joined #zope3-dev12:46
*** MrTopf has joined #zope3-dev12:49
*** mkerrin has joined #zope3-dev13:10
*** ignas has quit IRC13:33
*** tarek has quit IRC13:33
*** mgedmin has joined #zope3-dev13:34
*** tarek has joined #zope3-dev13:37
*** stub has joined #zope3-dev13:40
*** stub is now known as luv_u_long_time_13:41
*** luv_u_long_time_ is now known as stub13:41
*** haruki has quit IRC13:43
*** J1m has joined #zope3-dev14:04
*** clueck has joined #zope3-dev14:20
*** niemeyer has joined #zope3-dev14:26
clueckhmm, the docstring of zope.app.authentication.session.SessionCredentialsPlugin gives an interactive example. I think there's something missing: Between line 117 and 118 there should be a line with the following code:14:28
clueck>>> sessionSetUp()14:28
clueckotherwise one is not able to access the creddentials in subsequent requests14:30
clueckcredentials14:30
clueck-- maybe it is a didactic missing ;-)14:33
J1mthis is called on line 10214:35
J1misn't that enough?14:35
J1m(It is confusing that it is reimported later.)14:35
*** J1m has quit IRC14:36
clueckoh, yes, I' sorry - I was indeed confused be the reimport14:37
*** zbir has quit IRC14:46
*** roym has joined #zope3-dev14:46
roymWhat is the simplest possible way to set up a simple hierarchy like14:48
roymA/B/C, so that I can do: traverse(root, '/A/B/C') in my unit tests.14:48
roymDoes creating a BaseStorage and adding objects to it automatically14:48
roymmake them traversable?14:48
roymSpecifically, here is what I tried:14:58
roym  from ZODB.DB import DB14:58
roym  from ZODB.FileStorage import FileStorage14:58
roym  db = DB(FileStorage('/tmp/fileStorage'))14:58
roym  from zope.app.folder import Folder14:58
roym14:58
roym  root = db.open().root()14:58
roym  root['item'] = Folder()14:58
roym  from zope.app import zapi14:58
roym  zapi.traverse(root, '/item')14:58
roym14:58
roymAnd I get:14:59
roym14:59
roymTypeError: ('Could not adapt', {'item': <zope.app.folder.folder.Folder object at 0x402e912c>}, <InterfaceClass zope.app.traversing.interfaces.ITraverser>)14:59
srichterhave you registered the traversal adapters?15:00
roymwould placelesssetup do that? I haven't called it15:00
srichterno15:00
srichtersetup.setUpTraversal()15:01
roymI added that, and now I see:15:02
roymAttributeError: 'PersistentMapping' object has no attribute '__parent__'15:02
roymsorry:15:03
roym  File "/usr/local/Zope3-trunk/src/zope/app/location/traversing.py", line 84, in getRoot15:03
roym    context = context.__parent__15:03
roymAttributeError: 'PersistentMapping' object has no attribute '__parent__'15:03
srichterahh, root != your Zope 3 root folder15:03
srichterit is the root of the ZODB15:03
srichterlook into z.a.appsetup on how you get the Zope 3 root15:04
srichteror just do list(root.keys())15:04
*** stub has quit IRC15:04
srichtermkerrin: have you made up your mind about fixing SOAP ;-)15:04
srichtermkerrin: have you made up your mind about fixing WebDAV (I meant) ;-)15:06
*** ignas has joined #zope3-dev15:15
roymI looked at the .txt file in z.a.appsetup; it seems that to set up the zope3 root folder correctly, one needs to call:15:21
roymbootstrap.bootStrapSubscriber(interfaces.DatabaseOpened(db))15:21
roymis this strictly needed always?15:22
mgedminif you want to create the root folder and various local utilities in a potentially empty storage, then yes15:23
mgedminif you have a populated database, then no15:23
roymI needed this for "from scratch" kind of testing.. so I guess it is yes. Thanks!15:24
*** philiKON has joined #zope3-dev15:48
mkerrinsrichter: (just back from lunch) - once I get the FTP thing checked in then I will look at WebDAV.15:58
srichtergreat16:01
*** zbir has joined #zope3-dev16:01
srichtermkerrin: I just want to know, because I am making release schedule decisions in my head :-)16:01
tareksrichter, btw, are you planning to add the xml introspection stuff in the release, or it will be later in another release ?16:04
mkerrinsrichter: right - The FTP bug will be fixed today - but I haven't figured out how long the WebDAV thing will take me.16:07
*** andres has joined #zope3-dev16:09
*** stub has joined #zope3-dev16:11
srichtertarek: it is in the trunk, right?16:11
srichtermkerrin: ok16:11
*** benji has joined #zope3-dev16:15
tareksrichter, nope, still in the branch i think, (or did you merged it already ?)16:15
srichtertarek: no, but feel free to merge it and add the hooks, so it will be in the release16:15
srichtertarek: I think the code is really cool and other people will benefit from it16:16
tarekok i'll do that. when do you plan to do the release ?16:16
*** d2m has joined #zope3-dev16:18
srichtertarek: mid-December16:19
tarekoki16:19
srichterphiliKON: did you make any progress with respect to the deprecation warning thingy?16:24
*** niemeyer is now known as nie_lunch16:26
philiKONsorry, not yet16:26
srichterok16:29
*** alga has joined #zope3-dev16:31
*** J1m has joined #zope3-dev16:42
klausphiliKON: today I have compiled Zope-3.1.0 / Python 2.4.2 with gcc 4 on Mac OS 10.4.2 without any problems.16:51
philiKONgreat16:52
*** hdima has quit IRC17:02
*** efge has joined #zope3-dev17:10
*** nie_lunch is now known as niemeyer17:13
*** whit has joined #zope3-dev17:15
*** faassen has joined #zope3-dev17:16
*** sashav has quit IRC17:19
*** stub has quit IRC17:23
*** tvon has joined #zope3-dev17:30
*** clueck has quit IRC17:33
*** bliv has joined #zope3-dev17:35
*** alga has quit IRC17:46
*** philiKON has quit IRC17:52
andresIs there any generic implementation for createandadd when you use zope.formlib?17:54
benjiandres, the AddFormBase class includes one, but it depends on subclasses providing a create method17:56
andresbenji, so, nothing like in AddView17:56
benjinot that I know of, but adding your own create method shouldn't be too hard, you have to subclass AddForm anyway17:57
*** natea is now known as natea|away17:57
*** mgedmin has quit IRC17:58
*** ignas is now known as ignas|phood17:58
*** tarek has quit IRC18:00
*** tarek has joined #zope3-dev18:01
*** faassen has quit IRC18:01
jintyer, the mysqldbda prints connection info (including the password) on the stdout18:02
jintyaside from randomly breaking my doctests,  its a security issue18:02
jintyanyone mind if I clean it up18:03
J1mnope18:03
benjiJ1m, I have a quick question...18:04
J1mk18:04
benjiI was working on a personal project this weekend and needed to run several doctests while changing the server config between runs, I think I've figured out how to get FunctionalTestSetup to reload the config, but all the other state (component system mainly) is still there...18:05
benji...so my question is: is there an easy way to reset all of Z3's internal datastructures?18:06
*** zagy_ has joined #zope3-dev18:06
*** natea|away has quit IRC18:06
srichterbenji: can you elaborate, because I am working on a ZCML-based reload right now?18:06
benji:)18:07
*** natea has joined #zope3-dev18:07
srichterhere is my approach18:07
J1mbenji, no, that's why zcml-based layers can't be torn down and why the test runner has to use subprocesses.18:07
srichterif you reload a ZCML file, none of the registrations are executed18:07
benjiI was working on a test framework for my quick start, and needed to load a working zope, run some doctests, change the ZCML, run some other doctests, etc.18:07
J1mbenji, hy not use layers?18:07
srichterbut ehenever a global object is referred to, its module gets reloaded18:08
benjiJ1m, I'm not sure layers apply, but I'll take a look next time I play with it18:08
benjiI'm really excited about the generall approach though, I have a pretty good manual testing framework at this point18:09
J1mbenji, if you don't really need all state to be reset, you might get by with less.18:09
benjiJ1m, the thing is, I wan the DB to remain intact, just simulate a server stop and restart18:09
J1m(Me wishes Python disn't have reload. It is an attractive nuisance.)18:10
J1m(Me wishes Python didn't have reload. It is an attractive nuisance.)18:10
srichterbenji: on this case, do a placeless tear down and a ZCML reload18:10
* benji agrees with J1m18:10
benjisrichter, will that unregister adapters (for instance)?18:10
srichterbenji: yeah, the teardown will do that18:11
benjiok, I'll have to look into that18:11
J1m(I notice srichter stepping into a tar pit of reload madness.)18:11
J1mtearDown doesn't unto all zcml-defined changes, unfortunately.18:11
J1mundo18:12
benjiah, that's what I was afraid18:12
benjiof18:12
J1mIt does undo any component registrations.18:12
srichterit does not undo setting of global variables, right?18:12
srichterbut other than that, what is it not doing?18:13
*** zagy has quit IRC18:13
benjiI might have to look into running my tests with a file based storage, so I can run my tests in subprocess es18:13
J1msrichter, nothing18:14
J1mbenji, it all depends on how pristine you need to make things.18:14
benjidon't really know, I'm testing what the user would do, and the user would restart Zope, so it needs to be a reasonable approximation of that18:15
srichterJ1m: I wanted to talk to you about my approach as well :-)18:15
srichterI was thinking on allowing reloading of selected ZCML files18:16
srichterfirst, you load the meta directives (can be cached probably)18:16
J1msrichter, I still don't know what your approach is -- or what problem it is trying to solve.18:16
srichterJ1m: ok, problem first: people want to be able to reload their code changes without tearing down and bringeing up the entire server again18:17
J1mwhy is that?18:17
srichterI agree with you that with doctests, this is probably less needed, but people want it, so I am at least want to explore it a bit18:17
srichterJ1m: because it makes their development faster18:18
benjisrichter, it might be safer and more rewarding to make restart *much* faster, then we'd get the right semantics with the benefits18:18
srichterI have seen MAC people wait over 10 seconds to start up Zope18:18
srichterbenji: we have looked at alternatives there as well, but did not get very far18:19
benjisrichter, on windows pressing control-c can take that long just to stop Z3 (no matter how fast the machine)18:19
srichterbenji: most of the time is spent converting dotted names to objects18:19
srichterbenji: and that lookup cannot be cached any way easily18:20
srichter(I am assuming the resolve method on the context is maximally optimized)18:20
J1mwhy would you assume that?18:20
benjiI'm just very afraid of reload that works 99% of the time, the poor 1% are going to be seriously burned18:21
J1mwhat makes you think resolve is taking most of the time?18:21
J1msrichter, I agree with Benji, reload is a trap.18:21
srichterbenji: that's the case in the Zope 2 world right now too, and people still use it like crazy18:21
J1mThe author of that product regrets it.18:21
benji"attractive nuisance" :)18:21
srichterJ1m: I am pretty sure the POV guys told me they did some experiments in that regard18:22
J1mHm18:22
* benji writes a royalty check to the person that coined the term "attractive nuisance"18:22
srichterin fact they tried caching the ZCML before18:22
J1mThe ZCML could be made far more cacheable than it is now.18:23
J1mand it18:23
srichterI think the main issue here was that we generate types that cannot be imported, right?18:23
J1mand it's behavior could be improved.18:23
srichterotherwise we could just write pickle dumps of the actions18:24
J1mBasically, we do too much in the first phase.18:24
J1mwe should do much less and return picklable actions.18:24
srichterhow could the behavior be improved?18:24
benjiI wonder if some of the "too much" first phase stuff (like creating interfaces that will be used in phase 2) should be moved to a phase 1.518:24
srichterok, I agree18:24
J1mwe could move much of the work we do in phase 1 to phase 2.18:25
J1mThis could include class generation, etc.18:25
srichterdo you have any idea of a preferred approach?18:25
J1mNote that, in the long term, I'd like to move away from class generation.18:25
SteveA(considered harmful ;-) )18:25
SteveAi'm moving away from class generation for launchpad.18:25
SteveAit makes things so much more obvious for users and people debugging18:26
J1mA basic tenent of formlib is that things should be defined in python.18:27
J1msrichter, I tried to suggest this as a sprint topic, but I was too late.18:27
J1mso, aproach:18:27
J1m- rewrite handlers so that they generate actions that are basically just data.18:27
J1m- have the actions invole things that do the work we do now.18:28
J1m(This will improve semantics of a number of things.)18:28
J1m- If actions are picklable, then cache actions and use cahed actions unless zcml file has changed.18:28
* srichter listens till Jim says he is done18:28
J1mSome care would be needed to handle conditional execution.18:29
J1mdone.18:29
benjiJ1m, does moving some things to phase 2 preclude some of the things we do now (e.g. generating Interfaces that other actions act uppon)18:29
J1mUm, preclude?18:29
J1mno18:30
benjilike the mimetype stuff... it generates interfaces that must be available before phase 2 starts, how would you do that in this new scheem?18:30
srichtercan you give me a concrete example of step 1 and 2?18:30
srichterJ1m: I guess we should make more use of factory classes18:31
J1mbenji, the interfaces aren't needed when phase 2 starts. They aren't needed until there is an action that tries to register something for them.18:31
J1msrichter, I don't know what you mean. I know you are familiar with phases 1 and 2.18:31
benjiok, so why did we think it was neccesary to create them in phase 1?18:32
J1mbenji, because currently, they are used in phase 1.18:32
J1mwhen we compute the actions, we pass the interfaces as arguments.18:32
benjiahh, ok18:32
srichterok, to be more specific, in the context of a browser:page registration, how shoudl a data-driven action look like?18:32
J1mFor example, the adapter directive resolves the interface and passes the resolved interface as an argument to the action.18:33
srichterright18:33
J1msrichter, it should wrap up the data it needs and pass that to the action.18:33
J1msrichter, things like the template name, security info, whatever.18:34
srichterok, would it pass an interface object or the dotted name?18:34
SteveAmaybe an object that has the dotted name as data, but can give you the interface18:35
J1mNote that validation of basic types (e.g. strings, ids, etc.) can be done in the first phase.  In my early profiling, I noticed that lots of time was spend in schema validation.  I think that this would mostly avoid that.18:35
J1msrichter, dotted name18:35
J1mNote that the dotted name could be normalized in phase 1 (and the result of normalization cached).18:36
srichterso how would the GlobalObject field do validation; it could not do much anymore...18:36
J1mGlobalObject would:18:36
J1m- return a normalized dotted name18:37
J1m- add an action to verify that the name is valid.18:37
J1mThe verification would be done in phase 2.18:37
srichterinteresting18:37
benjiso, we want to do as *much* in phase 1 as we can and the result still be pickleable (so when phase 1 is cacheable, we cache expensive stuff)18:37
J1mOr what SteveA suggested could be better.18:37
J1mThe valud if a glbal object is a callable that does the resolution and generates a useful error if it fails.18:38
J1mbenji, right18:38
J1ms/valud/value18:38
* benji wonders why J1m uses Vim syntax for his substitutions :)18:39
J1mBTW another important way to speed things, as SteveA has pointed out in the past,  is to use less zcml.18:39
J1mAfter 3.2, I'd like to have us spend some time on whitling z3 down so that it is smaller.18:40
srichteryeah, that's another thing18:40
J1mBegin defining a core.18:40
srichterI would really like to separate the browser directives from the other directives18:41
J1mBy thn, I hope that the packaging technology will have matured to the point that it is easier for people to get what they want without bloating z3.18:41
srichterin schooltool, we often want the Python code, but none of the registrations18:41
SteveAJ1m: i'd be interested in hosting a sprint on whittling Z3 down18:41
J1malso, as the "layer" model matures, I think it will provide a vehicle for faster reloads during development.18:41
Theunihmm18:42
* Theuni takes a look on the current sprint schedule18:42
SteveAvilnius is nice in the spring / summer.  when's 3.2 scheduled?18:42
J1mBasically, because layers are minimal configurations that exercise packages.18:42
benjiSteveA, 3.2 is scheduled for December18:43
J1m3.2 is scheduled to be released in December.18:43
SteveAspring is more like april.  still, vilnius is interesting in the middle of winter too ;-)   if you like snow and cold.18:43
J1m:)18:44
TheuniI might take the snow if someone else picks the cold ...18:44
J1mFeature freeze for the summer release is May 1.18:44
J1mBTW, we are seriously running out of time for 2.9/3.2.18:45
J1mI have a bunch of z2 security work for 2.9.18:45
J1mThe five folks have a lot of work too and could probably use some help.18:45
TheuniJ1m:  depending on my 5-week plan, I _might_ be able to help out a bit.18:46
TheuniI have to get warm with some things again, though.18:46
srichterbtw, I am pretty much set on the Zope 3 side of things :-)18:47
srichterI am going to send a mail warning people that the freeze is coming up, but that's about it18:48
J1mGood. I still need to integrate the new test runner.18:48
J1mGood!18:48
J1mFreeze Nov 1!18:48
J1mI've been waiting until the test runner had all of the important capabilities of the old one....18:48
*** tiredbones has left #zope3-dev18:49
benjiJ1m, any capabilities still remain unadded?18:50
J1m- tests for gc threshold setting18:50
J1m- memory leak debugging and tests.  I definately don't have time for what I want in the long run, but I'd like to at least have what the current test runner has.18:51
J1mThat's all I can think of.18:51
benjiok18:52
*** MJ has quit IRC18:58
*** klaus has quit IRC19:00
andresOne question: you can do __setitem__.precondition = ItemTypePrecondition...19:11
andresHow can you get that on runtime?19:11
andresfrom the implementation of the container.19:11
J1mLook at zope.app.container.constraints for examples.19:12
*** sashav has joined #zope3-dev19:14
*** klaus has joined #zope3-dev19:20
regebroAha... so views are looked up (in 3.0 at least) via a special view.traverser?19:22
regebroI ment view traverser. :) That was not supposed to look like a dotted name. :)19:22
srichterthat is still true for 3.1 and 3.219:25
regebroOK, good to know. Five isn't using it, namely.19:27
srichterI cannot talk about five19:27
regebroNo, of course. It just ment that the traversal refactoring of Five I'm trying now had a hiccup. :)19:28
srichterI see19:28
*** klaus has quit IRC19:29
*** mgedmin has joined #zope3-dev19:30
regebroThe question is if the best fix is to implement a special Five traversePathElement, or implement proper namespace traversal or do a hack. ;)19:31
regebroI probably need to try all of the, as usual. :)19:31
*** klaus has joined #zope3-dev19:32
*** klaus has left #zope3-dev19:36
*** suse-joe has joined #zope3-dev19:38
suse-joeHi! I've got a question on interfaces: I can either19:39
*** ignas|phood is now known as ignas19:39
suse-joeuse implements(Interface) or define the interfaces a class implements in ZCML, right?19:39
benjiright, suse-joe19:40
suse-joeis the first one still encouraged or should all "implements" definitions be done in ZCML if possible?19:40
benjithe first is recommended if the interface is "intrinsic" to the class, in other words does the class intentionally implement the interface19:41
benjithe ZCML directive is usually reserved for marker interfaces (interfaces with no implementable bits) or imposing an interface on a third-party package that didn't know it was implementing an interface when it was written19:41
suse-joeDoes this distinction have any practical implications (like performance hits or so)? Or is it just an unwritten rule?19:43
srichteranything in ZCML is configurable19:46
srichterno implications on performance19:47
*** tekNico has quit IRC19:51
*** tekNico has joined #zope3-dev19:51
*** tekNico has left #zope3-dev19:52
*** tarek has quit IRC19:52
suse-joeIs there a Z3 equivalent of the good old acl_users folder or do I have to use the Pluggable Authentication Utility?20:04
*** alga has joined #zope3-dev20:14
*** regebro has quit IRC20:19
*** tiredbones has joined #zope3-dev20:19
*** jukart has joined #zope3-dev20:25
srichtersuse-joe: you have to use the Authentication Utility20:27
srichterof course you can use ZCML to define your users as well20:27
suse-joesrichter: ZCML: Sure. But I want to manage them TTW ;-)20:28
srichterwell, then use pau20:28
srichteras you suggested20:29
suse-joeThe default Principal Folder is a bit of a PITA ATM because I have to provide both the login name and an object name.20:29
srichterno, it is not PITA20:29
srichterbecause setting id == login is a security hole20:30
suse-joeBut it's buggy. ;-) If I don't specify the object name it uses numbers, starting with 1. If I want to change those and use an existing login name I can't do that. Seems the name check checks against the login name.20:31
suse-joeSecurity hole: Explain20:32
*** alga has quit IRC20:32
*** efge has quit IRC20:32
srichterbecause the id is sometimes displayed in the UI20:32
srichterdisplaying the login name in the UI is a bad idea20:32
suse-joeACK20:33
suse-joeBut it seems in all cases I'll need to write my own frontend for user management if I want to do anything more serious than just testing.20:35
srichteryep, which is the point20:35
srichterwe do not want you to use any default thing :-)20:35
suse-joeWith Zope2's acl_users I could use it out of the box in many cases.20:35
srichterthe default UI for PAU is far too geeky for the user to use20:36
suse-joeAnd I am far too lazy to want to rewrite user management for every app. ;-) So what Zope3 needs IMHO is lots of good defaults. Needn't be part of the core distribution, but they should be available and easy to use.20:38
srichterfeel free to contribute to Z3ECM and similar projects20:40
mkerrinshould the debugzope and zopectl scripts now use the zope.app.twisted package instead of the zope.app.server20:41
srichtermkerrin: yes20:42
mkerrinsrichter: cool - I will fix it then20:42
*** VladDrac has quit IRC20:43
srichterthanks a lot20:44
J1mPerhaps it would be useful to provide some wizards for pau that asked the user a few questions and created a fully configured pau for them.20:44
J1mThis could be a nice add-on project for someone.20:44
*** zagy_ has quit IRC20:45
suse-joeI'm thinking about adding things like that (new project wizards, configuration wizards, ...) to an IDE (e.g. eric3). Now that the road away from Zope2's "everything TTW" paradigm has been taken I think that makes more sense than doing those things as part of the Zope web UI.20:49
suse-joeThat said, writing a AJAX-style full-fledged Zope IDE as a web app would be a fun project, too. ;-)20:50
*** niemeyer has quit IRC20:54
andrescan i make zope.formlib return a macro easily? It doesnt seem so, or?20:56
*** MJ has joined #zope3-dev20:58
andresbecause else they arent very useable.21:02
*** sashav has quit IRC21:05
*** sashav has joined #zope3-dev21:07
*** niemeyer has joined #zope3-dev21:10
*** VladDrac has joined #zope3-dev21:13
srichterJ1m: I think Python's reload() function does not like interfaces ;-)21:17
srichterat least it seems it cannot reload any modules that contains interface declarations21:18
srichteranother pointer it does not work well21:18
srichter(I wonder whether this is true for all meta classes)21:19
SteveAsrichter: i remember shane's reloader involved just deleting the module from sys.modules21:22
SteveAand not using reload.21:22
srichterthanks21:23
srichterI'll try that21:23
*** jukart has left #zope3-dev21:26
J1mabandon all hope, ye who reload21:28
srichter:-)21:29
srichterI just thought about it some more and ZCML caching will not help the slow MAC users at all21:29
srichtersince it still ahs to read a lot of files21:29
srichterand their FS is soo damn slow21:29
J1mso you'll drive them insane with non-robust reload.21:30
J1mI'm not sure i beleave the slow fs thing.21:31
srichtermmh, I dunno21:31
srichterI wonder, whether global object could put a proxy around the object it looked up, which can observes changes21:36
J1mPlease note that I have no desire to help you try to make reload work.21:37
srichterI know, I'll definitely want to tackle the other apporach for 3.321:37
*** natea is now known as nate21:38
*** nate is now known as natea|away21:38
J1mAnother alternative that I would like to have pursues (after 3.2) is persistent modules for prototyping.21:39
*** nederhoed has joined #zope3-dev21:39
J1mpersistent modules get much closer to working "reload" although even they have dark corners.21:39
srichterright, that is probably the right approach21:40
benji"persistent" as in "located in ZODB"?21:40
srichterbenji: yeah, we have already code for that21:40
* benji thinks he'll hate modules in the database21:40
J1mbenji should try squeak. :)21:41
J1mOne might possibly learn from persistent modules to make reloadable modules.21:41
benjiI would me much more inclinde to take that route21:41
J1mThese would use the same principles but with state stored on the FS.21:41
srichterI wonder whether one could just convert regular modules to persistent modules and stick those into sys.modules21:43
benji"state" being source code?21:43
J1mbenji, sort of21:43
J1msrichter, no, that's not good enough.21:43
J1mbenji, well, yes.21:43
benjigood21:43
*** MrTopf has quit IRC21:43
J1mThe state of a module is contained in it's source code.21:43
J1mYou would need reloadable modules to contain reloadable objects, including reloadable functions and classes.21:44
srichterah, right21:44
J1mThen one would need to use the same sort of approach as used by persistent modules to upload them.21:44
benjiI hope that all these reloadable things will be visually indistinguishable from "regular" python code21:45
J1mPossibly, this could be a popular PEP.21:45
J1mbenji, well, one option would be to make regular python functions and classes reloadable.21:45
benjiright21:45
J1mactually, functions are the trickiest, I think.21:46
benjihmm, this seems like a round-about way to think of how to make modules reloadable :)21:46
* J1m thinks this would make a fine PEP.21:46
J1mHow is it round about.21:46
J1mOur experience tells us that:21:47
J1m- Python reload is broken.21:47
J1m- We've learned a lot about how to do it right in Jeremy's persistent module experiments.21:47
J1mBTW, He might be willing to collaborate on a PEP.21:47
J1mBTW, IMO, modules cannot be implicitly reloadable.21:48
J1mAll modules are not reloadable.21:48
J1mIMO, a module is only reloadable if *all* of it's state is captured by it's source code.21:49
J1mThis means, it's state should not be mutated except through reload.21:49
srichterso basically nothing is added/revmoed afterwards21:49
J1massuming that you desire sanity.21:49
benjiright, I'm just saying that going from "we want reloadable modules" to "persistent modules (in ZODB) are reloadable, we should use those" to "yeah, but I want the source on the FS, so we'll make persistant modules with their state on the FS" seems less direct than just saying "how can we make (some subset) of modules reloadable"21:49
J1mor modified.21:49
benjiyep21:50
srichterI think this is an acceptable requirement21:50
J1mwell, persistent modules attack th same problem and we should reuse what we've learned about them.21:50
J1mIt's probably not too late to start something for Python 2.5.21:51
J1mYou have a lot more time for Python 2.5 than you do for Zope 3.2. :)21:51
srichter:-)21:51
benjiJ1m, yeah, I wasn't saying that, I just worry that the "persistent modules on the FS" would lead to a wacky implementation; the knowlege from persistent modules, on the other hand, is definately needed for this21:53
J1mOTOH, Py 2.5 is a lot closer than py 2.6, so I wouldn't wait long if you wanted to make sane reload work any time soon.21:53
J1mI expect you could reuse a lot of implementation.21:53
benjiyep, I wasn't saying that either, nevermind21:54
J1m(It would be sort of nice if reloadable modules could prevent changes, except through reload.21:54
J1m)21:54
*** deo has joined #zope3-dev21:56
*** einheit has joined #zope3-dev22:01
*** einheit is now known as SteveA_22:02
*** alga has joined #zope3-dev22:05
*** mgedmin has quit IRC22:27
*** BjornT has quit IRC22:29
*** BjornT has joined #zope3-dev22:29
*** alga has quit IRC22:31
*** jinty has left #zope3-dev22:31
*** natea|away is now known as natea22:34
*** BjornT has quit IRC22:37
*** BjornT has joined #zope3-dev22:37
*** suse-joe has left #zope3-dev22:39
*** mkerrin has quit IRC22:40
*** BjornT_ has joined #zope3-dev22:42
*** BjornT has quit IRC22:58
*** nederhoed has quit IRC23:20
*** natea is now known as natea|away23:24
J1msrichter, ayt?23:40
*** SteveA_ is now known as einheit23:44
srichterJ1m:  yep23:44
*** benji has quit IRC23:49
J1msrichter, sorry for not responding right away. I got distracted. :)23:50
J1mDo you have a reference for the Java content-provider definition?23:50
*** einheit has quit IRC23:51
srichterJ1m: I searched the Web when I was writing the docs23:54
srichterI thought JSR 168 had one too23:54
srichterhold on23:54
VladDraccan someone reboot zope.org? :)23:55
srichterdarn, I don't have the JSR 168 PDF anymore23:55
srichterok, I do23:55
srichterdo you have it as well?23:56
J1myes23:56
J1mI see no reference to content provider.23:56
srichterit might have been in one of the referenced papaers23:56
J1mdoing "find" for provider.23:56
J1mThe proposal more or less hinges on standard terminology, but gives no reference to the standard.23:57
J1mIt makes it hard to determine if the terminology is applicable to what you propose.23:58
J1mI'm unclear what the motivation of content providers is.23:58
srichterI remember looking it up for the content provider README23:58
J1mI woish you had included a reference in the readme.23:58
J1mwish23:58
J1mWe commonly look up subviews. Widgets are a good example.23:59
srichterme too :-(23:59

Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!