IRC log of #zope3-dev for Friday, 2007-08-31

*** greenman has quit IRC00:16
*** dobee has quit IRC00:22
*** dobee has joined #zope3-dev00:23
*** naro has quit IRC00:38
*** srichter has quit IRC00:44
*** ccomb has joined #zope3-dev00:58
*** spython has quit IRC01:00
*** lucielejard has quit IRC01:02
*** jodok has quit IRC01:13
*** jodok has joined #zope3-dev01:13
*** greenman has joined #zope3-dev01:16
*** timte has quit IRC01:22
*** dobee has quit IRC01:24
*** srichter has joined #zope3-dev01:26
*** regebro has left #zope3-dev01:32
*** ChanServ sets mode: +o srichter01:46
*** J1m has quit IRC01:51
*** strichter has joined #zope3-dev01:51
*** srichter has quit IRC02:05
*** jodok has quit IRC02:14
*** redir has quit IRC02:16
*** ccomb has quit IRC02:29
*** rcrafton has quit IRC02:35
*** nathany has quit IRC02:37
*** rcrafton has joined #zope3-dev02:37
*** dunny has joined #zope3-dev02:39
*** sm has quit IRC02:46
*** dunny_ has joined #zope3-dev02:48
*** dunny has quit IRC02:48
*** sm has joined #zope3-dev02:48
*** b52laptop has quit IRC02:57
*** stub has joined #zope3-dev02:57
*** strichter has quit IRC03:11
*** dunny_ is now known as dunny03:23
*** pbugni has quit IRC03:57
*** pbugni has joined #zope3-dev04:25
*** stub has quit IRC05:02
*** stub has joined #zope3-dev05:04
*** Ariel_Calzada has joined #zope3-dev05:36
*** ktwilight_ has joined #zope3-dev05:57
*** srichter has joined #zope3-dev06:09
*** ktwilight has quit IRC06:12
*** strichter has joined #zope3-dev06:18
*** srichter has quit IRC06:18
*** strichter has quit IRC06:25
*** srichter has joined #zope3-dev06:25
*** ChanServ sets mode: +o srichter06:25
*** strichter has joined #zope3-dev06:31
*** srichter has quit IRC06:45
*** ktwilight has joined #zope3-dev06:48
*** ktwilight_ has quit IRC07:02
*** ktwilight_ has joined #zope3-dev07:03
*** ktwilight has quit IRC07:11
*** philiKON_ has joined #zope3-dev07:17
*** ktwilight has joined #zope3-dev07:23
*** philiKON has quit IRC07:24
*** ktwilight_ has quit IRC07:38
*** ktwilight_ has joined #zope3-dev07:38
*** strichter is now known as srichter07:43
*** ChanServ sets mode: +o srichter07:43
*** ktwilight has quit IRC07:44
*** SteveA has quit IRC07:52
*** jap has quit IRC07:52
*** philiKON_ has quit IRC07:52
*** alecm has quit IRC07:52
*** rocky|away has quit IRC07:52
*** nouri has quit IRC07:52
*** __cbcunc__ has quit IRC07:52
*** johnlr2 has quit IRC07:52
*** Ariel_Calzada has quit IRC07:52
*** fcorrea has quit IRC07:52
*** Aiste has quit IRC07:52
*** WebMaven has quit IRC07:52
*** pbugni has quit IRC07:52
*** benji has quit IRC07:52
*** dokai has quit IRC07:52
*** Theuni has quit IRC07:52
*** ktwilight_ has quit IRC07:52
*** rcrafton has quit IRC07:52
*** BjornT has quit IRC07:52
*** tav has quit IRC07:52
*** markusleist has quit IRC07:52
*** CrippsFX has quit IRC07:52
*** xbeanx has quit IRC07:52
*** bigkevmcd has quit IRC07:52
*** lisppaste6 has quit IRC07:52
*** tav has joined #zope3-dev07:57
*** zagy has joined #zope3-dev07:57
*** ktwilight_ has joined #zope3-dev07:57
*** philiKON_ has joined #zope3-dev07:57
*** Ariel_Calzada has joined #zope3-dev07:57
*** pbugni has joined #zope3-dev07:57
*** rcrafton has joined #zope3-dev07:57
*** benji has joined #zope3-dev07:57
*** fcorrea has joined #zope3-dev07:57
*** markusleist has joined #zope3-dev07:57
*** alecm has joined #zope3-dev07:57
*** rocky|away has joined #zope3-dev07:57
*** Aiste has joined #zope3-dev07:57
*** BjornT has joined #zope3-dev07:57
*** WebMaven has joined #zope3-dev07:57
*** SteveA has joined #zope3-dev07:57
*** bigkevmcd has joined #zope3-dev07:57
*** jap has joined #zope3-dev07:57
*** nouri has joined #zope3-dev07:57
*** CrippsFX has joined #zope3-dev07:57
*** __cbcunc__ has joined #zope3-dev07:57
*** lisppaste6 has joined #zope3-dev07:57
*** dokai has joined #zope3-dev07:57
*** xbeanx has joined #zope3-dev07:57
*** johnlr2 has joined #zope3-dev07:57
*** Theuni has joined #zope3-dev07:57
*** irc.freenode.net sets mode: +o tav07:57
*** zagy has quit IRC07:57
*** baijum has joined #zope3-dev07:59
*** sm has quit IRC08:01
*** naro has joined #zope3-dev08:05
*** jukart has joined #zope3-dev08:12
*** strichter has joined #zope3-dev08:14
*** cursor has joined #zope3-dev08:21
*** dobee has joined #zope3-dev08:22
*** srichter has quit IRC08:29
*** alecm has quit IRC08:50
*** greenman has quit IRC09:00
*** yvl has joined #zope3-dev09:02
*** sorin has joined #zope3-dev09:03
*** sorin is now known as sorindregan09:03
*** ghendi has joined #zope3-dev09:11
*** jodok has joined #zope3-dev09:16
*** rcrafton has quit IRC09:21
*** dunny has quit IRC09:27
*** srichter has joined #zope3-dev09:36
*** ChanServ sets mode: +o srichter09:36
*** strichter has quit IRC09:44
*** jfroche has joined #zope3-dev09:57
*** baijum has quit IRC10:07
*** baijum has joined #zope3-dev10:12
*** kleist has joined #zope3-dev10:21
*** timte has joined #zope3-dev10:53
*** bigkevmcd has quit IRC11:07
*** bigkevmcd has joined #zope3-dev11:11
*** greenman has joined #zope3-dev11:20
*** jodok has quit IRC11:28
*** MrTopf has joined #zope3-dev11:32
*** strichter has joined #zope3-dev11:32
*** agroszer has joined #zope3-dev11:33
*** MJ has joined #zope3-dev11:35
*** cursor has quit IRC11:35
*** MrTopf_ has joined #zope3-dev11:39
*** MrTopf_ has quit IRC11:40
*** norro has joined #zope3-dev11:40
*** MrTopf_ has joined #zope3-dev11:41
*** MrTopf has quit IRC11:42
*** jfroche has quit IRC11:44
*** jfroche has joined #zope3-dev11:45
*** srichter has quit IRC11:48
*** b52laptop has joined #zope3-dev11:55
*** MrTopf_ is now known as MrTopf11:55
*** projekt01 has joined #zope3-dev11:59
*** ferrafox has joined #zope3-dev12:03
*** jodok has joined #zope3-dev12:08
*** tav_ has joined #zope3-dev12:17
*** tav has quit IRC12:25
*** grahams has quit IRC12:34
*** ignas has joined #zope3-dev12:46
*** wiggy has joined #zope3-dev12:49
*** dunny has joined #zope3-dev13:00
*** b52GM has joined #zope3-dev13:02
*** mkerrin has joined #zope3-dev13:09
*** Ariel_Calzada has quit IRC13:31
*** _srichter has joined #zope3-dev13:43
*** benji has quit IRC13:46
*** ferrafox_ has joined #zope3-dev13:46
*** strichter has quit IRC13:58
*** goschtl has joined #zope3-dev14:03
*** ferrafox has quit IRC14:06
*** rcrafton has joined #zope3-dev14:13
*** _srichter has quit IRC14:25
*** CrippsFX has quit IRC14:59
*** srichter has joined #zope3-dev15:08
*** nikhil_n has joined #Zope3-dev15:10
*** ChanServ sets mode: +o srichter15:12
*** benji has joined #zope3-dev15:24
*** mgedmin has joined #zope3-dev15:38
*** ghendi has quit IRC15:52
*** j-w has joined #zope3-dev15:55
*** j-w has left #zope3-dev15:55
*** kleist has quit IRC16:01
*** jsadjohnson has joined #zope3-dev16:01
*** amit_am has joined #zope3-dev16:15
*** Lacrymology has joined #zope3-dev16:20
Lacrymology:Q16:20
Lacrymology:q16:20
Lacrymologydamn vim16:20
*** Lacrymology has left #zope3-dev16:20
*** dissonans has joined #zope3-dev16:21
dissonansI find that zope.interface.implements affects the baseclass of the class in question16:22
dissonans__provides__ shows up in dir(BaseClass)16:22
dissonanseven though hasattr(BaseClass, "__provides__") is still False16:22
*** greenman has quit IRC16:24
*** pbugni has quit IRC16:24
*** J1m has joined #zope3-dev16:30
*** nikhil_n has left #Zope3-dev16:32
*** sorindregan has quit IRC16:32
rocky|awayis there anyway to tell zc.buildout to give me tracekbacks when errors occur?16:33
*** redir has joined #zope3-dev16:34
J1mrocky|away, yes, use -D16:37
rocky|awayJ1m: i'm really only just getting started using eggs... how would i tell an a recipe for my part to not go to pypi but use an svn version of my recipe instead?16:38
yvldissonans, hasattr(BaseClass, "__provides__")  is True if class implements(ISomething) - at least on Zope3.2 :)16:40
dissonansyvl:  I've pasted a test script which illustrates my problem with zope.interface: http://rafb.net/p/i9FpQB54.html16:41
J1mCheck out the package from subversion.  Then tell buildout to create a develop egg from it.  All parts will prefer the develop egg.16:41
rocky|awayahh16:41
rocky|awaythanks16:41
dissonansi.e., baseclass doesn't implement any interface, subclass A implements an interface, subclass B does not, subclass B breaks16:41
dissonansthat is inspect.getmembers on subclass B will break at least16:42
mgedmindissonans: in general you cannot always expect that 'foo' in dir(obj) implies hasattr(obj, 'foo')16:42
mgedminconsider a property that conditionally raises AttributeError16:42
mgedminwhich is more or less exactly what you stumbled upon16:43
dissonansmgedmin: anyhow it breaks code in the standard lib16:43
dissonansand confused the hell out of me16:43
*** rlo has joined #zope3-dev16:43
dissonans"explicit is better than implicit"16:45
ignasyour patches to improve the internals of zope.interfaces are welcome16:45
* mgedmin is not sure how that applies here16:45
dissonansmgedmin: my problem with this is that it mutates my baseclass via a derived class16:46
dissonansa no-no in my book16:46
dissonansignas: can this behaviour be avoided then, or is it there for good reason?16:46
dissonansI have better ways to spend my time than hacking zope code16:46
*** Lacrymology has joined #zope3-dev16:47
*** Lacrymology has left #zope3-dev16:47
J1mA class' implements spec depends on the implements specs of the bases classes, so it has to create them if they don't exist.16:47
ignasdissonans: i have better ways to spend time than explaining you internals of code you don't have time to hack16:47
J1mPerhaps a better approach would have been to store this information outside the classes.16:47
dissonansignas: I could understand and try hack it if there's any point in doing so ...16:47
J1mdissonans, I'm talking to you. And I am the author of the code in question.16:48
dissonansJ1m: I understood you were talking to me16:48
ignasJ1m: would returning an new empty data structure every time work in such case?16:48
J1mI don't know the source of this discussion.16:48
J1mNo16:49
J1mBecause if a declaration is later added to a base class, the subclasses would need to reflect it.16:49
dissonansJ1m: the problem is that an interface-aware subclass affects other non-interface-aware subclasses16:49
ignasoh, so you need all sub classes referring the container of the baseclass?16:50
J1ma suitable change would be to store the information outside the classes, but I doubt it would really change the fact that assuming that dir is a guarantee of attributes is broken.16:50
ignasnot sure if the word container is the right one16:50
dissonansI'm contemplating migration to zope.interface, but not in a forced manner :)16:50
J1ma subclass spec has to return to the specs of it's base classes.16:50
dissonansJ1m: inspect.getmembers is the symptom of the problem, my issue is that the non-interface-aware baseclass is affected16:51
*** redir has quit IRC16:51
J1mdissonans, from a theoretical point of view, I appreciate and agree with your distaste for having specs injected into base classes.16:51
dissonansfor me it is out of practical considerations :_)16:52
mgedmindissonans: have you considered that your code that relies on dir() also fails to work with proxies that delegate all attributes via __getattr__ ?16:52
J1mdissonans, inspect.getmembers is probably a symptom of a naive inspect implementation.16:52
mgedminI wouldn't rely on dir() for anything other than debugging purposes16:52
J1mexactly16:52
dissonansregardless of dirs and what not I don't like my baseclass being affected16:52
dissonansit's theoretically unclean and super confusing in practice16:53
J1mdissonans, in practice, the injection of specs in base classes doesn't really matter all that much.16:53
J1mdissonans, fair enough. If it is *that* important to you, then don't use zope.interface.16:53
dissonansJ1m: sure I'd like to use zope.interface, but I think that if at all possible it should be solved otherwise16:53
J1mLots of things are possible but not important enough to do.16:54
J1mWhile I agree with your sentiment, it isn't that important, at least not to me.16:54
dissonansJ1m: if you deem it possible I might even put it on my TODO list ...16:55
J1mIf I were doing it over -- which I'm not -- I'd store the specs in an external data structure.16:55
dissonansmy main problem with it is the confusion it caused, I'm sure other zope.interface newbies will be equally surprised16:55
* J1m shrugs16:55
*** goschtl has quit IRC16:56
ignasdissonans: not really, most people don't care about attributes they don't use16:56
ignasthey way I see it, it's a performance optimization16:56
dissonansignas: it bit me indirectly16:56
ignasthat makes interfaces a bit faster, with a very low cost16:57
dissonansI used inspect.getmembers via the mock module (which I use in tests)16:57
mgedmindissonans: you seem to be the first one to be surprised in... how many years now?16:57
J1mignas, I doubt it makes interfaces any faster.16:57
mgedminothers usually don't notice16:57
mgedminJ1m: it could be solved if the subclass spec stored a reference to the base class and did a getattr(cls, '__provides__', None) every time, at additional expense16:57
ignasJ1m: hmm, i thought you were creating the structure preemptivelly so you could reference it directly instead of looking up the spec every time16:57
J1mThere is a cleaner implementation, I just doubt it is a priority of anyone to fix it.16:58
J1mignas, the structure doen't have to be stored in the class.16:58
J1mdoesn't16:58
*** tav_ is now known as tav16:58
*** ChanServ sets mode: +o tav16:58
J1mIt could, for example, be stored in a weak key dictionary.16:59
ignasoh16:59
J1mwhich is how I would do it if I had some other reason to refactor that implementation.16:59
ignasso it's more to make it extensible, rather than for speed?16:59
J1mYou could argue that storing __bases__ is for speed, although I didn't think of it that way.17:00
J1mIt is to make it *work*.17:00
dissonansthen make it right ;)17:01
dissonansI might try my hand at it17:01
* dissonans goes back to work17:01
J1mA subclass spec needs to depend on base class specs and if someone adds a spec to the base class, then it needs to be reflected in the subclass.17:01
J1mdissonans, if you want to attack this, that would be fine.  It is fairly straightforward I believe.17:02
dissonansI would hope so17:02
dissonansthe easier the better17:02
dissonansbtw, in the zope.testing world is there any use of mock objects?17:03
dissonansand if so, any integration between mocks and interfaces?17:03
*** rocky|away is now known as rocky17:04
J1mIt depends on whether you use the correct definition -- or the loose definition used on the Python testing mailing list.17:04
J1mwe commonly use stub objects.17:04
dissonanswell, I know of the strict definition17:04
dissonans"fake objects" should be the general term17:04
J1mI really don't have time to get into that discussion.17:05
dissonansdo you check stubs against interfaces?17:05
dissonansto keep them in sync?17:05
J1mno.17:05
J1mand we don't use mocks in the precise sense.17:05
J1mI share Martin Fowler's skepticism of the mock approach except in very narrow applications.17:06
* mgedmin too17:06
dissonansthat's not important, I just figured it might be useful to verify a mock's interface against the real class17:06
mgedminyes17:06
dissonansI use mocks (or fakes or whatever you want to call it) quite a bit, but that's me17:06
mgedminI sometimes dream of a variant of verifyObject that makes sure my stubs implement a subset of the real interface17:07
dissonansmgedmin: I think I will extend my Mock class with support for interfaces17:07
mgedminif you really want all your mocks to implement the full interface, you can use the real verifyObject17:07
dissonansit's been many a time I figured I could need that sort of thing17:07
* mgedmin instead decided to use fewer stubs and more real objects in the test fixtures17:08
dissonansthe problem is mainly attributes, I already check methods17:08
dissonansthat is instance variables17:09
dissonansare problematic17:09
*** xbeanx has quit IRC17:09
*** xbeanx has joined #zope3-dev17:10
J1mdissonans, I'm not entirely sure what you are talking about.17:11
J1mI'll note that zope.interface has a verification utility that is commonly uses in tests to partially verify that objects under test are consistent with their interfaces.17:12
dissonansJ1m: I mean that I can easily verify that a mock's methods are consistent with the mocked class17:14
dissonansbut not attributes17:14
dissonanss/attributes/instance variables/17:14
dissonanswhich is where interfaces come into play, or so I'm thinking17:14
J1mI don't really know why you'd care.  Not that I really care why you care. :)17:14
dissonansbecause mocks go out of sync??17:15
dissonanswith the original interface17:15
J1mmocks are just test fixtures.17:15
* J1m stops17:15
*** gumpa has joined #zope3-dev17:16
dissonansok nevermind, there is an itch that I am scratching although it doesn't affect others (except through bugs)17:17
* dissonans goes back to scratching that itch17:17
*** rlo is now known as redir17:18
*** xbeanx has joined #zope3-dev17:20
*** goschtl has joined #zope3-dev17:21
*** strichter has joined #zope3-dev17:31
*** Aiste has quit IRC17:34
*** goschtl has quit IRC17:36
*** jfroche has quit IRC17:47
*** srichter has quit IRC17:48
*** ccomb has joined #zope3-dev18:04
*** b52Centos has joined #zope3-dev18:07
*** b52lap has joined #zope3-dev18:07
*** b52laptop has quit IRC18:07
*** b52GM has quit IRC18:08
*** timte has quit IRC18:12
*** jukart has quit IRC18:24
*** stub has quit IRC18:27
*** nathany has joined #zope3-dev18:29
*** timte has joined #zope3-dev18:30
*** b52lap has quit IRC18:37
*** b52lap has joined #zope3-dev18:38
*** jodok has quit IRC18:40
TheuniHumm. J1m. I see that you (19 months ago) started working on a profiler package for zope 3. do you think it's still functional?18:43
J1mwha?18:43
TheuniI stumbled over "profilestats"18:44
TheuniI'm looking for some profiling support for Zope 3.18:44
TheuniSVN blames you for it. :)18:44
*** jodok has joined #zope3-dev18:44
Theuniit looks like it still might work18:45
*** pbugni has joined #zope3-dev18:45
J1mI don't remember what you are talking about.18:45
TheuniK. I'll just try then.18:46
*** strichter has quit IRC18:46
* mgedmin pimps http://mg.pov.lt/blog/benchmarking-zope3-apps.html and http://mg.pov.lt/blog/profiling.html on the subject of profiling z3 views18:47
Theunithanks18:48
mgedminif you find something more convenient, I'd love to know18:50
Theuniok, so that package of jim's looks like its made for uploading profiler statistic files, not switching the profiler on/off in your instance18:52
mgedminI'd love a good visualisation tool for profiler stats18:53
mgedminsomething sysprof-like, perhaps?18:53
*** b52Centos has quit IRC18:54
J1mmgedmin, check out:18:54
J1mhttp://svn.zope.org/Sandbox/J1m/pstats2html.py?rev=41311&view=auto18:54
J1mIt would be even cooler if I was good at js.18:54
*** b52Centos has joined #zope3-dev18:54
mgedmininteresting18:54
mgedminany sample output?18:54
J1mno, I haven't used it for some time.18:55
J1mYou should be able to point it at any pstats file though.18:55
mgedminthanks18:56
* mgedmin gotta go now18:56
*** mgedmin has quit IRC18:56
*** MJ has quit IRC18:59
*** MrTopf has quit IRC18:59
*** dobee has quit IRC19:15
*** baijum has quit IRC19:16
*** rcrafton has quit IRC19:21
*** yvl has quit IRC19:23
*** rocky has quit IRC19:37
*** jsadjohnson has quit IRC19:37
*** ignas has quit IRC19:48
*** gumpa has quit IRC19:49
*** mkerrin has quit IRC19:50
*** jodok has quit IRC19:58
*** edgordon has joined #zope3-dev20:01
*** ferrafox_ has quit IRC20:05
*** jfroche has joined #zope3-dev20:12
*** rcrafton has joined #zope3-dev20:18
*** grahal has joined #zope3-dev20:19
*** fcorrea has quit IRC20:19
*** rcrafton has quit IRC20:34
*** fcorrea has joined #zope3-dev20:54
*** jfroche has quit IRC20:59
*** benji has quit IRC21:00
*** benji has joined #zope3-dev21:07
*** MJ has joined #zope3-dev21:07
*** J1m_ has joined #zope3-dev21:11
*** ignas has joined #zope3-dev21:17
*** ccomb has quit IRC21:27
*** ignas has quit IRC21:39
*** Ariel_Calzada has joined #zope3-dev21:39
*** benji has quit IRC21:41
*** rcrafton has joined #zope3-dev21:41
*** agroszer has quit IRC21:44
*** J1m_ has quit IRC21:47
*** J1m_ has joined #zope3-dev21:48
*** J1m_ has quit IRC21:56
*** MJ has quit IRC21:56
*** lucielejard has joined #zope3-dev21:59
*** jodok has joined #zope3-dev22:00
*** grahal has quit IRC22:00
*** __cbcunc__ is now known as cbcunc22:04
*** rlo has joined #zope3-dev22:04
*** marianom has joined #zope3-dev22:04
*** rlo has quit IRC22:07
*** jsadjohnson has joined #zope3-dev22:10
*** naro has quit IRC22:10
*** redir has quit IRC22:13
*** jodok has quit IRC22:27
*** Ariel_Calzada has quit IRC22:32
*** jodok has joined #zope3-dev22:32
*** jodok_ has joined #zope3-dev22:40
*** nathany has quit IRC22:56
*** benji has joined #zope3-dev22:56
*** jodok has quit IRC22:57
*** pbugni has quit IRC23:10
*** jodok_ has quit IRC23:15
*** fcorrea has left #zope3-dev23:32
*** alecm has joined #zope3-dev23:34
*** amit_am has left #zope3-dev23:40
*** philiKON_ is now known as philiKON23:52
*** J1m has quit IRC23:58

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