2008-07-01T00:00:06  <dreimark> zenhase: do you change some state between your tests or don't reset to the defaults?
2008-07-01T00:00:08  <johill> what point is there in a group manager?
2008-07-01T00:00:25  <johill> zenhase: does it work with --nomagic? :)
2008-07-01T00:01:14  <johill> gizmach: the only useful thing the group manager does is wrap a group in a Group() instance, why wouldn't the backend do that directly?
2008-07-01T00:02:03  <ThomasWaldmann> gizmach: did you already look at m
2008-07-01T00:02:07  <ThomasWaldmann> MGM?
2008-07-01T00:02:09  <johill> (yes, maybe I'm paranoid, but ItemCollection in lanius's code was such a thing too and is pretty broken)
2008-07-01T00:02:51  <dreimark> johill: are you logged in?
2008-07-01T00:03:02  <gizmach> ThomasWaldmann: yes I did now :) I first started at the group and GM and seen the difference in MGM sample
2008-07-01T00:03:28  <johill> dreimark: hmm?
2008-07-01T00:03:45  <ThomasWaldmann> gizmach: so, what is the relation between GM and MGM?
2008-07-01T00:04:21  <johill> dreimark: I am, yes
2008-07-01T00:05:23  <gizmach> GM defines only one backend and MGM can define it multiple
2008-07-01T00:05:51  <gizmach> or I'm wrong
2008-07-01T00:05:53  <ThomasWaldmann> ok, so you want to keep GM?
2008-07-01T00:06:08  <gizmach> ThomasWaldmann: no
2008-07-01T00:06:32  <gizmach> MGM can handle the GM
2008-07-01T00:06:53  <ThomasWaldmann> ok, then you better comment the MGM code :) and throw away GM and rename MGM to GM.
2008-07-01T00:07:01  <gizmach> ok :)
2008-07-01T00:07:46  <ThomasWaldmann> and check your spelling
2008-07-01T00:08:43  <gizmach> ThomasWaldmann: ok,
2008-07-01T00:10:10  <ThomasWaldmann> johill: is it ok when it does more? :)
2008-07-01T00:10:33  <johill> heh I guess so
2008-07-01T00:10:44  <ThomasWaldmann> (also consider that there is no caching yet, no recursion, ...)
2008-07-01T00:10:55  <johill> I'm just a bit worried about doing name-based lookups for everything but like I said that may well be paranoia due to the problems in storage
2008-07-01T00:11:40  <ThomasWaldmann> what's the problem with name-based lookups?
2008-07-01T00:12:38  <johill> I guess there might not be one for groups, but for storage it's renames
2008-07-01T00:21:40  <dreimark> 21:33 < TheSheep> dreimark: the thumbnails: yes we must not use width, height is probably better
2008-07-01T00:24:22  <dreimark> xorAxAx: What is the reason to support CopyThemeFile only for standalone server ?
2008-07-01T00:24:55  <xorAxAx> dreimark: any other server doesnt know where the theme files are located
2008-07-01T00:44:31  <dreimark> good night
2008-07-01T00:44:50  <starshine> nn dreimark
2008-07-01T00:47:57  <ThomasWaldmann> gn dreimark
2008-07-01T00:53:21  <gizmach> gn dreimark
2008-07-01T02:09:12  <CIA-53> MelitaMihaljevic default * 3687:82d12f617daf 1.8-ldapgroups-mmihaljevic/MoinMoin/datastruct/__init__.py: added docstrings and removed previous GroupManager code and replaced with MultipleGroupManager code
2008-07-01T02:09:13  <CIA-53> MelitaMihaljevic default * 3688:ae0fdaa9a2bc 1.8-ldapgroups-mmihaljevic/MoinMoin/datastruct/_tests/test_datastruct.py: added a test for testing datastruct - Group and GroupManager with config backend
2008-07-01T02:09:45  <gizmach> gn :) (ready for comments after some sleep)
2008-07-01T09:36:25  <ThomasWaldmann> moin
2008-07-01T09:39:14  <dreimark> moin
2008-07-01T09:40:17  <dreimark> ThomasWaldmann: we should change the hint on http://moinmoin.wikiwikiweb.de/
2008-07-01T09:41:18  <dreimark> people seems not to understand that they have to go to moinmo.in
2008-07-01T09:41:32  <dreimark> and that everything there is old
2008-07-01T09:41:45  <dreimark> at wikiwikiweb
2008-07-01T09:42:16  <dreimark> they ignore that the wikipage is readonly because they are new to wiki and don't know anything about why wiki works
2008-07-01T09:50:19  <dreimark> an other idea related to that issue is to remove the navigation by changing url to only text or forward to moinmo.in
2008-07-01T09:50:52  <dreimark> on any click in the old wiki
2008-07-01T10:06:09  <johill> why not just forward?
2008-07-01T10:21:34  <dreimark> join #opensuse
2008-07-01T10:21:40  <dreimark> arg
2008-07-01T10:37:11  <gizmach> moin
2008-07-01T10:40:31  <mmihaljevic> hi
2008-07-01T12:13:26  <johill> ThomasWaldmann: we need to log more info when exceptions occur, any idea how to?
2008-07-01T12:13:32  <johill> the page name for instance would be good
2008-07-01T12:15:16  <ThomasWaldmann> just search for logging.exception and add it
2008-07-01T12:16:18  <johill> well yeah but how do I get the info there? just dump it from the request?
2008-07-01T12:19:23  <gizmach> ThomasWaldmann: http://paste.pocoo.org/show/78246/ (I commented the code - take it in separate file for commenting), just to check if I understand how it works properly and do I need to change only stuff I named
2008-07-01T12:31:19  <CIA-53> Johannes Berg <johannes AT sipsolutions DOT net> default * 3809:888574a117e6 1.8/MoinMoin/failure.py: log exception causing URI
2008-07-01T12:33:27  <gizmach> also in def may(self, request, name, dowhat): what the name is ? a groupname? or a goupdict?
2008-07-01T12:38:32  <gizmach> ah it's group I suppose
2008-07-01T12:41:35  <dreimark_> gizmach: use breakpoints in eclipse
2008-07-01T12:44:32  <gizmach> dreimark_: :) ok
2008-07-01T12:45:09  <dreimark_> and  create an account in your testwiki and login
2008-07-01T13:00:41  <ThomasWaldmann> gizmach: name is a username
2008-07-01T13:02:42  <dreimark> gizmach: I told to use the debugger because you can see this yourself
2008-07-01T13:02:58  <dreimark> if you do set a breakpoint at line is_group_member(entry, name):
2008-07-01T13:03:09  <gizmach> ThomasWaldmann: thx I looked it in the wrong order (username, group), now everything has much more sense
2008-07-01T13:03:10  <dreimark> and watch on entry and name
2008-07-01T13:03:32  <gizmach> dreimark: now I'm doint that for the stuff I don't iunderstand
2008-07-01T13:03:38  <gizmach> or not sure
2008-07-01T14:39:05  <dennda> *sigh*, CIA forgot about one of my changesets
2008-07-01T14:39:14  <xorAxAx> dennda: #cia
2008-07-01T14:40:15  <xorAxAx> starshine_away: ping
2008-07-01T14:44:06  <dennda> Ah CIA was offline at that time
2008-07-01T15:46:12  <johill> I hit ctrl-c a lot when cia was borked
2008-07-01T15:46:22  <johill> so I guess that aborted the cia update
2008-07-01T15:59:44  <dreimark> gizmach: request.cfg.cache.page_group_regexact is not relevant for the config backend
2008-07-01T16:00:10  <gizmach> dreimark: I done tracing with different user cases
2008-07-01T16:00:34  <gizmach> I know that now and will put it now to pastebin with coments
2008-07-01T16:00:38  <gizmach> comments
2008-07-01T16:00:43  <dreimark> ok
2008-07-01T16:02:34  <dennda> johill: Can we have a call today?
2008-07-01T16:12:48  <dennda> Has difficulties solving a bug
2008-07-01T16:13:00  * dennda has difficulties solving a bug
2008-07-01T16:27:30  <gizmach> dreimark: if u didn't see - cases : http://paste.pocoo.org/show/78260/ and the thing I basically need to change (with calling grouConfigBackend)  http://paste.pocoo.org/show/78261/
2008-07-01T16:30:59  <dennda> I just don't get it. Executing the code in my test manually, there is no problem. Having it in the test file, py.test hangs, however
2008-07-01T16:31:02  <dennda> And I don't see why
2008-07-01T16:34:41  <johill> dennda: sure
2008-07-01T16:35:19  <xorAxAx> "hangs"?
2008-07-01T16:35:26  <xorAxAx> dennda: try -s
2008-07-01T16:37:43  <dennda> still hangs. That is, py.test doesn't stop at some point and I need to manually get back to my shell with strg+z
2008-07-01T16:39:13  <johill> maybe with --nomagic you can get a traceback?
2008-07-01T16:39:15  <xorAxAx> what happens when you press ^C?
2008-07-01T16:39:24  <xorAxAx> never heard of such an issue
2008-07-01T16:39:27  <dennda> xorAxAx: nothing
2008-07-01T16:39:36  * johill tries to reproduce
2008-07-01T16:39:44  <xorAxAx> dennda: does it use cpu, the process?
2008-07-01T16:40:02  <johill> xorAxAx: the only time I had python do that was with a very complex backward-searching RE, it blocks ^C in C code
2008-07-01T16:40:17  <xorAxAx> johill: hmm, no, the signal handler sets a flag
2008-07-01T16:40:31  <xorAxAx> and it wont check it in a loop in sre of course
2008-07-01T16:40:43  <dennda> xorAxAx: no, everything fine with my load
2008-07-01T16:40:52  <johill> yeah ok so either way, it doesn't abort if you're in C code
2008-07-01T16:40:54  <xorAxAx> dennda: whats the process status?
2008-07-01T16:41:04  <xorAxAx> dennda: it sounds like its hung in the kernel
2008-07-01T16:41:07  <johill> D?
2008-07-01T16:41:07  <xorAxAx> dennda: strace it
2008-07-01T16:41:32  <johill> dennda: is that in the committed code?
2008-07-01T16:41:45  <dennda> johill: not yet
2008-07-01T16:42:08  <dennda> I created a few additional tests, one of which lead me to this strange issue
2008-07-01T16:42:08  <johill> can you send me a patch or commit it so I can see?
2008-07-01T16:42:14  <dennda> sure, just a second
2008-07-01T16:43:03  <gizmach> bbl
2008-07-01T16:44:49  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station PERIOD com> default * 4214:a204cd7b0fc6 1.8-storage-cdenter/MoinMoin/storage/ (_tests/test_backends_memory.py backends/memory.py): storage: Adding tests for metadata access on Items. (One of those tests fails at the moment. I am working on getting that fixed. There is a bug somewhere)
2008-07-01T16:45:08  <dennda> johill: just run the test and you will notice it hangs.
2008-07-01T16:45:42  <dennda> if you uncomment line 104 in the test, it doesn't
2008-07-01T16:45:52  <dennda> line 104 is: i.change_metadata()
2008-07-01T16:46:00  <dennda> so I checked the change_metadata() method
2008-07-01T16:46:15  <dennda> it refers to the method I implemented in the backend. so I checked that
2008-07-01T16:47:01  <dennda> All that does is, in this case, due to the item not being in persistant storage yet, pass. There is nothing else the method does in this scenario
2008-07-01T16:47:07  <dennda> it doesn't even call acquire
2008-07-01T16:48:12  <dennda> if you append assert False to the items change_metadata() method, you can see execution even reaches the end of that method
2008-07-01T16:48:27  <johill> oh fun
2008-07-01T16:48:29  <dennda> So frankly I don't know why it hangs
2008-07-01T16:49:07  <dennda> http://paste.pocoo.org/show/78269/ <-- Especially because it doesn't hang when I do it by hand
2008-07-01T16:49:27  <dennda> oh, assuming the above test method is executed, too, if you uncomment that, it works
2008-07-01T16:49:48  <dennda> (that information is neccessary to understand why I created two items by hand in that paste)
2008-07-01T16:50:33  <dennda> So if you comment test_item_metadata_without_publish, it works
2008-07-01T16:50:34  <dennda> by magic
2008-07-01T16:50:35  <johill> ok, well, it hangs in the lock
2008-07-01T16:50:45  <xorAxAx> how unexpected :)
2008-07-01T16:50:50  <johill> oh!
2008-07-01T16:50:52  <johill> well no wonder
2008-07-01T16:50:54  <xorAxAx> that deadlocks hang in the locking code :)
2008-07-01T16:51:15  <dennda> there shouldn't be a deadlock
2008-07-01T16:51:22  <dennda> (that's what they always say)
2008-07-01T16:51:30  <johill> you take a lock in test_item_metadata_without_publish and never release it
2008-07-01T16:52:16  <dennda> actually not as far as I can see
2008-07-01T16:52:31  <johill> oh I see
2008-07-01T16:52:33  <dennda> sure, I call change_metadata()
2008-07-01T16:52:37  <xorAxAx> you probably want to instrument your test class or even the normal code to do some lock sanity checks
2008-07-01T16:52:41  <xorAxAx> that none of them are held etc.
2008-07-01T16:52:50  <xorAxAx> at certain points
2008-07-01T16:52:57  <dennda> but that Item hasn't been stored yet, so there is no Locking object yet (why would you need one?)
2008-07-01T16:53:06  <johill> interesting point
2008-07-01T16:53:10  <johill> hmm
2008-07-01T16:54:35  <dennda> uncomment line 103 and you can clearly see it in the output
2008-07-01T16:54:57  <dennda> there is no lock for the item created in the above test method
2008-07-01T16:55:36  <dennda> and even if that was the case, both items have different lock objects and one shouldn't be dependant on the other
2008-07-01T16:55:50  <johill> right
2008-07-01T16:56:02  <johill> I saw a similar bug in eggdrop
2008-07-01T16:56:22  <johill> but actually, here I think it's not that
2008-07-01T16:57:17  <johill> give me a minute
2008-07-01T16:57:37  <dennda> I think there is a subtile bug in the implementation somewhere that I am not able to see at the moment
2008-07-01T16:57:40  <dennda> ok
2008-07-01T16:59:28  <johill> I think the bug is that you don't increase ID numbers in create_item
2008-07-01T17:00:04  <dennda> hmm
2008-07-01T17:00:43  <dennda> but why does it work if executed by hand then?
2008-07-01T17:00:52  <johill> because then there is no other item with ID 4
2008-07-01T17:02:43  <dennda> hu?
2008-07-01T17:02:47  <dennda> that's exactly the same code
2008-07-01T17:03:06  <johill> hm?
2008-07-01T17:03:11  <johill> are you executing _all_ those tests by hand?
2008-07-01T17:03:22  <xorAxAx> sigh
2008-07-01T17:03:33  <dennda> of course not
2008-07-01T17:04:24  <johill> see?
2008-07-01T17:04:37  <dennda> if what you say was true, why is the if-block in _change_item_metadata executed rather than the else block where the lock would be acquired?
2008-07-01T17:05:05  <johill> because that item never got a lock either I guess
2008-07-01T17:05:27  <johill> or got one
2008-07-01T17:05:33  <johill> your commit_item vs. craete_item is totally confused
2008-07-01T17:05:42  <johill> one assigns the item id and the other doesn't use it
2008-07-01T17:05:48  <johill> but rather uses a new one
2008-07-01T17:06:48  <xorAxAx> sounds like there no tests for these methods :)
2008-07-01T17:06:58  <johill> there are, but they are not threaded
2008-07-01T17:07:08  <xorAxAx> these tests are threaded?
2008-07-01T17:07:12  <johill> no
2008-07-01T17:07:14  <xorAxAx> the ones that fail
2008-07-01T17:07:26  <johill> but the problem only works with threads or when you do the things in right ordre
2008-07-01T17:10:36  <xorAxAx> well, then a test with the "wrong order" is missing
2008-07-01T17:11:54  <dennda> johill: I don't see the problem with the id counting yet, maybe you can elaborate? (When the Backend is initialized, you have no Items, thus, the last_id is 0. When a new Item is created you assign the last_id but you don't know if that will ever be committed. If you commit, the Item will be stored with last_id == 0 and last_id will be increased by one. Then this procedure starts again.)
2008-07-01T17:12:36  <johill> yeah but if you create two items and commit them out of order, it's messed up
2008-07-01T17:12:51  <johill> i.e. i1 = create, i2 = create, i2.commit, i1.commit
2008-07-01T17:13:16  <xorAxAx> johill: can you write a failing test?
2008-07-01T17:13:35  <johill> I have fixed the code now to see if that's really it, I'll try to do that too
2008-07-01T17:13:38  <johill> and yes, it all works now
2008-07-01T17:13:48  <dennda> oh
2008-07-01T17:13:58  <dennda> can you send a patchfile? :)
2008-07-01T17:14:41  <johill> let me try a failing test first
2008-07-01T17:14:42  <xorAxAx> hmm, dont the locks have timeouts?
2008-07-01T17:14:54  <johill> not by default, no
2008-07-01T17:14:57  <xorAxAx> it would be nice if you get into pdb if the lock doesnt work after x secs
2008-07-01T17:15:04  <xorAxAx> (when running tests)
2008-07-01T17:15:14  <johill> wouldn't have helped here much
2008-07-01T17:16:01  <xorAxAx> of course, he would have realised earlier that its a deadlock :)
2008-07-01T17:16:10  <johill> heh
2008-07-01T17:17:22  <dennda> realizing that didn't take that long as that's the only possible cause to it, but I didn't see from where it came
2008-07-01T17:18:54  <johill> ok the order doesn't even matter
2008-07-01T17:19:03  <johill> if you create,create,commit,commit it's already buggy
2008-07-01T17:19:45  <CIA-53> Johannes Berg <johannes AT sipsolutions DOT net> default * 4215:163a8efe668a 1.8-storage-cdenter/MoinMoin/storage/_tests/test_backends_memory.py: storage: currently failing create,create,commit,commit test
2008-07-01T17:22:03  <xorAxAx> johill: hmm, is that test specific to the memory backend?
2008-07-01T17:22:11  <johill> no, why?
2008-07-01T17:22:17  <xorAxAx> then you put it into the wrong class
2008-07-01T17:22:37  <dennda> I will create a generic test class
2008-07-01T17:22:41  <johill> there's no generic class afaik
2008-07-01T17:22:42  <xorAxAx> ok
2008-07-01T17:22:43  <dennda> that's on my todo list
2008-07-01T17:22:51  <xorAxAx> fine
2008-07-01T17:22:57  <CIA-53> Johannes Berg <johannes AT sipsolutions DOT net> default * 4216:2d19f05c60d5 1.8-storage-cdenter/MoinMoin/storage/ (_tests/test_backends_memory.py backends/memory.py): storage: fix test failures, clean up create_item
2008-07-01T17:23:06  <johill> there, look and understand please
2008-07-01T17:23:07  <johill> :)
2008-07-01T17:23:17  <johill> tests finished: 21 passed in 0.14 seconds
2008-07-01T17:23:30  <johill> and now I'll torture you and write a test that will deadlock again
2008-07-01T17:23:58  <dennda> now let me check
2008-07-01T17:25:48  <johill> error: release unlocked lock
2008-07-01T17:25:49  <johill> oh
2008-07-01T17:25:53  <johill> not a deadlock :)
2008-07-01T17:27:36  <xorAxAx> johill: shouldnt you rather request a test from him that deadlocks? :)
2008-07-01T17:28:22  <johill> that was just a guess at what creative API abuse would do :)
2008-07-01T17:29:49  * dennda has only 15 minutes left until another _("exercise")
2008-07-01T17:33:40  <johill> xorAxAx: the question is whether or not create_item/commit and change_metadata/publish_metadata should be nestable
2008-07-01T17:33:44  <johill> I'd think they shouldn't
2008-07-01T17:33:55  <johill> if only for simplicity reasons
2008-07-01T17:35:09  <xorAxAx> hmm
2008-07-01T17:35:09  <johill> dennda: that fix I committed needs a bit of fixing up wrt. exception messages
2008-07-01T17:35:22  <johill> you'll see when you look at it carefully
2008-07-01T17:35:47  <johill> xorAxAx: but if they aren't, they ought to fail fast in that case and not with an unlock error like above
2008-07-01T17:36:10  <xorAxAx> johill: thats necessary in any case - sane error detection :)
2008-07-01T17:36:30  <xorAxAx> probably its indeed not necessary for simplicity reasons and a test should ensure that property
2008-07-01T17:36:57  <johill> yeah
2008-07-01T17:37:07  <johill> the question still is how it fails then
2008-07-01T17:37:09  <johill> assert False?
2008-07-01T17:37:09  <dennda> johill: I only see one Exception with a missing message (and a missing docstring)
2008-07-01T17:37:17  <johill> dennda: yeah something like that
2008-07-01T17:37:19  <dennda> Is that what you meant?
2008-07-01T17:37:20  <dennda> ok
2008-07-01T17:37:22  <dennda> I will add that
2008-07-01T17:37:39  <dennda> need to hurry a bit now. will fetch laptop. hopefully there is strong-enough wifi
2008-07-01T17:37:56  <johill> xorAxAx: I usually take a stance that API violations shouldn't be "semantically valid" exceptions but rather assertion errors or so
2008-07-01T17:38:10  <dennda> In case I don't make it: I'll be back around 20:00. Is that ok for a call? :)
2008-07-01T17:38:38  <xorAxAx> johill: yeah, but it should be tested
2008-07-01T17:38:53  <johill> dennda: sure
2008-07-01T17:39:06  <xorAxAx> johill: but propagating asserrtionerrors outwards is ugly
2008-07-01T17:39:18  <xorAxAx> you lose encapsulation
2008-07-01T17:39:57  <johill> xorAxAx: outwards? what do you mean?
2008-07-01T17:40:08  <xorAxAx> johill: to the calling layers :)
2008-07-01T17:40:22  <johill> the test would py.test.exception(.. AssertionError ..), no?
2008-07-01T17:40:38  <xorAxAx> regardless of the test ...
2008-07-01T17:40:42  <johill> well any error you raise is outbound
2008-07-01T17:40:54  <xorAxAx> no, not if you stop it in your layer
2008-07-01T17:40:54  <johill> I don't think I see your point
2008-07-01T17:41:03  <xorAxAx> but you cant catch assertionerrors :)
2008-07-01T17:41:20  <xorAxAx> well, the idea is the question whether upper layers should see assertionerorrs
2008-07-01T17:41:25  <johill> so I guess py.test can't check for them either?
2008-07-01T17:41:30  <johill> well they are in violation of the API
2008-07-01T17:41:31  <xorAxAx> you say yes because they used it incorrectly
2008-07-01T17:41:34  <johill> what _should_ they see?
2008-07-01T17:41:42  <johill> propose something better
2008-07-01T17:41:42  <xorAxAx> johill: no, i meant stylewise, technically its fine
2008-07-01T17:42:00  <xorAxAx> well, i am not decided yet, just pointing out this fact
2008-07-01T17:42:02  <johill> but I don't want anybody to work around that and do try: ... except APIViolation: ...
2008-07-01T17:42:20  <xorAxAx> yes
2008-07-01T17:42:34  <xorAxAx> well, except if you want to do it towards GUI
2008-07-01T17:42:35  <dennda> http://paste.pocoo.org/show/78279/ why cant you catch them?
2008-07-01T17:42:48  <xorAxAx> imagine a message saying "an error in our enterprise storage system occured" :)
2008-07-01T17:43:03  <xorAxAx> in your case its more like Abort(). Core dumped.
2008-07-01T17:43:05  <xorAxAx> :-)
2008-07-01T17:43:17  <xorAxAx> dennda: 17:41:42
2008-07-01T17:43:37  <dennda> ah, you know I am in a hurry :)
2008-07-01T17:43:41  <dennda> and gone now
2008-07-01T17:43:43  <dennda> bbl
2008-07-01T17:43:52  <johill> xorAxAx: well yeah, sort of, but what is the frontend to do?
2008-07-01T17:44:02  <johill> it can only bail out either way
2008-07-01T17:44:29  <xorAxAx> johill: how about some class that is implying in its name that it doesnt make sense to catch it
2008-07-01T17:44:40  <xorAxAx> johill: except to test whether it was a storage related error
2008-07-01T17:45:11  <johill> that's the thing though, the error isn't really storage-related
2008-07-01T17:45:27  <johill> it's more like a TypeError or so
2008-07-01T17:45:29  <xorAxAx> more like progam related?
2008-07-01T17:45:31  <xorAxAx> ok :)
2008-07-01T17:45:39  <johill> at least I think of it that way
2008-07-01T17:45:40  <xorAxAx> well, you actually catch typeerrors
2008-07-01T17:45:46  <johill> sure but I mean
2008-07-01T17:45:47  <johill> a = (1,2)
2008-07-01T17:45:48  <xorAxAx> so its still different
2008-07-01T17:45:50  <johill> a[0] = 1
2008-07-01T17:45:55  <johill> -> TypeError
2008-07-01T17:45:59  <johill> it doesn't tell you "TupleError"
2008-07-01T17:46:08  <johill> or "TupleReadOnlyError"
2008-07-01T17:46:13  <xorAxAx> because that doesnt make sense :)
2008-07-01T17:46:21  <xorAxAx> here we dont have types but a complex subsystem
2008-07-01T17:46:34  <xorAxAx> but i think assertitions are fine as long as we dont have a good reason against it
2008-07-01T17:46:43  <johill> well then try d = { [1,2]: 7 }
2008-07-01T17:46:52  <johill> arguably a dict is a complex system too
2008-07-01T17:47:17  <xorAxAx> not at all :)
2008-07-01T17:47:41  <johill> either way, I think we should go for something that nobody will even want to catch
2008-07-01T17:47:47  * xorAxAx remembers the SAP discussion with the fellow student who said "i love to learn complex systems thats why i love to hack abap"
2008-07-01T17:48:20  <xorAxAx> nevertheless he is doing MUA for his Ma.
2008-07-01T17:48:35  <xorAxAx> as the major area
2008-07-01T17:48:42  <xorAxAx> s/area/field/
2008-07-01T17:48:54  <johill> and here I thought mua=mail user agent for a second. heh
2008-07-01T17:49:16  <xorAxAx> :)
2008-07-01T18:12:24  <waldi> ThomasWaldmann: i'm not sure if i can make it tomorrow. have some university duties to do (fakultätsrat, uniwahlen)
2008-07-01T18:42:27  <TheSheep> about links opened in new windows: http://www.smashingmagazine.com/2008/07/01/should-links-open-in-new-windows/
2008-07-01T19:19:19  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com default * 4217:548cdfcd2106 1.8-storage-cdenter/MoinMoin/storage/backends/memory.py: storage: (MemoryBackend): Adding docstring and Exception-message. Making sure that, if you store a revisions metadata, you store a deep copy of the metadata dict rather than just a reference to the metadata dict
2008-07-01T19:42:17  <dennda> The heat is killing me... :)
2008-07-01T19:42:50  <johill> it's barely warm, 24.5C
2008-07-01T19:43:37  <dennda> Well, I needed to sprint a few hundred meters in order to get the bus, and inside the bus it was around 70 deg C
2008-07-01T19:43:45  <johill> heh ouch
2008-07-01T19:43:46  <dennda> Happy with that small changeset?
2008-07-01T19:43:50  <johill> yeah
2008-07-01T19:44:39  <dennda> I got once again hit by the number one mistake you can make when copying dicts. Thanks for pointing that out. I corrected it in another place, too
2008-07-01T19:44:48  <johill> :)
2008-07-01T19:45:13  <dennda> I wonder if binding one dict object to multiple names is that much fun that it's even worth risking serious bugs due to that
2008-07-01T19:45:36  <dennda> (in terms of python language design)
2008-07-01T19:45:52  <johill> oh yes, it's certainly necessary
2008-07-01T19:46:50  <dennda> sure you need both
2008-07-01T19:48:15  <johill> phh. like I can remote-diagnose TVs
2008-07-01T19:48:25  <xorAxAx> for whom? :)
2008-07-01T19:48:26  <johill> (grandparents just called me: we have sound but no picture)
2008-07-01T19:48:33  <dennda> Hm? Granny calling?
2008-07-01T19:48:36  <dennda> HAHAHA
2008-07-01T19:48:51  <xorAxAx> hochspannungskaskade/masseanschluss an die bildröhre
2008-07-01T19:49:08  <xorAxAx> johill: tell me whether that was correct :)
2008-07-01T19:49:19  <johill> xorAxAx: no, thing is DVD works and videotext too
2008-07-01T19:49:25  <xorAxAx> hmm, damn
2008-07-01T19:49:48  <xorAxAx> then its probably something near the pal decoder
2008-07-01T19:49:52  * dennda should consider becoming a visionist
2008-07-01T19:50:01  <johill> yeah
2008-07-01T19:50:05  <johill> dvd is connected via scart
2008-07-01T19:50:14  <xorAxAx> dennda: visionary
2008-07-01T19:50:19  <xorAxAx> or, more often psychic
2008-07-01T19:50:23  <dennda> oh, yes
2008-07-01T19:50:24  <xorAxAx> you find them quite often in CA, US
2008-07-01T19:50:35  <johill> don't go to the UK as a psychic
2008-07-01T19:50:45  <xorAxAx> first i thought it would be about psychatrists
2008-07-01T19:50:53  <johill> they have a new law that mandates you have to tell your customers/clients that it's all a hoax
2008-07-01T19:51:04  <dennda> tbh I looked up the word but still managed to misspell it
2008-07-01T19:51:35  <xorAxAx> johill: its easy to hand out a leaflet with a 14pt. section about esoteric stuff and a 5 pt. section about the truth :)
2008-07-01T19:52:09  <johill> xorAxAx: dunno, but they were pretty vocal about hating the law ;)
2008-07-01T19:52:53  <johill> of course, only after it passed, almost as if they didn't see it coming :>
2008-07-01T19:53:17  <xorAxAx> LOL
2008-07-01T19:55:17  <johill> and it's not very important. the good ones can always check before if the customer will report/sue them if they don't say that ;)
2008-07-01T19:55:44  <xorAxAx> :)
2008-07-01T20:06:46  <johill> xorAxAx: my g/f's neighbour actually believes in all this, it's very funny. she even uses a pendulum to determine which of the completely useless medicines you should take :)
2008-07-01T20:08:15  <xorAxAx> well, i believe in pendulums too
2008-07-01T20:08:26  <xorAxAx> but not to choose my medications
2008-07-01T20:33:20  <johill> dennda: did you want to talk then?
2008-07-01T20:34:12  <dennda> johill: in 20 minutes, ok?
2008-07-01T20:35:00  <johill> sure
2008-07-01T21:07:06  <dennda> johill: My roommate is currently occupying the phone
2008-07-01T21:07:34  <xorAxAx> dennda: voip :)
2008-07-01T21:07:55  <dennda> johill: nevermind, just got it
2008-07-01T21:08:27  <dennda> xorAxAx: I'd love to, but johill - despite his sipsolutions domain - likes the oldstyle "phone between ear and shoulder" more :)
2008-07-01T21:08:36  <xorAxAx> dennda: ?
2008-07-01T21:08:41  <xorAxAx> dennda: thats orthogonal
2008-07-01T21:08:58  <dennda> Why?
2008-07-01T21:09:03  <dennda> ah
2008-07-01T21:09:08  <dennda> I see
2008-07-01T21:09:14  <dennda> well, don't want to configure that now
2008-07-01T21:09:21  <dennda> johill: ready?
2008-07-01T21:09:41  <xorAxAx> dennda: its self-configuring :)
2008-07-01T21:09:51  <dennda> xorAxAx: What software do I need?
2008-07-01T21:10:15  <dennda> (I have a phone-flatrate. Using voip to his festnetzanschluss would cost some cents, wouldn't it?)
2008-07-01T21:10:33  <johill> dennda: sure
2008-07-01T21:10:35  <xorAxAx> dennda: there are a lot of clients
2008-07-01T21:10:45  <xorAxAx> dennda: but you need a SIP account somewhere
2008-07-01T21:10:53  <johill> voip doesn't really work on this internet connection
2008-07-01T21:10:56  <johill> even typing ssh lags a lot
2008-07-01T21:11:40  <dennda> johill: that's orthogonal
2008-07-01T21:11:42  * dennda runs
2008-07-01T21:11:44  <xorAxAx> indeed :)
2008-07-01T21:11:48  <johill> heh
2008-07-01T21:12:04  <xorAxAx> johill would call denndas provider via POTS
2008-07-01T21:12:04  <johill> I don't see what's wrong with the POTS if you don't pay for it
2008-07-01T21:12:13  <xorAxAx> johill: a busy line in this case
2008-07-01T21:12:26  <johill> yeah ok, corner cases :)
2008-07-01T21:44:48  <ThomasWaldmann> moin
2008-07-01T21:48:28  <gizmach> when I have unicode: MelitaMihaljevic how do I get only name or in the other list the unicode:NameSurname
2008-07-01T21:57:59  <ThomasWaldmann> waldi: ok
2008-07-01T22:17:53  <dennda> johill: sorry for the abrupt interruption --- thanks for the clarifying call
2008-07-01T22:19:36  <johill> np, you're welcome
2008-07-01T22:20:13  <xorAxAx> dont forget to document technical design decisions in the wiki
2008-07-01T22:20:29  <xorAxAx> having those end up in the brains in even worse thani n the logs :-p
2008-07-01T22:20:56  <johill> heh
2008-07-01T22:21:33  <johill> there weren't really any, we just noticed that we need backend.news() in the API and talked about how to replaces the api ties in the moin code
2008-07-01T22:45:16  <ThomasWaldmann> johill: is .news() used for more than invalidating cache?
2008-07-01T22:45:49  <ThomasWaldmann> dennda:
2008-07-01T22:48:31  <dennda> ThomasWaldmann: As far as I understood, it returns an iterator over the last X changes that have been done before $timestamp (used for "Recent Changes")
2008-07-01T22:53:14  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station PERIOD com> default * 4218:01ba1c2ab187 1.8-storage-cdenter/MoinMoin/storage/__init__.py:
2008-07-01T22:53:14  <CIA-53> storage: (Abstract): Adding keys() methods to both, Item and Revision classes in
2008-07-01T22:53:14  <CIA-53> order to allow looping over the metadata keys with pythons `for key in my_obj`
2008-07-01T22:53:14  <CIA-53> syntax. Fixed a bug that was preventing metadata to be stored on Revisions.
2008-07-01T22:53:15  <CIA-53> NOTE: Write a full set of tests immediately.
2008-07-01T22:54:27  <johill> ThomasWaldmann: it's an optimisation for recentchanges, no?
2008-07-01T22:56:59  <xorAxAx> johill: its not an optimisation, its a necessity :)
2008-07-01T22:57:04  <johill> well, yeah
2008-07-01T22:57:06  <xorAxAx> to avoid O(n) :)
2008-07-01T22:57:51  <dennda> I am thinking of a good german equivalent for the ", no?" you append all the time but cannot find one that doesn't sound arrogant -- and I know you don't mean it that way :)
2008-07-01T22:59:40  <johill> heh
2008-07-01T23:09:35  <ThomasWaldmann> johill: what happens if we have an exception before request.uri is defined?
2008-07-01T23:10:01  <johill> hm
2008-07-01T23:13:27  <johill> can that happen?
2008-07-01T23:17:28  <ThomasWaldmann> you should know :)
2008-07-01T23:18:15  <ThomasWaldmann> also, that print in the password changeset looks no good
2008-07-01T23:25:44  <johill> afaict that can't happen because Request.__init__ already uses that
2008-07-01T23:26:27  <byegonweon> xorAxAx: hi, are you there?
2008-07-01T23:26:34  <johill> oops
2008-07-01T23:26:54  <CIA-53> Johannes Berg <johannes AT sipsolutions DOT net> default * 3810:88bec029f481 1.8/MoinMoin/user.py: remove stray print I left accidentally
2008-07-01T23:27:37  <ThomasWaldmann> johill: dennda: RecentChanges (as is) does not use .news()
2008-07-01T23:27:42  <xorAxAx> hi byegonweon
2008-07-01T23:27:50  <johill> ThomasWaldmann: huh? it uses GlobalEditLog, no?
2008-07-01T23:27:56  <xorAxAx> dennda: oder?
2008-07-01T23:28:00  <byegonweon> xorAxAx: I have question about tidy html.
2008-07-01T23:28:06  <xorAxAx> byegonweon: yes, ask :)
2008-07-01T23:28:40  <dennda> sorry, had a netsplit.
2008-07-01T23:29:11  <byegonweon> xorAxAx: to fix safari problem. I installed tidy library and python wrapper on my computer.
2008-07-01T23:29:23  <xorAxAx> byegonweon: umm
2008-07-01T23:29:33  <xorAxAx> byegonweon: my idea was to do it in JS at the client side
2008-07-01T23:29:36  <johill> ThomasWaldmann: it sure uses GlobalEditLog and as such it uses .news()
2008-07-01T23:29:37  <xorAxAx> not on the server side
2008-07-01T23:29:46  <byegonweon> xorAxAx: and add some code to PageGraphicalEditor.py
2008-07-01T23:29:55  <ThomasWaldmann> johill: yes, it reads edit-log from reverse
2008-07-01T23:29:57  <byegonweon> xorAxAx: it's just experiment.
2008-07-01T23:30:11  <xorAxAx> byegonweon: yes :)
2008-07-01T23:30:14  <johill> ThomasWaldmann: well except that there is no edit-log in the storage code
2008-07-01T23:30:32  <byegonweon> xorAxAx: umm.. anyway I think work on js side is better?
2008-07-01T23:30:51  <byegonweon> xorAxAx: mistyping I think => you think
2008-07-01T23:31:19  <xorAxAx> byegonweon: its better because the server side should be fixed differently without dirty workarounds
2008-07-01T23:31:30  <xorAxAx> byegonweon: and a js side solution is much less invasive and easier to do
2008-07-01T23:31:49  <xorAxAx> byegonweon: if there is one ... thats mainly a matter of searching for it (a function that fixes the dom or something like that)
2008-07-01T23:32:18  <byegonweon> umm.. I understand what you mean.
2008-07-01T23:33:05  <byegonweon> but as you know, html code that current moinmoin made has some problem such as unfinished tag
2008-07-01T23:33:42  <byegonweon> even if we solve that problem on js side, originial problem remain.
2008-07-01T23:34:11  <byegonweon> that's why I try to solve that problem on server side.
2008-07-01T23:36:17  <ThomasWaldmann> johill: it sounded like you are doing it because it is called from RC
2008-07-01T23:36:40  <johill> well it _is_ called from RC, just not directly
2008-07-01T23:36:51  <ThomasWaldmann> but the old news() stuff was introduced for caching iirc
2008-07-01T23:37:26  <johill> and I don't see another useful way to implement GLobalEditLog
2008-07-01T23:40:47  <ThomasWaldmann> ok
2008-07-01T23:41:10  <dreimark> re
2008-07-01T23:43:44  * dreimark is not sure about if I can be online at 13CEST tom.
2008-07-01T23:44:44  <dreimark> we have some kind of electronic equipment check
2008-07-01T23:48:09  <dreimark> gn
2008-07-01T23:51:28  <xorAxAx> byegonweon: which problem remains?
2008-07-01T23:51:42  <xorAxAx> byegonweon: if there is a solution like the one that i sketched, all things should work fine :)
2008-07-01T23:53:09  <johill> dennda: got anything already?
2008-07-01T23:53:39  <dennda> johill: other than the trivial change I committed there?
2008-07-01T23:53:45  <dennda> I can show you my nice little drawing :)
2008-07-01T23:53:56  <johill> :)
2008-07-01T23:54:09  <dennda> which i will hopefully finish in 10 minutes
2008-07-01T23:54:13  <dennda> boy I hate that
2008-07-01T23:54:18  <johill> no was just wondering, I wanted to look at the search code
2008-07-01T23:54:57  <dennda> oh is that dependant on me?
2008-07-01T23:55:21  <dennda> i.e. do I need to do anything first?
2008-07-01T23:55:31  <byegonweon> xorAxAx: but html code made by wiki have unfinished p tag
2008-07-01T23:55:55  <xorAxAx> byegonweon: so?
2008-07-01T23:56:10  <byegonweon> xorAxAx: even if that problem doesn't make any problem.
2008-07-01T23:56:11  <xorAxAx> byegonweon: assume there is a function in safari that fixes the dom tree
2008-07-01T23:56:16  <johill> probably not, but doing it before you convert stuff means I have to write tests ;)
2008-07-01T23:56:21  <xorAxAx> byegonweon: then it will send nice html back
2008-07-01T23:56:24  <xorAxAx> xhtml even
2008-07-01T23:56:35  <dennda> johill: gotcha :)
2008-07-01T23:56:51  <dennda> tests are good, but I won't urge you :)
2008-07-01T23:58:02  <byegonweon> xorAxAx: yes. you are right. but some other program use wiki html page could have same problem.
2008-07-01T23:59:02  <xorAxAx> byegonweon: i know. but as thomas said, theoretically this problem will be gone soon
2008-07-01T23:59:05  <byegonweon> xorAxAx: and when we valid HTML 4.01 link we can see invalid message.
2008-07-01T23:59:12  <xorAxAx> byegonweon: i know
2008-07-01T23:59:23  <xorAxAx> byegonweon: but using an external process to tidy things is just a workaround
2008-07-01T23:59:25  <xorAxAx> not a fix
2008-07-01T23:59:34  <xorAxAx> in the end, its the same what a browser does when parsing a page
2008-07-01T23:59:43  <xorAxAx> (it needs to tidy it as well)
2008-07-01T23:59:48  <johill> dennda: no, you're right, and this would help other stuff  too

MoinMoin: MoinMoinChat/Logs/moin-dev/2008-07-01 (last edited 2008-06-30 22:15:01 by IrcLogImporter)