2007-08-06T00:48:38  <xorAxAx> ROTFL
2007-08-06T00:48:41  <xorAxAx> mvl writes:
2007-08-06T00:48:43  <xorAxAx> "I have now added request throttling to MoinMoin (FCGI) itself;"
2007-08-06T00:48:55  <xorAxAx> looks like he wrote surge protection himself :)
2007-08-06T00:52:05  <grzywacz> Who is mvl?
2007-08-06T01:06:40  <ThomasWaldmann> talking before hacking is sometimes useful :)
2007-08-06T01:40:15  <CIA-28> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2610:ffe8c2d9a4ba 1.7/MoinMoin/script/migration/ (_conv160.py _conv160_wiki.py _tests/test_conv160_wiki.py): 1.6 converter: only convert current rev of a page, added commented failing test cases
2007-08-06T04:03:49  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2625:af857f8c2e44 1.7-jabber-knowak/jabberbot/i18n.py: Import BotConfig in i18n module (makes testing easier...)
2007-08-06T04:03:50  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2626:b0a8154e8874 1.7-jabber-knowak/jabberbot/xmlrpcbot.py: Create SimpleXMLRPCServer when the thread is actually started.
2007-08-06T04:03:51  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2627:9db0237b056f 1.7-jabber-knowak/jabberbot/_tests/test_xmppbot.py: Add first tests for the xmpp bot.
2007-08-06T04:03:52  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2628:ec855cfb2561 1.7-jabber-knowak/MoinMoin/config/multiconfig.py: Load event handler lazily.
2007-08-06T04:03:54  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2629:40cf22f3f40b 1.7-jabber-knowak/MoinMoin/_tests/test_sourcecode.py: Don't test wiki pages and don't write files if there are no changes.
2007-08-06T04:03:57  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2630:3f499601e702 1.7-jabber-knowak/jabberbot/ (_tests/test_xmppbot.py xmlrpcbot.py): Whitespace fixes.
2007-08-06T04:04:00  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2631:9e899085df6e 1.7-jabber-knowak/MoinMoin/script/migration/ (_conv160.py _conv160_wiki.py _tests/test_conv160_wiki.py): Merge main.
2007-08-06T08:19:23  <ThomasWaldmann> moin
2007-08-06T08:57:32  <lanius> moin
2007-08-06T09:03:19  <ThomasWaldmann> moin lanius
2007-08-06T09:04:11  <ThomasWaldmann> get_bool: add a comment to refactor that after wikiutil.get_* stuff doesnt need a request any more
2007-08-06T09:05:25  <ThomasWaldmann> + if arg in [u'1', u'true', u'yes']:
2007-08-06T09:05:25  <ThomasWaldmann> + return True
2007-08-06T09:05:25  <ThomasWaldmann> + return False
2007-08-06T09:05:46  <ThomasWaldmann> --> return arg in ...
2007-08-06T09:06:50  <lanius> ok
2007-08-06T09:12:15  <ThomasWaldmann> lanius: E           coverage_modules.update(getattr(self.obj, 'coverage_modules', []))
2007-08-06T09:12:19  <ThomasWaldmann> >           AttributeError: 'list' object has no attribute 'update'
2007-08-06T09:12:28  <lanius> in which test?
2007-08-06T09:12:34  <ThomasWaldmann> about all
2007-08-06T09:13:18  <lanius> maybe coverage_modules has to be a set then ;)
2007-08-06T09:14:56  <ThomasWaldmann> yeah, you broke it :)
2007-08-06T09:17:38  <ThomasWaldmann> but even if one fixes that, 33 tests fail
2007-08-06T09:19:24  <lanius> i know
2007-08-06T09:19:39  <lanius> but i will finish the unit test work today
2007-08-06T09:20:02  <lanius> got bigger than i thought
2007-08-06T09:21:01  <ThomasWaldmann> ok
2007-08-06T09:21:19  <lanius> but i already fixed a few bugs in between :-)
2007-08-06T09:21:44  <lanius> and after i'm done the unit test will work for every backend you write
2007-08-06T09:23:17  <ThomasWaldmann> except the backend is broken :)
2007-08-06T09:23:28  <lanius> :-D
2007-08-06T09:49:15  <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2752:b23b62da7e80 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Add error/status messages
2007-08-06T09:49:25  <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2775:b94f942f2457 1.7-maninfo-vpv/ (24 files in 14 dirs): merge from main
2007-08-06T10:07:40  <johill> lanius: hm, yes but they need it for translation
2007-08-06T10:10:47  <ThomasWaldmann> johill: request=None optional parameter and if it is None, use _ = lambda x: x
2007-08-06T10:11:24  * DrFrasierCrane la la la (just singin' :)
2007-08-06T10:21:18  <ThomasWaldmann> the singing psychiatrist :-P
2007-08-06T10:21:48  <DrFrasierCrane> lol i think it's a first time someone recognized my nick :-)
2007-08-06T10:22:27  * ThomasWaldmann knows how to use google :)
2007-08-06T10:23:06  <DrFrasierCrane> :-( I thought you are fellow Frasier fan :-)
2007-08-06T10:25:21  <johill> ThomasWaldmann: yeah, that would work
2007-08-06T10:31:25  <grzywacz> @_@
2007-08-06T10:31:25  <moinBot`> grzywacz: Error: "_@" is not a valid command.
2007-08-06T10:31:32  <grzywacz> moinBot`, be quiet ;)
2007-08-06T10:31:32  <moinBot`> grzywacz: Error: "be" is not a valid command.
2007-08-06T10:31:38  <grzywacz> :<
2007-08-06T10:31:47  * grzywacz dances a happy dance
2007-08-06T10:33:37  <lanius> johill: you can just do _ = lambda x: x
2007-08-06T10:33:57  <grzywacz> Yup.
2007-08-06T10:34:10  <johill> yes but then I'd have to do the translation in the except clause way out
2007-08-06T10:34:26  <lanius> way out?
2007-08-06T10:36:50  <johill> yeah in the macro code
2007-08-06T10:38:33  <lanius> don't understand that
2007-08-06T10:39:34  <johill> well if I do _ = lambda x: x
2007-08-06T10:39:42  <johill> then the string will end up in the po file
2007-08-06T10:39:49  <johill> but it won't actually be translated for output
2007-08-06T10:40:07  <johill> so then I'll have to do request.getText(exception.something) before sending it out
2007-08-06T10:40:25  <johill> if you just do _ = lambda x: x it obviously doesn't actually get translated
2007-08-06T10:41:52  <ThomasWaldmann> johill: you can translate it if request is not None
2007-08-06T10:41:58  <ThomasWaldmann> just make it optional
2007-08-06T10:42:26  <ThomasWaldmann> (with default None)
2007-08-06T10:42:52  <johill> can somebody remind me why we need this anyway?
2007-08-06T10:43:02  <johill> why would you try to call it outside a request context?
2007-08-06T10:43:30  <ThomasWaldmann> lanius needs it for his stuff
2007-08-06T10:44:22  <johill> if we really need to change it I think I'd much prefer just not translating it inside but on the outside in macro.format_error
2007-08-06T10:44:57  <johill> or rather macro._wrap
2007-08-06T10:45:10  <johill> but of course that means we can't use a ValueError any more
2007-08-06T10:45:34  <johill> so I guess what I'd do is introduce a ParameterError, have it have a message value
2007-08-06T10:45:46  <johill> then use _ = lambda x: x in the wikiutil stuff
2007-08-06T10:45:56  <johill> document that, and translate it in the except clause
2007-08-06T10:46:10  <johill> (using request.getText and not _ so the gettext stuff won't complain)
2007-08-06T10:46:31  <johill> and remove the request argument completely then
2007-08-06T10:47:49  <johill> that would make the most sense I guess since then you could distinguish those exceptions from other ValueErrors by a different except clause if you really need to
2007-08-06T10:48:07  <johill> in fact, we could stop catching ValueErrors
2007-08-06T10:48:31  <johill> (and just mandate that everybody uses get_* instead of just a plain int() or such)
2007-08-06T11:07:17  <ThomasWaldmann> sounds ok
2007-08-06T11:27:46  <CIA-28> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2779:1f03ef4ba2e8 1.7-storage-hwendel/MoinMoin/ (9 files in 4 dirs): tests finished: 88 passed
2007-08-06T11:33:36  <ThomasWaldmann> lanius: one test failure here, but iirc that is already fixed in main branch, so just pull/merge
2007-08-06T11:34:41  <ThomasWaldmann> lanius: that was with an existant test wiki. after deleting the old test wiki I get lots of failing tests.
2007-08-06T11:35:00  <lanius> also in the storage module?
2007-08-06T11:38:50  <ThomasWaldmann> package, pageeditor, storage, ...
2007-08-06T11:39:43  <ThomasWaldmann> 12 failures total
2007-08-06T11:52:42  <CIA-28> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2795:de673ecdee57 1.7-storage-hwendel/ (11 files in 8 dirs): merge main; fix failing unit tests
2007-08-06T11:52:43  <lanius> ThomasWaldmann: give it another try
2007-08-06T11:59:50  <ThomasWaldmann> down to 3 failures with existing test wiki
2007-08-06T12:07:07  <ThomasWaldmann> 1 failure (my stuff) after deleting testwiki
2007-08-06T12:07:50  <ThomasWaldmann> 1 failure (my stuff) after re-running the test
2007-08-06T12:08:05  <ThomasWaldmann> lanius: so it seems ok now
2007-08-06T12:20:52  <xorAxAx> johill: wait - are you translating Yes based on the users langaugae?
2007-08-06T12:20:57  <xorAxAx> johill: that sounds totally broken to me
2007-08-06T12:22:24  <ThomasWaldmann> %-)
2007-08-06T12:22:25  <johill> xorAxAx: uhh, no, have you read the code?
2007-08-06T12:22:35  <xorAxAx> no :)
2007-08-06T12:22:36  <johill> I'm translating the *error* you get
2007-08-06T12:22:39  <xorAxAx> ah
2007-08-06T12:22:43  * ThomasWaldmann thinks of the german (visual?) basic
2007-08-06T12:22:53  <johill> or Excel. hah. even openoffice does that. icky
2007-08-06T12:22:55  <xorAxAx> hmm, do you ensure that it is not cached? :)
2007-08-06T12:23:27  <johill> oh I don't really. I'm assuming that the person adding the macro will just correct the error right away
2007-08-06T12:23:30  <xorAxAx> i cant imagine how you would do that easily without modifying the macro calling
2007-08-06T12:23:38  <xorAxAx> johill: thats a bad idea IMHO :)
2007-08-06T12:24:03  <johill> well the alternative is to not translate it at all, really, because you can't know whether to cache a call or not and there's no API to abort the caching
2007-08-06T12:24:13  <xorAxAx> ThomasWaldmann: i think mvls problem is that they are still on 1.3.x
2007-08-06T12:24:20  <johill> besides, it's not actually a regression
2007-08-06T12:24:23  <xorAxAx> grzywacz: mvl is martin von löwis, a cpython dev
2007-08-06T12:24:38  <johill> so I could ask you: how do you make sure in 1.6 that error messages from macros aren't cached?
2007-08-06T12:24:40  <xorAxAx> johill: before it was english, thats better than an error message in chinese
2007-08-06T12:24:41  <johill> :P
2007-08-06T12:24:52  <johill> no, it was whatever the macro decided to put there
2007-08-06T12:25:01  <xorAxAx> yes, english in all of our cases
2007-08-06T12:25:20  <johill> I really don't see the problem
2007-08-06T12:25:33  <ThomasWaldmann> hehe, chinese exceptions, yeah
2007-08-06T12:25:34  <johill> if you run across a case where the macro is actually cached
2007-08-06T12:25:38  <johill> (are any macros cached anyway??)
2007-08-06T12:25:44  <xorAxAx> it is when you saved
2007-08-06T12:25:56  <xorAxAx> so everybody else will see the language of the saver
2007-08-06T12:26:05  <johill> only if the macro allows caching
2007-08-06T12:26:06  <johill> and most don't
2007-08-06T12:26:09  <xorAxAx> many do
2007-08-06T12:26:11  <xorAxAx> :-)
2007-08-06T12:26:37  <johill> and even then, the saver will either fix the macro
2007-08-06T12:26:49  <johill> or you run across a chinese message and click edit/preview
2007-08-06T12:27:01  <johill> assuming that everybody speaks English is just plain wrong
2007-08-06T12:28:23  <xorAxAx> right
2007-08-06T12:28:35  <xorAxAx> but russian would be worse :)
2007-08-06T12:28:42  <johill> for you
2007-08-06T12:29:01  <xorAxAx> sure
2007-08-06T12:29:12  <xorAxAx> but we have less users that speak russian
2007-08-06T12:29:37  <johill> well if you want to do user research before you translate error messages...
2007-08-06T12:29:45  <xorAxAx> :-)
2007-08-06T12:29:56  <xorAxAx> well, lets leave it translated
2007-08-06T12:29:56  <johill> seriously, I don't care. who's going to leave a macro with an error message dangling anyway?
2007-08-06T12:30:03  <xorAxAx> users
2007-08-06T12:30:11  <johill> but if you're Chinese and don't speak English at all then how are you supposed to know what you did wrong?
2007-08-06T12:31:20  <johill> so imho it's *far* better to give the user editing it a hint in their language rather than have a hint on what they did wrong that they can't understand
2007-08-06T12:32:11  <johill> so the bug really is that caching is wrong, not the fact that the error messages are translated. fix the caching API to allow disabling it I guess :)
2007-08-06T12:32:21  <xorAxAx> yes, other users might consider the resulting behaviour as a bug, though :)
2007-08-06T12:32:34  <xorAxAx> johill: well, i think it might make sense to propagate it as an exception
2007-08-06T12:32:40  <johill> (in fact, my dom-tree based API could trivially do that by emitting an untranslated error message node that is translated later)
2007-08-06T12:32:43  <johill> ugh no
2007-08-06T12:32:47  <johill> then you get a traceback. nice ui
2007-08-06T12:32:50  <xorAxAx> ???
2007-08-06T12:32:54  <xorAxAx> of course you catch it
2007-08-06T12:32:57  <xorAxAx> somewhere
2007-08-06T12:32:59  <johill> well I do
2007-08-06T12:33:01  <johill> in the macro code
2007-08-06T12:33:13  <johill> and emit [[Include: you did something wrong]]
2007-08-06T12:33:32  <xorAxAx> hmm, indeed, you cant fix this with an exceeption if you dont want to change the API everywhere
2007-08-06T12:33:47  <xorAxAx> but the latter case will happen, hail dom. i didnt have any time to look into the code, though
2007-08-06T12:34:17  <johill> well it could just emit a placeholder for the error instead of the macro result if the macro errors out
2007-08-06T12:34:43  <johill> in fact, it has to because it has no state and thus no request.getText during pre-cache rendering
2007-08-06T12:35:34  <xorAxAx> umm, but it has access to pages etc.?
2007-08-06T12:35:41  <xorAxAx> or to macros ...
2007-08-06T12:35:46  <xorAxAx> imagine it wants to call the include macro
2007-08-06T12:35:52  <xorAxAx> to include a page
2007-08-06T12:36:04  <johill> oh but the include can't be cached anywya
2007-08-06T12:36:07  <johill> because the other page may change
2007-08-06T12:36:10  <xorAxAx> sure, it can
2007-08-06T12:36:20  <xorAxAx> umm, it needs to emit invalidation code
2007-08-06T12:36:23  <johill> not without an extensive cache invalidation strategy
2007-08-06T12:36:24  <xorAxAx> like for the master page
2007-08-06T12:36:28  <xorAxAx> extensive??
2007-08-06T12:36:30  <xorAxAx> symmetric!
2007-08-06T12:36:51  <xorAxAx> some node attrib that has a page name and a revision  number
2007-08-06T12:36:56  <johill> eek
2007-08-06T12:37:07  <johill> you're thinking far too much about details there
2007-08-06T12:37:16  <xorAxAx> you said extensive
2007-08-06T12:37:17  <johill> maybe it could emit a placeholder that checks those and raises an exception
2007-08-06T12:37:42  <xorAxAx> i am saying that it is easily solvable and necessary :)
2007-08-06T12:38:12  <johill> I don't really think it is necessary. loading a cached dom representation isn't going to be much of a problem
2007-08-06T12:38:25  <johill> but whatever, it should be easy to support both
2007-08-06T12:38:33  <johill> I don't see how having state/not having state plays into that though
2007-08-06T12:39:24  <xorAxAx> well, state is an abstract concept. how do you want to disallow the code to have state? not pass request? request would be necessary to load e.g. the include macro
2007-08-06T12:39:47  <xorAxAx> so you would actually need a functional helper layer that offers a factory method for include nodes :)
2007-08-06T12:40:05  <johill> [in fact, I think that having a placeholder for an include that changes frequently will be more efficient than caching the inserted document because you'd have to re-parse the original if the insertion is out-of-date]
2007-08-06T12:40:21  <johill> why do you need the request to load the include macro? you only need the wiki config
2007-08-06T12:40:33  <johill> if the request plays into it then you can't cache it, period.
2007-08-06T12:40:50  <johill> (the fact that we currently intermingle all these concepts doesn't help, but it's utterly broken)
2007-08-06T12:40:52  <xorAxAx> not sure if the functions need a request or cfg ...
2007-08-06T12:41:00  <xorAxAx> yes, i agree
2007-08-06T12:41:06  <xorAxAx> note that cfg has a lot of state as well :)
2007-08-06T12:41:21  <xorAxAx> but most of it is mounted at cfg.cache
2007-08-06T12:41:40  <johill> that's fine though, as long as you never stick anything into it that depends on the request
2007-08-06T12:42:14  <johill> if you do you're SOL anyway because you'll get inter-request "pollution"
2007-08-06T12:42:32  <xorAxAx> cfg.cache has a few thread-safety issues
2007-08-06T12:42:44  <xorAxAx> that are not solved
2007-08-06T12:42:56  <xorAxAx> (no locks around queries and accesses)
2007-08-06T12:43:10  <johill> if it's purely a cache then that doesn't matter
2007-08-06T12:43:24  <johill> might have two threads create the contents but it ought to be identical
2007-08-06T12:43:57  <xorAxAx> well :)
2007-08-06T12:44:06  <xorAxAx> e.g. the wikidicts code was not thread-safe and only caching
2007-08-06T12:44:23  <xorAxAx> e.g. if 2 threads were in it at the same time, corrupt structures resultet
2007-08-06T12:44:27  <xorAxAx> s/t$/d/
2007-08-06T12:44:47  <johill> oh yeah you do need atomic inserts/lookups
2007-08-06T12:44:55  <johill> no, only atomic inserts
2007-08-06T12:48:20  <johill> so I still don't see why you need the request to include a page, I guess you only need the config
2007-08-06T12:48:58  <xorAxAx> well, it always depends on how much APIs you want to change (and offer compat stubs for) and how much you want to preserve
2007-08-06T12:48:58  <johill> which is fine since the cache is per-wiki instance. but in theory you could pass in state without config too and should be able to expect something useful if not cached to the max
2007-08-06T12:49:37  <johill> oh, I'm not really interested in sticking this into moin, it's almost impossible to do sanely because you'd have to refactor everything first
2007-08-06T12:50:03  <xorAxAx> where should it be sticked, then? :)
2007-08-06T12:51:11  <johill> dunno. new wiki engine that copies some code from Moin where possible?
2007-08-06T12:52:12  <johill> I was trying to get basic functionality working with some request code but realised that the request code is a huge mess anyway
2007-08-06T12:52:42  <johill> (I don't, for example, see a good reason to intermingle the request and server code that tightly)
2007-08-06T12:54:11  <xorAxAx> johill: well, historical reasons :)
2007-08-06T12:54:24  <xorAxAx> johill: one easy idea to fix that issue is to use wsgi everywhere
2007-08-06T12:54:27  <johill> well yes, but that's what I'm saying
2007-08-06T12:54:35  <johill> the whole code is full of historic cruft
2007-08-06T12:54:51  <xorAxAx> yes
2007-08-06T12:59:27  <johill> so I'm inclined to just start from scratch copying what makes sense
2007-08-06T13:02:17  <xorAxAx> and IMHO having compatiblitity is not hard at all :)
2007-08-06T13:02:22  <xorAxAx> so i might have a look into that
2007-08-06T13:02:55  <johill> depends on what level compatibility. but you could always generate a fake request object that old stuff gets to see while new stuff actually sees state with state.config, state.request, etc
2007-08-06T13:03:36  <xorAxAx> state.request?
2007-08-06T13:04:05  <johill> yes the actual http request, containing things like form etc
2007-08-06T13:04:29  <johill> and possibly per-request variables, I'm not sure about that yet
2007-08-06T13:04:31  <johill> like user
2007-08-06T13:04:55  <johill> or probably better to have state.user to make it more top-level
2007-08-06T13:05:54  <xorAxAx> yeah
2007-08-06T13:06:06  <johill> of course we want something like state.has_user
2007-08-06T13:06:24  <johill> so we don't have to do hasattr(state, 'user') everywhere
2007-08-06T13:06:36  <xorAxAx> ugly :)
2007-08-06T13:07:46  <johill> but it's necessary to always check
2007-08-06T13:07:49  <johill> otoh
2007-08-06T13:07:54  <johill> we could have macros just do the access
2007-08-06T13:08:05  <johill> and then we raise a special exception from state.__getattr__
2007-08-06T13:08:10  <johill> and catch that to indicate 'not cacheable
2007-08-06T13:08:46  <johill> seems somewhat elegant, but is probably too much magic
2007-08-06T13:09:09  <johill> (we'd probably end up with lots of macros that do calculations even in the cache step and then error out late rather than early)
2007-08-06T13:10:17  <xorAxAx> ugly
2007-08-06T13:10:28  <xorAxAx> why would you have no user attribute?
2007-08-06T13:10:35  <xorAxAx> how do you like the current solution?
2007-08-06T13:13:28  <johill> because you can have user=None for anon requests
2007-08-06T13:13:54  <johill> so for a pre-cache state you have to just not have a user at all
2007-08-06T13:14:07  <johill> current solution? for user?
2007-08-06T13:14:26  <johill> you mean with an invalid user
2007-08-06T13:14:40  <johill> I guess that could work as well instead of having user=None
2007-08-06T13:15:08  <johill> so maybe we don't need the third 'not present' state at all
2007-08-06T13:15:58  <johill> I haven't entirely thought about this state anyway, but I think it's the necessary abstraction we need for the pre/post-cache rendering
2007-08-06T13:16:21  <johill> that would automatically get rid of the Dependencies thing too, macros would just check in code what they need and got
2007-08-06T13:20:22  <xorAxAx> what do you mean by the last line?
2007-08-06T13:20:37  <xorAxAx> you mean if state was passed etc.?
2007-08-06T13:20:51  <johill> yeah
2007-08-06T13:21:00  <johill> we pass in state so if it depends on user it just checks if state.user:
2007-08-06T13:21:14  <johill> or rather 'if not state.user: return [node]' or something
2007-08-06T13:22:19  <xorAxAx> well, theoretically, thats less powerful than the current system
2007-08-06T13:22:26  <johill> in what way?
2007-08-06T13:22:43  <xorAxAx> because in the current system, the cache could decide whether the user is still the same and show the contents that was cached last for this user
2007-08-06T13:22:59  <johill> aha, but you can do that
2007-08-06T13:23:12  <johill> if you do a per-user cache then you just pass state.user for that user in pre-cache stage
2007-08-06T13:24:03  <johill> and in other ways it's more powerful: macros can decide whether they can be cached or not based on their parameters
2007-08-06T13:24:29  <xorAxAx> hmm
2007-08-06T13:28:03  <johill> pushing information further down often really does make sense ;)
2007-08-06T13:28:22  <xorAxAx> well, it will make the plugins more complex
2007-08-06T13:28:30  <xorAxAx> this is not the linux kernel :)
2007-08-06T13:29:00  <johill> hardly
2007-08-06T13:29:01  <xorAxAx> but of course it could be designed so that they dont need to be complex if the plugin doesnt want to benefit
2007-08-06T13:29:38  <johill> we could still have the magic exception thing
2007-08-06T13:31:13  <johill> anyway, I'm going to have lunch now and will then go home
2007-08-06T13:37:59  <neagulm> hello
2007-08-06T13:38:45  <ThomasWaldmann> lanius: usage of _get_page_path in user backend looks a bit strange. please add a TODO to rename this to _get_item_path after SOC.
2007-08-06T13:41:18  <lanius> ThomasWaldmann: for the current backend it is get_page_path
2007-08-06T13:41:24  <lanius> and new backends should not need such a method
2007-08-06T13:41:32  <ThomasWaldmann> lanius: 1.6 backend tells "Users have no revisions" and then: return [1]. So they obviously have a single revision (1). :)
2007-08-06T13:41:48  <vpv> I thought I'd ask here before doing any code: is there a common pure python gunzip implementation for Moin (or just in general?)
2007-08-06T13:41:57  <ThomasWaldmann> the point is users have nothing to do with pages. but _get_page_path neither.
2007-08-06T13:42:19  <vpv> one could be made pretty easily, at least for my needs, but no use reinventing the wheel if something like that exists
2007-08-06T13:42:28  <ThomasWaldmann> so _get_page_path is just a misleading name.
2007-08-06T13:42:52  <ThomasWaldmann> (you shall not do that rename now, just add the TODO)
2007-08-06T13:43:50  <lanius> ThomasWaldmann: it's refactored in a minute
2007-08-06T13:47:17  <CIA-28> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2796:37f2c9c9e4e1 1.7-storage-hwendel/MoinMoin/ (4 files in 3 dirs): rename _get_page_path to _get_item_path; improve some comments
2007-08-06T13:51:04  <ThomasWaldmann> lanius: when you use tempfile.mkstemp, please use it like: file_handle, file_name = ...
2007-08-06T13:51:19  <ThomasWaldmann> (or something similar)
2007-08-06T13:51:36  <DrFrasierCrane> you guys really put a lot of work into this project
2007-08-06T13:51:39  <DrFrasierCrane> I'm really impressed!
2007-08-06T13:52:24  <ThomasWaldmann> :)
2007-08-06T13:53:39  <ThomasWaldmann> lanius: the 2 methods in UserMetaData could both use data_file, metadata, value as attribute names (just for consistency)
2007-08-06T13:53:51  <DrFrasierCrane> I thought it's more of a laid-back project, but come Monday what do I see? brainstorms about exceptions in Chinese :D
2007-08-06T13:53:53  <DrFrasierCrane> nice
2007-08-06T14:00:40  <ThomasWaldmann> yeah, sometimes we are really nitpicking. :D
2007-08-06T14:01:02  <lanius> oh yeah ;)
2007-08-06T14:01:35  <xorAxAx> well, i wouldnt consider thinking about usability to be nitpicking
2007-08-06T14:01:36  <ThomasWaldmann> lanius: in current_revision you use "data_file". I guess this is c&p and should be rather "current_file".
2007-08-06T14:01:56  <lanius> right
2007-08-06T14:02:16  <ThomasWaldmann> and if the file is empty, your return rev 0
2007-08-06T14:02:25  <lanius> right
2007-08-06T14:03:41  <lanius> which mean that there is no revision yet
2007-08-06T14:03:47  <ThomasWaldmann> maybe that should be some kind of StorageError rather? a item with empty current file is either damaged or currently in use (w) maybe.
2007-08-06T14:04:04  <lanius> no, it also might be just created
2007-08-06T14:04:42  <ThomasWaldmann> ah yes, that's maybe slightly different in your 1.6 backend.
2007-08-06T14:05:33  <ThomasWaldmann> what happens in the upper code if it returns 0?
2007-08-06T14:06:20  <xorAxAx> lanius: "merge main; fix failing unit tests"
2007-08-06T14:06:22  <xorAxAx> SIGH
2007-08-06T14:07:19  <lanius> ThomasWaldmann: it will return an item with no revision
2007-08-06T14:07:25  <xorAxAx> lanius: reason behind that changeset?
2007-08-06T14:07:38  <lanius> xorAxAx: failing unit tests after merge
2007-08-06T14:08:26  <ThomasWaldmann> lanius:         return revno >= -1 and revno <= self.current_revision(name, includeEmpty=True)
2007-08-06T14:08:47  <ThomasWaldmann> lanius: return -1 <= revno <= ...
2007-08-06T14:08:48  <xorAxAx> lanius: why didnt you put that into a new changeset?
2007-08-06T14:09:00  <xorAxAx> merges should not contain anything that is not merge related
2007-08-06T14:09:23  <xorAxAx> fixing bugs is not except if your merge program produced garbage in the files which would not be a bug in the first place
2007-08-06T14:09:34  <xorAxAx> merges should be replayable easily
2007-08-06T14:09:37  <lanius> xorAxAx: ok
2007-08-06T14:10:38  <xorAxAx> also merges wont appear in file history
2007-08-06T14:10:51  <xorAxAx> and you cant review changes in merge changesets because they are too big
2007-08-06T14:16:13  <ThomasWaldmann> lanius: data_file also seen in PageMetaData (for edit-lock)
2007-08-06T14:25:56  <ThomasWaldmann> lanius:                 line = "\t".join([str(wikiutil.timestamp2version(float(metadata[EDIT_LOCK_TIMESTAMP]))), "0", "0", "0", "0", "0", metadata[EDIT_LOCK_USER], "0", "0"])
2007-08-06T14:26:03  <ThomasWaldmann> where does that float come from?
2007-08-06T14:26:30  <ThomasWaldmann> ehrm, ignore that
2007-08-06T14:34:15  <ThomasWaldmann> lanius: AbstractData.read must check for "if size is not None:" the current check leads to wrong behaviour for size == 0
2007-08-06T14:41:36  <ThomasWaldmann> LayerBackend.list_items: shouldn't that rather be a set union than a list extend?
2007-08-06T14:42:31  <ThomasWaldmann> lanius: still there? :)
2007-08-06T14:43:03  <lanius> yeah, fixing and reading ;)
2007-08-06T14:43:42  <lanius> the other way around
2007-08-06T14:46:54  <ThomasWaldmann> AbstractBackend.list_items() - somehow that name is strange as it already get items as parameter
2007-08-06T14:47:23  <ThomasWaldmann> and its purpose is rather unquote, sort, filter.
2007-08-06T14:47:56  <ThomasWaldmann> btw, the sort could happen at the end, so it has less to sort
2007-08-06T14:48:31  <ThomasWaldmann> "process_item_list" maybe?
2007-08-06T14:48:39  <lanius> yeah
2007-08-06T15:04:41  <xorAxAx> neagulm: what does frecvent mean?
2007-08-06T15:05:31  <ThomasWaldmann> lanius: storage/external.py needs a better toplevel docstring
2007-08-06T15:06:00  <xorAxAx> (appeared in 7b7ac8fd80f1)
2007-08-06T15:06:23  <ThomasWaldmann> lanius: also check that TODO there
2007-08-06T15:07:22  <xorAxAx> neagulm: de8be3efb452 -- layering violation - get_similar should only return unicode strings
2007-08-06T15:07:23  <ThomasWaldmann> lanius: class ItemCollection(UserDict.DictMixin, object):
2007-08-06T15:07:33  <ThomasWaldmann> is that "object" necessary???
2007-08-06T15:07:49  <xorAxAx> neagulm: same in e86249269328
2007-08-06T15:07:53  <lanius> ThomasWaldmann: no
2007-08-06T15:08:00  <xorAxAx> ThomasWaldmann: yes, to get a new-style class
2007-08-06T15:08:15  <xorAxAx> so it should be there
2007-08-06T15:09:27  <lanius> yes, DictcMixin is no new style class
2007-08-06T15:10:47  <ThomasWaldmann> ugh
2007-08-06T15:10:55  <ThomasWaldmann> lanius:             raise BackendError(_("Copy failed because name and newname are equal."))
2007-08-06T15:11:04  <ThomasWaldmann> ...are the same.
2007-08-06T15:14:01  <xorAxAx> lanius: argh - http://hg.alexanderweb.de/moin-1.7-storage-hwendel/rev/704cc8372a25 -- please explain the relationship between the commit comment and those large changes in non-unittest files
2007-08-06T15:15:11  <lanius> xorAxAx: the unit test work revealed bugs
2007-08-06T15:15:22  <lanius> and i wouldn't call it large change
2007-08-06T15:15:52  <ThomasWaldmann> lanius: strange docstring:
2007-08-06T15:15:54  <ThomasWaldmann> class PageData(AbstractData): """ This class implements a read only, file like object for MoinMoin 1.6 Page stuff. Changes will only be saved on close().
2007-08-06T15:16:02  <ThomasWaldmann> "Changes"?
2007-08-06T15:16:04  <xorAxAx> lanius: well, the diffs are long
2007-08-06T15:16:15  <lanius> xorAxAx: most of it is the unit test work
2007-08-06T15:16:31  <lanius> ThomasWaldmann: everything you write()
2007-08-06T15:16:50  <ThomasWaldmann> but it tells it is read only.
2007-08-06T15:16:56  <lanius> ^^
2007-08-06T15:17:07  <lanius> which is wrong
2007-08-06T15:17:14  <xorAxAx> lanius: what is unittest work?
2007-08-06T15:17:16  <ThomasWaldmann> :)
2007-08-06T15:17:24  <lanius> xorAxAx: improving unit tests
2007-08-06T15:17:33  <xorAxAx> lanius: most changes were in non-test files
2007-08-06T15:17:40  <lanius> xorAxAx: no
2007-08-06T15:17:57  <xorAxAx> hmm, ok
2007-08-06T15:18:08  <lanius> 9/10 of it is unit tests
2007-08-06T15:18:18  <lanius> 1/10 is fixing bugs which were revealed by unit tests
2007-08-06T15:20:28  <xorAxAx> that should go into separate changesets
2007-08-06T15:20:39  <xorAxAx> or at least be mentioned
2007-08-06T15:21:31  <ThomasWaldmann> "the art of clean changesets" :)
2007-08-06T15:21:38  <lanius> yes, art
2007-08-06T15:32:13  <ThomasWaldmann> lanius: you could add a (package) docstring to __init__.py
2007-08-06T15:33:19  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2753:a124d93d751e 1.7-classify-mneagul/MoinMoin/support/art.py:
2007-08-06T15:33:19  <CIA-28> moin: Reduce the bias.
2007-08-06T15:33:19  <CIA-28> moin: Use the same distance measure for category activation in activateCategories() as in calculateMatch()
2007-08-06T15:33:22  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2754:38c28172a51b 1.7-classify-mneagul/MoinMoin/action/selectfeatures.py: Update name
2007-08-06T15:33:26  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2755:cb6f6f1551c1 1.7-classify-mneagul/MoinMoin/action/selectfeatures.py: Fix spelling error
2007-08-06T15:33:27  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2756:3a274fb3a982 1.7-classify-mneagul/MoinMoin/ (macro/WikiClusters.py theme/__init__.py): Fix unicode issue
2007-08-06T15:49:58  <xorAxAx> neagulm: PING
2007-08-06T15:50:19  <neagulm> xorAxAx, pong
2007-08-06T15:50:29  <xorAxAx> neagulm: please reply to my questions above
2007-08-06T15:50:57  <neagulm> xorAxAx, frecvent = frequent
2007-08-06T15:51:05  <neagulm> xorAxAx, spelling error
2007-08-06T15:53:58  <neagulm> xorAxAx, why?
2007-08-06T15:54:18  <xorAxAx> hmm?
2007-08-06T16:04:01  <neagulm> xorAxAx, i think I fixed the unicode issue in 3a274fb3a982
2007-08-06T16:04:52  <xorAxAx> ok
2007-08-06T16:05:00  <xorAxAx> did you fix the spelling error?
2007-08-06T16:05:10  <neagulm> xorAxAx, yes....
2007-08-06T16:06:20  <xorAxAx> +    return dotp/(math.sqrt(sum1)*math.sqrt(sum2)+0.000001)
2007-08-06T16:06:32  <xorAxAx> neagulm: it would be nice if you could add the right amount of spaces to expressions
2007-08-06T16:06:39  <xorAxAx> (cf. pep8)
2007-08-06T16:06:58  <neagulm> xorAxAx, I don't know what to do with the speed issue. After creating >150 clusters the entire system begins to respond slower... To fix this I should numpy.array but that is another dependency
2007-08-06T16:07:06  <neagulm> aha, it will fix now
2007-08-06T16:07:24  <xorAxAx> 150 clusters is a lot - why do you need so many?
2007-08-06T16:08:06  <xorAxAx> and how can i navigate into clusters?
2007-08-06T16:08:17  <neagulm> i don't create clusters, ART does so being trained with *all* underlay pages
2007-08-06T16:08:28  <xorAxAx> hmm
2007-08-06T16:08:38  <xorAxAx> and that cant be tuned?
2007-08-06T16:09:24  <neagulm> no, but the vigilance property of the ART network can be tuned, this property controls when new clusters are created
2007-08-06T16:09:59  <xorAxAx> ah
2007-08-06T16:10:27  <neagulm> xorAxAx, another thing is that I will need a "stop word list" to ignore common words... :(
2007-08-06T16:10:46  <neagulm> xorAxAx, this is required for all languages
2007-08-06T16:10:56  <neagulm> xorAxAx, if we want good performance:)
2007-08-06T16:11:28  <neagulm> brb ~5 minutes
2007-08-06T16:11:30  <xorAxAx> hmm, cant you generate it on your own? :)
2007-08-06T16:11:44  <xorAxAx> did you try to filter the wiki markup and see if the result is better?
2007-08-06T16:14:47  <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2776:a0526dad4115 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: String decoding, some other small changes
2007-08-06T16:14:48  <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2777:c1efc15c70eb 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Pure python gunzip, avoids some problems in using the commands module. I've not yet seen the need to port other gzip file handlers to use this, since they work. handle_rpm() had some issues, that are fixed by this.
2007-08-06T16:15:46  <ThomasWaldmann> lanius: don't forget setup.py
2007-08-06T16:18:09  <xorAxAx> neagulm: 3a274fb3a982 didnt fix anything
2007-08-06T16:18:35  <xorAxAx> neagulm: as i said, the recommender module should never return strings but always unicode objects
2007-08-06T16:18:55  <xorAxAx> neagulm: i.e. all callers should never use any str.decode call
2007-08-06T16:20:01  <grzywacz> xorAxAx, I got accepted 8)
2007-08-06T16:20:12  <xorAxAx> grzywacz: in the c++ job? congrats :)
2007-08-06T16:24:50  <neagulm> grzywacz, you are from Poland, yes?
2007-08-06T16:25:48  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2757:baebd17538a8 1.7-classify-mneagul/MoinMoin/classifier/recommendation_system.py: Workaround for shelve limitations
2007-08-06T16:26:01  <lanius> ThomasWaldmann: setup.py?
2007-08-06T16:26:15  <CIA-28> moin: Marian Neagul marian@info.uvt.ro work * 2758:77b54f03c14f 1.7-classify-mneagul/MoinMoin/theme/__init__.py: Remove decode()
2007-08-06T16:31:45  <ThomasWaldmann> lanius: you may want to get your stuff installed :)
2007-08-06T16:32:11  <CIA-28> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2797:4f7554d97813 1.7-storage-hwendel/ (9 files in 3 dirs): improve code quality
2007-08-06T16:32:24  <lanius> ThomasWaldmann: ah, right ;)
2007-08-06T16:34:33  <ThomasWaldmann> lanius: and docs/CHANGES.storage
2007-08-06T16:35:55  <neagulm> xorAxAx, i'm going some, I will be back latter, please take a look at baebd17538a8
2007-08-06T16:36:10  <neagulm>  /s/some/home
2007-08-06T16:36:30  * ThomasWaldmann wants to see deadbeefbabe
2007-08-06T16:37:53  <xorAxAx> grzywacz: ping
2007-08-06T16:46:58  <grzywacz> xorAxAx, pong
2007-08-06T16:47:04  <grzywacz> xorAxAx, yes, C++.
2007-08-06T16:47:10  <grzywacz> Oh, neaglum left. :(
2007-08-06T20:08:03  <ThomasWaldmann> re
2007-08-06T20:19:45  <grzywacz> re
2007-08-06T20:26:53  <ThomasWaldmann> grzywacz: could you also please make a docs/CHANGES.jabber for your stuff?
2007-08-06T20:27:26  <ThomasWaldmann> (and HelpPage etc.)
2007-08-06T20:27:33  <grzywacz> ThomasWaldmann, erm, sure.
2007-08-06T20:27:58  <grzywacz> A basic help page has already been started here: http://moinmoin.wikiwikiweb.de/MoinMoinTodo/Release_1.7/HelpOnNotification
2007-08-06T20:41:55  <ThomasWaldmann> i fixed some minor stuff there
2007-08-06T20:42:12  <ThomasWaldmann> btw, do you think we can rename main.py and config.py?
2007-08-06T20:42:35  <ThomasWaldmann> first is telling nothing, second also exists as a moin module
2007-08-06T20:46:45  <grzywacz> jabberbot is meant to live separately from Moin, so I'm not sure if changing config.py is necessary.
2007-08-06T20:46:53  <grzywacz> s/main.py/bot.py/, maybe?
2007-08-06T20:48:32  <grzywacz> xorAxAx, is it ok if I extend xmlrpc_searchPages() so it can utilise the full potential of search.searchPages?
2007-08-06T20:48:46  <grzywacz> xorAxAx, or should I make a different method to maintain backward compat?
2007-08-06T20:49:59  <ThomasWaldmann> grzywacz: or even jabberbot.py :)
2007-08-06T20:50:17  <grzywacz> heh, ok
2007-08-06T20:50:23  <grzywacz> Erm.
2007-08-06T20:50:32  <grzywacz> Then you'll have jabberbot.jabberbot ;-)
2007-08-06T20:50:42  <ThomasWaldmann> and the wiki's config is wikiconfig.py, so the jabberbot's config could be jabberbotconfig.py.
2007-08-06T20:52:08  <grzywacz> #_#
2007-08-06T20:55:29  <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2632:6e323cf20c64 1.7-jabber-knowak/jabberbot/xmlrpcbot.py: Fix initialisation of xmlrpcbot.
2007-08-06T20:55:55  <grzywacz> Ok, making a fresh clone of repo to fix a small bug in a files which already has other changes is neat.
2007-08-06T20:56:04  <grzywacz> s/files/file/
2007-08-06T21:08:33  <grzywacz> Hm, searchPages does some html formatting, so it doesn't really suit my needs. :S
2007-08-06T21:12:06  <grzywacz> I find it strange that xmlrpc interface actually returns html. xorAxAx?
2007-08-06T22:18:31  <xorAxAx> grzywacz: well, no idea why they do
2007-08-06T22:18:54  <xorAxAx> grzywacz: and as they should be rather stable, it would be nice if you kept them compatible as long they are doing sane things
2007-08-06T22:22:54  <grzywacz> xorAxAx, well... I don't feel like making a decision to remove the formatting, so I'll just add something like searchPagesEx() which does no formatting and has more options
2007-08-06T22:23:32  <xorAxAx> yes, somehow i remember somebody doing a similar design decision :)
2007-08-06T22:25:22  <grzywacz> :-p
2007-08-06T22:25:56  <xorAxAx> in another soc project
2007-08-06T22:28:01  <grzywacz> I think I've seen someone discussing getAllPagesEx() in the irclog. ;)
2007-08-06T23:10:12  <grzywacz> Hm. Looks like some kind of privileges system (like what functions are available for specific users) in the jabber bot will be necessary...
2007-08-06T23:38:08  <grzywacz> hrmpf
2007-08-06T23:38:30  <xorAxAx> any questions? :)
2007-08-06T23:43:13  <grzywacz> No, I'm trying to figure out how to present search results in a readable manner. :)
2007-08-06T23:43:18  <grzywacz> Basically, appendix context causes Big Mess.
2007-08-06T23:43:22  <grzywacz> So I won't do that with text interface and will only show page names and URLs.
2007-08-06T23:43:24  <grzywacz> *appending
2007-08-06T23:43:32  <grzywacz> xorAxAx, http://kolos.math.uni.lodz.pl/~grzywacz/mess.png
2007-08-06T23:43:34  <grzywacz> Newlines in context are impossible to avoid, but also break stuff.
2007-08-06T23:45:00  <nwp> ThomasWaldmann: you there?
2007-08-06T23:45:09  <xorAxAx> well, you can replace them
2007-08-06T23:45:58  <grzywacz> xorAxAx, I thought about that, but it won't help.
2007-08-06T23:46:28  <grzywacz> xorAxAx, it may end up (and often will :P) looking bad.
2007-08-06T23:46:57  <grzywacz> I'm yet to see if interface using data forms can display this in a reasonable manner. Probably yes.
2007-08-06T23:47:07  <ThomasWaldmann> nwp: yes
2007-08-06T23:47:21  <grzywacz> New Zealand?
2007-08-06T23:47:26  <nwp> ThomasWaldmann: ah, good
2007-08-06T23:47:35  <nwp> grzywacz: I'm there ;-)
2007-08-06T23:47:42  <grzywacz> Cool, in the past I wanted to move to NZ. ;)
2007-08-06T23:48:22  <nwp> ThomasWaldmann: OK, just want to be clear what the "plan" is for what goes into the server_*, and how to deal with the logging
2007-08-06T23:48:27  <xorAxAx> grbecause of the sheep?
2007-08-06T23:48:30  <xorAxAx> grzywacz:
2007-08-06T23:48:48  <grzywacz> No, because it's on the very other side of the world, far away from the stupidity that's annoying me here. :D
2007-08-06T23:49:14  <ThomasWaldmann> nwp: did you look at the other server_ files?
2007-08-06T23:49:29  <nwp> it seems to me that the logging shouldn't be initialised directly in the server __init__ method, as it may be desirable to override that part without overriding any other init bits
2007-08-06T23:49:29  <nwp> yes
2007-08-06T23:49:33  <ThomasWaldmann> it usually has a config class (for server, not wiki, config)
2007-08-06T23:49:45  <ThomasWaldmann> and some stuff that uses this config
2007-08-06T23:49:53  <nwp> hang on, let me pull them up now
2007-08-06T23:50:06  <ThomasWaldmann> yeah, one could make some member functions of that
2007-08-06T23:50:16  <ThomasWaldmann> so it is easier overridden
2007-08-06T23:50:25  <nwp> yep
2007-08-06T23:51:05  <nwp> ah yes, the server_* bits that are there -- the twisted one doesn't make much sense to me as I know nothing about twisted
2007-08-06T23:51:46  <nwp> the cgi one really doesn't seem to do anything much at all (in fact the config defaults seem to duplicate those in the main __init__.py
2007-08-06T23:51:48  <nwp> )
2007-08-06T23:52:08  <ThomasWaldmann> the cgi one is just for consistence :)
2007-08-06T23:52:36  <nwp> yeah - it probably makes for a good simple example
2007-08-06T23:52:43  <ThomasWaldmann> did you try just disabling the stderr logging?
2007-08-06T23:53:02  <nwp> the stderr logging just disappears off into the void, which is fine if not exactly elegant
2007-08-06T23:53:15  <nwp> I just need to get something that *will* actually go to the apache error logs
2007-08-06T23:53:41  <ThomasWaldmann> does modpy have a special api for log output?
2007-08-06T23:53:44  <nwp> which means using the mod_python log method
2007-08-06T23:53:49  <nwp> so yes
2007-08-06T23:54:03  <ThomasWaldmann> and stderr doesnt work?
2007-08-06T23:54:17  <nwp> which means I need to learn enough about the python logging thing to attach a handler to it to do the modpy thing
2007-08-06T23:54:27  <ThomasWaldmann> yes
2007-08-06T23:54:28  <nwp> stderr used to work in apache1.x
2007-08-06T23:54:33  <nwp> but just disappears now
2007-08-06T23:55:09  <nwp> dunno if that's a bug or a feature, but I still need to make it work :-/
2007-08-06T23:55:23  <ThomasWaldmann> the logging stuff is nice. maybe a bit too powerful for some usages, but still nice. and it cleaned up the mess that moin had before.
2007-08-06T23:55:30  <nwp> :-)
2007-08-06T23:55:31  <grzywacz> hrmpf
2007-08-06T23:55:39  <grzywacz> Where are my RFCs...
2007-08-06T23:55:55  <nwp> do you know how it handles syslog/event log calls on OSes that don't have them?
2007-08-06T23:56:41  <nwp> i.e. if I were to add a syslog handler, would it just do nothing on windows boxes, or would it barf?
2007-08-06T23:56:51  <ThomasWaldmann> no idea
2007-08-06T23:57:43  <ThomasWaldmann> but maybe rather do not add syslog stuff, people already are confused if they have to search in moin or in webserver log
2007-08-06T23:57:43  <nwp> OK, well I guess I'll try to break out the logging init into a separate method and then make something that will work with modpy
2007-08-06T23:58:00  <nwp> hehehe...
2007-08-06T23:58:34  <ThomasWaldmann> which moin version are you using for that stuff?
2007-08-06T23:58:45  <nwp> I'm trying to  make 1.6 work at the moment
2007-08-06T23:59:08  <nwp> it blows up completely at the moment, and I need the logging to work out why/where
2007-08-06T23:59:30  <nwp> something to do with the damn fieldstorage again

MoinMoin: MoinMoinChat/Logs/moin-dev/2007-08-06 (last edited 2007-10-29 19:20:57 by localhost)