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)