*** RaFromBRC is now known as RaFromBRC|afk | 00:09 | |
*** ccrownhart has quit IRC | 00:38 | |
*** ccrownhart has joined #zope3-dev | 00:39 | |
*** Theuni has quit IRC | 01:00 | |
*** bskahan has joined #zope3-dev | 01:29 | |
*** yota has quit IRC | 01:42 | |
*** mohsen has joined #zope3-dev | 01:43 | |
*** tvon has joined #zope3-dev | 01:44 | |
*** bskahan has quit IRC | 02:21 | |
*** dtremea has joined #zope3-dev | 02:23 | |
*** deo has quit IRC | 02:25 | |
*** dtremea is now known as deo | 02:26 | |
*** RaFromBRC|afk is now known as RaFromBRC | 02:34 | |
*** bradb has quit IRC | 02:49 | |
*** mohsen has quit IRC | 02:55 | |
*** bskahan has joined #zope3-dev | 03:07 | |
*** vlado has joined #zope3-dev | 03:22 | |
*** bskahan has quit IRC | 03:38 | |
*** BjornT has quit IRC | 03:46 | |
*** ignas has joined #zope3-dev | 03:57 | |
*** philiKON has quit IRC | 04:26 | |
*** hazmat has quit IRC | 04:45 | |
*** BjornT has joined #zope3-dev | 04:57 | |
*** vlado has quit IRC | 05:01 | |
*** stub has joined #zope3-dev | 05:07 | |
*** tvon has quit IRC | 05:20 | |
*** ignas has quit IRC | 05:21 | |
*** hazmat has joined #zope3-dev | 05:31 | |
*** bradb has joined #zope3-dev | 05:37 | |
*** philiKON has joined #zope3-dev | 06:10 | |
*** hazmat has quit IRC | 07:07 | |
*** BjornT has quit IRC | 07:45 | |
*** viyyer has joined #zope3-dev | 08:02 | |
*** philiKON has quit IRC | 08:04 | |
*** stub has quit IRC | 08:05 | |
*** zagy has joined #zope3-dev | 08:13 | |
*** `anthony has quit IRC | 08:26 | |
*** hazmat has joined #zope3-dev | 08:38 | |
*** d2m has quit IRC | 08:56 | |
*** yota has joined #zope3-dev | 09:02 | |
*** viyyer has quit IRC | 09:12 | |
*** viyyer has joined #zope3-dev | 09:13 | |
*** kaczordek has joined #zope3-dev | 09:13 | |
*** yota has quit IRC | 09:16 | |
*** Damascene has quit IRC | 09:16 | |
*** VladDrac has quit IRC | 09:16 | |
*** Jim7J1AJH has quit IRC | 09:16 | |
*** yota has joined #zope3-dev | 09:16 | |
*** Damascene has joined #zope3-dev | 09:16 | |
*** VladDrac has joined #zope3-dev | 09:16 | |
*** Jim7J1AJH has joined #zope3-dev | 09:16 | |
*** Damascene has quit IRC | 09:18 | |
*** VladDrac has quit IRC | 09:18 | |
*** yota has quit IRC | 09:18 | |
*** Jim7J1AJH has quit IRC | 09:18 | |
*** yota has joined #zope3-dev | 09:19 | |
*** Damascene has joined #zope3-dev | 09:19 | |
*** VladDrac has joined #zope3-dev | 09:19 | |
*** Jim7J1AJH has joined #zope3-dev | 09:19 | |
*** Damascene has quit IRC | 09:19 | |
*** VladDrac has quit IRC | 09:19 | |
*** yota has quit IRC | 09:19 | |
*** Jim7J1AJH has quit IRC | 09:19 | |
*** yota has joined #zope3-dev | 09:19 | |
*** Damascene has joined #zope3-dev | 09:19 | |
*** VladDrac has joined #zope3-dev | 09:19 | |
*** Jim7J1AJH has joined #zope3-dev | 09:19 | |
*** VladDrac has quit IRC | 09:20 | |
*** Damascene has quit IRC | 09:20 | |
*** hdima has joined #zope3-dev | 09:20 | |
*** VladDrac has joined #zope3-dev | 09:20 | |
*** yota has quit IRC | 09:21 | |
*** Jim7J1AJH has quit IRC | 09:21 | |
*** viyyer has quit IRC | 09:21 | |
*** kaczordek has quit IRC | 09:21 | |
*** tonico has quit IRC | 09:21 | |
*** hdima has quit IRC | 09:21 | |
*** zagy has quit IRC | 09:21 | |
*** deo has quit IRC | 09:21 | |
*** th1a has quit IRC | 09:21 | |
*** mkerrin has quit IRC | 09:21 | |
*** Aiste has quit IRC | 09:21 | |
*** robertu has quit IRC | 09:21 | |
*** srichter has quit IRC | 09:21 | |
*** srichter has joined #zope3-dev | 09:22 | |
*** hdima has joined #zope3-dev | 09:22 | |
*** kaczordek has joined #zope3-dev | 09:22 | |
*** robertu has joined #zope3-dev | 09:22 | |
*** mkerrin has joined #zope3-dev | 09:22 | |
*** tonico has joined #zope3-dev | 09:22 | |
*** Aiste has joined #zope3-dev | 09:22 | |
*** th1a has joined #zope3-dev | 09:22 | |
*** deo has joined #zope3-dev | 09:22 | |
*** zagy has joined #zope3-dev | 09:22 | |
*** viyyer has joined #zope3-dev | 09:22 | |
*** irc.freenode.net sets mode: +o srichter | 09:22 | |
*** kaczordek has quit IRC | 09:22 | |
*** tonico has quit IRC | 09:22 | |
*** mkerrin has quit IRC | 09:22 | |
*** hdima has quit IRC | 09:22 | |
*** th1a has quit IRC | 09:22 | |
*** deo has quit IRC | 09:22 | |
*** zagy has quit IRC | 09:22 | |
*** Aiste has quit IRC | 09:22 | |
*** srichter has quit IRC | 09:22 | |
*** robertu has quit IRC | 09:22 | |
*** viyyer has quit IRC | 09:22 | |
*** bradb has quit IRC | 09:22 | |
*** hazmat has quit IRC | 09:22 | |
*** RaFromBRC has quit IRC | 09:22 | |
*** vinsci has quit IRC | 09:22 | |
*** srichter has joined #zope3-dev | 09:26 | |
*** vinsci has joined #zope3-dev | 09:26 | |
*** RaFromBRC has joined #zope3-dev | 09:26 | |
*** hazmat has joined #zope3-dev | 09:26 | |
*** robertu has joined #zope3-dev | 09:26 | |
*** mkerrin has joined #zope3-dev | 09:26 | |
*** tonico has joined #zope3-dev | 09:26 | |
*** Aiste has joined #zope3-dev | 09:26 | |
*** th1a has joined #zope3-dev | 09:26 | |
*** deo has joined #zope3-dev | 09:26 | |
*** zagy has joined #zope3-dev | 09:26 | |
*** viyyer has joined #zope3-dev | 09:26 | |
*** kaczordek has joined #zope3-dev | 09:26 | |
*** hdima has joined #zope3-dev | 09:26 | |
*** yota has joined #zope3-dev | 09:26 | |
*** Jim7J1AJH has joined #zope3-dev | 09:26 | |
*** bradb has joined #zope3-dev | 09:26 | |
*** irc.freenode.net sets mode: +o srichter | 09:26 | |
*** sashav_ has joined #zope3-dev | 09:32 | |
*** `anthony has joined #zope3-dev | 09:36 | |
*** Theuni has joined #zope3-dev | 10:00 | |
*** vlado has joined #zope3-dev | 10:37 | |
*** mkerrin has quit IRC | 10:39 | |
*** MrTopf has joined #zope3-dev | 10:40 | |
*** lunatik has joined #zope3-dev | 10:44 | |
*** lunatik has left #zope3-dev | 10:55 | |
*** vlado has quit IRC | 11:01 | |
*** __gotcha has joined #zope3-dev | 11:02 | |
*** RaFromBRC has quit IRC | 11:44 | |
*** viyyer has quit IRC | 11:53 | |
*** viyyer has joined #zope3-dev | 11:54 | |
*** Aiste has quit IRC | 11:58 | |
*** efge has joined #zope3-dev | 12:01 | |
*** tav|offl1ne has quit IRC | 12:19 | |
*** philiKON has joined #zope3-dev | 12:23 | |
*** mgedmin has joined #zope3-dev | 13:00 | |
*** gintas has joined #zope3-dev | 13:06 | |
*** `anthony has quit IRC | 13:11 | |
*** vlado has joined #zope3-dev | 13:15 | |
*** kaczordek has quit IRC | 13:18 | |
*** stub has joined #zope3-dev | 13:21 | |
*** ChrisW has joined #zope3-dev | 13:24 | |
ChrisW | any codespeak people here? | 13:24 |
---|---|---|
* ChrisW pokes philiKON: alive? ;-) | 13:25 | |
srichter | maybe you should try #z3-base? | 13:27 |
* ChrisW tries, suffering really bad deja vu here... | 13:27 | |
*** srichter has quit IRC | 13:29 | |
*** `anthony has joined #zope3-dev | 13:40 | |
*** philiKON has quit IRC | 13:57 | |
*** apoirier has joined #zope3-dev | 14:30 | |
*** philiKON has joined #zope3-dev | 14:31 | |
*** faassen has joined #zope3-dev | 14:41 | |
*** mohsen has joined #zope3-dev | 14:46 | |
*** MrTopf has quit IRC | 14:48 | |
*** gintas has quit IRC | 14:49 | |
*** srichter has joined #zope3-dev | 14:49 | |
*** ChanServ sets mode: +o srichter | 14:49 | |
*** robertu has left #zope3-dev | 14:53 | |
*** regebro has joined #zope3-dev | 15:10 | |
*** BjornT has joined #zope3-dev | 15:12 | |
srichter | mgedmin: you wrote the recorder code, right? or was it alga? | 15:17 |
philiKON | srichter, btw, when you reimplement graceful shutdown, can it be in a way that all kinds of server control is factored into an API that server implementations can plug into | 15:19 |
*** ChrisW has left #zope3-dev | 15:19 | |
philiKON | srichter, so it wouldn't be twisted specific | 15:19 |
philiKON | srichter, i might actually want to use this from modzope, too | 15:19 |
srichter | well, graceful shutdown is simply reactor.stop() | 15:19 |
srichter | I am not planning to do more at this point, but please feel free to mess with the branch | 15:20 |
philiKON | hmmm | 15:20 |
philiKON | naww | 15:20 |
srichter | btw, I think we really should consider to use Twsited's deamon, twistd | 15:21 |
srichter | (and just rename it) | 15:21 |
faassen | srichter: just import the right bits in your own file. | 15:21 |
faassen | srichter: I hope. instead of a straight copy and rename.. | 15:21 |
srichter | we will have to run through a lot of hoops to get restart working otherwise | 15:21 |
mgedmin | srichter, it was I | 15:22 |
faassen | mgedmin: "It was I", how posh. :) | 15:22 |
srichter | currently the problem is that the entire server control is located in zope.app.server, which is by definition specific to the server we decide to use by default | 15:22 |
faassen | mgedmin: do you also say "it was he"? :) | 15:23 |
srichter | the code should move out, if we want to abstract this | 15:23 |
*** ChrisW has joined #zope3-dev | 15:23 | |
srichter | mgedmin: ok, I am trying to reimplement it using Twsited right now, so I need you to look at it once I am done | 15:24 |
*** ignas has joined #zope3-dev | 15:24 | |
ChrisW | Jim around anywhere? | 15:24 |
srichter | ChrisW: too early | 15:24 |
srichter | try in another hour, but Jim is busy with his customer project, so he might not come online | 15:24 |
ChrisW | *nods* | 15:25 |
ChrisW | customer project in Z3? | 15:25 |
srichter | yep | 15:25 |
philiKON | of course :) | 15:25 |
ChrisW | coool :-) | 15:25 |
ChrisW | anyone using the twisted servers stuff in production? | 15:25 |
ChrisW | I'm pretty excited about that :-) | 15:25 |
regebro | In production? Wasn't it like finished yesterday? :) | 15:26 |
Theuni | so it could be in production for 24h already? | 15:27 |
srichter | hhooooooooooooooollllllllllllllllllllddddddddd on! | 15:27 |
philiKON | :) | 15:27 |
srichter | :-) | 15:27 |
ChrisW | hehe | 15:27 |
faassen | well, if it wasn't Stephan who built this, I would say no, that wouldn't be the case. | 15:27 |
srichter | the twisted integration uses twsited code that has not been released yet | 15:27 |
srichter | we are working off the trunk | 15:28 |
faassen | but Stephan might've made it go into production a few hours ago. | 15:28 |
faassen | after staying up all night or something. :) | 15:28 |
ChrisW | hehe | 15:28 |
srichter | "foom" (James Knight) is currently implementing a new HTTP serber, twisted.web2, and our feedback has stabalized it quiet a bit; but more work needs to be done. | 15:28 |
srichter | "spiv" (whose real name just slipped my mind) will tackle the horribly broken twisted.protocol.ftp code for us, so we can have a useful FTP server | 15:29 |
srichter | before those are not done, I cannot merge it to the trunk | 15:29 |
srichter | (though I would claim that running the simple HTTP and HTTPS server should be fairly stable at this point) | 15:30 |
srichter | foom fixed several problems that were caused by hooking up Zope 3 via WSGI | 15:30 |
philiKON | well, we can only merge to trunk if the twsited integration performs as well as the zserver one... that includes ftp | 15:30 |
ChrisW | *nods* | 15:30 |
ChrisW | "perfoms as well" seems a little wooly ;-) | 15:31 |
faassen | srichter: plus those need to be released, right? | 15:31 |
faassen | srichter: we don't want to be depending on a twisted trunk with the zope 3 trunk, right? | 15:31 |
philiKON | also, x3.1 needs to be branched | 15:31 |
faassen | philiKON: that goes without saying. :) | 15:31 |
srichter | BTW, just in case you guys did not get the right vibe from my ML messages: WSGI is not the holy grail everybody thinks it is. It masterfully separates server from application, but due to its generality one must define proprietary extensions to hook up a high-quality server and app as Twisted and Zope are | 15:32 |
srichter | faassen: there will be probably releases just for us :-) | 15:32 |
faassen | srichter: there might be good feedback to the web sig. | 15:32 |
faassen | srichter: cool. | 15:32 |
faassen | srichter: that you guys can prepare now. | 15:32 |
philiKON | srichter, what are those so-called "propietary" extensions? | 15:33 |
philiKON | i'm very interested in the wsgi story | 15:33 |
srichter | there are several: | 15:33 |
faassen | srichter: so that perhaps a discussion can be done about extending WSGI. I'm not sure whether that makes sense and what the consequences of the proprietary are exactly..I mean, impact on WSGI compliance. | 15:33 |
srichter | - We need to be able to send additional info for logging purposes | 15:33 |
faassen | srichter: but I'm sure it'd be good to talk about it to the guys who came up with WSGI. | 15:33 |
srichter | - We need some additional info for client certificate management | 15:34 |
philiKON | how do you deal with this additional info for now? | 15:34 |
srichter | faassen: I want to understand the limitations better first and come up with a solution with foom; then we can give constructive critiques with working implementations | 15:35 |
srichter | philiKON: we will extend the wsgi header namespace, I think | 15:35 |
*** ChrisW has left #zope3-dev | 15:35 | |
srichter | for example: wsgi.logginginfo.XXXX (i.e. wsgi.logginginfo.totalBytesSent) | 15:35 |
srichter | we have not discussed SSL in detail yet | 15:36 |
srichter | faassen: the extensions to WSGI would degrade gracefully, of course | 15:36 |
faassen | srichter: okay, as long as that dialog happens. I think it's important that Zope 3 reaches out and says, hey, this stuff is great, and then perhaps adds a bit like "but this would improve it a bit, can we work with you?" | 15:38 |
srichter | right | 15:38 |
faassen | srichter: so all this work is excellent, as it does exactly that, quite apart from the great technical benefits. :) | 15:38 |
srichter | I just want to do this together with the twisted developers; this way we are not alone | 15:39 |
faassen | srichter: makes sense. | 15:39 |
srichter | but this means that we have to be all on the same page | 15:39 |
faassen | srichter: I think that is great. :) | 15:39 |
philiKON | srichter, that's good. as long as it's documented in a README.txt somewhere, i'll be fine and can reproduce it | 15:39 |
*** bradb has quit IRC | 15:40 | |
philiKON | it's also great to see how twsited and zope are reusing each other's parts | 15:40 |
srichter | I am really happy how the twisted people and I interacted this weelend; it was very productive and they are extremely responsive | 15:40 |
srichter | yep | 15:40 |
*** bskahan has joined #zope3-dev | 15:41 | |
*** gintas has joined #zope3-dev | 15:41 | |
*** sashav_ has quit IRC | 15:43 | |
*** MrTopf has joined #zope3-dev | 15:49 | |
*** viyyer has quit IRC | 15:58 | |
*** bradb has joined #zope3-dev | 16:01 | |
*** [apoirier] has joined #zope3-dev | 16:04 | |
philiKON | Theuni, please don't forget to set svn:eol-style=native on text files... it's a repository rule... | 16:05 |
*** apoirier has quit IRC | 16:06 | |
*** bradb has quit IRC | 16:13 | |
*** bradb has joined #zope3-dev | 16:16 | |
Theuni | philiKON: narf. i'm sorry. I thought my configuration is already in place for svn.zope.org | 16:16 |
Theuni | gonna review that | 16:17 |
philiKON | Theuni, np; just letting you know | 16:17 |
Theuni | thanks | 16:17 |
philiKON | we had some cases where windows users would modify a file and check it in and the diff would go over all lines because the line endings changed... | 16:18 |
*** bradb has quit IRC | 16:19 | |
*** Aiste has joined #zope3-dev | 16:21 | |
*** bradb has joined #zope3-dev | 16:24 | |
*** niemeyer has joined #zope3-dev | 16:41 | |
*** BjornT has quit IRC | 16:48 | |
*** ignas has quit IRC | 17:09 | |
*** BjornT has joined #zope3-dev | 17:14 | |
*** MacYET_ has joined #zope3-dev | 17:25 | |
MacYET_ | morning | 17:26 |
*** Damascene has joined #zope3-dev | 17:26 | |
srichter | MacYET_: hi | 17:27 |
*** ignas has joined #zope3-dev | 17:27 | |
srichter | mgedmin: Are you still working on ZODBBasedRequestStorage or have you given up? | 17:27 |
srichter | mgedmin: I am asking, because I will remove it otherwise | 17:28 |
MacYET_ | hi sr | 17:28 |
srichter | MacYET_: how is it going? | 17:28 |
MacYET_ | fighting with five | 17:28 |
MacYET_ | :) | 17:28 |
srichter | oh, can't help you there :-) | 17:28 |
MacYET_ | hehe | 17:29 |
MacYET_ | <utility> is a zcml directive? | 17:30 |
srichter | yes | 17:30 |
* MacYET_ wonders why it is not described in philikons book :) | 17:30 | |
srichter | it isn't? wew. | 17:31 |
MacYET_ | ups, it is | 17:31 |
MacYET_ | fucked up xml namespaces | 17:31 |
MacYET_ | :) | 17:31 |
srichter | :-) | 17:31 |
MacYET_ | component takes an instances and factory take a factory which would act as the component argument | 17:32 |
MacYET_ | ? | 17:32 |
mgedmin | srichter: Ruslan Spivak sent me a couple of patches to make ZODBBasedRequestStorage work | 17:32 |
mgedmin | I wasn't entirely happy with those patches, though, so I didn't apply them | 17:33 |
srichter | ok, so I leave it around | 17:33 |
mgedmin | (I don't like calling connection.sync in random places when it aborts the current transaction with unknown changes) | 17:33 |
srichter | though I am not sure it will all work the same under twisted | 17:33 |
mgedmin | personally I wouldn't mind at all if ZODBBasedRequestStorage disappeared | 17:33 |
srichter | ok, then I remove it | 17:33 |
srichter | we really do not need it | 17:33 |
srichter | a simple dict is enough anyways | 17:34 |
srichter | other than that I got the code working under twisted | 17:34 |
srichter | seems even a bit clearner :-) | 17:34 |
mgedmin | well, if you have a dict, you have to worry about thread-safety yourself | 17:34 |
srichter | MacYET_: this did not make sense :-) | 17:35 |
srichter | mgedmin: right, but you handle that in RequestStorage already | 17:35 |
MacYET_ | i am just confused :;) | 17:35 |
srichter | mgedmin: RequestStorage is effectively a simple dict + thread locking | 17:35 |
srichter | MacYET_: can you rephrase? | 17:36 |
MacYET_ | ...still trying and cursing :) | 17:36 |
srichter | mgedmin: I wish we could provide a simpler method for functional doc tests | 17:40 |
*** hdima has quit IRC | 17:40 | |
srichter | mgedmin: I like the regulaar functional testing API much better | 17:40 |
srichter | where I can pass in my environment variables via a dictionary | 17:41 |
*** srichter has quit IRC | 17:42 | |
*** gintas has quit IRC | 17:42 | |
MacYET_ | I tried to register a component as utilitiy. the unittest for the component pass incluing verfiyClass() but provideUtility refuses to register the component | 17:42 |
*** ChanServ sets mode: +o hazmat | 17:46 | |
*** srichter has joined #zope3-dev | 17:48 | |
mgedmin | srichter, are you talking about forms? | 17:51 |
* MacYET_ throws philikons book into the trashcan...trying sr's bock | 17:51 | |
*** ChanServ sets mode: +o srichter | 17:51 | |
srichter | mgedmin: yeah | 17:51 |
srichter | MacYET_: I think you will do fine with both :-) | 17:51 |
srichter | MacYET_: btw, if you install pure Zope 3, the API docs will help you too | 17:52 |
srichter | I think they are very useful | 17:52 |
srichter | I think it is very useful | 17:52 |
srichter | http://localhost:8080/++apidoc++ | 17:52 |
MacYET_ | may i bother you? | 17:53 |
srichter | MacYET_: sure | 17:54 |
MacYET_ | ok | 17:54 |
MacYET_ | I have IStopwords and a class Stopwords implementing IStopwords | 17:54 |
MacYET_ | <utility provides=".interfaces.IStopwords" component=".stopwords.Stopwords"/> should be enough to register the class as utility? | 17:55 |
srichter | I think you need to use factory instead component | 17:56 |
srichter | because component expects an isntance of Stopwords | 17:56 |
srichter | basically, the component must provide IStopwords, not implement it | 17:56 |
srichter | hold on, I am right back | 17:57 |
*** srichter has quit IRC | 17:57 | |
MacYET_ | how can i pass an instance inside zcml ? | 17:57 |
MacYET_ | component=".stopwords.Stopwords()" ? | 17:57 |
Theuni | i think you would have to to a = Stopwords() within stopwords and refer to it via the dotted name (".stopwords.a") | 17:58 |
*** srichter has joined #zope3-dev | 17:58 | |
* MacYET_ shakes his head against the wall...ok course | 17:58 | |
Theuni | this is pretty much a singleton thingy AFAIK | 17:58 |
srichter | back | 17:58 |
*** ChanServ sets mode: +o srichter | 17:58 | |
* Theuni tried to jump in as a hot spare | 17:59 | |
srichter | cool :-) | 17:59 |
* MacYET_ resyncs Theuni | 17:59 | |
Theuni | *chrckkkksssss | 17:59 |
Theuni | *pling | 17:59 |
MacYET_ | thanks, this works | 18:00 |
Theuni | np | 18:01 |
Theuni | didn't touch z3 since 4 months though ;) | 18:01 |
Theuni | (hmm. but still i'm currently writing the certification documentation on it.) | 18:01 |
Theuni | this really feels 100% scary. | 18:01 |
* MacYET_ wrote his first utility | 18:01 | |
MacYET_ | :)) | 18:01 |
Theuni | *congrats | 18:01 |
srichter | yipee! | 18:02 |
philiKON | MacYET_, what's up? | 18:05 |
MacYET_ | nothing :) | 18:05 |
philiKON | ok | 18:05 |
philiKON | i'm open to criticism :) | 18:05 |
MacYET_ | you mentions <utility> in your mail but the chapter on utilities in your book does not mention it | 18:06 |
philiKON | what chapter do you mean? | 18:07 |
MacYET_ | about local utiliies | 18:08 |
philiKON | no, i mention them a couple of chapters before | 18:08 |
philiKON | e.g. in chapter 16 | 18:09 |
philiKON | example 16.3.4 | 18:09 |
philiKON | shows the <utility /> directive | 18:09 |
philiKON | and, of course, the zcml appendix has an entry on zope:utility | 18:09 |
*** tarek_away has joined #zope3-dev | 18:09 | |
MacYET_ | then the index sucks | 18:10 |
philiKON | ok, that might be a good point | 18:10 |
* philiKON makes a note | 18:10 | |
*** Aiste has quit IRC | 18:11 | |
MacYET_ | but it works now | 18:11 |
MacYET_ | *being happy* | 18:11 |
philiKON | :) | 18:11 |
*** MrTopf has quit IRC | 18:11 | |
philiKON | MacYET_, thanks for the input, i'll see to it that utilities will be explained earlier | 18:13 |
philiKON | and appear in the index | 18:14 |
philiKON | or, rather, appear in the index better | 18:14 |
MacYET_ | :-) | 18:16 |
MacYET_ | much more to come :) | 18:16 |
philiKON | well, bring it on | 18:17 |
philiKON | :) | 18:17 |
* bradb tries to figure out a good reason for why foo.bar = baz appears to simply ignore .bar's constraint. | 18:17 | |
philiKON | is foo.bar a FieldProperty? | 18:17 |
philiKON | or why do you expect it to validate according to a constraint? | 18:18 |
bradb | foo is an SQLObject-based content class that provides a schema in which .bar has a constraint. i expect this constraint to be triggered every time i go to set .bar so that Zope 3 helps me avoid setting a value on that attribute that i don't want (just like it Just Works, if done via a form.) | 18:19 |
*** mkerrin has joined #zope3-dev | 18:20 | |
bradb | it's not much use if it Just Works when done via a browser:editform but sneaks up and surprises me but not Just Working when i set foo.bar directly in Python code. | 18:20 |
bradb | s/but not/by not/ | 18:20 |
philiKON | bradb, well, it's still just a python class; python does no checking itself | 18:20 |
philiKON | if you want explicit checking even at the python class level, you'll have to use FieldProperty | 18:21 |
philiKON | that'll validate every value set to an attribute according to a schema field | 18:21 |
bradb | philiKON: it should Just Work. just like it'll work for permission checking and ensuring that an attribute i'm trying to access is allowed (i.e. not a ForbiddenAttribute, or whatever the exception is.) | 18:21 |
philiKON | zope doesn't magically change the semantics of your classes | 18:22 |
philiKON | use FieldProperty in your class definition and it'll look from the outside as if it Just Works | 18:22 |
bradb | philiKON: i'm asking it to enforce the contract i signed with it | 18:22 |
*** tvon has joined #zope3-dev | 18:22 | |
philiKON | yes. you'll have to do that explicitly | 18:22 |
bradb | philiKON: i think the real problem here is perhaps a missing proxy. (i.e. i would have expected that just like zope 3 can security proxy my classes to enforce my permission configuration, that it also would wrap my classes so that the constraints just work.) | 18:23 |
philiKON | well, it doesn't... | 18:24 |
bradb | philiKON: you're assuming a heck of a lot by thinking I can use FieldProperty in my class's definition :) | 18:24 |
philiKON | true | 18:24 |
philiKON | you probably cannot because of SQLObject | 18:24 |
bradb | philiKON: Would you agree that this should Just Work, or do you think that foo.bar = <whatever> bypassing constraint validation is a more productive route for the user of Zope 3? | 18:24 |
bradb | (user, i.e. a Z3 developer :) | 18:25 |
bradb | philiKON: (and yes, you're 100% right about the note about sqlobject :) | 18:25 |
philiKON | a z3 developer is a python developer who knows (or should know) that a) all contracts we make about objects and classes are not enforced automatically and b) that contracts have to be enforced manually | 18:26 |
bradb | philiKON: in general, i don't want to be a slave to Zope 3 for my content classes anyway, even if i'm not using sqlobject. | 18:26 |
bradb | philiKON: a and b were the same thing there :) | 18:27 |
bradb | philiKON: but i disagree with your statement | 18:27 |
philiKON | yeah, i just realized that | 18:27 |
philiKON | we don't want to introduce strong typing | 18:27 |
bradb | philiKON: z3 enforces that an attribute is accessible, for example, as long as its security-proxied. i'd call this as "automatic" as anything. i want that same kind of enforcement for the contract i sign about field-level validation. | 18:28 |
bradb | s/its/it's/ | 18:28 |
philiKON | you put these two things, security and validation, on the same level | 18:29 |
philiKON | but they're not | 18:29 |
philiKON | security proxying is about protecting objects and data to the outside | 18:29 |
philiKON | validation is about internal data integrity | 18:29 |
bradb | philiKON: they're both part of the contract i signed. | 18:29 |
philiKON | something that an implementation should take of itself | 18:29 |
philiKON | security isn't part of any contract | 18:30 |
philiKON | also, there are a thousand subtleties that will make automatic validation of instance attributes a pain in the ass | 18:33 |
philiKON | imagine constraints (so-called invariants) that are about two fields, not just one | 18:33 |
bradb | philiKON: "i'll provide you this interface if you have this permission". if i have that permission, i go to read the interface, and it's somewhat misleading. it'll tell me things about what attributes there are, but i might as well ignore what the schema is documenting about constraints, because they won't be enforced automatically anyway (except in certain cases, like if i'm changing this thing through an edit form.) | 18:33 |
philiKON | why are you bringing security into this? | 18:34 |
bradb | philiKON: so? that's what programmers are for. :) we solve the hard problems so that users of our software don't have to work so hard. the programmers serve the users (in open source, those are often the same people :), but not vice versa. | 18:34 |
philiKON | well... i'm just saying that what you want will make a lot of other stuff ambiguous or simply break | 18:35 |
philiKON | who says when validation is to happen? | 18:36 |
philiKON | maybe you randomly change data on an object and only require it to be validated according to the schema at the end of the transaction | 18:36 |
philiKON | maybe it always needs to be in shape | 18:36 |
philiKON | this is all application level | 18:36 |
bradb | philiKON: we don't have to mention security in this. it would be enough, for example, for you to try and convince me that it's a good thing that constraint validation Just Works when i edit an object through a form, but doesn't Just Work when i edit the object through Python code. ;) (and, i'm not even wanting to imply that i *expect* somebody should have already fixed this breakage; i'm first trying to get you to agree that having this wo | 18:36 |
bradb | rk properly will make Z3 developers' lives easier. :) | 18:36 |
philiKON | and it is the responsbility of the data store | 18:36 |
bradb | philiKON: well, the edit form manages to get this right, right? :) | 18:37 |
philiKON | well, you maybe think it makes your life easier because you seemed to simply expect it to Just Work? | 18:37 |
bradb | philiKON: yes, like it does on edit forms. | 18:37 |
philiKON | they don't validate objects though | 18:37 |
philiKON | well, edit forms are not "Just work" | 18:38 |
philiKON | you're an application developer, you know that the automated edit forms are sophisticated things | 18:38 |
philiKON | you know that widgets validate form data | 18:38 |
philiKON | that's what you EXPECT from them | 18:38 |
philiKON | i don't think you can expect it from regular python arithmetic, though | 18:38 |
philiKON | having things magically work was one of the biggest mistakes of zope 2 | 18:39 |
bradb | philiKON: what's the point of putting constraint=foo in a field definition then? | 18:40 |
bradb | what does that buy me? | 18:40 |
philiKON | *when* you do validation, you do it by the constraint | 18:40 |
*** vlado has quit IRC | 18:40 | |
philiKON | it's nothing that buys you something automatically | 18:41 |
philiKON | validation is 100% application policy | 18:42 |
philiKON | having a policy imposed on you by the system would be very inconvenient | 18:42 |
bradb | philiKON: why does it do it in edit forms then? | 18:43 |
philiKON | because that's the policy edit forms happen to have | 18:43 |
philiKON | nobody's forcing you to use them | 18:43 |
faassen | bradb: I thought there was somekind of framework built on schema that could validate object set accesses. | 18:43 |
bradb | philiKON: IOW, that's the system imposing a policy on me :) | 18:43 |
faassen | bradb: but I'm not sure how well that works or where it is. | 18:43 |
philiKON | faassen, there's fieldstorage | 18:43 |
philiKON | faassen, but it only works where you store data in __dict__ | 18:43 |
philiKON | faassen, bradb is using sqlobject | 18:43 |
faassen | oh, it'd be nice if you could validate dictionaries. | 18:44 |
faassen | you cannot do taht anymore? | 18:44 |
philiKON | no | 18:44 |
faassen | early on I had a function that did that. | 18:44 |
philiKON | you could once | 18:44 |
philiKON | yes | 18:44 |
philiKON | it got removed | 18:44 |
philiKON | i always wondered why | 18:44 |
faassen | is that what brad wants? | 18:44 |
philiKON | it was very useful | 18:44 |
bradb | faassen: from what i read about how to do it in src/zope/schema/README.txt it looks like something that costs quite a lot of money to create and maintain. | 18:44 |
faassen | bradb: what is it exactly that you want, I missed a bit.. | 18:44 |
philiKON | faassen, bradb wants that every python statement like foo.bar = baz triggers an automatic validation whether baz is a fitting value for the bar attribute on foo | 18:45 |
bradb | faassen: in the same way that it would have been triggered if i set foo.bar to baz via an edit form | 18:45 |
faassen | philiKON: I don't believe that's evil to want. even if you only used it as a testing and debugging aid. | 18:45 |
philiKON | it's not evil to want | 18:45 |
faassen | static checking isn't evil either, nor is runtime assert checking. | 18:45 |
philiKON | but you should turn that knob in your app | 18:46 |
philiKON | not in zope 3 | 18:46 |
philiKON | and it's only too bad that there's no knob for your situation | 18:46 |
faassen | you should be able to say that an object needs this kind of checking. | 18:46 |
faassen | Zope 3 shouldn't be automatically checking this everywhere, as in some cases you don't want this to happen. | 18:46 |
philiKON | "an object" meaning objects of this type | 18:46 |
philiKON | this particular type | 18:46 |
faassen | and you'd duplicate it if it were for form data. | 18:46 |
faassen | once in the form handling, and then you'd have it once again when setting data. | 18:47 |
faassen | bradb: so you want a global policy that did that? you'd need to subclass all the classes from some base class and tell everybody to do it. :) | 18:47 |
faassen | bradb: or perhaps the proxy can do it. | 18:47 |
faassen | but that'd be expensive. | 18:48 |
philiKON | bradb, seriously, couldn't you implement this behaviour in all your classes by haviing a superclass define __setattr__ and doing the validation? | 18:48 |
philiKON | no idea how expensive proxies are | 18:48 |
faassen | well, doing it when you set every attribute is going to be expensive. :) | 18:48 |
faassen | imagine you're looping through 1000 objects. | 18:48 |
philiKON | yup | 18:48 |
faassen | anyway, yeah, I'd simply write a superclass which did the checking somehow. | 18:48 |
philiKON | also, with a proxy there's always the danger of "forgetting to put it on" | 18:48 |
philiKON | or stripping it and not putting it back on | 18:49 |
philiKON | etc .etc. | 18:49 |
*** tvon has quit IRC | 18:49 | |
*** tvon has joined #zope3-dev | 18:56 | |
*** Aiste has joined #zope3-dev | 18:57 | |
*** bradb_ has joined #zope3-dev | 18:57 | |
bradb_ | sorry, lost my connection after the last two q's i asked | 18:57 |
*** alga has joined #zope3-dev | 18:58 | |
*** BjornT_ has joined #zope3-dev | 18:59 | |
philiKON | bradb, you can read our responses at http://zope3.pov.lt/irclogs/ | 19:03 |
bradb_ | yeah, i checked that out, thanks :) | 19:04 |
*** BjornT has quit IRC | 19:04 | |
*** bradb has quit IRC | 19:05 | |
*** BjornT_ is now known as BjornT | 19:06 | |
*** __gotcha has quit IRC | 19:06 | |
*** bradb_ is now known as bradb | 19:06 | |
*** SteveA has joined #zope3-dev | 19:10 | |
*** hazmat has quit IRC | 19:15 | |
*** tvon|x31 has joined #zope3-dev | 19:19 | |
*** MacYET_ has left #zope3-dev | 19:19 | |
*** tvon has quit IRC | 19:20 | |
*** [apoirier] has quit IRC | 19:23 | |
*** niemeyer has quit IRC | 19:28 | |
*** hazmat has joined #zope3-dev | 19:37 | |
*** tarek_away has quit IRC | 19:58 | |
*** bska|mobile has joined #zope3-dev | 20:08 | |
*** SteveA has quit IRC | 20:11 | |
*** bskahan has quit IRC | 20:13 | |
*** regebro has quit IRC | 20:17 | |
*** stub has quit IRC | 20:35 | |
*** tonico has quit IRC | 20:39 | |
*** tonico has joined #zope3-dev | 20:39 | |
*** ccrownhart has quit IRC | 20:42 | |
*** efge has left #zope3-dev | 20:46 | |
*** SteveA has joined #zope3-dev | 20:49 | |
*** th1a has quit IRC | 21:12 | |
*** gintas has joined #zope3-dev | 21:31 | |
*** RaFromBRC has joined #zope3-dev | 21:34 | |
*** SteveA has quit IRC | 21:36 | |
*** ignas has quit IRC | 21:47 | |
*** faassen has quit IRC | 21:50 | |
*** hazmat has quit IRC | 21:56 | |
*** mkerrin has quit IRC | 22:06 | |
*** tvon|x31 has quit IRC | 22:12 | |
*** `anthony has quit IRC | 22:13 | |
*** `anthony has joined #zope3-dev | 22:14 | |
*** mohsen is now known as mohsen-away | 22:17 | |
mgedmin | when you get an UnableToEvolve(6, 'foo', 7), what do the numbers mean? | 22:26 |
srichter | from evolution 6 to 7, I think | 22:26 |
mgedmin | actually, 5 -> 6 raised an exception | 22:27 |
mgedmin | I found it in a log file | 22:27 |
mgedmin | (bin/runzope didn't print the original exception to the console) | 22:28 |
srichter | mmh | 22:28 |
srichter | strange | 22:28 |
srichter | I don't know then | 22:28 |
mgedmin | 7 is the latest available generation, I think | 22:28 |
srichter | oh, ok | 22:30 |
srichter | mgedmin: ok, I fixed the recorder; it is all working now atop twsited; it even seems a bit cleaner than before | 22:36 |
mgedmin | yippee! | 22:36 |
srichter | if you could review the change that would be great | 22:36 |
srichter | I think you guys have more experience with Twisted than me | 22:36 |
*** hazmat has joined #zope3-dev | 22:38 | |
mgedmin | url? | 22:40 |
*** bskahan_ has joined #zope3-dev | 22:44 | |
srichter | mgedmin: http://svn.zope.org/Zope3/branches/srichter-twisted-integration/src/zope/app/recorder/ | 22:47 |
mgedmin | thx | 22:50 |
mgedmin | I specify minimum_generation = 7 | 22:56 |
mgedmin | the database is generation 5 | 22:56 |
mgedmin | if evolve 5->6 fails, I get an UnableToEvolve exception and Zope 3 doesn't start | 22:56 |
srichter | right | 22:57 |
mgedmin | if evolve5->6 succeeds, but evolve 6->7 fails, I get an exception in the log file, but Zope 3 starts up as if everything were ok | 22:57 |
mgedmin | is this normal, or is this a bug? | 22:57 |
srichter | bug | 22:57 |
mgedmin | I don't have time right now to submit a bug report... | 22:58 |
srichter | you can do it tomorrow :-) | 22:58 |
mgedmin | maybe | 23:00 |
mgedmin | I'm going to oxford tomorrow (python UK) | 23:00 |
*** bska|mobile has quit IRC | 23:01 | |
srichter | right, have fun! | 23:01 |
*** BjornT has quit IRC | 23:21 | |
*** BjornT has joined #zope3-dev | 23:21 | |
*** kaczordek has joined #zope3-dev | 23:30 | |
*** mgedmin has quit IRC | 23:44 | |
*** alga has quit IRC | 23:46 | |
*** bradb has quit IRC | 23:46 | |
*** Aiste has quit IRC | 23:47 | |
*** bskahan_ has quit IRC | 23:56 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!