[03:03:33] --- Maniac-yawa is now known as Maniac- [03:40:49] <-- azaad (~jxj@sv-fw.looksmart.com) has left #peak [07:53:35] --> jack-e (nobody@pD9EBE4AA.dip.t-dialin.net) has joined #peak [07:53:45] re [07:58:57] * aloisius is back (gone 14:35:29) [08:01:04] aloisius: are you logging the channel ?? [08:01:54] jack-e: yes, I have almost everything except first few ours of existence. [08:02:09] ql .. will they be available somewhere ?? [08:02:49] jack-e: are there some rules how to do this? Do you have URL for some existing archiv or software? [08:03:42] no idea yet .. but i'ld find it interesting when i could read what has happend on this channel .. [08:04:22] the simplest solution would be some bot that writes a file every day to a space where one could reach it via browser .. [08:05:31] we could develop a peak-based system for that ;-) [08:07:39] jack-e: ok, I will tear one-day pieces from continuous log. Later I can prepare some simple bot. [08:08:10] fine .. [09:09:01] * jack-e is gone (11:09AM): .. autoaway .. [09:36:40] * jack-e has returned... [atl] [09:41:17] passend [09:41:24] ups .. wrong window [09:53:41] --- jack-e is now known as jack-e|away [10:54:00] * jack-e|away is gone (12:54PM): .. autoaway .. [10:55:16] --- jack-e|away is now known as jack-e [10:55:18] * jack-e has returned... [atl] [10:55:22] maniac: online ?? [11:56:00] * jack-e is gone (1:56PM): .. autoaway .. [13:07:16] * Maniac is online as of now [13:10:24] heya .. [13:10:36] i think i solved the infinite-recursion issue [13:11:09] there were some changes to storage/connection:ManagedConnection that i didn't update in my subclasses .. [13:12:44] cool, i have a quick morning meeting (8:15am here) and then i'll test things for you if you want [13:12:58] ok [13:13:27] i tested against my imap-server .. it works locally .. but i'ld be interested if net.mail.imap works with UW-Imap as well [13:34:52] brb [13:34:55] <-- jack-e has quit ("gone") [15:14:52] btw, with the twisted irc library it's pretty trivial to write a logging bot [15:15:21] someone would just have to write something to expose to a web page [17:42:00] --> jack-e (nobody@pD9EBE4AA.dip.t-dialin.net) has joined #peak [17:42:25] re [18:03:38] heh, brb [18:03:54] jack-e: i did some tests with imap and it worked with courier-imap but not with uw [18:09:13] ok [18:09:17] * aloisius is away: mangiare le scarpe [18:09:29] what where the problems with uw-imap ? [18:10:10] i'll paste the traceback [18:10:28] ok [18:11:25] [-(~/projects)> python nll_imap.py [18:11:25] Traceback (most recent call last): [18:11:25] File "nll_imap.py", line 15, in ? [18:11:25] print i.getMessagecount() [18:11:25] File "/usr/local/lib/python2.2/site-packages/peak/storage/data_managers.py", line 318, in setstate [18:11:26] ob.__setstate__(self._load(oid,ob)) [18:11:28] File "/usr/local/lib/python2.2/site-packages/nll/net/mail/imap.py", line 288, in _load [18:11:31] return self.stateForFolder(folder, flags) [18:11:32] UnboundLocalError: local variable 'flags' referenced before assignment [18:12:05] This is the little script: [18:12:07] from peak.api import * [18:12:07] from nll.api import * [18:12:07] from nll.app import makeRoot [18:12:07] class myMailbox(net.mail.IMAPMailbox): [18:12:08] connection = binding.bindTo('imap://aUser:aPass@localhost', [18:12:10] adaptTo=net.mail.IIMAPConnection, [18:12:12] offerAs=[net.mail.IIMAPConnection]) [18:12:16] s = myMailbox(makeRoot()) [18:12:20] storage.begin(s) [18:12:24] i = s.INBOX [18:12:28] print i.getMessagecount() [18:12:30] storage.commit(s) [18:13:46] uhm .. i think INBOX refers to a folder named "INBOX" .. is this correct for UW-Imap as well ?? [18:14:24] uw-imap does use Maildir style mailboxes in users homedir .. right ? [18:16:36] the error you get is a coding error .. but it says, that the imaplib-command 'list "%"' does not return a body which i think is, because of the wrong "foldername" used by default [18:17:29] or the result does not coop with my regex used ... [18:23:09] i'm back soon .. optimizing my font-setup .. so x11 needs to be restarted .. and i think i'll get something to eat soon .. [18:23:22] <-- jack-e has quit ("gone") [19:59:45] --> pje (~pje@n00.bcrtfl01.us.wh.nameservers.net) has joined #peak [19:59:59] G'day [20:01:59] howdy pje [20:14:02] how's peak? [20:19:58] The same. [20:21:57] --> jack-e (nobody@pD9EBE4AA.dip.t-dialin.net) has joined #peak [20:22:08] Howdy, Ulrich [20:22:09] re [20:22:21] hey Phillip :) [20:22:31] how are things going ?? [20:22:37] Not too bad. [20:22:47] Started work on an example app that'll be used to shape peak.web. [20:23:20] heh, 'The same.' [20:23:40] Maniac: you asked about PEAK; Ulrich's question was more general. :) [20:24:09] * pje tends to answer what's asked, especially when tired. [20:24:18] pje: i watch all your steps ;-) .. i find it very interesting how you will write your first public available peak application .. [20:24:42] :) [20:25:03] So far I'm still backfilling prerequisites, like datetime... [20:25:34] But so far there's a rather cool example of how to do a set of command-line commands based on a single config file... [20:25:46] I got the idea for that in a dream last night. :) [20:26:02] :) .. looks promising [20:26:21] you see code in your dreams? [20:26:51] jack-e: btw i played more with imap. seems to work flawlessly on courier [20:27:00] jack-e: and no it does not use maildir it uses mbox [20:27:05] er UW that is [20:27:14] ok .. i just guessed .. [20:27:34] am i right, that the path's (imap-folder-name) differes on UW-Imap ? [20:27:50] Maniac: occasionally. [20:28:12] Unforunately, usually my brain isn't smart enough to do much with the code while sleeping... [20:28:27] Often it goes over the same problem over and over and over again all night... [20:28:48] sounds familiar .. [20:28:52] jack-e: i dont' think the path's are different [20:28:56] But that's made up for by the sometimes-brilliant flashes that occur. [20:31:06] .list('%') i think would be interesting .. [20:31:08] ups [20:31:23] ^ is for maniac [20:34:11] pje: one question on Zconfig: when defining multi-key/sections, they get stored as list in the attribute that i configured, right ? [20:34:21] Yes. [20:34:30] I think there is a way to get certain things as a dictionary... [20:34:38] I think that's only for multi-key though. [20:35:00] ok .. then i think i understood how to use zconfig finally ;-) .. acmgr should be refactored during next week i think [20:36:10] one can think of it, as a possiblity to provide a structure of ready-configured instances (tree) that form an application .. i think [20:36:39] Yes. [20:37:06] that's a very nice extension to the current stuff i'm doing :))) [20:37:10] Or you can think of it as a hierarchical serialization. [20:37:18] yes [20:38:47] sooo .. i'm still fighting with my Xfree to stop painting unwanted text on my screen .. i'll update my terminal an be (hopefully) back soon .. [20:38:57] cu [20:39:00] <-- jack-e has quit ("gone") [21:00:40] come back jack come back! [21:04:49] jack i belive i have some answers : [21:04:51] :P [21:37:32] <-- Maniac (~daManiac@209-5-247-105.mb.skyweb.ca) has left #peak ("hometime baby!") [22:11:55] --- Maniac- is now known as Maniac [22:12:00] now i'm home baby! [22:19:30] --> azaad (~jxj@sv-fw.looksmart.com) has joined #peak [22:20:43] pje, thanks for getting an example project going and in CVS. :) [22:21:00] You're welcome. [22:21:10] And, of course, for all the brilliant work in general... PEAK is amazingly cool. [22:21:13] Hopefully it will become an actual working useful thing soon. [22:22:21] I was wondering, what would be involved in creating a peak.naming CORBA locator? [22:22:53] I don't know. What's a CORBA locator? [22:22:56] * pje grins [22:23:07] Are you talking about the CosNaming interfaces? [22:23:42] Yes, or any user-definable plug-in to locate a remote object, for that matter. [22:24:26] Do you want to be able to access this knowledge in PEAK, from a CORBA service, or the other way around? [22:26:26] I'm not sure I'm parsing that question right... I'd like to try building CORBA-enabled services in Python using PEAK as much as possible. [22:27:07] Do you want to write code that can access an existing CORBA naming service? [22:27:21] Or are you wanting to write a CORBA naming service that accesses data from PEAK? [22:27:24] That's what I'm asking. [22:27:35] They're rather different things. [22:28:02] Ah, yes. I'm interesting in making use of an existing CORBA naming service. [22:28:16] Okay. [22:28:32] Though the latter has some really interesting potential as well. [22:28:33] So, you need a few things... [22:28:43] First, one or more name or address classes [22:28:49] Second, a context class [22:29:08] And third... I forget what else. :) [22:30:31] Mostly, a name class can usually just be a CompoundName or CompositeName with a custom syntax. [22:30:46] You probably don't actually need to really create a custom name class, as such. [22:31:17] If you want to have an address type as well (so that you can use URLs as bindings), then you'll need to make one. [22:31:38] The main thing you need, is a context. Subclass NameContext for names and AddressContext for addresses. [22:31:43] Maybe what I want to do is really two different things. Aside from providing a naming interface I want to be able to bind to a handle for the remote object as well. [22:31:47] Override the _get method to actually look up a name. [22:32:00] And that's about it, unless you want fancier techniques. [22:32:11] Okay, so you probably want to support ior: URLs, eh? [22:32:30] * pje isn't sure that's actually the right terminology... [22:32:51] I think it's "corbaloc:", but I'm new to CORBA as well as PEAK. :) [22:33:01] Ah. You have my sympathies, then. :) [22:33:13] Anyway, you'll need two context classes, then. [22:33:35] One to handle the corbaloc: address, and one to look up the address from the naming service. [22:34:05] The naming context should return a 'naming.LinkRef("corbaloc:...")' from its _get() method when it retrieves a name. [22:34:23] This will cause it to get automatically looked up (like a symlink) [22:35:09] Hmm, ok... [22:35:17] You'll probably also need some way to bootstrap your naming context so it knows what naming service to use, etc. [22:35:30] This is probably best done with configuration properties. [22:35:44] Was that a "ok, good", or "ok, I'm not sure I follow"? :) [22:36:30] I'm assuming the idea here is you'd like to do something like "bindTo(CorbaName('foo/bar'))", and [22:36:34] cobraloc is cross platform? [22:36:53] i thought it was usually IOR or somesuch [22:37:04] I *think* I follow. Most of PEAK is still pretty hazy for me, but I've been looking at Ulrich's code and your unit tests and doc strings, and it's becoming a little clearer each day. [22:37:18] the CORBA lookup service then retrieves corbaloc:57439075934759 from the naming service, and then the corbaloc: address context retrieves the actual object. [22:37:43] Maniac: I suggested IOR first, he said corbaloc:... I have no clue what corbaloc even is, so don't quote me on anything. :) [22:37:50] ah [22:38:03] i thought cobraloc was omniORB specific [22:38:23] Azaad: Hmm, most of PEAK is hazy but it's really cool, you say? ;) [22:38:39] If I make it more confusing, will it become cooler? ;) [22:39:00] peak is too smart for laymen like myself. I sense it's cool just can't figure it out :P [22:39:06] Maniac: maybe it is. I've never even heard of it, so you know more than me here. :) [22:39:39] (That was in re: corbaloc/omniORB, not PEAK) [22:39:43] lol [22:39:49] i was scratching my head LOL [22:39:49] Obviously, I've heard of PEAK. :) [22:40:03] You make a hell of a case in your "what PEAK can do" statements, but figuring out how to actually *use* it is where it gets really hazy. [22:40:05] * Maniac thought pje was on 'the sauce' [22:41:21] Secret sauce, evidently. [22:41:27] Hmm, in an omniORBpy example, a name is built like so: [22:41:30] name = [CosNaming.NameComponent("test", "my_context"), [22:41:30] CosNaming.NameComponent("ExampleEcho", "Object")] [22:41:34] btw the webpage still references peak 0.5a as the current release [22:41:56] Which webpage, Maniac? There are an awful lot of them. [22:42:05] peak.telecommunity.org [22:42:12] .com even [22:42:16] What, the *front* page? [22:42:31] It may not seem like a lot of pages unless you have to maintain them. :) [22:42:44] Additionally one must instantiate a "root context" to resolve the above, which would be used for all further lookups. [22:42:50] Thursday, May 1, 2003 [22:42:51] PEAK version 0.5 alpha 1 is released! Read the release announcement, then go check out the downloads area. [22:42:57] need new news [22:43:18] Oh... yeah, probably. I keep announcing stuff on the mailing list and not on the main page. [22:43:44] I'll happily take contributions for stuff to go on the main page, though. :) [22:44:02] Who knows, maybe when I finish 'bulletins' I can run it on the web site as the front page. :) [22:44:04] ok, my contribution is reference the latest release :P [22:44:17] You might just mention PyProtocols and 0.5a2 (backdated, of course) [22:44:31] Azaad: I'm afraid I can't really help too much with the CORBA stuff. [22:45:12] Duncan Grisby is your corba man (wrt python) [22:45:19] I will mention that to implement CORBA's two-part names, you will need to either have a custom name parser, or use some kind of string syntax to separate each pair of parts. [22:45:27] Is there a standard string syntax for CORBA names? [22:45:38] I was really just looking for help in creating a new naming scheme that one could reference with a simple URL, letting it do all the lookups and such for you. [22:46:38] If you use URLs, you'll need a parser. [22:46:49] If you use names, you can supply them in code. [22:47:28] Eg. bindTo(CorbaName([('test','my_context'),('ExampleEcho','Object')])) [22:47:41] Okay, so the readability sucks... [22:48:15] But that's essentially CORBA's fault here. :) [22:48:44] If there is a standard syntax like 'my_context:test/Object:ExampleEcho' or some such, you could use that to parse from a URL. [22:49:08] Although probably a ':' isn't the best character to use as a separator. :) [22:49:21] Maybe '=' would read better. [22:49:36] ok corbaloc does not seem to be omniORB specific [22:49:44] Hmmm... my_context=test/Object=ExampleEcho looks almost readable... :) [22:49:51] http://www.iona.com/support/articles/3147.102.xml [22:50:20] corbaloc: might be a 3.0-ism... I'm digging the docs now... [22:51:16] Ok, yes, that page gives an example URL: corbaloc:iiop:1.2@per-cs-001:3500/NameService [22:53:41] * pje is looking at some docs re corbaname: URLs [22:56:02] Apparently there is such a thing as a "stringified name"... so far no luck finding the syntax. [22:56:30] But there is a corbaname: URL scheme that defines where to find the naming service, and then includes the stringified name. [22:59:32] Found the spec... http://www.omg.org/cgi-bin/apps/doc?formal/02-09-02.pdf [23:00:30] Ah, yes... looks like the example would be rendered as 'test.my_context/ExampleEcho.Object' [23:00:32] Ugh. [23:02:13] Okay... so you need a compound name class for this, specifying the syntax. [23:02:29] Alright. [23:02:36] And you need a corbaname: URL class, that uses that compound name class as one of its fields. [23:02:59] And you'll create a NameContext subclass to do the retrievals. [23:03:34] As long as you've defined your address and name classes properly, the subclass will only need to know how to actually access the CORBA naming service, and convert from your name class to something usable by the service. [23:04:10] Now, if you also need to interpret corbaloc:, you need an address class for that too, and an AddressContext subclass to retrieve the referenced objects. [23:04:28] As with the name context, it'll just need a _get() method to do this. [23:05:21] Good luck. :) [23:06:54] I've got to get something to eat, and then head home. [23:06:56] Thanks. :) [23:07:06] So if there are no more questions from anybody for tonight...? [23:07:17] I'll dig around in the source code to see if I can figure out how to do any of the above. [23:07:27] Check out 'peak.naming.factories' [23:07:37] Especially modules that subclass contexts. [23:07:39] I have many, but I'll pace myself. :) [23:07:52] Yes, I've started looking at those. [23:08:00] Ciao, all. [23:08:25] Bye [23:08:29] <-- pje has quit ()