2008-07-31T00:28:45  <dennda> johill: ping
2008-07-31T01:19:48  <ThomasWaldmann> nightshift :)
2008-07-31T01:20:48  <dennda> just trying to adjust my plan :)
2008-07-31T01:21:49  <dennda> I figure the most important of the tasks left is the AttachFile action
2008-07-31T01:22:45  <ThomasWaldmann> is page stuff now working/
2008-07-31T01:22:52  <ThomasWaldmann> ?
2008-07-31T01:23:02  <dennda> no, following that of course
2008-07-31T01:23:20  <dennda> I am way too tired to debug that now.
2008-07-31T01:23:26  <ThomasWaldmann> yes, and acls
2008-07-31T01:23:50  <dennda> 19 days left until firm pencils down take
2008-07-31T01:23:53  <ThomasWaldmann> (i guess acls could maybe be some middleware)
2008-07-31T01:25:23  <dennda> I hope that's doable
2008-07-31T01:25:27  <ThomasWaldmann> that's 150 hours ;)
2008-07-31T01:25:28  <dennda> I want that T-Shirt! :)
2008-07-31T01:40:07  <waldi> ThomasWaldmann: http://moinmo.in/BastianBlank/TreeOutputFormatter?action=AttachFile&do=view&target=creole-perline.diff
2008-07-31T01:47:57  <ThomasWaldmann> will look at that later
2008-07-31T04:27:31  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4384:3c0ea7dea3fb 1.8-mercurialbackend-ppacana/MoinMoin/storage/_tests/ (test_backends.py test_backends_hg.py): (backend tests) test_revisions_after_rename once again, this time generic and correct.
2008-07-31T08:20:41  <johill> dennda: ignore acls
2008-07-31T08:43:30  <dreimark> moin
2008-07-31T09:42:58  <xorAxAx> byeongweon: hi, no visible activity in the last 20 hours
2008-07-31T11:29:41  <ThomasWaldmann> dennda: info action starts with rev 0 at the top, it rather should be latest rev (reversed)
2008-07-31T11:31:03  <ThomasWaldmann> dennda: if you use diff from there with the radiobuttons, it always shows same diff, no matter which revs you chose
2008-07-31T11:32:08  <ThomasWaldmann> dennda: "to previous" links are given for n-2 revs, not n-1
2008-07-31T11:32:42  <ThomasWaldmann> dennda: author field is not available
2008-07-31T11:33:58  <ThomasWaldmann> dennda: "previous change" navigation in diff display malfunctions when hitting rev 0
2008-07-31T11:35:38  <ThomasWaldmann> dennda: in action info display, it shows "show" link multiplicated (e.g. 5 times for rev 4)
2008-07-31T11:37:05  <ThomasWaldmann> dennda: when going to /RecentChanges, it shows me FrontPage
2008-07-31T11:39:13  <ThomasWaldmann> dennda: when using /RecentChanges?action=raw, it shows correct content
2008-07-31T11:55:54  <ThomasWaldmann> dennda: ?
2008-07-31T13:21:42  * johill looks at dennda's code
2008-07-31T13:24:06  <dennda> johill: Wait a few minutes, I got some patches pending
2008-07-31T13:27:51  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4385:f75752eb6510 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py:
2008-07-31T13:27:51  <CIA-53> (hg) Reimplemented backend fundamentals:
2008-07-31T13:27:51  <CIA-53> - items identified internally by hashes, not names
2008-07-31T13:27:51  <CIA-53> - name to hash mapping
2008-07-31T13:27:51  <CIA-53> - renames by relinking name mappings, not through hg rename
2008-07-31T13:27:53  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4386:4e259e7ee8ec 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py: (hg) Major docstring update with design decisions and backend description.
2008-07-31T13:27:58  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4387:91e7f431d0f4 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py: (hg) Cleaning up last backend implementation: purging unused code, comments. Missing docstrings added.
2008-07-31T13:28:02  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4388:07ea09fcc907 1.8-mercurialbackend-ppacana/MoinMoin/storage/_tests/test_backends_hg.py: (test_backends_hg) Updated test_init_backend to new backend layout.
2008-07-31T13:28:05  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4389:468b0dc1d137 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py: (hg) Fixed unused constant.
2008-07-31T13:28:08  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4390:8c2d4e0c3101 1.8-mercurialbackend-ppacana/MoinMoin/storage/ (_tests/test_backends_hg.py backends/hg.py): (hg, test_backends_hg) Corresponding __init__ update after failing test. Typo fixed in test.
2008-07-31T13:28:14  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4402:6fd9a59c30c9 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py: (hg) Wrong exception fix. PEP8 fixes.
2008-07-31T13:28:17  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4403:716fe9b68e33 1.8-mercurialbackend-ppacana/MoinMoin/ (5 files in 3 dirs): Merge with 1.8-storage-cdenter.
2008-07-31T13:28:17  <xorAxAx> PawelPacana: why is the indirection necessary!??
2008-07-31T13:28:20  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4404:5fe5241b6774 1.8-mercurialbackend-ppacana/MoinMoin/storage/backends/hg.py: (hg) Back and forth. Fix for fix for exception ;)
2008-07-31T13:29:14  <PawelPacana> xorAxAx: indirection?
2008-07-31T13:29:35  <xorAxAx> 13:27:49 < CIA-53> - name to hash mapping
2008-07-31T13:30:08  <TheSheep> xorAxAx: because we have to finish it in two weeks and that's the only sane way to conform to the api
2008-07-31T13:31:47  <xorAxAx> TheSheep: why?
2008-07-31T13:31:59  <xorAxAx> i dont see why the old code wouldnt have worked
2008-07-31T13:32:03  <xorAxAx> can you explain?
2008-07-31T13:32:29  <xorAxAx> also i severely disregard your closed communication
2008-07-31T13:32:53  <PawelPacana> xorAxAx: no it wouldnt, at least in one case
2008-07-31T13:32:59  <xorAxAx> PawelPacana: which one?
2008-07-31T13:33:05  <PawelPacana> xorAxAx: please read docstring first
2008-07-31T13:33:11  <xorAxAx> ok
2008-07-31T13:33:15  <johill> wow that code sucks
2008-07-31T13:34:08  <xorAxAx> what is cdb, PawelPacana?
2008-07-31T13:34:16  <johill> dennda: to diff?
2008-07-31T13:34:24  <johill> xorAxAx: the constant database thing I use in fs backend
2008-07-31T13:34:37  <PawelPacana> johill uses it in fs backend
2008-07-31T13:34:54  <johill> very fast lookups, fast modifications via db rewrites
2008-07-31T13:35:04  <xorAxAx> rewrite sounds totally fast
2008-07-31T13:35:05  <xorAxAx> PawelPacana: hmm
2008-07-31T13:35:10  <dennda> johill: yes
2008-07-31T13:35:14  <johill> xorAxAx: it is, in fact, very fast, I tested it
2008-07-31T13:35:15  <xorAxAx> PawelPacana: i dont see why you need metadata in a rename
2008-07-31T13:35:27  <johill> dennda: good! :)
2008-07-31T13:35:39  <johill> dennda: have you realised already that you need Page.from_revision?
2008-07-31T13:35:39  <xorAxAx> johill: you mean it reads/writes a full file with all data?
2008-07-31T13:35:54  <johill> yes
2008-07-31T13:36:04  <xorAxAx> PawelPacana: a rename is a backend operation that only modifies the nae of an item ... so how would you pass metadata in a rename?
2008-07-31T13:36:04  <johill> where "all data" is in fact rather little data
2008-07-31T13:36:06  <dennda> johill: Have you seen my #XXXs? :)
2008-07-31T13:36:15  <johill> because it only contains name->id mapping
2008-07-31T13:36:18  <xorAxAx> PawelPacana: a rename does not add a new revision to an item
2008-07-31T13:36:33  <johill> dennda: yeah but the most ugly code is elsewhere ;)
2008-07-31T13:37:02  <dennda> johill: where?
2008-07-31T13:37:20  <johill> oldrev/newrev/oldpage/newpage (and the latter two are actually revision objects most of the time)
2008-07-31T13:37:21  <PawelPacana> xorAxAx: fs doesnt do this to
2008-07-31T13:37:35  <PawelPacana> the thing is, it so done later i upper code
2008-07-31T13:38:00  <xorAxAx> PawelPacana: what doesnt it do? i mean, i dont understand the reason for your refactoring
2008-07-31T13:38:12  <dennda> johill: wrt to variable naming?
2008-07-31T13:38:24  <johill> not just that
2008-07-31T13:38:31  <johill> also the way they're used
2008-07-31T13:38:44  <PawelPacana> xorAxAx: fs backend doesnt commit renames
2008-07-31T13:38:52  <PawelPacana> upper layer code is supposed to do it
2008-07-31T13:38:55  <johill> e.g. doing the lookups in that huge if rather than after it etc
2008-07-31T13:39:08  <xorAxAx> PawelPacana: what do you mean by commit?
2008-07-31T13:39:17  <johill> PawelPacana: that's what xorAxAx meant, rename doesn't create any revision
2008-07-31T13:39:24  <johill> PawelPacana: you need to get rid of commit==revision change in your mind
2008-07-31T13:39:24  <PawelPacana> xorAxAx: clearly create revision
2008-07-31T13:39:35  <johill> "commit" as in "hg commit"
2008-07-31T13:39:39  <xorAxAx> PawelPacana: yeah. for that reason i dont see any point in the name/hash indirection
2008-07-31T13:39:46  <PawelPacana> johill: to much hg
2008-07-31T13:39:58  <xorAxAx> and i esp. think that pure hg rename is totally fine for moin
2008-07-31T13:40:07  <xorAxAx> the only disadvantage is accumulating file history in some cases
2008-07-31T13:40:08  <johill> PawelPacana: well if you can't make that abstraction, maybe you need to rethink
2008-07-31T13:42:35  <dennda> < johill> e.g. doing the lookups in that huge if rather than after it etc <-- was that adressed to me?
2008-07-31T13:43:03  <johill> dennda: yeah
2008-07-31T13:43:13  <dennda> johill: Can you rephrase the sentence?
2008-07-31T13:43:14  <johill> the rev == -1 thing
2008-07-31T13:43:24  <dennda> ah
2008-07-31T13:43:28  <dennda> no need
2008-07-31T13:44:46  <dennda> johill: I didn't change the way it worked before, I just adjusted it
2008-07-31T13:46:21  <johill> yeah I guess
2008-07-31T13:46:26  <johill> it doesn't work though :)
2008-07-31T13:46:37  <johill> because you never get any changes since from_item always uses the last revision
2008-07-31T13:46:49  <johill> ah!
2008-07-31T13:46:51  <johill> fancy diff works
2008-07-31T13:46:53  <johill> but normal one doesn't
2008-07-31T13:47:30  <xorAxAx> PawelPacana: but as the new design has no conceptual disadvantages besides usability on the command line and the single bottleneck, i think its fine to keep it like this (maybe it made the code simpler, no idea)
2008-07-31T13:47:39  <xorAxAx> PawelPacana: do you still need unittests for rename operations?
2008-07-31T13:48:38  <johill> dennda: you also need to catch a bunch of things like NoSuchRevisionError
2008-07-31T13:49:56  <PawelPacana> xorAxAx: i didnt want to run into hiding/marking revisions or some revision 'pointers', revision lookups would be worse
2008-07-31T13:50:04  <PawelPacana> as for console usage
2008-07-31T13:50:18  <PawelPacana> would like to wikiquote name by yorself on rename?
2008-07-31T13:50:23  <xorAxAx> PawelPacana: why hiding?
2008-07-31T13:50:31  <xorAxAx> PawelPacana: neither marking would be necessary
2008-07-31T13:50:41  <xorAxAx> hmm, wikiquote?
2008-07-31T13:51:04  <PawelPacana> ale names were quoted and trimmed
2008-07-31T13:51:07  <PawelPacana> to sotre on fs
2008-07-31T13:51:14  <TheSheep> s/ale/but
2008-07-31T13:51:15  <PawelPacana> *store it on fs
2008-07-31T13:51:22  <xorAxAx> so?
2008-07-31T13:51:25  <PawelPacana> s/ale/all
2008-07-31T13:52:05  <xorAxAx> i still dont understand why you need markers and why quoting is an issue
2008-07-31T13:52:23  <xorAxAx> please describe the exact problem/question
2008-07-31T13:52:24  <PawelPacana> how would you rename page on console?
2008-07-31T13:52:38  <xorAxAx> well, thats not possible
2008-07-31T13:52:46  <xorAxAx> but we are not talking about that
2008-07-31T13:53:07  <xorAxAx> certain other design decisions make it problematic as well
2008-07-31T13:53:11  <johill> dennda: I have fixes for a bunch of things, want a patch?
2008-07-31T13:53:42  <TheSheep> xorAxAx: the only reason why we decided to use page titles as file names was to make it possible to edit the wiki with external tools, and then just commit the changes with hg
2008-07-31T13:53:50  <dennda> johill: sure, but wait a sec until I commit the pending changes
2008-07-31T13:53:57  <xorAxAx> TheSheep: yeah
2008-07-31T13:54:11  <johill> http://paste.pocoo.org/show/80802/
2008-07-31T13:54:48  <xorAxAx> well, i just want to point out that you dont need markers and emphasize that i was serious that i am fine if it isnt reverted to the last design iteration
2008-07-31T13:55:09  <TheSheep> xorAxAx: now, to do that we would have to allow hg rm for deletion and hg mv for renaming, and that's not possible anymore
2008-07-31T13:55:18  <PawelPacana> markers for cutting hg history on renamed than recreated items, hiding that automatic revision on forced 'hg commit' after 'hg rename'
2008-07-31T13:55:40  <johill> not cutting
2008-07-31T13:55:43  <johill> making it follow
2008-07-31T13:55:52  <xorAxAx> TheSheep: hg rm would result in purge in the old model and hg mv renaming
2008-07-31T13:55:55  <johill> (ok, cutting in a _new_ item that was created afterwards)
2008-07-31T13:56:01  <xorAxAx> TheSheep: wiki deletion is not doable on the command line in the old model
2008-07-31T13:56:08  <xorAxAx> PawelPacana: ?
2008-07-31T13:56:09  <TheSheep> johill: and cutting on item names renamed *from*
2008-07-31T13:56:18  <xorAxAx> PawelPacana: you dont have any 1:1 relation between hg revs and wiki revs anyway
2008-07-31T13:56:34  <xorAxAx> PawelPacana: you need to cut the history at certain points and make sure that you can synthesize metadata
2008-07-31T13:56:36  <TheSheep> xorAxAx: there is 1:1 relation
2008-07-31T13:56:39  <PawelPacana> xorAxAx: why?
2008-07-31T13:56:45  <xorAxAx> TheSheep: thats not possible to retain
2008-07-31T13:56:48  <johill> xorAxAx: I don't think they've understood that yet
2008-07-31T13:57:06  <xorAxAx> PawelPacana: in order to support rename or command line commits.
2008-07-31T13:57:27  <xorAxAx> PawelPacana: i havent thought about the new model yet, but you will probably see. EOD. please respond to my unittest question
2008-07-31T13:58:02  <PawelPacana> xorAxAx: rename has test, i you would like to write another one i would aprreciate it
2008-07-31T13:58:25  <xorAxAx> PawelPacana: ok, let me see
2008-07-31T14:08:04  <PawelPacana> xorAxAx: for better understanding, hg has changesets revisions and file revisions. there _is_ 1:1 relation beeteen filerevs and wiki page revs
2008-07-31T14:08:30  <xorAxAx> PawelPacana: in the old model, that would have been broken
2008-07-31T14:08:34  * PawelPacana has to pack some stuff, and move to another place (end of July)
2008-07-31T14:08:37  <xorAxAx> i know hg's design
2008-07-31T14:11:16  <PawelPacana> xorAxAx: thats whats i meant when writing about revision masking
2008-07-31T14:15:37  <xorAxAx> marking != masking
2008-07-31T14:18:14  <PawelPacana> masking == hiding
2008-07-31T14:18:34  <xorAxAx> yes
2008-07-31T14:19:28  <CIA-53> Alexander Schremmer <alex AT alexanderweb DOT de> default * 3780:40f2cce6f6d9 1.7/MoinMoin/ (_tests/maketestwiki.py conftest.py): Insert moins path more aggressively into sys.path to win the race against py.test, do insertions less often in make_test_wiki
2008-07-31T14:19:31  <CIA-53> Alexander Schremmer <alex AT alexanderweb DOT de> default * 3781:49bb3b6e3ab5 1.7/ (137 files in 41 dirs): Merged main
2008-07-31T14:20:37  <CIA-53> Alexander Schremmer <alex AT alexanderweb DOT de> default * 3910:6fbfffffc4d1 1.8/MoinMoin/ (_tests/maketestwiki.py conftest.py): Insert moins path more aggressively into sys.path to win the race against py.test, do insertions less often in make_test_wiki
2008-07-31T14:24:29  <xorAxAx> i am seeing failurs in the memory backend tests, johill
2008-07-31T14:24:56  <johill> cool
2008-07-31T14:24:58  <johill> no idea
2008-07-31T14:25:04  <ThomasWaldmann> byeongweon: [javascript:void(0);/*1217498881882*/FooBar]
2008-07-31T14:25:17  <johill> ThomasWaldmann: that's the ff3 thing?
2008-07-31T14:25:19  <ThomasWaldmann> did you fix a bug related to such strange stuff?
2008-07-31T14:27:29  <ThomasWaldmann> http://moinmo.in/MoinMoinBugs/GuiEditorLinkContainsJavaScript looks like this one
2008-07-31T14:28:17  <johill> http://moinmo.in/MoinMoinBugs/GUIEditorInsertsInvalidLinkInFirefox3
2008-07-31T14:29:08  <ThomasWaldmann> bug is still open, but listed under "fixed" on moon's soc page
2008-07-31T14:29:54  <johill> makes sense until that's merged
2008-07-31T14:30:21  <xorAxAx> just put some /!\ on this page
2008-07-31T14:30:24  <xorAxAx> -t
2008-07-31T14:30:25  <ThomasWaldmann> but there should be a link to the changeset with the fix (in the bug report)
2008-07-31T14:30:49  <xorAxAx> PawelPacana: hmm
2008-07-31T14:30:52  <ThomasWaldmann> xorAxAx: i guess he will just have to look at all those page systematically
2008-07-31T14:30:58  <xorAxAx> PawelPacana: my test is failing before it even really started
2008-07-31T14:31:03  <ThomasWaldmann> and add stuff to status:
2008-07-31T14:31:06  <xorAxAx> i wrote:
2008-07-31T14:31:06  <xorAxAx>     def test_item_rename_threesome(self):
2008-07-31T14:31:06  <xorAxAx> >       item1 = self.create_rev_item_helper("item1")
2008-07-31T14:31:16  <xorAxAx> and commit_item is failing
2008-07-31T14:31:22  <xorAxAx> PawelPacana: is that expected?
2008-07-31T14:31:33  <johill> xorAxAx: which backend? or just generally?
2008-07-31T14:31:36  <xorAxAx> ThomasWaldmann: yes, thats what we told him yesterday
2008-07-31T14:31:38  <xorAxAx> johill: thats hg
2008-07-31T14:32:01  <PawelPacana> xorAxAx: are you using devel version of hg?
2008-07-31T14:32:03  <xorAxAx> PawelPacana: so it looks like i cannot create a rev currently
2008-07-31T14:32:06  <xorAxAx> PawelPacana: hmm, no
2008-07-31T14:32:35  <PawelPacana> xorAxAx: so basically you didnt read docstring
2008-07-31T14:32:54  <xorAxAx> PawelPacana: well, i just push the new test on dennda's repo and you can copy it from there - its really not very in depth, just a missing case probably (and you can check whether it works in a local repo)
2008-07-31T14:32:58  <xorAxAx> PawelPacana: hehe
2008-07-31T14:33:06  <xorAxAx> PawelPacana: please add appropriate skips to the test modules
2008-07-31T14:33:27  <xorAxAx> so this wont happen again
2008-07-31T14:33:40  <xorAxAx> otherwise its counting as a failing tests
2008-07-31T14:33:45  <xorAxAx> s/s$//
2008-07-31T14:33:50  <PawelPacana> xorAxAx: ok
2008-07-31T14:34:03  <johill> ehm
2008-07-31T14:34:07  <johill> skipping tests counts as failure too ;)
2008-07-31T14:34:24  <xorAxAx> johill: no
2008-07-31T14:34:28  <johill> either for the test or the backend
2008-07-31T14:35:00  <xorAxAx> ThomasWaldmann: why cant i push to denndas repo?
2008-07-31T14:35:28  <xorAxAx> johill: well, if there are missing dependencies, its neither a failure nor a problem
2008-07-31T14:35:32  <xorAxAx> just unknown
2008-07-31T14:35:45  <johill> oh missing dependencies? what would that be?
2008-07-31T14:35:54  <xorAxAx> an uptodate mercurial
2008-07-31T14:36:00  <xorAxAx> from crew
2008-07-31T14:36:01  <johill> ah
2008-07-31T14:36:09  <johill> ok yeah in that case
2008-07-31T14:37:26  <ThomasWaldmann> xorAxAx: should work
2008-07-31T14:38:02  <xorAxAx> ah, found the issue
2008-07-31T14:38:23  <CIA-53> Alexander Schremmer <alex AT alexanderweb DOT de> default * 4385:49a4cda8e283 1.8-storage-cdenter/MoinMoin/storage/_tests/test_backends.py: Add small renaming test.
2008-07-31T14:41:53  <CIA-53> Pawel Pacana <pawel.pacana@gmail.com> default * 4406:ec3ddbf1030e 1.8-mercurialbackend-ppacana/MoinMoin/storage/ (3 files in 2 dirs): Automated merge with http://hg.moinmo.in/moin/1.8-storage-cdenter
2008-07-31T14:42:11  <PawelPacana> xorAxAx: clean
2008-07-31T14:43:10  <xorAxAx> you mean it works fine? good
2008-07-31T14:43:14  <johill> xorAxAx: re-getting the item reference might be better because there might possibly be something cached in it and that doesn't hit the storage?
2008-07-31T14:43:25  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4386:e88187dd482f 1.8-storage-cdenter/MoinMoin/action/info.py: storage: fix info action (display revisions in reverse order, latest first. fix 'to previous' links). Thanks ThomasWaldmann and JohannesBerg
2008-07-31T14:43:25  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4387:78d8746fc248 1.8-storage-cdenter/MoinMoin/action/diff.py: storage: make diff code less confusing, add comments, adapt to zero-based revnos of storage backend, general diff-code-cleanup. Thanks ThomasWaldmann and JohannesBerg.
2008-07-31T14:43:26  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4388:625576c4bad1 1.8-storage-cdenter/MoinMoin/storage/_tests/test_backends.py: Merge heads. AlexanderSchremmer added a small renaming test.
2008-07-31T14:43:29  <xorAxAx> johill: possible, yes
2008-07-31T14:43:57  <xorAxAx> dennda: hehe, verbose merge msg
2008-07-31T14:44:34  <dennda> xorAxAx: Explicit is better than implicit. Verbose is (sometimes) better than concise. :)
2008-07-31T14:45:04  <xorAxAx> dennda: but a bit unnecessary. think about all the false positives people will get when searching through the revlog :)
2008-07-31T14:45:19  <dennda> xorAxAx: simply "merge" next time?
2008-07-31T14:45:53  <xorAxAx> dennda: and branch name, yes
2008-07-31T14:46:17  <xorAxAx> in this case merge is fine, yep
2008-07-31T14:46:53  <dennda> ok
2008-07-31T14:50:33  <dennda> johill: Looking at the other changes, too?
2008-07-31T14:50:41  <johill> not right now, but I can
2008-07-31T14:51:25  <dennda> johill: Especially my "fix" to your fs backend. I think I made a mistake there
2008-07-31T14:51:43  <johill> it seems I did get ioerror
2008-07-31T14:51:46  <dennda> If you look into it, you will find that I changed IOError to OSError
2008-07-31T14:51:57  <johill> maybe both can happen depending on the OS?
2008-07-31T14:52:06  <dennda> Because it raised OSError and claimed the path doesn't exist
2008-07-31T14:52:10  <xorAxAx> dennda: where is the test? :)
2008-07-31T14:52:21  <johill> * Transferring logging-related metadata constants to PageEditor.py.
2008-07-31T14:52:27  <johill> you copied it! not transferred
2008-07-31T14:52:41  <dennda> The docu however suggests that OSError is raised if the path you are trying to unlink is a folder
2008-07-31T14:52:55  <dennda> xorAxAx: On my disk. It didn't fail. That's why I am a bit confused
2008-07-31T14:52:57  <johill> and afaict you didn't even remove the import?
2008-07-31T14:53:09  <xorAxAx> dennda: thats bad :)
2008-07-31T14:53:30  <dennda> johill: Doing now, just a sec
2008-07-31T14:54:32  <dennda> johill: Do we want to keep the constants in PageEditor.py or storage? Doesn't matter too much though
2008-07-31T14:54:42  <dennda> (storage just seems a bit layer-violated)
2008-07-31T14:55:55  <byeongweon> ThomasWaldmann: could you tell me more information about [javascript:void(0);/*1217498881882*/FooBar] thing?
2008-07-31T14:56:19  <byeongweon> ThomasWaldmann: I just check that bugs that you pointed
2008-07-31T14:56:30  <dennda> johill: Which import? Don't confuse EDIT_LOCK with EDIT_LOG
2008-07-31T14:56:39  <byeongweon> but it seems like works fine
2008-07-31T14:57:09  <johill> dennda: well if the code worked before, the constants must have come from somewhere
2008-07-31T14:57:19  <johill> therefore, they were imported, and I don't see you removing it
2008-07-31T14:57:28  <johill> in 4b6e437bf885
2008-07-31T14:58:08  <dennda> Ah you are judging from the changeset. I am looking at the code, and there is no import wrt EDIT_LOG
2008-07-31T14:58:27  <johill> then maybe you removed it later and have an unclean changeset ;)
2008-07-31T14:58:47  <dennda> maybe :)
2008-07-31T14:59:09  <dennda> I'll move them to PageEditor.py
2008-07-31T15:00:12  <johill> heh :)
2008-07-31T15:01:54  <dennda> Or rather storage/__init__.py
2008-07-31T15:02:24  <johill> not sure about that, I'd like stuff in there to be mostly metadata agnostic
2008-07-31T15:02:43  <johill> as xorAxAx said yesterday, we need a new Page() class that unifies Page/PageEditor
2008-07-31T15:02:46  <johill> but not now
2008-07-31T15:05:27  <dennda> If you don't strongly disagree I'll just keep it there (until somebody refactors Page/PageEditor and cut-pastes it out) and move on
2008-07-31T15:05:58  <johill> keep in pageeditor? sure, that's fine
2008-07-31T15:06:07  <johill> or where are they now?
2008-07-31T15:06:09  <dennda> In __init__.py :)
2008-07-31T15:06:14  <johill> ah
2008-07-31T15:06:16  <johill> ok whatever
2008-07-31T15:06:26  <johill> maybe add a comment that that's not technically storage
2008-07-31T15:06:33  <johill> because e.g. user storage absolutely doesn't use them
2008-07-31T15:06:38  <dennda> sure
2008-07-31T15:08:08  <byeongweon> dreimark: sorry I was visit somewhere I came back now.
2008-07-31T15:08:32  <byeongweon> dreimark: macros description came from HelpOnMacros page
2008-07-31T15:11:08  <dennda> johill: What about that Exception thing?
2008-07-31T15:12:42  <johill> when you manipulate the view/diff url
2008-07-31T15:14:46  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4389:6bb099df18ea 1.8-storage-cdenter/MoinMoin/ (4 files in 2 dirs): storage: Cleaning imports. (Esp. moving EDIT_LOG-Constants to one place only).
2008-07-31T15:16:31  <dennda> johill: Was that sentence meant to be continued?
2008-07-31T15:17:22  <johill> not really
2008-07-31T15:17:23  <johill> but I can :)
2008-07-31T15:17:35  <johill> when you manipulate the view/diff url to use revnos that don't exist
2008-07-31T15:18:39  <dennda> ...then that error occurrs?
2008-07-31T15:18:46  <johill> yes
2008-07-31T15:28:57  <dennda> This import-EDIT_Foo is a greater mess than I thought. Cleaning it up...
2008-07-31T15:35:04  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4390:692064a3f826 1.8-storage-cdenter/MoinMoin/ (5 files in 3 dirs): storage: Further import-cleanup. Removing obsolete imports.
2008-07-31T15:43:46  <dennda> johill: I was talking about the OSError / IOError thing. How is that related?
2008-07-31T15:46:18  <xorAxAx> dennda: if you cannot write a failing test, you might want to consider reverting the change
2008-07-31T15:46:48  <dennda> xorAxAx: Actually, I am. I just want to discuss that first, before I need to revert the revert :)
2008-07-31T15:47:02  <xorAxAx> yeah
2008-07-31T15:48:52  <johill> dennda: ohh
2008-07-31T15:48:54  <johill> no it isn't
2008-07-31T15:49:11  <johill> I wasw thinking you were talking about the NoSuchRevisionError I got
2008-07-31T15:50:35  <johill> I don't know about that thing
2008-07-31T15:52:11  <dennda> Hmm
2008-07-31T15:56:35  <dennda> johill: Rest of changes ok?
2008-07-31T16:03:03  * dennda fixes...
2008-07-31T16:20:00  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4391:635d46cd2971 1.8-storage-cdenter/MoinMoin/ (PageEditor.py action/info.py): storage: info action: Fix editor column. The editor of a page is now shown.
2008-07-31T16:21:26  <johill> yeah seems fine
2008-07-31T16:22:24  <dennda> Glad
2008-07-31T16:22:58  <dennda> It's not my intention to produce crappy code, but I am bad at refactoring messy and undocumented code I didn't write myself :)
2008-07-31T16:23:11  * dennda checks list of outstanding issues...
2008-07-31T16:24:19  <johill> :)
2008-07-31T16:24:46  <xorAxAx> johill: have you created a page about the RC ideas?
2008-07-31T16:25:31  <johill> I added a note to dennda's page
2008-07-31T16:25:58  * dennda discovered it 0 secs after it had been saved. even before the email was sent afair ;)
2008-07-31T16:26:00  <xorAxAx> url?
2008-07-31T16:26:07  <dennda> moinmo.in/ChristopherDenter
2008-07-31T16:26:34  <johill> heh
2008-07-31T16:27:48  <xorAxAx> hmm, the creation time needs to be a metadata field, yep
2008-07-31T16:29:20  <xorAxAx> and the time returned by news could be a different timestamp. i think thats fine from a conceptual point of view
2008-07-31T16:30:04  <johill> well it can be the same
2008-07-31T16:30:12  <johill> if we "hard-wire" that metadata field
2008-07-31T16:30:18  <johill> and maybe fill it if not present
2008-07-31T16:30:19  <xorAxAx> no no, dont do that
2008-07-31T16:30:31  <xorAxAx> you want to set arbritrary timestamps
2008-07-31T16:30:47  <johill> 'if not present'
2008-07-31T16:30:57  <xorAxAx> too much magic
2008-07-31T16:31:00  <johill> i.e. don't require it to be set because it's so important
2008-07-31T16:31:01  <xorAxAx> broken abstraction
2008-07-31T16:31:02  <johill> then require it
2008-07-31T16:31:09  <johill> fine with me either way
2008-07-31T16:31:15  <johill> but if we want it in news, we need it to be there all the time
2008-07-31T16:31:19  <xorAxAx> well, its not used by the backend, so dont require it :)
2008-07-31T16:31:22  <xorAxAx> no
2008-07-31T16:31:30  <xorAxAx> the news timestamp should be another one
2008-07-31T16:31:37  <johill> then news isn't purely an optimisation
2008-07-31T16:31:41  <xorAxAx> the news timestamp is promised to be a sequential logical lamport time
2008-07-31T16:31:46  <johill> but can have (slightly) different data
2008-07-31T16:31:50  <xorAxAx> no
2008-07-31T16:32:05  <xorAxAx> just scale the timestamp against a 2008 epoche if you like
2008-07-31T16:32:07  <johill> but you can't get at the news timestamp currently
2008-07-31T16:32:15  <xorAxAx> the point is that we only need an increasing logical time in news()
2008-07-31T16:32:15  <johill> from a revision object
2008-07-31T16:32:20  <xorAxAx> you dont want to!
2008-07-31T16:32:23  <ThomasWaldmann> dennda: NoSuchItemError: No such item, u'foo'
2008-07-31T16:32:29  <ThomasWaldmann> dennda: NoSuchRevisionError: No Revision #2 on Item foo - Available revisions: [0, 1]
2008-07-31T16:32:50  <ThomasWaldmann> diff action, both to be catched
2008-07-31T16:32:52  <johill> ok, yes, we can make the news timestamp just be "a monotonically increasing function of time"
2008-07-31T16:32:59  <johill> and the actual contents doesn't matter
2008-07-31T16:33:07  <johill> /however/, it is used for RC cutoff
2008-07-31T16:33:12  <xorAxAx> so?
2008-07-31T16:33:14  <johill> which means that isn't right
2008-07-31T16:33:22  <johill> say you transfer from one backend to another
2008-07-31T16:33:26  <xorAxAx> RC doesnt work anyway :)
2008-07-31T16:33:31  <xorAxAx> let me thin
2008-07-31T16:33:33  <xorAxAx> k
2008-07-31T16:33:45  <johill> if news timestamp is just something, then conversions between backends don't preserve rc timestamps
2008-07-31T16:34:14  <xorAxAx> you need a correct realtime timestamp for bookmarks
2008-07-31T16:34:18  <xorAxAx> anything else is painful
2008-07-31T16:34:31  <xorAxAx> the question is - where do you derive this timestamp from ...
2008-07-31T16:35:03  <johill> not backend realtime though
2008-07-31T16:35:05  <johill> editing realtime
2008-07-31T16:35:13  <johill> and backend realtime might be different for conversions
2008-07-31T16:35:20  <johill> hence, you need to be able to specify that timestamp in the API
2008-07-31T16:35:31  <xorAxAx> which API?
2008-07-31T16:36:06  <johill> revision creation
2008-07-31T16:36:13  <johill> which is available through news()
2008-07-31T16:36:39  <xorAxAx> well:
2008-07-31T16:36:53  <xorAxAx> the news idea is that it is monotic (i.e. append only)
2008-07-31T16:37:03  <xorAxAx> but revision time stamps dont need to be monotic
2008-07-31T16:37:21  <xorAxAx> imagine an import that creates a new item that was created yesterday
2008-07-31T16:37:27  <johill> exactly
2008-07-31T16:37:32  <johill> but rc has to use news()
2008-07-31T16:37:39  <johill> and it needs to cut off
2008-07-31T16:37:45  <xorAxAx> so there is a conceptual issue here that cant be fixed by unifying these timestamps
2008-07-31T16:37:53  <johill> so news() really needs to use the revision timestamp from yesterday
2008-07-31T16:37:59  <xorAxAx> no, it cant
2008-07-31T16:38:04  <xorAxAx> then everything would explode
2008-07-31T16:38:05  <johill> which just means that you have to import old revisions in the right order
2008-07-31T16:38:33  <johill> what would explode? I don't see any such thing
2008-07-31T16:38:33  <xorAxAx> i suggest to keep both separate, store logical time in the bookmark and derive a display time
2008-07-31T16:38:46  <xorAxAx> johill: e.g. RC would not show it
2008-07-31T16:38:52  <johill> that part is easy, the reverse mapping is hard
2008-07-31T16:38:56  <xorAxAx> well, you would break the invariant, time would run backwards
2008-07-31T16:39:01  <xorAxAx> which reverse mapping?
2008-07-31T16:39:09  <johill> from display to logical time
2008-07-31T16:39:10  <xorAxAx> you dont need a reverse mapping
2008-07-31T16:39:19  <johill> sure: "I want everything from the last 90 days"
2008-07-31T16:39:24  <xorAxAx> hmm,
2008-07-31T16:39:30  <xorAxAx> never used those
2008-07-31T16:39:38  <xorAxAx> ok, that makes it harder
2008-07-31T16:39:46  <xorAxAx> well, but even then its easy:
2008-07-31T16:40:09  <xorAxAx> you bisect the logical time realm until you reached your 90 days boundary. much like it would do a linear backwards scan currently
2008-07-31T16:40:34  <xorAxAx> ok, bisection is bad, maybe something more stable in such importing use cases
2008-07-31T16:40:37  <xorAxAx> or!
2008-07-31T16:41:16  <xorAxAx> you just generate the logical time linearly and show the news() entries that happened in the last 90 days
2008-07-31T16:41:22  <xorAxAx> i think thats the sanest solution :)
2008-07-31T16:41:33  <johill> news is also an iterator
2008-07-31T16:41:38  <johill> so it doesn't actually really need the cutoff
2008-07-31T16:41:54  <johill> except that you'd need to access all revisions on disk to load their time
2008-07-31T16:42:00  <johill> instead of just reading the news file
2008-07-31T16:42:14  <xorAxAx> well, it doesnt need to be precise
2008-07-31T16:42:28  <johill> well typically, news timestamps and actual timestamps will be mostly identical
2008-07-31T16:42:38  <xorAxAx> yes, but thats an implementation detail
2008-07-31T16:42:40  <johill> (unless you use an epoch or whatever)
2008-07-31T16:42:48  <johill> however, once you convert, they will diverge vastly
2008-07-31T16:42:56  <xorAxAx> so?
2008-07-31T16:43:00  <dennda> ThomasWaldmann: Yes, I was just doing that
2008-07-31T16:43:30  <ThomasWaldmann> btw, other than that, you are working on getting show/edit behave sanely?
2008-07-31T16:44:08  <dennda> I.e., not showing the last page saved regardless of what page you actually want to view?
2008-07-31T16:44:27  <xorAxAx> johill: i think that should work fine nevertheless
2008-07-31T16:44:39  <xorAxAx> you just have to live with both time scales
2008-07-31T16:44:56  <xorAxAx> one of them being less useful in terms of global time but more useful in terms of per-page time
2008-07-31T16:45:38  * dennda throws a pizza into the oven
2008-07-31T16:45:46  <johill> well the news time would be fairly useless since it would be based on the conversion time
2008-07-31T16:46:09  <xorAxAx> no, not useless
2008-07-31T16:46:11  <johill> but if you allow storing revisions with old logical time then you can even lose ordering between the two
2008-07-31T16:46:14  <xorAxAx> it should appear in RC
2008-07-31T16:46:27  <xorAxAx> no, it should be linear per item
2008-07-31T16:46:31  <johill> why should an administration detail about the backend show up?
2008-07-31T16:46:38  <johill> (i.e. admin converted from sql to fs or whatever)
2008-07-31T16:46:42  <xorAxAx> umm
2008-07-31T16:46:53  <xorAxAx> i am thinking about some kind of merge use case
2008-07-31T16:47:09  <xorAxAx> somebody imports some datasource into the wiki from somewhere else
2008-07-31T16:47:18  <johill> technically, news() already has that sort of lamport time
2008-07-31T16:47:22  <johill> because it's linearly ordered
2008-07-31T16:47:31  <xorAxAx> yes
2008-07-31T16:47:37  <xorAxAx> also, your conversion example is a bit flawed:
2008-07-31T16:47:52  <xorAxAx> in a conversion use case, you dont want to create new news() items but retain the old ones
2008-07-31T16:48:06  <xorAxAx> so these are probably different use cases
2008-07-31T16:48:11  <johill> but we don't have a way to do that because news is implicit
2008-07-31T16:48:19  <xorAxAx> well, we will have to
2008-07-31T16:48:22  <johill> and I always thought that news() was just an optimisation of getting at the same data
2008-07-31T16:48:33  <xorAxAx> hmm
2008-07-31T16:48:33  <johill> i.e. if you lose the news file you can just rebuild it by going through revisions
2008-07-31T16:49:15  <xorAxAx> i think news() isnt very critical at all in most cases
2008-07-31T16:49:33  <johill> well it is critical to RC performance, because otherwise you need to run through all items
2008-07-31T16:49:41  <xorAxAx> in the sense of old things missing there. in my import use case, people would be fine if the imported pages vanished because they were created years ago
2008-07-31T16:50:03  <xorAxAx> i mean reliability of it isnt important - you can throw away data
2008-07-31T16:50:19  <xorAxAx> (vanished after recreating internal news data)
2008-07-31T16:50:34  <xorAxAx> note that news recreation cant be done by the backend
2008-07-31T16:50:45  <xorAxAx> if it doesnt have a notion of time
2008-07-31T16:50:56  <xorAxAx> hrm
2008-07-31T16:51:09  <xorAxAx> well, in the enterprise solution, you would add 2 fields
2008-07-31T16:51:30  <xorAxAx> creation- and add-time and make the backend aware
2008-07-31T16:51:48  <xorAxAx> the backend would always read the add-time
2008-07-31T16:52:01  <xorAxAx> if you move this field out of metadata, you would have clear abstraction boundaries again :)
2008-07-31T16:52:08  <johill> yeah
2008-07-31T16:52:31  <johill> well I would probably just have a creation time thingie that you can write, and require that you don't import anything with a time before the most recent
2008-07-31T16:52:36  <johill> i.e. create revisions in order even if you convert
2008-07-31T16:52:40  <xorAxAx> for simplicity reasons one probably does not want to
2008-07-31T16:53:01  <xorAxAx> johill: umm, but that would defeat my import use case
2008-07-31T16:53:26  <xorAxAx> imported wikis are considered to be concurrent
2008-07-31T16:53:37  <xorAxAx> so you couldnt merge 2 moin wikis anymore
2008-07-31T16:53:41  <johill> why not?
2008-07-31T16:53:48  <johill> just iterate both news
2008-07-31T16:53:52  <johill> and merge them in order
2008-07-31T16:53:54  <dennda> As a general note: Why am I getting two tracebacks when reproducing that NoSuchRevisionError-Exception-Bug?
2008-07-31T16:54:11  <johill> dennda: no idea? maybe something in the traceback printing freaks out?
2008-07-31T16:54:17  <xorAxAx> johill: i was assuming that the whole time. but your new creation timestamp of the newly imported rev would be in the past
2008-07-31T16:54:27  <xorAxAx> johill: ah, or do you mean replacing the storage?
2008-07-31T16:54:39  <xorAxAx> indeed, like in the history compactation use case
2008-07-31T16:54:39  <johill> well you would of course allow storing a revision with an old timestamp
2008-07-31T16:54:45  <xorAxAx> not nice, but probably better than other things
2008-07-31T16:55:07  <johill> I think we're not quite on the same page
2008-07-31T16:55:09  <xorAxAx> esp. bad for the hg backend because you invalidate your old changeset hashs
2008-07-31T16:55:20  <johill> hm?
2008-07-31T16:55:25  <johill> if you convert that's all gone anyway, no?
2008-07-31T16:55:29  <xorAxAx> johill: you seem to suggest to zip() both iterators when merging a new wiki, no?
2008-07-31T16:55:58  <xorAxAx> well, time-compatible zip
2008-07-31T16:56:01  <xorAxAx> weave
2008-07-31T16:56:09  <johill> not zip
2008-07-31T16:56:11  <johill> weave, yes
2008-07-31T16:56:57  <xorAxAx> yes, this hash issue might occur in other cases as well
2008-07-31T16:57:19  <johill> I'm suggesting that you are allowed to set the "creation timestamp" of a revision (and it gets used in news) with the restriction that you must have creation timestamps in the right order
2008-07-31T16:57:25  <xorAxAx> dennda: with py.test?
2008-07-31T16:57:30  <xorAxAx> johill: yes
2008-07-31T16:57:41  <johill> do you see a problem with that?
2008-07-31T16:57:59  <xorAxAx> johill: so we only need one timestamp. but a news() recreation script would need meta data knowledge
2008-07-31T16:58:03  <xorAxAx> no, its fine
2008-07-31T16:58:23  <johill> or we have that timestamp be "special", like revision.creation_timestamp and not revision['edit_log_timestamp']
2008-07-31T16:59:04  <johill> (I think to implement it, I'll finally realise my plan of making all '__key' keys in metadata be private to the backend, and disallowing the __ namespace to the frontend code and multiplexing it out)
2008-07-31T16:59:18  <xorAxAx> ok, sounds like a plan
2008-07-31T17:00:10  <johill> then we can have revision.creation_time = None by default, and assign saving time, or just force them to set something
2008-07-31T17:00:14  <johill> otoh
2008-07-31T17:00:18  <johill> there's a problem here
2008-07-31T17:00:34  <johill> when you have regular wiki operation, you really cannot assign the timestamp correctly due to races
2008-07-31T17:00:55  <johill> hm
2008-07-31T17:02:08  <johill> well I guess that doesn't really matter
2008-07-31T17:02:34  <johill> news() just has to be a bit more careful to implement the optimisation, and go further a bit when the race condition could have happened (timestsamps very close together)
2008-07-31T17:02:45  <xorAxAx> johill: this time the backend should default it
2008-07-31T17:03:15  <johill> my backend writes news lockless though
2008-07-31T17:03:30  <johill> I agree it should default it anyway though
2008-07-31T17:03:46  <johill> and maybe I need to fix my backend, or work around the possible race window in it
2008-07-31T17:03:52  <johill> doesn't matter for the API
2008-07-31T17:05:20  <johill> so do we agree that news() and revision timestamps should be the same, be created by the backend (by default, allow setting it before committing for the merge/convert use case)?
2008-07-31T17:06:33  <xorAxAx> yes
2008-07-31T17:07:05  <johill> oh and be special, in that they aren't actual metadata, but special access to allow clean separation
2008-07-31T17:13:07  <dennda> What behaviour do you propose for handling the NoSuch[Item|Revision]Error? Display a message?
2008-07-31T17:13:25  <johill> depends
2008-07-31T17:13:31  <johill> for info, we enver link to that, so just make 403
2008-07-31T17:14:26  <dennda> What is the generic way to show a 403 there? (/me looks up http error codes...)
2008-07-31T17:14:41  <johill> request.make_forbidden or something, I don't remember
2008-07-31T17:14:46  <johill> ask zenhase
2008-07-31T17:14:55  <dennda> I'll go figure
2008-07-31T17:20:46  <dennda> johill: Doesn't the same apply for diff? We never link to non existing revisions there either. If somebody explicitly changes the url, well...
2008-07-31T17:21:14  <johill> yeah
2008-07-31T17:21:26  <dennda> ok
2008-07-31T17:26:48  <dennda> zenhase: peng
2008-07-31T17:29:32  <dreimark> johill: ThomasWaldmann has introduced that fuid check to fix the different time problems on various filesystem
2008-07-31T17:29:50  <dreimark> e.g. 2 sec time steps
2008-07-31T17:29:55  <dreimark> on the fs level
2008-07-31T17:31:09  <johill> ?
2008-07-31T17:31:20  <johill> why would I care about fs time?
2008-07-31T17:31:52  <dreimark> revision timestamps should be the same
2008-07-31T17:32:15  <dreimark> johill: where does the timestamp comes from ?
2008-07-31T17:33:16  <johill> filesystem timestamps are irrelevant
2008-07-31T17:33:21  <johill> entirely
2008-07-31T17:33:29  <johill> there is no storage filesystem
2008-07-31T17:38:06  <dreimark> ok
2008-07-31T17:52:07  <dreimark> byeongweon: do you have seen my new bugreports ?
2008-07-31T17:52:40  <byeongweon> dreimark: yes
2008-07-31T17:53:48  <byeongweon> dreimark: first one (related with relative link) will fixed soon. that similar kind of bug that I try to fix.
2008-07-31T17:56:44  <byeongweon> dreimark: could you tell me more about "what is the meaning of word wrap in cell properties
2008-07-31T17:56:46  <byeongweon> "
2008-07-31T17:57:09  <byeongweon> dreimark: this is what you asked me yesterday
2008-07-31T17:57:38  <byeongweon> I was going somewhere yesterday so I didn't catch that message. sorry.
2008-07-31T18:01:26  <dennda> Hm, I can only find request.theme.add_msg(). I'll wait for zenhase
2008-07-31T18:03:47  <dreimark> byeongweon: if you go the properties of the cell
2008-07-31T18:04:12  <dreimark> you do find dialogues in the form where we don't have an experssion in markup
2008-07-31T18:05:03  <dreimark> there is one named "word wrap"
2008-07-31T18:05:08  <byeongweon> dreimark: it this about gui editor table dialog?
2008-07-31T18:05:23  <dreimark> yes
2008-07-31T18:05:42  <dreimark> on the table if it is already created
2008-07-31T18:06:28  <byeongweon> but should we require word wrap property on table?
2008-07-31T18:07:52  <byeongweon> as you know table do word-wrap itself.
2008-07-31T18:08:49  <dreimark> yes, but if one selcets No there he probably thinks it should look different
2008-07-31T18:10:06  <byeongweon> dreimark: ok. what you told me is add more property selection into table dialog I think. right?
2008-07-31T18:10:58  <dreimark> byeongweon: no, it is more about that one can not change the value
2008-07-31T18:11:28  <dreimark> because it is only in the gui not wrapped but after saving it is
2008-07-31T18:12:27  <dreimark> the question was is about if it is easy to dissallow formelements which are not supported
2008-07-31T18:14:08  <dreimark> or the gui editor has to save the resized cell
2008-07-31T18:16:32  <dreimark> bbl it is toasty in the office me goes home
2008-07-31T18:18:56  <byeongweon> dreimark: :) I will check what you say. and thanks for your kind
2008-07-31T18:26:15  <dennda> johill: ping
2008-07-31T18:32:16  <johill> what's up?
2008-07-31T18:33:28  <dennda> johill: You once said my _write_file was wrong because it didn't get the revision number from the hidden html form, remember?
2008-07-31T18:33:36  <johill> yes
2008-07-31T18:33:47  <dennda> Ok, so now I am changing this
2008-07-31T18:35:11  <dennda> http://paste.pocoo.org/show/80831/
2008-07-31T18:35:37  <dennda> Problem is: This only works once. Seems I must update that html form accordingly, correct?
2008-07-31T18:35:53  <johill> works only once? what do you mean?
2008-07-31T18:36:18  <johill> ah
2008-07-31T18:36:21  <johill> you're not adding anything to the form
2008-07-31T18:36:25  <johill> hence, it gets to be -1
2008-07-31T18:36:29  <johill> hence, the newrev is actually 0
2008-07-31T18:36:32  <johill> hence it works for new pages
2008-07-31T18:36:33  <johill> right?
2008-07-31T18:36:43  <johill> you should probably make the default [None]
2008-07-31T18:36:56  <johill> and then say: if .. is None: makeforbidden() # spam bot
2008-07-31T18:38:17  <dennda> Yes, I am not adding anything to the form (as I suggested) and hence, it is 0 (not -1) and thus the newrev is actually 1
2008-07-31T18:38:24  <dennda> at least that's what the traceback says
2008-07-31T18:38:29  <johill> yeah
2008-07-31T18:38:39  <johill> so first off, make not giving it an error straight away
2008-07-31T18:39:31  <dennda> I don't know whether it's the weather, but I have difficulties following you today :)
2008-07-31T18:39:41  <dennda> You mean defaulting to [None]?
2008-07-31T18:40:37  <johill> yes
2008-07-31T18:40:44  <dennda> ok, easy, done
2008-07-31T18:40:47  <johill> and then check if it's none
2008-07-31T18:40:50  <johill> and if so, deny access
2008-07-31T18:41:00  <johill> (otherwise, you'd get None+1 cannot be computed)
2008-07-31T18:41:01  <dennda> however you do that... zenhase? :)
2008-07-31T18:41:08  <dennda> sure
2008-07-31T18:41:14  <johill> so now add it to the form
2008-07-31T18:41:20  <johill> I don't see why you have so much trouble with that
2008-07-31T18:41:56  <dennda> I didn't even know such a hidden form existed until you said that
2008-07-31T18:42:05  <johill> the form is not hidden
2008-07-31T18:42:14  <johill> where do you think you're entering the stuff you write in the wiki editor?
2008-07-31T18:42:26  <johill> you want a hidden form field :)
2008-07-31T18:42:46  <dennda> ah
2008-07-31T18:43:19  <johill> otoh
2008-07-31T18:43:21  <johill> code is already there
2008-07-31T18:43:22  <johill>         # Send revision of the page our edit is based on
2008-07-31T18:43:22  <johill>         request.write('<input type="hidden" name="rev" value="%d">' % (rev, ))
2008-07-31T18:43:42  <dennda> Is that the only way to update the field?
2008-07-31T18:43:56  <johill> sure
2008-07-31T18:44:10  <dennda> I guess I need to add 1 to the revision field after saving
2008-07-31T18:44:17  <johill> it sounds almost like you've never touched html before ;)
2008-07-31T18:44:34  <dennda> I did, but never bothered with forms myself
2008-07-31T18:44:46  <dennda> django does that for me ;)
2008-07-31T18:46:43  <dennda> johill: That request.write... thing, doesn't it add the passed value to the html document?
2008-07-31T18:46:54  <johill> what do you mean?
2008-07-31T18:47:18  <dennda> In sendEditor it works because there the html is written sequentially
2008-07-31T18:47:27  <johill> and?
2008-07-31T18:47:41  <dennda> Won't I end up having added it twice?
2008-07-31T18:47:50  <johill> where else would you add it??
2008-07-31T18:48:08  <johill> you are aware that html forms are two requests? ;)
2008-07-31T18:48:45  <dennda> No
2008-07-31T18:49:01  <johill> oi
2008-07-31T18:49:05  <dennda> At least I am not completely sure what you mean
2008-07-31T18:49:17  <johill> http://www.htmlcodetutorial.com/forms/
2008-07-31T18:49:21  <johill> well one you get the form
2008-07-31T18:49:26  <johill> and the second request you send the values you entered
2008-07-31T18:49:31  <dennda> via POST
2008-07-31T18:49:38  <johill> yeah
2008-07-31T18:49:48  <johill> so where's your confusion? where are you adding a hidden field twice?
2008-07-31T18:50:26  <dennda> So the request I write to in _write_file is the POST part of the story
2008-07-31T18:50:27  <dennda> ?
2008-07-31T18:50:56  <johill> why would you write to the request in _write_file??
2008-07-31T18:51:10  <johill> that makes no sense to me
2008-07-31T18:52:07  <dennda> saveText, rather
2008-07-31T18:52:53  <johill> not there either
2008-07-31T18:53:14  <dennda> We do agree that I need to increment the rev-field, don't we?
2008-07-31T18:53:45  <johill> there is no rev field until the user opens the editor again!
2008-07-31T18:54:34  <xorAxAx> i am still pretty confused why dennda has to modify the form fields
2008-07-31T18:54:52  <johill> he doesn't actually
2008-07-31T18:54:56  <johill> it looks like it's already set properly
2008-07-31T18:55:02  <johill> he just has to use it properly
2008-07-31T18:55:18  <johill> but he seems to be wanting to increase it somehow
2008-07-31T18:55:25  <johill> which makes no sense to me at all
2008-07-31T18:56:10  <dennda> Seems I misinterpreted 18:36 < johill> you're not adding anything to the form
2008-07-31T18:56:26  <johill> well I didn't see any code but it turns out I'm wrong
2008-07-31T18:56:27  <dennda> I read it as "you're not adding anything to the form, but you are supposed to"
2008-07-31T18:56:43  <johill> oh
2008-07-31T18:56:45  <dennda> hm? where are you wrong?
2008-07-31T18:56:51  <johill> I think you misinterpreted "adding" as "increase a number"
2008-07-31T18:56:57  <johill> rather than "insert a field into the form"
2008-07-31T18:56:59  <dennda> that as well
2008-07-31T18:57:14  <johill> and then you thought you needed to increase something and never went off to explore how the form is created
2008-07-31T18:57:25  <johill> if you had, you'd have realised that I was wrong and the hidden rev field is already there
2008-07-31T19:02:28  <dennda> hm, looking at sendEditor
2008-07-31T19:03:53  <dennda> In case the page I am trying to edit already exists, rev is set to self.current_rev() and then set as value of that hidden field
2008-07-31T19:04:15  <dennda> and then, when creating the revision, that number is pulled out and increased by one
2008-07-31T19:07:27  <johill> yup
2008-07-31T19:07:45  <dennda> So it should work
2008-07-31T19:09:24  <dennda> ah, just a sec
2008-07-31T19:10:14  <dennda> That inconsistent numbering sucks
2008-07-31T19:22:37  <dennda> current_rev seems wrong to me, but I don't know yet how to rewrite it properly without breaking its callers... investigating
2008-07-31T19:23:11  <xorAxAx> rewrite which part of the code, dennda?
2008-07-31T19:23:15  <xorAxAx> (i.e. which function)
2008-07-31T19:23:46  <dennda> current_rev
2008-07-31T19:23:55  <dennda> we already talked about that once. just reading our old discussion
2008-07-31T19:24:11  <dennda> that was were you screamed INBAND SIGNALING
2008-07-31T19:27:44  <xorAxAx> yeah. which callers would break?
2008-07-31T19:39:52  <dennda> I'd suggest to just tr
2008-07-31T19:39:52  <dennda> y
2008-07-31T19:43:26  <dennda> xorAxAx: Do you remember our conversation back then?
2008-07-31T19:47:09  <dennda> I just did what you suggested, and there indeed seems to be a programming error. My assertion (assert self._item) fails, although self.exists() was called beforehand and should have assured that self._item is NOT None
2008-07-31T19:49:06  <dennda> That's odd
2008-07-31T20:05:38  <xorAxAx> dennda: yeah, you are trying to figure out this issue for a few days already
2008-07-31T20:05:52  <xorAxAx> dennda: assert foo checks the truth value of the argument
2008-07-31T20:06:00  <xorAxAx> dennda: and in this case it seems to be false
2008-07-31T20:06:07  <dennda> I worked on other stuff in the interim, but yes, that annoys me for quite some time already
2008-07-31T20:06:10  <xorAxAx> dennda: so have you checked which object you are seeing?
2008-07-31T20:06:15  <dennda> yes, I know how assert works
2008-07-31T20:06:17  <xorAxAx> yeah, good strategy :)
2008-07-31T20:06:29  <xorAxAx> so, which object is self._item?
2008-07-31T20:06:33  <xorAxAx> an item object?
2008-07-31T20:06:39  <xorAxAx> of which class?
2008-07-31T20:06:39  <dennda> No
2008-07-31T20:07:07  <xorAxAx> this question is answerable with a debugger in < 5 secs
2008-07-31T20:07:27  <dennda> None, because the lazy_load() method fails getting the item from the backend (it has not yet been committed) and thus sets it to None
2008-07-31T20:07:40  <dennda> Yes, i figured that out with a debugger rather fast, it just takes > 5 secs to type :)
2008-07-31T20:08:12  <xorAxAx> well, so exists() is broken
2008-07-31T20:08:44  <xorAxAx> how should it return True if there is no item at all=
2008-07-31T20:09:01  <dennda> yep
2008-07-31T20:09:12  <xorAxAx> so why are you looking at current_rev?
2008-07-31T20:10:07  <dennda> that led to exists()...
2008-07-31T20:12:14  <xorAxAx> the point here is that you shouldnt assume the page code to be correct or complete
2008-07-31T20:12:37  <xorAxAx> you might rather want to try to capture the old semantics of the api and try to express it using the api you know
2008-07-31T20:13:05  <ThomasWaldmann> re
2008-07-31T20:13:37  <dennda> xorAxAx: For example with the exists() method? :)
2008-07-31T20:14:58  <xorAxAx> dennda: where do you want to use exists?
2008-07-31T20:15:01  <xorAxAx> in current_rev? why?
2008-07-31T20:15:06  <xorAxAx> an exception is much better
2008-07-31T20:21:51  <dennda> I start liking eclipse
2008-07-31T20:23:05  <dennda> jesus christ
2008-07-31T20:26:32  <dennda> xorAxAx: http://paste.pocoo.org/show/80845/ <-- happy with that?
2008-07-31T20:27:15  <dennda> ignore the print statement
2008-07-31T20:28:21  <dennda> arg, just a sec
2008-07-31T20:28:44  <dennda> Was testing the wrong branch
2008-07-31T20:29:14  <xorAxAx> dennda: which function is it in the first hunk?
2008-07-31T20:29:38  <dennda> current_rev
2008-07-31T20:29:49  <xorAxAx> huh
2008-07-31T20:31:08  <xorAxAx> "AttributeError, ValueError, "
2008-07-31T20:31:21  <xorAxAx> why would that happen?
2008-07-31T20:31:25  <xorAxAx> and why max() and not -1?
2008-07-31T20:32:24  <dennda> Answering the former question: AttributeError occurrs when self._item is None, because then obviously, there is no list_revisions() method on that item. ValueError occurrs, when there is an Item, but no revisions on that Item
2008-07-31T20:32:45  <dennda> max() and not -1 because current_rev returns an integer, not a revision
2008-07-31T20:32:50  <xorAxAx> johill: dont you want to help unblocking this issue? its a few days old already
2008-07-31T20:33:04  <dennda> I could write: rev = item.get_revision(-1), return rev.revno
2008-07-31T20:33:06  <xorAxAx> dennda: please make it more explicit
2008-07-31T20:33:08  <johill> I was at dinner, sorry
2008-07-31T20:33:20  <xorAxAx> johill: for 6 days? wow
2008-07-31T20:33:28  <xorAxAx> dennda: in the current way its catching too many errors
2008-07-31T20:33:33  <johill> for the past hour or so
2008-07-31T20:33:41  <xorAxAx> dennda: imagine the backend throwing valueerror
2008-07-31T20:33:52  <johill> what's the problem with current_rev anyway?
2008-07-31T20:34:49  <johill> of course, max(self._item.list_revisions())
2008-07-31T20:34:52  <johill> is wrong either way
2008-07-31T20:34:55  <johill> because list_revisions might be empty
2008-07-31T20:35:02  <dennda> The problem (today) started when I tried to pull the revision number from that hidden field
2008-07-31T20:35:16  <johill> is it wrong in there?
2008-07-31T20:35:18  <dennda> yes, that's why I am catching the ValueError
2008-07-31T20:35:28  <dennda> but as xorAxAx just pointed out, that is a bad idea
2008-07-31T20:36:17  <johill> I had something like max(-1, -1, *self._item.list_revisions())
2008-07-31T20:36:26  <johill> which is fairly odd but works ;)
2008-07-31T20:36:28  <dennda> the problem seems a bit hard to describe, maybe just change the _write_file() method to pull the value from the form and see what happens
2008-07-31T20:36:54  <johill> ok
2008-07-31T20:37:08  <johill> eh
2008-07-31T20:37:09  <ThomasWaldmann> dreimark: where's melita?
2008-07-31T20:37:13  <xorAxAx> johill: no, -1 is bad
2008-07-31T20:37:22  <xorAxAx> johill: i prefer an exception
2008-07-31T20:37:24  <johill> why does _write_file do that rather than the edit action?!
2008-07-31T20:37:42  <johill> xorAxAx: sure, we can still raise it though if the result is -1, but it only avoids a "is list empty" check or so
2008-07-31T20:37:42  <xorAxAx> dennda: write_fie doesnt touch any form
2008-07-31T20:37:48  <ThomasWaldmann> zenhase: what did you work on today?
2008-07-31T20:37:52  <xorAxAx> johill: still bad code
2008-07-31T20:38:08  <dennda> johill: you said _write_file should pull that value out the field :)
2008-07-31T20:38:43  <ThomasWaldmann> dennda: do you have unpushed commits?
2008-07-31T20:39:25  <johill> I might have, but I sure meant that _write_file is wrong to always fill the next rev
2008-07-31T20:41:26  <dennda> ThomasWaldmann: Sort of. I need to figure out how to show a 403 (html error code) that is before I can commit and push these changes I have. Tried to fix this other issue that we are working on right now since
2008-07-31T20:43:17  <dennda> aha, just discovered that
2008-07-31T20:43:26  <dennda> (while looking at the edit action)
2008-07-31T20:43:32  <ThomasWaldmann> dennda: for how moin works now, header emission works only            se
2008-07-31T20:43:49  <ThomasWaldmann> (phase was last word)
2008-07-31T20:44:09  <ThomasWaldmann> once they are emitted, you can't change it any more
2008-07-31T20:44:30  <ThomasWaldmann> and for what do you need 403?
2008-07-31T20:44:36  <dennda> ThomasWaldmann: The question is what should happen when such a NoSuchItemError or NoSuchRevisionError is caught. johill suggested a 403
2008-07-31T20:44:58  <ThomasWaldmann> that's rather 404
2008-07-31T20:46:49  <xorAxAx> NoSuchRevisionError is 500
2008-07-31T20:46:51  <dennda> ThomasWaldmann: And that works the same way? I don't know what "header emission" means by definition
2008-07-31T20:46:55  <xorAxAx> NoSuchItemError is 404
2008-07-31T20:48:00  <ThomasWaldmann> dennda: use grep
2008-07-31T20:48:27  <ThomasWaldmann> emit_http_headers or so
2008-07-31T20:48:53  <dennda> heh, ok. 110 hits
2008-07-31T20:49:41  <johill> request.makeForbidden403
2008-07-31T20:51:17  <ThomasWaldmann> except that it hasn't anything to do with forbidden
2008-07-31T20:52:50  <johill> I always do that
2008-07-31T20:53:00  <johill> when I get invalid bogus input no user could have created by following a link
2008-07-31T20:53:19  <xorAxAx> bzzzt
2008-07-31T20:53:36  <dennda> I need a coffee, brb
2008-07-31T20:53:38  <xorAxAx> in this case it could have been even a link that was generated by moin
2008-07-31T20:54:16  <johill> not really
2008-07-31T20:54:19  <johill> revisions don't go away
2008-07-31T20:54:59  <xorAxAx> you underestimate a) the admin b) the moin coderz
2008-07-31T20:55:15  <xorAxAx> moin changed its urlencoding scheme 2 times alreday, leading to partially invalid links
2008-07-31T20:58:45  <zenhase> ThomasWaldmann: i am working on MoinMoin/script and the request_cli replacement, tho it progresses slowly because after about 30min of work i feel my wrist getting uncomfortable again and i rest it a while then
2008-07-31T20:58:58  * xorAxAx is gone inline skating
2008-07-31T20:59:07  <zenhase> ThomasWaldmann: but i will have some commits ready later today
2008-07-31T20:59:08  <johill> didn't know you did that now
2008-07-31T21:02:09  <ThomasWaldmann> zenhase: how about typing with your working hand?
2008-07-31T21:02:53  <zenhase> i do that too, but i can't code only with one hand
2008-07-31T21:04:44  <ThomasWaldmann> you could also use some voice recorder to make plans / notes about all the other stuff you have todo
2008-07-31T21:04:45  <zenhase> it is really getting better already, but i don't want to push the limits right now
2008-07-31T21:05:25  <zenhase> hmm, didn't thought about that
2008-07-31T21:05:59  <zenhase> tho the thought crossed my mind that it would be nice to have a speech-recog code editor
2008-07-31T21:06:55  <ThomasWaldmann> i am not sure speech rec. works for that. it could be usable for not to technical docs maybe.
2008-07-31T21:07:24  <zenhase> this reminds me of something
2008-07-31T21:08:09  <zenhase> for the docs how to setup moin-wsgi, should i copy those pages on moinmo.in to my own subpage and work on them there?
2008-07-31T21:08:24  <ThomasWaldmann> for now, yes
2008-07-31T21:08:52  <ThomasWaldmann> if we merge your stuff into main branch, the should move to master wiki
2008-07-31T21:09:37  <zenhase> ok, will do it this way then
2008-07-31T21:17:22  <dennda> hm
2008-07-31T21:18:22  <dennda> HeadersAlreadySentException. My approach was this: try: operation_that_may_fail(); except FailedMiserablyException: request.makeForbidden(404, "FAIL");
2008-07-31T21:20:34  <dennda> zenhase: Do you know how to do that? I would investigate it further myself but time is valuable these days :)
2008-07-31T21:21:02  <ThomasWaldmann> seems like I'm talking to the wall
2008-07-31T21:21:22  <dennda> huh?
2008-07-31T21:21:27  * dennda rereads log
2008-07-31T21:22:44  <ThomasWaldmann> 20:44
2008-07-31T21:23:12  <dennda> oh indeed, I am truly sorry
2008-07-31T21:25:39  <dennda> I already tried just doing the dangerous try-catch-block before emitting the headers, but that caused the page to be shown as plain text in my browser, rather than interpreted html (and that doesn't seem to be the cleanest approach anyway)
2008-07-31T21:29:18  <dennda> ThomasWaldmann: Or did you implicitly suggest doing that?
2008-07-31T21:31:08  <ThomasWaldmann> no idea of what exactly you are talking about
2008-07-31T21:31:55  <dennda> ThomasWaldmann: ok. Do we still agree that 404 and 500 errors should be raised when catching NoSuchRevisionError / NoSuchItemError?
2008-07-31T21:32:50  * ThomasWaldmann still thinks 404, but I care much less about that than you proceeding with stuff
2008-07-31T21:34:23  <dennda> ThomasWaldmann: Yes, I was just starting to elaborate the problem... So I must somehow emit those errors, but I don't know how exactly. I used that makeForbidden(404, "does not exist") method and also tried invoking it *before* the headers are sent, but that didn't quite work
2008-07-31T21:35:40  <zenhase> hmm
2008-07-31T21:35:42  <dennda> Please believe me, I have been doing nothing today but sitting here, trying to find out what's wrong / fixing issues
2008-07-31T21:37:07  <ThomasWaldmann> ok, so reread your diffs and commit/push
2008-07-31T21:38:10  <dennda> Even though it doesn't work?
2008-07-31T21:39:02  <zenhase> perhaps someone else can help you then with the code
2008-07-31T21:39:23  <ThomasWaldmann> dennda: it also didn't work before, right?
2008-07-31T21:39:25  <zenhase> i could for example have a look, since i have quite an overview of what happens at the request-level
2008-07-31T21:39:33  <dennda> ThomasWaldmann: true
2008-07-31T21:39:38  <dennda> ok, just a sec
2008-07-31T21:40:19  <zenhase> i just got out of the shower, will finish dressing up and then have a look
2008-07-31T21:41:53  * ThomasWaldmann .oO(chatting seems to be less stressful to wrist than coding ;)
2008-07-31T21:42:04  <xorAxAx> puh
2008-07-31T21:42:32  <CIA-53> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 4392:405eb276c955 1.8-storage-cdenter/MoinMoin/action/ (diff.py info.py): storage: action/info & action/diff: Wrapping dangerous code in try-catch-blocks to handle thrown exceptions sanely later
2008-07-31T21:43:53  <dennda> johill: given the time I assume you are not too interested in having a call, are you?
2008-07-31T21:44:15  <johill> on the phone with my g/f right now
2008-07-31T21:44:36  <dennda> ok, sure :)
2008-07-31T21:45:27  <dennda> I'll have a look at the attach action then
2008-07-31T21:46:09  <ThomasWaldmann> dennda: 5 hours for 5 empty exception handlers?
2008-07-31T21:46:28  <zenhase> hmm
2008-07-31T21:47:11  <dennda> ThomasWaldmann: Of course it didn't take 5 hours to type those try-except-blocks...
2008-07-31T21:47:12  <zenhase> http://hg.moinmo.in/moin/1.8-storage-cdenter/file/405eb276c955/MoinMoin/action/diff.py, line 93
2008-07-31T21:47:29  <zenhase> you emit headers there, the makeForbidden comes after that though
2008-07-31T21:47:47  <dennda> The rest was figuring out what was / is wrong. I don't know why, but I am having difficulties
2008-07-31T21:48:14  <zenhase> you have to defer any output like writing out the theme-title until you have decided if there is an error condition
2008-07-31T21:48:23  <dennda> zenhase: yes, I tried to swap that around, but that lead to my browser just displaying the page as plain text, not rendered html
2008-07-31T21:48:29  <ThomasWaldmann> what's about show and edit?
2008-07-31T21:49:12  <zenhase> dennda: hmm right, i know why :o
2008-07-31T21:49:25  <dennda> zenhase: Care to share your knowledge? :)
2008-07-31T21:49:32  <dennda> ThomasWaldmann: That's what I was talking of
2008-07-31T21:49:37  <zenhase> makeForbidden writes out a content-type of text/plain immediatly and then the message of the forbidden
2008-07-31T21:50:15  <zenhase> it's one of the things that i changed in my WSGI branch too, headers are delayed until very late
2008-07-31T21:50:33  <johill> yeah you need to raise some abort thing afterwards
2008-07-31T21:50:36  <zenhase> solution: use setHttpHeader
2008-07-31T21:50:46  <zenhase> and not makeForbidden
2008-07-31T21:51:15  <ThomasWaldmann> can we stop fiddling with headers and make action=show show the right revision?
2008-07-31T21:51:33  <ThomasWaldmann> and same for the stuff shown below the diff
2008-07-31T21:51:39  <zenhase> just request.setHttpHeader('Status: 403 Forbidden') and then proceed with rendering your error-message together with the theme
2008-07-31T21:51:40  <dennda> If it was that easy I'd have already done it
2008-07-31T21:52:49  <zenhase> hmm
2008-07-31T21:55:08  <johill> whatever
2008-07-31T21:55:17  <johill> if it's blocking you that much right now just let the exception be raised
2008-07-31T21:55:30  <dennda> that's not what blocks me
2008-07-31T21:55:35  <dennda> that's not too critical anyway
2008-07-31T21:55:50  <johill> what is then? can you commit all the code and show?
2008-07-31T21:56:52  <dennda> The problem is that I don't know how to fix the wrong revision being shown (both, in the PageEditor and when loading a page to read it as usual)
2008-07-31T21:57:14  <johill> is that the current_rev thing?
2008-07-31T21:57:25  <dennda> I suspect it to be involved, yes
2008-07-31T21:59:12  <ThomasWaldmann>         self.rev = kw.get('rev', 0) # revision of this page
2008-07-31T21:59:13  <ThomasWaldmann>         if self.rev is None:
2008-07-31T21:59:13  <ThomasWaldmann>             self.rev = 0
2008-07-31T21:59:15  <ThomasWaldmann> wtf?
2008-07-31T21:59:47  * ThomasWaldmann slaps dennda with a big python
2008-07-31T22:00:28  <dennda> I didn't write that, did I?
2008-07-31T22:00:36  <dennda> I would be a bit ashamed
2008-07-31T22:00:49  <dennda> (Since I know that 0 is the default there)
2008-07-31T22:00:50  <ThomasWaldmann> you are searching for some days now for strange Page behaviour
2008-07-31T22:01:07  <dennda> yes, but that doesn't do any harm, does it?
2008-07-31T22:01:22  <ThomasWaldmann> 0 is the first revision with the new storage, right?
2008-07-31T22:01:22  <johill> sure does
2008-07-31T22:01:32  <dennda> right
2008-07-31T22:01:49  <ThomasWaldmann> and if you are telling nothing special, you ever want to see the first rev, eh?
2008-07-31T22:02:18  <dennda> Actually not
2008-07-31T22:02:36  <ThomasWaldmann> i told you at noon to look out for such stuff, but obviously you didn't
2008-07-31T22:02:47  * ThomasWaldmann is slightly pissed
2008-07-31T22:05:34  <dennda> Please don't be. I'll do a night shift
2008-07-31T22:13:49  <ThomasWaldmann> looks like about all code in Page assumes rev==0 means current rev
2008-07-31T22:18:18  <ThomasWaldmann> same for some places in PageEditor
2008-07-31T22:29:26  <dennda> let me rewrite current_rev first
2008-07-31T22:29:34  <dennda> the way it works right now is just confusing
2008-07-31T22:32:36  <dennda> There is no way of going a step back in the pydev debugger, is there?
2008-07-31T22:40:44  <xorAxAx> dennda: in which sense?
2008-07-31T22:41:36  <dennda> xorAxAx: I naively assumed it may memoize the programs state at every point during execution so you can go back, restoring the old state, say, five statements before
2008-07-31T22:44:15  <xorAxAx> no, thats not possible in python
2008-07-31T22:47:47  <zenhase> hg st
2008-07-31T22:48:01  <zenhase> oops :)
2008-07-31T22:53:42  <dennda> oh
2008-07-31T22:53:59  <dennda> HA!!!!!!!!!!!
2008-07-31T22:55:37  <dennda> Jesus Christ. First time I see that somehow working
2008-07-31T22:56:12  <dennda> (the show-action, that is. At least partially
2008-07-31T22:59:08  <TheSheep> dennda: congrats :)
2008-07-31T22:59:27  <dennda> TheSheep: :)
2008-07-31T22:59:48  <TheSheep> dennda: now it should go easier once you can see something
2008-07-31T23:01:47  <zenhase> \o/
2008-07-31T23:03:21  <dennda> huh? whose debugging-print-statement did I discover now?
2008-07-31T23:03:26  <dennda> certainly not mine
2008-07-31T23:04:16  <dennda> I'll rather comment it out. mod_wsgi doesn't like printing to stdout, does it, zenhase? :)
2008-07-31T23:05:21  <zenhase> mod_wsgi doesn't care iirc
2008-07-31T23:05:33  <zenhase> i think it will end up nowhere
2008-07-31T23:05:46  <zenhase> and printing to stderr will go into the errorlog
2008-07-31T23:06:30  <dennda> zenhase: wrong
2008-07-31T23:06:50  <dennda> zenhase: mod_wsgi "crashes" (intentionally) when printing to stdout
2008-07-31T23:06:56  <zenhase> oh ok :)
2008-07-31T23:07:03  <zenhase> i never actually tried that
2008-07-31T23:07:05  <dennda> Discovered that a few weeks / months back and was quite confused
2008-07-31T23:07:16  <dennda> don't do :)
2008-07-31T23:07:27  <zenhase> ah i remember
2008-07-31T23:07:36  <zenhase> i saw something in the config directives
2008-07-31T23:08:06  <zenhase> WSGIRestrictStdin WSGIRestrictStdout
2008-07-31T23:08:21  <ThomasWaldmann> dennda: do you have pending stuff for diff action?
2008-07-31T23:08:29  <dennda> yeah, I didn't bother with that too much, zenhase
2008-07-31T23:09:30  <dennda> ThomasWaldmann: You mean the diff action always showing rev 0 below the comparison?
2008-07-31T23:09:42  <ThomasWaldmann> anything
2008-07-31T23:09:54  <ThomasWaldmann> (in diff.py)
2008-07-31T23:10:01  * dennda checks his thousand branches
2008-07-31T23:13:43  <dennda> ThomasWaldmann: No, but all issues you listed are fixed (e.g. editor is shown now) except the one I just mentioned
2008-07-31T23:13:56  <dennda> do you want me to do that now instead of cleaning up the show action?
2008-07-31T23:14:31  <ThomasWaldmann> it's related
2008-07-31T23:14:50  <ThomasWaldmann> i did a bit more cleanup in diff action, so i just commit it
2008-07-31T23:15:02  <dennda> oh, great
2008-07-31T23:15:42  <dennda> I need to check how to integrate gvim into eclipse. that debugger has proven being worth to be used
2008-07-31T23:16:41  <xorAxAx> dennda: i think you need to see a pdb++ pair programming session :)
2008-07-31T23:17:04  <xorAxAx> s/see/join/
2008-07-31T23:17:15  <dennda> xorAxAx: I told you to do a screencast! :)
2008-07-31T23:17:15  <xorAxAx> should we do one? :)
2008-07-31T23:17:24  <xorAxAx> nah, you didnt get the point
2008-07-31T23:17:37  <dennda> what do you mean by "pair programming"?
2008-07-31T23:17:51  <CIA-53> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 4393:05047d866867 1.8-storage-cdenter/MoinMoin/action/diff.py: diff action: refactoring / cleanup
2008-07-31T23:18:01  <xorAxAx> dennda: http://de.wikipedia.org/wiki/Paarprogrammierung
2008-07-31T23:18:44  <xorAxAx> dennda: do you have a shell.moinmo.in account?
2008-07-31T23:18:52  <dennda> I don't think so, no
2008-07-31T23:19:03  * dennda pulls
2008-07-31T23:19:25  <xorAxAx> ThomasWaldmann: can i get root on shell.*?
2008-07-31T23:19:36  <xorAxAx> then i configure screen to be multiuser compatible
2008-07-31T23:19:44  <xorAxAx> and create an account for dennda
2008-07-31T23:19:58  <dennda> isn't screen -x enough?
2008-07-31T23:20:16  <xorAxAx> doesnt work if screen is not suid
2008-07-31T23:20:24  <dennda> ah
2008-07-31T23:23:25  <ThomasWaldmann> no, i don't like that
2008-07-31T23:24:01  <xorAxAx> why?
2008-07-31T23:24:13  <xorAxAx> dennda: then we move to another machine, thomas cant stop us :)
2008-07-31T23:24:19  <dennda> hehe
2008-07-31T23:24:34  <dennda> you won't get root on mine either :D
2008-07-31T23:24:45  <xorAxAx> i have root on enough systems :)
2008-07-31T23:24:46  <ThomasWaldmann> user account is no problem
2008-07-31T23:24:55  <ThomasWaldmann> but no root and no suid stuff
2008-07-31T23:27:22  <ThomasWaldmann> btw, if you just login to same account, you don't need suid screen
2008-07-31T23:44:27  <xorAxAx> thats insecure
2008-07-31T23:45:40  <ThomasWaldmann> hah
2008-07-31T23:49:22  <zenhase> not as insecure as handing out root accounts ;)
2008-07-31T23:49:56  <dennda> if the account you use in common happens to be a root account... :)
2008-07-31T23:51:57  <ThomasWaldmann> (it could be some special screen account(s), only used for that stuff and nothing else)
2008-07-31T23:58:39  <xorAxAx> we are happily in a session already :)

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