FarcePest | i saw "simple" and "not evolved a lot" and thought apes, early humans, etc. | 00:00 |
---|---|---|
srichter | I see | 00:04 |
FarcePest | perhaps it was the idea of territorial pissing that planted that idea | 00:05 |
srichter | he he :-) | 00:06 |
*** MiUlEr has quit IRC | 00:11 | |
*** bska|mobile has joined #zope3-dev | 00:13 | |
*** bskahan has quit IRC | 00:17 | |
*** Aiste has quit IRC | 00:24 | |
*** MiUlEr has joined #zope3-dev | 00:35 | |
*** hazmat has joined #zope3-dev | 00:44 | |
*** bska|mobile has quit IRC | 00:44 | |
*** hazmat has left #zope3-dev | 00:45 | |
*** admp has joined #zope3-dev | 00:47 | |
*** hazmat has joined #zope3-dev | 00:53 | |
*** niemeyer has quit IRC | 01:11 | |
*** bradb has quit IRC | 01:29 | |
*** RaFromBRC has quit IRC | 01:30 | |
*** srichter has quit IRC | 01:43 | |
*** srichter has joined #zope3-dev | 01:43 | |
*** ChanServ sets mode: +o srichter | 01:44 | |
*** ccrownhart has joined #zope3-dev | 01:56 | |
*** __gotcha__ has joined #zope3-dev | 02:14 | |
*** efge has quit IRC | 02:15 | |
*** efge has joined #zope3-dev | 02:15 | |
*** d2m has quit IRC | 02:16 | |
*** efge has quit IRC | 02:19 | |
*** efge has joined #zope3-dev | 02:19 | |
*** hazmat has left #zope3-dev | 02:23 | |
*** hazmat has joined #zope3-dev | 02:27 | |
*** bradb has joined #zope3-dev | 02:28 | |
*** efge has quit IRC | 02:28 | |
*** __gotcha has quit IRC | 02:30 | |
*** BjornT has quit IRC | 02:46 | |
*** RaFromBRC has joined #zope3-dev | 03:11 | |
*** RaFromBRC has quit IRC | 03:14 | |
*** RaFromBRC has joined #zope3-dev | 03:14 | |
*** projekt01 has left #zope3-dev | 03:28 | |
*** srichter has quit IRC | 03:41 | |
*** BjornT has joined #zope3-dev | 03:52 | |
*** stub has joined #zope3-dev | 04:18 | |
*** srichter has joined #zope3-dev | 04:26 | |
*** ChanServ sets mode: +o srichter | 04:26 | |
*** hazmat has quit IRC | 04:54 | |
*** RaFromBRC has quit IRC | 05:08 | |
*** RaFromBRC has joined #zope3-dev | 05:17 | |
*** __gotcha__ has quit IRC | 06:37 | |
*** BjornT has quit IRC | 07:00 | |
*** RaFromBRC has quit IRC | 08:12 | |
*** xenwryly has joined #zope3-dev | 08:52 | |
xenwryly | any word on zope3 with python 2.4? | 08:54 |
*** philiMAC has joined #zope3-dev | 09:05 | |
*** hdima has joined #zope3-dev | 09:17 | |
*** mexiKON has quit IRC | 09:22 | |
philiMAC | xenwryly, it works | 09:24 |
xenwryly | hey man | 09:27 |
xenwryly | I think I read that for zope2, it works but there had not been a security audit | 09:28 |
xenwryly | is it the same deal for z3? | 09:28 |
philiMAC | not really | 09:29 |
philiMAC | z3 should work just fine on py2.4 | 09:29 |
xenwryly | great | 09:30 |
*** Theuni has joined #zope3-dev | 09:32 | |
*** d2m has joined #zope3-dev | 09:51 | |
*** xenwryly has left #zope3-dev | 10:01 | |
*** lunati1 has joined #zope3-dev | 10:02 | |
*** sashav has joined #zope3-dev | 10:03 | |
*** projekt01 has joined #zope3-dev | 10:37 | |
*** MiUlEr has quit IRC | 10:56 | |
*** lunati1 has quit IRC | 11:07 | |
*** RaFromBRC has joined #zope3-dev | 11:14 | |
*** Theuni has quit IRC | 11:30 | |
*** Theuni has joined #zope3-dev | 11:35 | |
*** __gotcha has joined #zope3-dev | 11:38 | |
*** lunatik has joined #zope3-dev | 11:54 | |
*** tarek_ has joined #zope3-dev | 11:54 | |
*** RaFromBRC has quit IRC | 12:25 | |
*** projekt01 has left #zope3-dev | 12:51 | |
*** Aiste has joined #zope3-dev | 13:04 | |
*** ignas has joined #zope3-dev | 13:14 | |
*** ignas has quit IRC | 13:35 | |
*** BjornT has joined #zope3-dev | 13:35 | |
*** SteveA_ has quit IRC | 13:38 | |
*** regebro has joined #zope3-dev | 13:42 | |
*** lunatik has left #zope3-dev | 13:47 | |
*** ignas has joined #zope3-dev | 13:51 | |
*** SteveA has joined #zope3-dev | 14:01 | |
*** bskahan has joined #zope3-dev | 14:08 | |
*** Aiste has quit IRC | 14:19 | |
*** niemeyer has joined #zope3-dev | 14:25 | |
*** tarek_ has quit IRC | 14:25 | |
*** srichter has quit IRC | 14:36 | |
*** ignas has quit IRC | 14:37 | |
*** Aiste has joined #zope3-dev | 14:40 | |
*** mooded has joined #zope3-dev | 14:50 | |
*** srichter has joined #zope3-dev | 15:19 | |
*** Aiste_ has joined #zope3-dev | 15:19 | |
*** ChanServ sets mode: +o srichter | 15:21 | |
*** tonico has quit IRC | 15:21 | |
*** tonico has joined #zope3-dev | 15:26 | |
*** faassen has joined #zope3-dev | 15:34 | |
*** tarek_ has joined #zope3-dev | 15:37 | |
*** Aiste has quit IRC | 15:38 | |
srichter | who is Vobila here? | 15:49 |
bskahan | srichter: I think that's ignas at POV | 15:50 |
srichter | ah ok! | 15:51 |
srichter | thanks | 15:51 |
bskahan | its someone at POV | 15:51 |
bskahan | np | 15:51 |
*** Aiste_ has quit IRC | 15:51 | |
srichter | darn, I wish he would be here | 15:51 |
bskahan | he probably will be in a few hours | 15:52 |
srichter | SteveA: Are the POV guys already in the UK? | 15:52 |
srichter | mmh, I wish I could remember the day when he discussed the body instream problem with Jim | 15:52 |
srichter | I have to fix the bug now, so that Twisted will be happy | 15:53 |
bskahan | it was about a week ago | 15:54 |
srichter | actually two, I just remembered to look at the bug date :-) | 15:54 |
bskahan | if its the bug I'm thinking of | 15:54 |
bskahan | heh | 15:54 |
srichter | yeah, there ist is; March 31 | 15:55 |
bskahan | I ran into http://www.zope.org/Collectors/Zope3-dev/373 with creatorannotator, it can be fixed with the same removeSecurityProxy hack but alga said that solution was unloved when he did it | 15:58 |
bskahan | anyone know a better way to get around it? | 15:58 |
srichter | make sure that your user has the required permission :-) | 16:03 |
bskahan | *sigh* | 16:06 |
bskahan | ok, I think create/edit implies being able to set that metadata | 16:06 |
*** Aiste has joined #zope3-dev | 16:07 | |
srichter | I disagree :-) | 16:07 |
srichter | what should not happen is that it should not fail with this operation | 16:07 |
srichter | but simply not set the annotation | 16:07 |
srichter | you might ask Jim for further advise | 16:07 |
* bskahan nods | 16:08 | |
bskahan | that would mean that the DC info would be out of sync with reality though | 16:09 |
bskahan | I might not want the user to be able to explicitly change "modified" (which I don't), but I always want "modified" to reflect the last change | 16:09 |
*** ignas has joined #zope3-dev | 16:11 | |
srichter | bskahan: write a mail to the list challenging the policy | 16:13 |
srichter | bskahan: I think something useful will come out of that thread | 16:13 |
* bskahan nods | 16:14 | |
srichter | ignas: remember you body instream discussion with Jim? | 16:14 |
srichter | ignas: so if I read the logs right, you decided: | 16:14 |
srichter | to deprecate body and bodyFile; add bodyStream that is effectively the same as bodyFile now | 16:15 |
srichter | right? | 16:15 |
ignas | true | 16:18 |
srichter | ok, I am fixing this bug then | 16:19 |
srichter | because it causes problems with the Twisted integration :-) | 16:19 |
ignas | can't remember what was the decision about making it throw an error if seek()'ed | 16:19 |
srichter | it will just fail | 16:19 |
srichter | because it should not be seekable | 16:20 |
ignas | the fact that it fails silently disturbs me a little, though i guess it is not a significant problem | 16:20 |
srichter | no, it will not be silent | 16:21 |
ignas | oh, i see | 16:21 |
srichter | it will be sormy! | 16:21 |
ignas | was that a mistype or a real word ? :) | 16:21 |
srichter | stormy | 16:22 |
srichter | I meant | 16:22 |
*** SteveA_ has joined #zope3-dev | 16:31 | |
*** SteveA has quit IRC | 16:41 | |
*** projekt01 has joined #zope3-dev | 16:55 | |
*** gintas has joined #zope3-dev | 17:04 | |
*** hdima has quit IRC | 17:06 | |
*** sashav has quit IRC | 17:08 | |
srichter | ignas: I think I have the bug under control :-) | 17:22 |
srichter | except for one case | 17:22 |
srichter | when the publisher retries a request | 17:22 |
srichter | then it simply resets the instream by saying .seek(0) | 17:23 |
srichter | I have no clue how to fix that! :-( | 17:23 |
srichter | any ideas? | 17:23 |
ignas | looking | 17:24 |
ignas | well i heard one idea was to store the request in a file or an attribute to make it seekable ... | 17:25 |
ignas | though i guess it is not allways plausible ... | 17:25 |
srichter | but this defeats the whole purpose of reading the data as you need it | 17:26 |
ignas | true | 17:27 |
srichter | on the other hand a request has to be completed before it is sent to the publisher | 17:27 |
ignas | well, there is a method supports retry | 17:27 |
ignas | supportsRetry | 17:27 |
ignas | which could return False if the requeststream is not seekable ... | 17:27 |
srichter | shrug | 17:28 |
srichter | this means that as soon as we are switching to any WSGI-based HTTP server, we cannot retry anymore | 17:28 |
srichter | (which will include our future default implementation, which is twsited.web2) | 17:28 |
*** BjornT has quit IRC | 17:30 | |
ignas | well, the requirements are pretty steep, we want the ability to handle hyge requests by reading them from a stream only when we need the data, and we want to be capable of "resending" the whole request at the same time ... | 17:30 |
ignas | the hacky evil way would be - implementing a specialcacheing stream that would cache everything that was read from the request, so we could access the data even with the real request being non seekable stream | 17:31 |
*** philiMAC is now known as philiKON | 17:31 | |
ignas | the hacky stream would support seek(0) and would return the cached data untill someone would read() beyond the limit ... | 17:32 |
ignas | yet i think you should consult someone more competent in such issues ;) (because i don't think i know the framework well enough) | 17:33 |
srichter | this is not a bad idea | 17:33 |
srichter | we could wrap the stream by a fake stream that records the read data | 17:34 |
srichter | and supports a method called; reset stream or so | 17:34 |
srichter | resetStream() or so | 17:34 |
srichter | SteveA_: what do you think? | 17:36 |
*** MiUlEr has joined #zope3-dev | 17:36 | |
*** SteveA_ has quit IRC | 17:37 | |
srichter | hah | 17:37 |
srichter | ignas: well, something like this must be the solution | 17:37 |
philiKON | srichter, working on twisted? | 17:38 |
srichter | yeah, and our little seek(0) the stream problem shot right out | 17:38 |
srichter | philiKON: I was able to remove most of the seek code except in retry() | 17:39 |
philiKON | what's the problem with seek()? | 17:39 |
srichter | CGI input streams do not have to be seekable | 17:39 |
srichter | they are not files | 17:39 |
ignas | the stream passed to request is not allways seekable | 17:39 |
philiKON | ic | 17:39 |
philiKON | so, why are zope's input streams seekable? | 17:40 |
srichter | when a request is retried it simply says self._body_instream.seek(0) | 17:40 |
srichter | because ZServer just uses IOStrings | 17:41 |
philiKON | right... so, using seek() is bad; i get it... | 17:41 |
philiKON | what's request retrying supposed to do? | 17:41 |
philiKON | retry the very same request? | 17:41 |
srichter | yes, in case of Conflict errors | 17:41 |
philiKON | ic | 17:41 |
philiKON | there must be another way that just dooing seek(0) | 17:42 |
philiKON | after all, there's no new information to be parsed | 17:42 |
philiKON | so it's all in the request already | 17:42 |
srichter | right, so one suggestion was to wrap the stream | 17:42 |
srichter | and when it is read keep a copy of the data | 17:42 |
srichter | the wrapper would need to be smart, since it needs to track readlines and readline calls as well | 17:44 |
srichter | But luckily readline does return its newline character, so we can just append to a stringio | 17:46 |
FarcePest | you could write to a real temporary file, too. delete it after you open it and it will go away when you close it, at least with unix semantics. if it's small, it shouldn't actually hit the disk in most cases | 17:50 |
srichter | FarcePest: but this is the same problem; I either have to read all of the stream before I need it (often I do not need it) or I have to cache what has been read | 17:51 |
srichter | I think the second is the lesser evilk | 17:51 |
srichter | I think the second is the lesser evil | 17:51 |
FarcePest | yeah, cache it into a real file instead of cstringio. doesn't cstringio still concatenate strings? or is it more efficient than that? | 17:52 |
srichter | no clue | 17:53 |
srichter | will a tmp file be more efficient, if it does? | 17:53 |
FarcePest | it might be, it shouldn't be written to disk unless it's relatively large, or the request takes a long time (more than a few seconds) | 17:54 |
srichter | so here is what I have: | 17:55 |
FarcePest | this is due to buffering | 17:55 |
srichter | class HTTPInputStream(object): | 17:55 |
srichter | """Special stream that supports caching the read data. | 17:55 |
srichter | This is important, so that we can retry requests. | 17:55 |
srichter | """ | 17:55 |
srichter | def __init__(self, stream): | 17:55 |
srichter | self.stream = stream | 17:55 |
srichter | self.cacheStream = cStringIO.StringIO() | 17:55 |
srichter | def read(self, size=None): | 17:55 |
srichter | data = self.stream.read(size) | 17:55 |
srichter | self.cacheStream.write(data) | 17:55 |
srichter | return data | 17:55 |
srichter | def readline(self): | 17:55 |
srichter | data = self.stream.readline() | 17:55 |
srichter | self.cacheStream.write(data) | 17:55 |
srichter | return data | 17:55 |
srichter | 17:55 | |
srichter | def readlines(self, hint): | 17:55 |
srichter | data = self.stream.readlines(hint) | 17:55 |
srichter | self.cacheStream.write(''.join(data)) | 17:55 |
srichter | return data | 17:55 |
srichter | actually, I probably move that code to BaseRequest, even though it does not support retry | 17:56 |
srichter | no, actually it is ok in HTTP :-) | 17:56 |
*** BjornT has joined #zope3-dev | 17:56 | |
FarcePest | only difference would be to make self.cacheStream be a real file object, and use os.remove() immediately after opening | 17:57 |
srichter | yeah, we can do this later, if we see problems | 17:57 |
srichter | I am always very skeptical about os calls it frameworks liek Zope | 17:57 |
FarcePest | would be easy to have two implementations, or to do as a subclass, at least for testing | 17:58 |
FarcePest | or have a factory function that returns a file-like object: either a stringio or a real file that goes away when closed | 17:59 |
srichter | actually, I have to add another method to ensure that all of the original stream has been read | 17:59 |
srichter | right | 17:59 |
FarcePest | once upon a time, i wrote a unix-only SafeIO file-like object in C (this was for python-1.5) | 18:01 |
srichter | he he | 18:01 |
FarcePest | the point of it was, i needed it to timeout safely, and I also needed to do the line ending translations and byte-stuffing for SMTP and POP | 18:02 |
FarcePest | so it worked on file descriptors, did it's own buffering, and used select with a timeout | 18:02 |
srichter | cool | 18:03 |
FarcePest | improved throughput a lot; it was primarily for a POP server I wrote | 18:03 |
FarcePest | fun state machine logic with gotos | 18:04 |
FarcePest | and switch | 18:04 |
*** Theuni has quit IRC | 18:08 | |
*** bradb has quit IRC | 18:09 | |
srichter | :-) | 18:13 |
philiKON | srichter, why do we need to capture the verbatim stream anyway, if we actually are going to parse the very same request data upon retry... why not re-use the already-parsed request data? | 18:15 |
*** SteveA has joined #zope3-dev | 18:15 | |
srichter | philiKON: no we do not parse always the request | 18:15 |
srichter | the body_instream is everything after the headers | 18:15 |
srichter | so in fact, for HTML stuff we are not using it at all | 18:15 |
srichter | currently we only use it in XML-RPC and WebDAV, which send request bodies | 18:16 |
philiKON | ah; so if an xmlrpc/webdav view already did some read(), there's no way for us to retry? | 18:16 |
philiKON | (currently that is) | 18:16 |
srichter | yep | 18:16 |
philiKON | ok, so it would make sense to cache it then | 18:17 |
srichter | yeah, I am almost done with it too | 18:17 |
srichter | one more test | 18:17 |
philiKON | cool | 18:17 |
philiKON | still, better to avoid read() in the future then | 18:17 |
srichter | but you cannot | 18:18 |
srichter | if you are interested in the request body, you have to read | 18:18 |
srichter | request.body is deprecated based on Jim's suggestions on IRC from March 31, 2005 | 18:18 |
philiKON | right | 18:19 |
srichter | dang, WSGI causes a lot of indirection | 18:20 |
philiKON | so, what's the replacement? | 18:20 |
srichter | just use bodyStream directly | 18:20 |
philiKON | uh, where's the difference? | 18:20 |
srichter | body was a string | 18:20 |
srichter | bodyFile was a stream that was renamed to bodyStream | 18:20 |
philiKON | ok | 18:20 |
srichter | FarcePest: so andy, what are you doing with Zope 3 these days? | 18:24 |
srichter | :-) | 18:24 |
FarcePest | experimenting with schoolbell a bit | 18:26 |
srichter | I see, cool | 18:26 |
th1a | Seeing how many people he can jam directly into the ZODB. | 18:26 |
srichter | schoolbell is bringing developers to Zope 3; that is cool! | 18:27 |
th1a | Nothing like actual applications. | 18:27 |
srichter | th1a: so he is working for you? :-) | 18:27 |
th1a | No. | 18:27 |
FarcePest | http://bowleg.neosouth.net/cgi-bin/viewcvs.cgi/ <-- i worked on this at the pycon sprints with michael bernstein | 18:27 |
FarcePest | we're going to host it somewhere else eventually. it's a weblog (bowleg is an anagram) | 18:28 |
philiKON | talked to michael abou tit | 18:29 |
philiKON | exciting! | 18:29 |
* philiKON wants to use it eventually | 18:29 | |
srichter | FarcePest: ahh, I see; you worked with Michael on the Blog app | 18:29 |
philiKON | FarcePest, i might want to contribute some day, so i hope you'll host it on some open repo | 18:29 |
FarcePest | the general idea is that there won't be comments in the usual sense; you can comment on someone else's blog entry by making one of your own | 18:30 |
FarcePest | in theory, you can still create a tree that looks like a comment tree but made up of entries | 18:32 |
*** bradb has joined #zope3-dev | 18:33 | |
FarcePest | to compare it against MessageBoard, the entries are not containers, so each weblog is flat | 18:33 |
philiKON | that's cool | 18:33 |
philiKON | how do you manage associations? | 18:34 |
FarcePest | we don't, it's very early yet | 18:34 |
philiKON | ok | 18:34 |
srichter | FarcePest: so its more like the wiki package | 18:35 |
FarcePest | in the sense that it is flat but there is a tree you can deduce from links, yes (i am thinking of zwiki) | 18:36 |
srichter | right, this is exactely what I am doing | 18:37 |
srichter | keeping a list of children and parents in wikis | 18:38 |
srichter | and then having a custom traverser | 18:38 |
FarcePest | do you keep your child/parent references as url, uri, objectId? | 19:01 |
srichter | objectid | 19:06 |
srichter | this way it is much easier for the traverser work | 19:06 |
*** tarek_ has quit IRC | 19:10 | |
*** stub has quit IRC | 19:12 | |
philiKON | a simple association framework using intids would also be cool; that way, comments could occurr anywhere in the site and not necessarily as blog articles | 19:12 |
srichter | philiKON: I think we should just embrace schooltool's association framework | 19:19 |
srichter | it is just way cool | 19:19 |
philiKON | ah, right, i remember | 19:20 |
philiKON | never looked at it | 19:20 |
philiKON | hwo does it work? | 19:20 |
* bskahan agrees | 19:20 | |
srichter | I do not know the internals, just the api | 19:20 |
bskahan | philiKON: you define the relationship as a triple, roleA, relationship, roleB | 19:23 |
srichter | yeah, basically subject predicate object | 19:24 |
philiKON | yes, i'm reading thru README.txt right now | 19:25 |
bskahan | the blah use in schooltool is for creating many-to-many groups, the more interesting use is creating calendar subscriptions | 19:25 |
philiKON | this should be in z3 | 19:26 |
bskahan | philiKON: poke th1a | 19:26 |
th1a | Yes? | 19:27 |
th1a | You rang? | 19:27 |
srichter | MArius already send a mail to the schooltool list about this | 19:27 |
bskahan | heh | 19:27 |
bskahan | th1a: did you see that mail? | 19:27 |
srichter | CCing MArk to ask him whether it can be dual-licenced in ZPL | 19:27 |
*** stub has joined #zope3-dev | 19:30 | |
*** mooded has quit IRC | 19:45 | |
srichter | does anyone here know how we parse data sent via POST? | 19:51 |
philiKON | doesn't the request.form populator of HTTPRequest do taht? | 19:52 |
srichter | I dunno; let me check | 19:52 |
*** stub has joined #zope3-dev | 19:54 | |
srichter | philiKON: where is that code? I cannot find it | 19:54 |
srichter | ok, it is in publisher/browser.py | 19:55 |
srichter | but it uses FieldStorage?!? | 19:56 |
philiKON | browser.BrowserRequest.processInputs() | 19:59 |
srichter | yeah, so far so good | 19:59 |
srichter | I think something in cgi.FieldStorage might not work correctly | 20:00 |
*** stub has quit IRC | 20:02 | |
*** stub has joined #zope3-dev | 20:02 | |
*** mgedmin has joined #zope3-dev | 20:14 | |
*** gintas has quit IRC | 20:18 | |
srichter | okay, so something seems to be different in the environment, so that the values are not read | 20:25 |
srichter | definitely a cgi module thing | 20:25 |
*** tvon has joined #zope3-dev | 20:30 | |
*** stub has quit IRC | 20:32 | |
*** stub has joined #zope3-dev | 20:32 | |
*** stub has quit IRC | 20:45 | |
*** stub has joined #zope3-dev | 20:56 | |
*** faassen has quit IRC | 21:04 | |
philiKON | srichter, does zeo work with z3 yet? | 21:11 |
*** MiUlEr has quit IRC | 21:18 | |
* philiKON finds that it doesn't look like it is | 21:24 | |
*** nisha_cgx has joined #zope3-dev | 21:27 | |
*** RaFromBRC has joined #zope3-dev | 21:31 | |
*** RaFromBRC has quit IRC | 21:36 | |
*** RaFromBRC has joined #zope3-dev | 21:36 | |
*** tvon has quit IRC | 21:42 | |
*** hazmat has joined #zope3-dev | 21:48 | |
*** stub has quit IRC | 21:48 | |
*** tvon has joined #zope3-dev | 21:52 | |
*** bskahan has quit IRC | 21:59 | |
srichter | philiKON: I have never looked at ZEO | 22:01 |
srichter | not even for Zope 2 | 22:01 |
*** bskahan has joined #zope3-dev | 22:02 | |
*** ignas has quit IRC | 22:08 | |
*** mgedmin has quit IRC | 22:30 | |
*** tvon has quit IRC | 22:34 | |
*** Aiste has quit IRC | 22:35 | |
*** bskahan has quit IRC | 22:42 | |
*** deo has joined #zope3-dev | 22:46 | |
*** lunati1 has joined #zope3-dev | 22:47 | |
*** tarek_ has joined #zope3-dev | 22:48 | |
*** SteveA has quit IRC | 22:50 | |
*** SteveA has joined #zope3-dev | 22:51 | |
*** lunati1 has quit IRC | 22:59 | |
*** hazmat has quit IRC | 23:00 | |
*** SteveA has quit IRC | 23:00 | |
*** hazmat has joined #zope3-dev | 23:05 | |
*** SteveA has joined #zope3-dev | 23:07 | |
*** _projekt01 has joined #zope3-dev | 23:16 | |
*** projekt01 has quit IRC | 23:16 | |
*** efge has joined #zope3-dev | 23:19 | |
philiKON | srichter, got it working :) | 23:19 |
srichter | cool | 23:20 |
*** __gotcha has quit IRC | 23:20 | |
srichter | philiKON: did I tell you that I will receive an award for Outstanding Contributions to Undergraduate Education from Tufts? | 23:22 |
philiKON | no, you didn't | 23:22 |
srichter | I guess my career should be obvious to everyone now :-) | 23:22 |
philiKON | congratulations! | 23:22 |
srichter | thanks! | 23:22 |
*** srichter has quit IRC | 23:58 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!