IRC log of #zope3-dev for Thursday, 2005-04-07

*** efge has joined #zope3-dev00:07
*** bskahan has quit IRC00:07
DamasceneI heard that zsync is no longer supported?  If this is the case, how should version control for 'content' be performed?01:02
*** niemeyer has quit IRC01:03
*** RaFromBRC is now known as RaFromBRC|mtg01:04
*** tarek has joined #zope3-dev01:05
projekt01Damascene, where did you hear this?01:27
*** niemeyer has joined #zope3-dev01:36
Damasceneprojekt01: i forgot01:39
Damascenei'm probably wrong01:39
Damasceneif so, then i guess zsync is the way to go01:40
*** MiUlEr has quit IRC01:47
*** srichter has joined #zope3-dev01:56
*** ChanServ sets mode: +o srichter01:57
*** hazmat has quit IRC02:00
*** BjornT has quit IRC02:06
*** RaFromBRC|mtg is now known as RaFromBRC02:06
*** J1m has quit IRC02:15
*** hazmat has joined #zope3-dev02:19
*** tarek has quit IRC02:26
*** MiUlEr has joined #zope3-dev02:38
*** MiUlEr is now known as MiUlErlog02:42
*** Damascene has quit IRC02:47
*** stub has joined #zope3-dev02:47
*** MiUlErlog is now known as lordpy02:52
*** lordpy is now known as MiUlErSan02:52
*** hazmat has quit IRC03:17
*** efge has quit IRC04:03
*** MiUlErSan is now known as MiUlEr04:04
*** MiUlEr is now known as MiUlErChan04:06
*** niemeyer has quit IRC04:08
*** jan_s has joined #zope3-dev04:54
*** projekt01 has left #zope3-dev05:29
*** RaFromBRC is now known as RaFromBRC|afk06:15
*** philiKON has quit IRC06:53
*** AJC has joined #zope3-dev07:17
AJCi'm creating an object dynamically in my publishTraverse function, but the breadcrumbs fail.  how do i set the parent of the object?07:42
*** Damascene has joined #zope3-dev07:47
*** hazmat has joined #zope3-dev08:12
*** RaFromBRC|afk has quit IRC08:54
zagymoin09:06
*** Damascene has quit IRC09:12
*** BjornT has joined #zope3-dev09:14
*** Arnia has quit IRC09:15
*** hdima has joined #zope3-dev09:15
*** Damascene has joined #zope3-dev09:30
*** philiKON has joined #zope3-dev09:40
*** hazmat has quit IRC09:58
*** sashav has joined #zope3-dev09:59
*** jan_s has quit IRC10:37
*** lunatik has joined #zope3-dev11:03
*** AJC has quit IRC11:24
*** J1m has joined #zope3-dev11:57
*** projekt01 has joined #zope3-dev12:02
*** AJC has joined #zope3-dev12:05
*** tarek_ has joined #zope3-dev12:08
*** tarek_ is now known as tarek12:08
*** efge has joined #zope3-dev13:12
*** AJC has quit IRC13:53
*** AJC has joined #zope3-dev13:53
*** kate has joined #zope3-dev14:14
*** kate has left #zope3-dev14:14
*** bskahan has joined #zope3-dev14:19
*** J1m has quit IRC14:25
*** lunatik has quit IRC14:28
*** faassen has joined #zope3-dev14:30
*** srichter has quit IRC14:31
*** lunatik has joined #zope3-dev14:34
*** tarek is now known as tarek_away14:56
*** srichter has joined #zope3-dev15:15
*** ChanServ sets mode: +o srichter15:16
*** tvon has joined #zope3-dev15:19
*** alga has joined #zope3-dev15:54
* andrew_m is away: I'm busy16:12
*** th1a has quit IRC16:13
*** hdima has quit IRC16:15
*** ignas has joined #zope3-dev16:34
*** MiUlErChan has quit IRC16:46
*** deo has quit IRC16:52
philiKONwoa. ~7300 tests16:57
AJCdoes anyone know how i can set the parent of an object created dynamically during a publishTraverse?16:59
SteveAobj.__parent__ = parent perhaps16:59
philiKONyup17:00
AJCi have the first part ok ;-)  but where do i get parent from?  i set it to self, but even then the breadcrumbs complain17:00
philiKONAJC, have it directly provide IContained and set __name__ and __parent__17:00
philiKONwhat's the complaint?17:01
AJCIFolder is ok too?  that also is IContained?17:01
philiKONnot sure17:01
philiKONIFolder is an IContainer17:02
philiKONI wouldn't use IFolder though17:02
AJCok, so i'm fine.17:02
philiKONIFolder is very specific17:02
philiKONno, you're not17:02
philiKONnotice the difference betrween IContainer and Icontained17:02
philiKONtwo different interfaces17:02
AJCwell, in my factory i create folders17:02
philiKONhmm17:02
philiKONthis is just to model custom traversal, right?17:02
*** Theuni has joined #zope3-dev17:03
AJCwell, i'm storing your RST Page class in there17:03
AJCit's an archive basically17:03
philiKONare thos eoflders you create persistent?17:04
AJCFile "C:\Program Files\Python24\Lib\site-packages\zope\app\traversing\browser\absoluteurl.py", line 80, in breadcrumbs   raise TypeError, _insufficientContext17:05
philiKONyeh, sounds like you're missing the __parent__ links17:05
AJCwell, i have an IArchive folder that's persistent, but then it also returns "virtual" objects (itself also) created dynamically17:05
philiKONi think those should be created by a traversal adapter17:06
AJCin publishTraverse, i have:    folder.__parent__ = self17:06
AJC;   return folder17:06
AJCphiliKON, they are, the traverser applies to my IArchive instances17:06
philiKONyour archive folder shouldn't know about all the special ways you want to traverse it; it should just store the stuff17:06
philiKONah, ok17:06
philiKONwhat's folder?17:06
AJCIArchive is a folder17:07
philiKONi meant your publishTraverse17:07
AJChmmm17:07
philiKONwhat's 'folder' there?17:07
AJCi see the problem now17:07
AJCits a new IArchive created from my factory...17:07
philiKONit's an interface?17:08
AJCwith a simple instance, yes17:08
philiKONok17:09
philiKONaha!17:09
AJCbut i think my problem is that i'm creating folders dynamically, but they no longer have objects in them, so i can't look anything up inside...17:09
philiKON>>> from zope.app.folder.interfaces import IFolder17:09
philiKON>>> from zope.app.container.interfaces import IContained17:09
philiKON>>> IFolder.extends(IContained)17:09
philiKONFalse17:09
AJCinteresting17:09
philiKONhowever, Folder subclasses Contained17:09
philiKONyour Archive is a sbuclass of Folder, right?17:10
AJCi've extended the example here: http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Book/traversal.html17:10
AJCyes17:10
*** Aiste has joined #zope3-dev17:10
philiKONAJC, Folders w/o a contained proxy are not physically locatable17:12
philiKONbecause they don't provide IContained17:12
philiKON(ILocation extends IContained)17:12
TheuniHi Aiste17:12
philiKONthis is a bug17:12
philiKONAJC, please file a bug report17:12
philiKONstate that folders inhert from Contained but IFolder doesn't extend IContained17:13
*** niemeyer has joined #zope3-dev17:13
AisteTheuni: hi :)17:13
philiKONso, either Folder shouldn't extend Contained or IFolder should be made to extend IContained17:13
philiKONthe latter might be better for you, but there might be risks with existing ZODBs where folders are contained-proxied17:13
philiKONAJC, in any case, i would use dead-simple stub containers for traversal, not archives17:14
philiKONclass StubContainer(Contained, dict):17:14
philiKON    pass17:14
philiKONah17:14
philiKONhang on17:14
philiKONContained implements IContained17:14
philiKONfalse alarm17:15
AJCphiliKON, ok... so i have only one IArchiveFolder, and that returns IDummyContainer at every publishTraverse?17:15
philiKONyou're talking about interfaces here. that makes no sense17:15
*** Theuni has quit IRC17:15
philiKONhmm. your archives should be physically locatable17:15
AJCmy archives are, and they exist17:15
philiKONcan you paste your publishTraverse again, please17:16
AJCbut when i do an url request /archive/2005/05/04  all those numbers in the date are virtual17:16
philiKONif it's too long, use paste.plone.org17:16
AJCjust containers17:16
philiKONright17:16
philiKONthose virtual ones, what are they?17:16
AJCat the moment, they are also IArchiveFolders, but I'm changing that17:16
philiKONwhy are you talking about interfaces all the time?17:17
AJCbecause the objects are just dummy classes that implement the interface17:17
philiKONso, say that when i ask you about them :)17:17
AJCthat allows my traverser to apply to them17:17
philiKONright17:17
philiKONcan you paste your publishTraverse agian please17:17
AJCwell, like in the book example17:17
philiKONsrichter, i have a functional test failing for apidoc/preferences17:19
philiKONAssertionError: /++apidoc++/modulelist.html contains broken links:17:20
philiKON  /++apidoc++/./++preferences++/apidoc/@@apidocMenu.html:       ForbiddenAttribute: ('__getitem__', <zope.app.preference.preference.PreferenceGroup object at 0x4b60cf0>)17:20
AJChttp://paste.plone.org/135017:20
*** lunatik has quit IRC17:20
*** Theuni has joined #zope3-dev17:20
*** lunatik has joined #zope3-dev17:22
philiKONjust as i suspected17:22
philiKONAJC, folder.__parent__ = self is wrong17:22
philiKONself is your adapter17:22
philiKONyou want folder.__parent__ = self.context17:22
AJCphiliKON, ok, thanks17:22
AJCand also i need,  folder.__name__ = name17:23
AJCdoes the comment about virtual IContainers make sense there?17:23
philiKONi would just say "create a dummy container"17:24
philiKONyou are always talking about interfaces, so there's no way telling when you mean the interface object or an object providing the interface17:24
AJCok, cool.  where's that z3 bug database?  do you still want me to submit a bug...17:24
AJCphiliKON, heh, it's all the same thing really... create "sometihng than provides an IContainer"17:25
AJC:-)17:25
philiKONnah, i was totally off track with Contained/Contained and folder17:25
philiKONno need to file that bug17:25
*** mooded has joined #zope3-dev17:26
srichterphiliKON: yes, it only appears when you run unit and functional tests together17:27
srichterTime and I had a thread about this on the ML17:27
srichterTim and I had a thread about this on the ML17:27
philiKONok17:28
philiKONdidn't read that17:28
*** sashav has quit IRC17:28
philiKONsucks though17:28
philiKONanyway around that?17:29
AJCthanks philiKON17:29
philiKONnp17:29
srichterphiliKON: there is no bug17:31
srichterIFolder does not have to extend IContainer17:31
srichterContained implements IContained directly17:31
philiKONyes17:32
philiKONi found that17:32
philiKONalready called the falls alarm off17:33
srichter:-)17:33
srichterback to grading (100 tests each 4 questions ;-( )17:34
philiKONprobably multiple scheiss, eh?17:37
*** ignas has quit IRC17:46
*** alga has quit IRC17:57
*** garrett-smith has joined #zope3-dev18:00
srichteryep, it's so annoying18:13
philiKONi really hate multiple choice18:14
srichterno, the worst is I have to correct the short answer18:25
srichterso you have to read all those horrible hand-writings18:25
srichteranyone her: if you are still in college stay away from mass courses of 50+ students! :-)18:26
philiKONah, those "essay questions" that really mean you are supposed to write a real sentence instead of marking A, B, C, D or "all of the above"... i can't understand how you can do serious tests like these in any science...18:28
*** xenru has joined #zope3-dev18:35
Damascenedoes it make any sense to port over popular 'apps' that used PHP to zope3?18:57
philiKONwell, "port" is a good wort... i would probably say "rewrite" :)19:00
philiKONif you have too much time on your hands, why not. but workign solutions on PHP are sufficien to me (I use PHP web applications in every day use, for example the Horde/IMP webmailer)19:01
Damasceneyeah i use horde/imp myself.19:02
Damascenei'm looking at 'gallery' as well heh19:02
Damascenei do realize it's mostly a rewrite19:02
Damascenei suppose it violates the best tool for the job axiom... (existing software exists, why write new ones)19:02
Damascenebut i figured it would give zope3 a bit more of a presence?19:03
*** J1m has joined #zope3-dev19:04
philiKONDamascene, sure! if somebody paid me to do it, i'd be happy to... and if you wanan do it, go right ahead19:05
*** xenru has quit IRC19:06
DamascenephiliKON:  haha ok so it's the best tool for the job axiom again.  :)19:07
*** mooded has quit IRC19:08
*** ignas has joined #zope3-dev19:09
*** alga has joined #zope3-dev19:14
*** tarek_away has quit IRC19:19
*** lunatik has quit IRC19:26
*** deo has joined #zope3-dev19:44
J1msrichter, what's up with the failing functional test?19:45
*** stub has quit IRC19:49
srichterJ1m: I haven't had tiome to investigate it yet20:01
srichterit has something to do with running unit and functional tests together20:02
srichterso it is not obvious of what's wrong there20:02
*** Aiste is now known as Aiste|lunch20:04
J1mIt's too bad it got checked in like that.20:16
J1mCan you move that change to a branch until you get it sorted out?20:17
J1msrichter, ping20:26
srichterI'll fix it tonight20:27
srichterit will take me longer to move that stuff to a branch than looking into it20:27
J1mOK, thanks20:28
* andrew_m is back (gone 04:16:43)20:28
*** efge has left #zope3-dev20:29
*** RaFromBRC has joined #zope3-dev20:42
*** faassen has quit IRC21:13
AJCwhat's a boolean test to see if an object provides a certain interface?21:14
J1miface.providedBy(ob)21:14
AJCcool, thanks21:14
* SteveA wonders idly about ob in iface21:15
SteveAbut, we already have   name in iface, i suppose21:15
SteveAor at least, morally have that21:15
philiKONob in iface... interesting21:16
SteveAyou expect  in  to go along with __getitem__ though21:16
SteveAso, it doesn't really work21:16
philiKONrigh21:17
SteveA obj in iface.providers()21:17
philiKONwhat's providers()?21:18
philiKONwhy not  obj in ifrace.providers21:18
SteveAsure21:24
SteveAi'm making this all up21:24
philiKONof course21:24
philiKONi just wonder what 'providers' is.21:24
SteveAit is an object that provides __contains__21:24
philiKONand does return self.providedBy(obj)?21:25
SteveAin implementation, yes21:25
SteveA  clucky in IChicken.providers21:26
SteveA  IChicken.providedBy(clucky)21:26
SteveA  IChicken in IBird.implementers21:26
SteveA  eh?21:27
SteveAthat's odd21:27
philiKONnot really21:27
SteveA  Chicken in IBird.implementers21:27
SteveAthat's what i meant21:27
philiKONright21:27
SteveA  chicken_factory in IBird.implementers21:27
SteveA  IChicken in IBird.extenders21:27
philiKON  IFile in IContentType.providers21:28
philiKONnot sure if the 'in' operator feels natural with this21:28
philiKONof course, i'm totally biased21:28
philiKON"if IContentType.providedBy(IFile):" reads like an english sentence (w/o the elliptic 'is' verb)21:29
SteveAyeah, i agree21:30
AJChmmm, if i'm traversing an object that I've defined, shouldn't it be available as self.context in publishTraverse?21:34
AJC(e.g. i want to access a member MyFolder.myData)21:34
philiKONif you set it to self.context in __init__ then it's available in publishTraverse21:36
AJCwell, in the traverse, isn't self the actual Traverser object?21:38
AJCthen the object being traversed would be self.context21:38
AJChmmm, it seems i should use my interface for this anyway (since all objects being traversed provide the same interface)21:39
*** tonico has quit IRC21:44
*** _projekt01 has joined #zope3-dev21:48
*** projekt01 has quit IRC21:48
AJCok, my Traverser now only applies to IArchiveContainer interfaces.  how do i get the object that implements that interface?21:51
*** bskahan has quit IRC21:57
*** tvon has quit IRC22:09
*** tonico has joined #zope3-dev22:13
*** th1a has joined #zope3-dev22:20
*** tarek_ has joined #zope3-dev22:28
*** AJC has quit IRC22:42
*** Theuni has quit IRC22:51
*** Theuni has joined #zope3-dev22:53
_projekt01J1m, I'm looking for a registry where I can use in a object. Is there a simply registry somewhere?23:03
philiKON{} ?23:06
_projekt01philiKON, You mean me?23:07
philiKONi mean a dict23:07
philiKONand yes, i'm talking to you :)23:07
J1m_projekt01, sorry, I couldn't parse that.23:08
J1m:)23:08
philiKONJ1m, helps if you knew german :)23:08
J1mI know. Sorry.23:08
J1mI wish I did.23:08
philiKONhehe, not your fault23:08
_projekt01Ah, Ok a dict is very simple, but I need the IRegistry interface implemented where I can have avtice and inactive status23:08
J1mYes it is23:08
philiKON_projekt01, IRegistry interface?23:08
philiKONah, you mean for registerables23:08
philiKONi thought you were talkinga bout a very general registry23:09
_projekt01zope.component.interfaces.IRegistry23:09
philiKONit needs to return an iterable of registrations... the docstring doesn't define what 'registrations' are...23:10
philiKONthere's no IRegistration23:10
_projekt01What I'm looking for is to have a container where I can put components in and a registry where I can activate them. The I container should only show items where are Active23:11
philiKONs/where/that/23:11
_projekt01yup23:11
philiKONso, by definition the container only contains Active objecdts? that makes no sense, how are you ever going to add an object to it in the first place?23:12
* J1m waits for philiKON to tease more information out of _projekt0123:13
philiKONsorry, got to go23:13
J1mdang23:14
J1m_projekt01, I still don't understand your question.23:14
_projekt01Perhaps, there are two container implementations in one object . One container for store the objects and a traversable IContainer for list Active items23:14
philiKONwhy not make a view that shows only Active objects?23:15
J1mDo you want the container to maintain registrations of some sort itself?23:15
* philiKON needs to go23:15
J1mOr do you want the container to use the site manager.23:15
J1mJim agrees with philiKON.23:15
J1mBut I suspect that there is a deeper question.23:16
_projekt01I like to implement this in a object (simplyl item) and  support IContainer via a adapter23:16
J1ms/Jim//me23:16
_projekt01Hm, I try it again, I like to implement a small component registry in a simply object. This components inside the registry can be adapted to the object. Something like plugins.23:23
_projekt01Hm, perhaps I have to write a proposal.23:23
srichtercan you give us a use case?23:24
_projekt01I'll try...23:24
_projekt01Let's say you have a simply object, just persistent and locatable. And you have the wiki. I try to find a way where I can put the wiki inside the simply object and write a adapter where is used.23:26
srichterahh, like you want a discussion based on a news item or something like that?23:27
_projekt01During the activation, the simply object get updated with a IWikiInside interface. This interface provides all relevant views and components for to access the wiki inside.23:27
_projekt01Or develop just one object and all other features can be plugged in as additional components.23:28
srichterthis sounds like the workflow problem23:29
srichterI think we solved it nicely there23:29
_projekt01With annotations?23:30
srichteryes23:30
srichterand we had a utility that listened to IObjectCreated events23:31
_projekt01Yes, I saw this23:31
srichterand added the workflow when one was registered for the object23:31
_projekt01But the annotation has different thing that I don't like, e.g. not location, just strings as keys23:32
_projekt01My idea is something like a annotation providing ILocation and supports registrations.23:32
srichterI still do not understand why you want registrations23:33
srichterand annotations do support ILocation well23:33
_projekt01With write methods on a read process!23:33
_projekt01They patch the object's __parent__ on the fly23:34
srichterI am lost :-)23:35
_projekt01Do you know the memento pattern?23:35
srichternope23:35
_projekt01It's a delegation23:35
_projekt01Like the annotation23:36
*** maxgreco has joined #zope3-dev23:36
*** maxgreco has quit IRC23:37
srichterok, so why no use annotations then? :-)23:37
_projekt01I need to activate and deactivate the objects in the annotations23:38
_projekt01Perhaps the registry can be placed in the annotations.23:39
srichterok, ok, so I give up looking for a different solution23:39
_projekt01That's ok, perhaps I come back to you if I have a better sample, thanks23:40
srichterright, so you want to add an IRegistrationManager to the annotations23:40
_projekt01More or less yes23:40
srichterscrap that23:40
_projekt01With out the overhead23:40
_projekt01Why?23:40
srichterright, so you want to add an IRegistrableContainer to the annotations23:41
srichterthis ctainer contains IRegisterable's23:41
srichterin site managers these are utilities, adapters, ...23:41
srichterthe IRegisterableCotnainer has also an attribute called registrationManager that contains the registrations for the registerables23:42
_projekt01Yes, I started to inherit form this, like: PluginManager(RegisterableContainer, BTreeContainer), but I think it's to much, I'm looking for a light wight registry23:44
srichterthen you need to make your own implementations23:45
srichterthey should be straight forward, if you do not want to make use of the adapter registry23:45
_projekt01Now23:45
_projekt01Perhaps I write a own light wight registry and use just the Lazy part.23:45
srichterthe existing implementations are geared to registering components by interface and in an adapter registry23:46
_projekt01Yes, that's to much for my usecase23:46
_projekt01Ok, I make a prototype then I can share it with you and we have a better sample for discussion23:47
srichteryeah23:48
_projekt01Ah, great, I like to change the delegation pattern implemented in tiks.delegation with this registration pattern23:49
_projekt01The delegation is a replacement for the annotations which is traversable and offers a UI for add components in side a simply object.23:51
srichterI see23:51
_projekt01I just like to support activate and deactivate methods, right now the delegations is a simply container like the annotations23:52
_projekt01I workout a prototype and drop a note to you if I'm ready. Then I can hire you for consulting ;-)23:54
srichterof course :-)23:54
_projekt01Perhaps you can take a (paid) look at the hole Tiks framework.23:55
srichtersure23:57

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