2008-05-27T00:00:06  <TheSheep> gizmach: the coloidal one in your head
2008-05-27T00:00:14  <dreimark> Thomas has given a note today that he is beginning to write some ldap test frame work
2008-05-27T00:00:30  <gizmach> dreimark: I saw that in logs
2008-05-27T00:00:33  <PawelPacana> johill, TheSheep: as long as no one will compare revisions between wiki instances ints should really  be enough internally
2008-05-27T00:00:42  <gizmach> I should ask him about that
2008-05-27T00:01:01  <dreimark> he has talked yeserday with the py-ldap developer in Karlsruhe
2008-05-27T00:01:07  <TheSheep> PawelPacana: an we can use hashes when talking between wikis because that part is custom anyways
2008-05-27T00:01:17  <dreimark> and added some notes on his homepage
2008-05-27T00:01:29  <gizmach> oh I'm going to read it
2008-05-27T00:02:28  <dreimark> I will go tom. until friday to a conference in zuerich
2008-05-27T00:02:52  <dreimark> they promised to have internet ;)
2008-05-27T00:02:53  <gizmach> Oh OK, I will try to do some things in the midtime
2008-05-27T00:02:59  <gizmach> hehe
2008-05-27T00:03:01  <gizmach> great
2008-05-27T00:03:02  <gizmach> :)
2008-05-27T00:03:13  <gizmach> what kind of conferene
2008-05-27T00:04:16  <TheSheep> dreimark: maybe you'll meet Alex!
2008-05-27T00:04:37  <TheSheep> dreimark: of Oddmuse
2008-05-27T00:05:06  <PawelPacana> TheSheep: yeah, specific things in its own place
2008-05-27T00:05:30  <gizmach> dreimark: I can't find ldap stuff on Thomas page
2008-05-27T00:06:06  <dreimark> gizmach: it is the discussion of aquavit
2008-05-27T00:06:10  <dreimark> http://moinmo.in/4ct10n/info/ThomasWaldmann?action=diff&rev2=361&rev1=359
2008-05-27T00:06:33  <gizmach> dreimark: thx :)
2008-05-27T00:06:54  <dreimark> if one is interested it is about  http://www.cosis.net/abstracts/EGU2008/10485/EGU2008-A-10485.pdf?PHPSESSID=
2008-05-27T00:06:56  <PawelPacana> TheSheep: however displaying revision history shouldn`t be additional plugin imho, this tree will have no indents/colors when history is linear
2008-05-27T00:09:14  <dreimark> TheSheep: is Alex from Zuerich?
2008-05-27T00:09:41  <TheSheep> dreimark: I think he's from somewhere around there
2008-05-27T00:10:51  <TheSheep> dreimark: yup, Zürich, http://www.emacswiki.org/alex/About
2008-05-27T00:11:51  <TheSheep> PawelPacana: well, it has to start somewhere
2008-05-27T00:12:21  <TheSheep> PawelPacana: I imagine it will be easier to make it a separate action, at least for the beginning
2008-05-27T00:13:00  <TheSheep> PawelPacana: also, I think it would be fairly easy to replace the standard action with this custom one whith a simple config option
2008-05-27T00:13:37  <TheSheep> one would still need to keep developing them in parallel though
2008-05-27T00:13:50  <TheSheep> so I guess they would need to be merged at some point
2008-05-27T00:14:16  <dreimark> cool, I do stay in the Alexander hotel
2008-05-27T00:14:36  <TheSheep> lol
2008-05-27T00:20:52  <TheSheep> I wonder, looking at the Themes macro, maybe we should have some dummy wiki with all (at least all working) themes from the ThemeMarket installed?
2008-05-27T00:21:05  <TheSheep> so that people could try them on for size
2008-05-27T00:23:37  <mmihaljevic> re
2008-05-27T00:24:32  <PawelPacana> sounds good, no on_screenshot_it_looked_better situation
2008-05-27T00:25:18  <PawelPacana> besides, you can try to navigate and test if your 'usability' needs
2008-05-27T00:25:35  <PawelPacana> *fits
2008-05-27T00:26:59  <dreimark> TheSheep: therefore was the Themes macro in the past on MM
2008-05-27T00:27:21  <dreimark> but I think it is better to use an additional wiki too
2008-05-27T00:28:28  <dreimark> mmihaljevic: Thomas thinks about to use py-ldap to setup an intial database and use that for tests
2008-05-27T00:28:36  <TheSheep> maybe there could even be a repo to upload the themes too, and they would show on that wiki then
2008-05-27T00:29:02  <dreimark> TheSheep: we can use the 1.7-extensions repo
2008-05-27T00:29:13  <dreimark> currently only the arnica parser lives in that
2008-05-27T00:29:19  <mmihaljevic> dreimark: once he told me something about it but I'm not quiet sure if that's it
2008-05-27T00:30:11  <dreimark> I think it is. we will see. did you see the ldap related bug report ?
2008-05-27T00:30:23  <mmihaljevic> dreimark: no
2008-05-27T00:30:28  <mmihaljevic> will do
2008-05-27T00:41:30  <dreimark> johill: looks like FootNote needs to get execute back
2008-05-27T00:41:55  * mmihaljevic reads MoinMoinBugs related to ldap
2008-05-27T00:42:37  <dreimark> MoinMoinBugs/DummyPasswordInAutoCreatedLdapUserProfiles
2008-05-27T00:42:51  <dreimark> RC can be faster and find on the page
2008-05-27T00:42:53  <dreimark> mmihaljevic:
2008-05-27T00:43:11  <johill> dreimark: footnote? yeah, sounds likely
2008-05-27T00:43:12  <mmihaljevic> yes I'm just reading it
2008-05-27T00:46:09  <ThomasWaldmann> re
2008-05-27T00:46:23  <mmihaljevic> ThomasWaldmann: hi
2008-05-27T00:47:37  <ThomasWaldmann> mmihaljevic: i have talked with the python-ldap developer today (met him in Karlsruhe) and got some tips about how to do it
2008-05-27T00:48:14  <mmihaljevic> :) great have time and want to explain idea?
2008-05-27T00:48:45  <ThomasWaldmann> idea is to use the real slapd and create some temp testing ldap config and db content
2008-05-27T00:48:55  <mmihaljevic> I had a friend from croatia now in Karlusruhe and he said he saw some moin stuff there
2008-05-27T00:50:27  <ThomasWaldmann> the initial moin developer (juergen hermann) also is from Ka
2008-05-27T00:51:13  <mmihaljevic> cool didn't know that
2008-05-27T00:51:39  <dreimark> mmihaljevic: where is he in Karlsruhe?
2008-05-27T00:52:15  <mmihaljevic> huh I dono, he is on that PHP stuff
2008-05-27T00:52:22  <mmihaljevic> I just got an sms he is there
2008-05-27T00:52:36  <mmihaljevic> also he met my friend, she had a talk about ODF
2008-05-27T00:55:06  <dreimark> ThomasWaldmann: where is juergen currently?
2008-05-27T00:56:14  <ThomasWaldmann> last time i got mail from him he was still at web.de
2008-05-27T00:59:39  * dreimark has to get some sleep
2008-05-27T00:59:43  <dreimark> good night
2008-05-27T01:01:39  <PawelPacana> good night
2008-05-27T01:03:51  <mmihaljevic> good night
2008-05-27T01:03:57  <mmihaljevic> and have a nice time tomorrow
2008-05-27T01:05:56  <ThomasWaldmann> gn dreimark
2008-05-27T02:01:16  <gizmach> gn
2008-05-27T08:15:50  <dennda> moin
2008-05-27T08:16:06  <dennda> next day in university, hopefully with more bandwidth :)
2008-05-27T08:18:06  <dennda> topic today: parsing text into objects... /me closes the lid
2008-05-27T08:18:27  <lanius> moin
2008-05-27T08:25:16  <dennda> hey lanius :)
2008-05-27T08:42:49  <dreimark> moin
2008-05-27T09:09:11  <byeongweon> I was clone moinmoin soc repository my laptop. it take few hours. still working :-(
2008-05-27T09:09:58  <dennda> huh?
2008-05-27T09:10:19  <dennda> Are you connected via 28.8?
2008-05-27T09:10:25  <byeongweon> no.
2008-05-27T09:10:42  <dennda> I wonder why it takes that long then
2008-05-27T09:11:02  <byeongweon> unbelievable speed.
2008-05-27T09:11:28  <byeongweon> is moinmoin mercurial server place in germany?
2008-05-27T09:18:30  <dennda> I assume that
2008-05-27T09:37:42  <dreimark> byeongweon: yes
2008-05-27T10:35:16  <waldi> moin
2008-05-27T10:37:21  <waldi> byeongweon: 25 seconds
2008-05-27T10:39:42  <xorAxAx> waldi: we conclude that you are not in south korea
2008-05-27T10:41:11  <waldi> well, this just say that it is not the problem of the server connectivity
2008-05-27T10:47:56  <dennda> abstract base classes? geraten
2008-05-27T10:56:59  <TheSheep> moin
2008-05-27T10:57:28  <mvirkkil> moin
2008-05-27T10:59:50  <johill> byeongweon: do you have it by now? we could give you a clone tar.bz2, and I can probably give it to you via say kernel.org which might be faster?
2008-05-27T11:02:07  <waldi> hmm, docbook really looks like a 15 years old standard ...
2008-05-27T11:03:20  <waldi> it have things in common with ooxml: do anything in there own way
2008-05-27T11:32:14  <byeongweon> johill : it finished just right now.
2008-05-27T11:32:43  <mvirkkil> waldi: so since it predates almost everything, there wasn't much to copy from.
2008-05-27T11:34:03  <mvirkkil> mind you, I don't think docbook is very pretty though.
2008-05-27T11:49:19  <waldi> mvirkkil: it have some nice features
2008-05-27T11:50:22  <waldi> mvirkkil: section elements for example, which makes it different to most others
2008-05-27T11:53:54  <TheSheep> except for html5
2008-05-27T12:21:38  <waldi> there are two different definitions of section. one used by odf and html5, one used by docbook
2008-05-27T12:35:27  <dreimark> dennda: http://moinmo.in/MoinMoinBugs/CookieBlocksLogin
2008-05-27T12:35:51  <dreimark> please can you add some details.
2008-05-27T12:36:50  <dennda> sue
2008-05-27T12:36:52  <dennda> sure
2008-05-27T12:38:30  <dennda> dreimark: just on that page?
2008-05-27T13:00:41  <dennda> dreimark: Or shall I create a new page and use that as template?
2008-05-27T13:10:52  <dreimark> dennda: please use that page
2008-05-27T13:11:08  <dreimark> or rename it if I have choosen a wrong name
2008-05-27T13:15:20  <dennda> dreimark: I don't know what to fill in there. I can only tell you what OS and browser I am using. The details of moinmo.in's server configuration are beyond my knowledge
2008-05-27T13:18:48  <zenhase> moin
2008-05-27T13:19:06  <zenhase> finally my server has returned from it's ashes :)
2008-05-27T13:22:52  * johill finds moin bug on PawelPacana's page
2008-05-27T13:25:45  <dreimark> johill: ?
2008-05-27T13:26:48  <dennda> johill: We still need to discuss what save() and abort() do, when the clash is detected and handled, etc. Our discussion yesterday stopped there somehow
2008-05-27T13:28:05  <johill> dreimark: http://moinmo.in/MoinMoinBugs/StrikeThrough
2008-05-27T13:28:09  <johill> dennda: yeah
2008-05-27T13:29:19  * dreimark was reading the wrong page
2008-05-27T13:31:30  <dennda> johill: So we have a user creating a revision, and at that point, not necessarily all data is available
2008-05-27T13:31:44  <dennda> So we must wait until everything is there and then call save(), correct?
2008-05-27T13:31:49  <johill> yeah I think so
2008-05-27T13:36:21  <dennda> Ok, so now the thing is saved and the revision really created (or has it already been truly created when create_revision was called? that'd not be a good idea I think since I don't know what happens if you create_revision() but then don't save it
2008-05-27T13:37:50  <johill> I think what needs to happen is that create_revision "allocates" it
2008-05-27T13:38:16  <johill> if you say create a revision and then stuff some data into it
2008-05-27T13:38:30  <johill> it probably should already have a temporary file on the filesystem or a temporary database record
2008-05-27T13:38:59  <johill> but it only gets visible via list_revisions at .save()
2008-05-27T13:39:06  <johill> and it gets removed at .abort()
2008-05-27T13:40:02  <TheSheep> maybe it would be cleaner to call rename 'save' to 'commit'? ;)
2008-05-27T13:40:18  <johill> e.g. the hg backend could create the files etc. and only commit to the repo at .save()
2008-05-27T13:40:27  <johill> TheSheep: yeah, maybe
2008-05-27T13:40:39  <johill> then we should call .abort() rollback() too :)
2008-05-27T13:42:24  <dennda> yes, very good
2008-05-27T13:42:34  <dennda> abort didn't fit into my naming convention anyway
2008-05-27T13:42:37  <dennda> abort_item()? wtf
2008-05-27T13:46:12  <TheSheep> abort_save()
2008-05-27T13:47:23  <johill> rollback is nicer
2008-05-27T13:47:27  <johill> but a tad bad too
2008-05-27T13:47:39  <johill> because I wanted to allow rollback even after save, and have it be a no-op then
2008-05-27T13:56:44  <johill> dennda, TheSheep: maybe .save should roll back implicitly if/before it fails?
2008-05-27T13:56:54  <johill> or .commit
2008-05-27T13:58:37  <dennda> good idea
2008-05-27T13:58:47  <dennda> that way you can't forget to do that
2008-05-27T13:59:08  <johill> yeah, but you still have to remember to throw away your Revision object
2008-05-27T13:59:17  <johill> it should probably be marked stale and fail on every operation you do on it
2008-05-27T14:00:16  <dennda> the revision or the item?
2008-05-27T14:00:41  <johill> the revision
2008-05-27T14:01:04  <dennda> hm
2008-05-27T14:02:39  * dreimark leaves soon
2008-05-27T14:03:36  <dennda> let's call it _commit_revision and _rollback_revision
2008-05-27T14:03:54  <dennda> or wait
2008-05-27T14:03:55  <johill> no, it's not about the revision, it's about the item containing them
2008-05-27T14:04:01  <dennda> yes
2008-05-27T14:04:18  <dennda> confusion resolved a second after I typed that
2008-05-27T14:04:27  <johill> :)
2008-05-27T14:04:53  <johill> hm
2008-05-27T14:05:08  <johill> we should also specify that you cannot create multiple new revisions at once
2008-05-27T14:05:27  <johill> i.e. no r1, r2 = item.create_rev(), item.create_rev()
2008-05-27T14:05:30  <johill> item.commit()
2008-05-27T14:05:56  <dennda> well then the number you pass to create_rev *must* be current_revno +1
2008-05-27T14:06:00  <johill> [that's more of a technical limitation, doing two atomically together is hard]
2008-05-27T14:06:39  <johill> yeah, or rather, the parent ID that is passed in must be the last one
2008-05-27T14:06:59  <johill> that's just a way to force a safety net I guess
2008-05-27T14:07:51  <dennda> got something else: What if three people create revision X, one commits successfully, the other two try and fail. now assume only one called abort(). That'd be stupid. I think its good to have commit() check that implicitly
2008-05-27T14:08:14  <johill> yeah, commit should probably rollback by itself
2008-05-27T14:08:19  <dennda> yes
2008-05-27T14:08:21  <johill> if it's going to fail
2008-05-27T14:08:50  <TheSheep> johill: I don't like that
2008-05-27T14:08:51  <dennda> well, what is the actual rollback action? if it fails before it saves anything then there's nothing to roll back
2008-05-27T14:09:09  <johill> TheSheep: why not?
2008-05-27T14:09:20  <johill> dennda: well, r = item.create_rev(...), r.data.write('asdf')
2008-05-27T14:09:27  <dennda> ah great, an objection :)
2008-05-27T14:09:28  <johill> at that point, the 'asdf' would have hit the disk in a temp file
2008-05-27T14:09:37  <TheSheep> johill: you could have a backend with state-of-the-art conflict resolution or some way to let the conflicts leave
2008-05-27T14:09:40  <johill> which needs to be cleaned up
2008-05-27T14:09:46  <dennda> johill: ok, makes sense
2008-05-27T14:09:51  <TheSheep> johill: you don't want to force page locks at the level of api
2008-05-27T14:10:07  <johill> TheSheep: that doesn't have anything to do with page locks
2008-05-27T14:10:18  <johill> TheSheep: not sure, what are you thinking?
2008-05-27T14:10:28  <TheSheep> johill: well, failing if there are two saves with the smae revision does
2008-05-27T14:10:29  <johill> I do want to force it to fail if somebody else committed in the mean time
2008-05-27T14:11:02  <TheSheep> johill: but the hg backend can handle it smoothly
2008-05-27T14:11:11  <dreimark> bbl
2008-05-27T14:11:12  <johill> but the result is unexpected
2008-05-27T14:11:22  <TheSheep> no, the result is a merge
2008-05-27T14:11:27  <johill> because the new revision doesn't contain the data you put into it
2008-05-27T14:11:47  <johill> which, I think is totally bogus
2008-05-27T14:11:51  <TheSheep> no, there is just a third revision
2008-05-27T14:12:17  <johill> that'd be odd as well, I think
2008-05-27T14:12:31  <dennda> How can the system know how to do the merge if there are conflicts?
2008-05-27T14:12:34  <johill> I'd rather see the upper levels do the merge
2008-05-27T14:12:42  <dennda> That is, Layer 8
2008-05-27T14:12:42  <johill> and go back to the user if necesary
2008-05-27T14:12:53  <johill> gotta run, back in a few mins
2008-05-27T14:12:59  <dennda> ok
2008-05-27T14:13:20  <TheSheep> that makes it impossible to take advantage of the hg backend
2008-05-27T14:13:34  <TheSheep> it turns into a louse database
2008-05-27T14:13:37  <TheSheep> lousy
2008-05-27T14:16:00  <johill> TheSheep: not really
2008-05-27T14:16:06  <johill> it makes it possible to use it for other stuff
2008-05-27T14:16:19  <dennda> TheSheep: I don't know how hg handles conflicts. Bazaar creates new files for .THIS .OTHER and such and you have to manually do the merge
2008-05-27T14:17:51  <xorAxAx> hg calls hgmerge
2008-05-27T14:18:20  <xorAxAx> which gets 3 files and does an semi-automatical diff3 merge
2008-05-27T14:19:02  <dennda> Similar
2008-05-27T14:19:19  <TheSheep> but you can set yur own hooks
2008-05-27T14:19:54  <TheSheep> what I mean is, why don't we allow the backend to fail or proceed on its own discretion, depending on whether it can handle it?
2008-05-27T14:20:43  <dennda> hm
2008-05-27T14:20:52  <xorAxAx> PawelPacana: have you found ideas to fix the gap between linear and dag history UI-wise?
2008-05-27T14:20:52  <dennda> how would you design that?
2008-05-27T14:23:48  <TheSheep> dennda: allow the commit to raise an exception
2008-05-27T14:23:57  <TheSheep> dennda: or the save(),
2008-05-27T14:24:07  <TheSheep> dennda: but dn't require that it's been raised
2008-05-27T14:24:30  <johill> anyway, back
2008-05-27T14:24:48  <johill> TheSheep: either you have to merge, or not change the storage
2008-05-27T14:25:02  <johill> TheSheep: it's fine to save the revision and do the merge, but if the merge fails you have to undo the save as well
2008-05-27T14:25:39  <johill> I'd much rather see Moin's merge algorithm improved tho
2008-05-27T14:26:11  <xorAxAx> yes, its broken :)
2008-05-27T14:26:21  <xorAxAx> btw, why are you talking about merges?
2008-05-27T14:26:46  <dennda> Hm, assuming we do the rollback implicitly (which we are still gonna discuss) how would you do the merge after the temporary files have been deleted? You definitely don't want the user to create a new revision on his own and reenter the data
2008-05-27T14:27:06  <johill> xorAxAx: not sure.
2008-05-27T14:27:26  <johill> dennda: yeah but for normal pages you can afford to just keep it in memory, don't you think?
2008-05-27T14:27:29  <xorAxAx> i hope that you dont let the storage backend merge :-)
2008-05-27T14:27:35  <johill> dennda: and for attachments, well, you can't merge anyway
2008-05-27T14:27:40  <johill> xorAxAx: TheSheep has different opinions
2008-05-27T14:28:04  <johill> xorAxAx: I agree with you, but I can't really prevent the storage from saving a revision and doing the merge in a third revision
2008-05-27T14:28:16  <xorAxAx> johill: hmm?
2008-05-27T14:28:20  <xorAxAx> yes, thats the idea
2008-05-27T14:28:44  <xorAxAx> well, currently the history is linear and topologically ordered
2008-05-27T14:28:47  <johill> xorAxAx: yeah but it shouldn't be user visible, if the merge fails then both revisions should be gone
2008-05-27T14:28:51  <johill> imho
2008-05-27T14:28:53  <xorAxAx> with the upper layers doing the merge related transaction
2008-05-27T14:29:03  <TheSheep> johill: would it be possible for two wiki instances to use the same storage?
2008-05-27T14:29:06  <xorAxAx> johill: that sounds like a harsh requirement
2008-05-27T14:29:10  <dennda> johill: aren't attachments items on their own? we can keep a reference to that in memory, too. I just don't want to ask a user with 56k modem to upload his 200MB picture again
2008-05-27T14:29:24  <xorAxAx> johill: with data loss
2008-05-27T14:29:49  <TheSheep> johill: how do you exchange data required for the merge between two cgi processes?
2008-05-27T14:30:02  <johill> xorAxAx: why with data loss? the upper level handles merging and goes back to the user if it fails
2008-05-27T14:31:00  <xorAxAx> johill: yes, the upper layer has to retry the coit
2008-05-27T14:31:02  <xorAxAx> commit
2008-05-27T14:31:07  <xorAxAx> possibly in another reqeust
2008-05-27T14:31:12  <xorAxAx> but this is not about deleting revisions
2008-05-27T14:31:33  <johill> it's about not creating them
2008-05-27T14:31:36  <xorAxAx> (think about ACID - as long as there hasnt been a commit, there is no new revision, i.e. you cannot delete revisions)
2008-05-27T14:31:39  <xorAxAx> yes
2008-05-27T14:31:51  <johill> yeah I was a bit imprecise maybe
2008-05-27T14:32:09  <johill> I think it would be ok for the backend to commit a merge in a third revision
2008-05-27T14:32:16  <johill> but not to commit the second revision and then fail the merge
2008-05-27T14:32:21  <johill> and leave two heads dangling
2008-05-27T14:33:38  <johill> I just haven't decided yet whether rollback shouold be implicit or not
2008-05-27T14:34:50  <xorAxAx> if you are talking about heads, you need a nonlinear notion of history
2008-05-27T14:34:56  <xorAxAx> in the backend
2008-05-27T14:35:02  <xorAxAx> currently, thats solved on the layer above
2008-05-27T14:35:34  <johill> well we don't have multiple heads in moin
2008-05-27T14:35:49  <johill> so the backend mustn't create them in its storage
2008-05-27T14:36:32  <xorAxAx> yes
2008-05-27T14:36:38  <xorAxAx> no
2008-05-27T14:36:50  <xorAxAx> it cannot even determine whether it would create some. so this is not a backend (api) requirement :)
2008-05-27T14:37:06  <johill> well you're not really following
2008-05-27T14:37:20  <johill> TheSheep wants to make the hg backend do merges, so that would create two heads temporarily
2008-05-27T14:37:39  <johill> I'm saying I cannot stop him from doing that as long as this temporary state is never visible
2008-05-27T14:38:02  <johill> you're saying he can't do that and thus ask what we're discussing
2008-05-27T14:43:05  <xorAxAx> no, i am saying that this is irrelevant api wise :)
2008-05-27T14:43:16  <xorAxAx> if he manages to expose linear history, its fine
2008-05-27T14:43:23  <johill> yeah
2008-05-27T14:43:55  <xorAxAx> well, i am not sure what a merge on the backend side would involve
2008-05-27T14:44:07  <xorAxAx> is that described on a wikipage somewhere, TheSheep, PawelPacana?
2008-05-27T14:44:28  <dennda> We don't want it to do the actual merge, of course. But we need to provide the tools for that
2008-05-27T14:45:02  <xorAxAx> hmm?
2008-05-27T14:47:25  <dennda> on a very low level
2008-05-27T14:47:41  <johill> don't get confused :)
2008-05-27T14:47:45  <dennda> it's just the question of what happens when two users concurrently create a revision with the same number and try to save that
2008-05-27T14:47:49  <johill> we're just providing API at the moment
2008-05-27T14:48:12  <dennda> (isn't that what I said? :))
2008-05-27T14:48:23  <johill> yeah :)
2008-05-27T14:48:41  <dennda> great
2008-05-27T14:48:41  <johill> anyway
2008-05-27T14:48:51  <johill> should we flip a coin wrt. immplicit vs. explicit rollback?
2008-05-27T14:49:00  <dennda> don't think so :)
2008-05-27T14:49:22  <zenhase> hmm :)
2008-05-27T14:49:30  <dennda> zenhase: what do you think?
2008-05-27T14:49:50  <zenhase> uh, i did not read all what you where talking about
2008-05-27T14:50:11  <zenhase> is it about implicit rollback when an action is not commited?
2008-05-27T14:50:22  <zenhase> erm
2008-05-27T14:50:26  <zenhase> disregard that
2008-05-27T14:50:39  <zenhase> stupid question ;)
2008-05-27T14:50:40  <johill> zenhase: when commit fails, should the rollback be already done?
2008-05-27T14:50:45  <johill> the thing is
2008-05-27T14:50:48  <johill> I see no reason not to
2008-05-27T14:50:48  <zenhase> oh
2008-05-27T14:50:54  <johill> what would you want to do with the half transaction?
2008-05-27T14:51:04  <zenhase> well, what does a DBMS do?
2008-05-27T14:51:21  <zenhase> (hmm, i they don't fail commits i suppose)
2008-05-27T14:51:26  <waldi> either it is commited or rolled back
2008-05-27T14:51:47  <dennda> Frankly I didn't get TheSheep's point correctly, I think, since the data the user whose commit failed entered should still be available
2008-05-27T14:51:49  <zenhase> i think a failed commit is like an implicit rollback
2008-05-27T14:51:50  <johill> oh yeah, true, we may want to roll back anyway
2008-05-27T14:52:00  <xorAxAx> of course rollbacks are implicit :)
2008-05-27T14:52:06  <xorAxAx> to maintain ACID :)
2008-05-27T14:52:11  <dennda> ACID?
2008-05-27T14:52:23  <johill> I mean, yes, we should make rollbacks implicit, but we should offer the ability to roll back explicitly as well, maybe?
2008-05-27T14:52:26  <xorAxAx> http://de.wikipedia.org/wiki/ACID_(Informatik)
2008-05-27T14:52:42  <zenhase> xorAxAx: perhaps they thought about 'well, it did not commit the first time, we just ask nicely again'
2008-05-27T14:52:45  <zenhase> ;)
2008-05-27T14:52:48  <johill> dennda: mostly buzz-words ;)
2008-05-27T14:52:53  <xorAxAx> johill: not at all
2008-05-27T14:53:07  <xorAxAx> btw, you are using transaction terms -- how do you describe the transactions?
2008-05-27T14:53:12  <zenhase> xorAxAx: ask mysql, they do fine without ACID ;)
2008-05-27T14:53:14  <xorAxAx> the current api has no notion of tranactions
2008-05-27T14:53:26  <xorAxAx> zenhase: yes, its more like acid
2008-05-27T14:53:36  <dennda> johill: _rollback() being called by commit if it fails?
2008-05-27T14:53:36  <zenhase> dissolved data
2008-05-27T14:54:00  <dennda> we can pull that out to a seperate method
2008-05-27T14:54:28  <johill> dennda: not sure, it might make more sense to leave it to the backend completely
2008-05-27T14:55:11  <dennda> johill: Which contradicts with what you just said :)
2008-05-27T14:55:56  <johill> no
2008-05-27T14:56:09  <johill> I'm just thinking that maybe we need an explicit top-level API to roll back
2008-05-27T14:56:25  <johill> i.e. instead of .commit() you call .rollback() because some external condition arose
2008-05-27T14:56:34  <johill> like maybe the attachment upload being canceled by the browser
2008-05-27T14:57:31  <dennda> Doesn't sound implicit then
2008-05-27T14:58:43  <johill> yeah but .commit() would also remove the pending data
2008-05-27T14:58:54  <johill> so you either call .commit() or .rollback()
2008-05-27T14:59:02  <johill> I had some brain fart and thought it would be a good idea to do
2008-05-27T14:59:09  <johill> try: commit() finally: rollback()
2008-05-27T14:59:53  <TheSheep> then maybe close() ?
2008-05-27T15:00:16  <johill> why bother at all? commit can do everything
2008-05-27T15:00:25  <johill> and it's a lot harder to misuse the api that way
2008-05-27T15:00:46  <dennda> Isn't that yet another change of mind?
2008-05-27T15:00:51  <dennda> johill: I agree on the latter
2008-05-27T15:01:21  <johill> dennda: what is a change of mind?
2008-05-27T15:01:55  <dennda> johill: Well, you first said: Have it implicit, you then said: let the backend decide, now you say: commit can do everything :)
2008-05-27T15:02:09  <dennda> Assuming I didn't get you wrong
2008-05-27T15:02:33  <johill> I think I meant 'commit should do everything' by 'have the backend do it'
2008-05-27T15:02:54  <dennda> ah I thought you were talking about every specific backend doing it on its own
2008-05-27T15:03:08  <johill> yes
2008-05-27T15:03:14  <johill> I was though
2008-05-27T15:03:20  * dennda is confused
2008-05-27T15:03:30  <johill> ok now after we've discussed it all
2008-05-27T15:03:40  <johill> I think the front-end api should look like
2008-05-27T15:03:44  <johill> item = ...
2008-05-27T15:03:54  <johill> rev = item.new_rev(parent_rev_id)
2008-05-27T15:04:01  <johill> rev.data.write(...)
2008-05-27T15:04:03  <johill> ...
2008-05-27T15:04:12  <johill> item.commit() // or item.rollback()
2008-05-27T15:04:23  <johill> do you agree?
2008-05-27T15:05:16  <TheSheep> yes
2008-05-27T15:05:32  <TheSheep> although .abort doesn't look bad on it either
2008-05-27T15:05:41  <TheSheep> imho
2008-05-27T15:05:45  <johill> instead of rollback?
2008-05-27T15:05:50  <johill> fine with me
2008-05-27T15:06:10  <TheSheep> makes it a little more explicit that you are losing data here
2008-05-27T15:06:18  <johill> yeah ok
2008-05-27T15:07:17  <johill> as for the default backend API, it should just mirror those functions into the backend class
2008-05-27T15:07:34  <johill> i.e. have _commit_item(item) and _abort_item(item)
2008-05-27T15:07:39  <johill> without any special handling
2008-05-27T15:07:59  <johill> I think. that way, backends can do it whatever way they like
2008-05-27T15:08:00  <xorAxAx> dennda: the potential rollback needs to be implicit
2008-05-27T15:08:03  <xorAxAx> anything else is broken
2008-05-27T15:08:13  <xorAxAx> of course you can offer a rollback operation
2008-05-27T15:08:13  <johill> xorAxAx: that's my brain fart from a long time ago
2008-05-27T15:08:28  <xorAxAx> johill: just clarifying :)
2008-05-27T15:10:11  <dennda> why would you need a specific rollback operation of commit does it for you implicitly?
2008-05-27T15:10:38  <dennda> ok forget that
2008-05-27T15:10:45  <johill> well commit does it only when the error is due to the commit
2008-05-27T15:10:46  <johill> ok
2008-05-27T15:10:47  <dennda> in case something bad happens
2008-05-27T15:10:53  <dennda> yes
2008-05-27T15:10:56  <dennda> that just came to my mind
2008-05-27T15:10:58  <johill> yeah, if the error is external
2008-05-27T15:11:03  <dennda> ok
2008-05-27T15:11:04  <dennda> great
2008-05-27T15:12:16  <dennda> but I actually don't want to call it abort, it just sounds bad :)
2008-05-27T15:12:43  <dennda> and isn't rollback the term used in this context?
2008-05-27T15:14:48  <TheSheep> throw_away()
2008-05-27T15:15:47  <dennda> TheSheep: currently all method names look like this: $action_$class. e.g. get_revision, create_revision, rename_item, commit_item
2008-05-27T15:16:00  <dennda> If it's ok for you I'll choose commit_item and rollback_item
2008-05-27T15:16:11  <johill> dennda: but that's only internal
2008-05-27T15:16:22  <johill> dennda: the external api is item.commit()
2008-05-27T15:16:32  <TheSheep> dennda: don't you usually put the object name in frot, before a comma?
2008-05-27T15:16:38  <dennda> johill: yes, but I am still writing the backend
2008-05-27T15:16:47  <TheSheep> dennda: like item.commit, item.rollback
2008-05-27T15:17:03  <johill> TheSheep: yes
2008-05-27T15:17:09  <dennda> TheSheep: yes, that'll be there too
2008-05-27T15:17:16  <johill> TheSheep: but to ease backend writing, we want to offer you the ability to just write only a backend class
2008-05-27T15:17:21  <dennda> I am just stubbing out the hidden methods on the backend class
2008-05-27T15:17:21  <TheSheep> then why repeat it?
2008-05-27T15:17:23  <johill> and that backend class will have _commit_item()
2008-05-27T15:17:33  <TheSheep> aah
2008-05-27T15:17:36  <johill> which is called from the default Item class
2008-05-27T15:17:44  <TheSheep> so you want it to be both on the item and on the backend directly?
2008-05-27T15:17:52  <johill> externally, only on the item
2008-05-27T15:18:00  <johill> internally, for us lazy people, only on the backend
2008-05-27T15:18:11  * TheSheep scratches his head
2008-05-27T15:18:12  <xorAxAx> the item is not the backend, right? :)
2008-05-27T15:18:18  <johill> if you really want, you can return a HGBackendItem(Item)
2008-05-27T15:18:19  <johill> xorAxAx: no
2008-05-27T15:18:24  <dennda> xorAxAx: speaking of classes, no
2008-05-27T15:21:23  <dennda> johill: I think I see a flaw in the design
2008-05-27T15:21:42  <johill> what?
2008-05-27T15:21:43  <dennda> _commit_item currently only takes an item as argument
2008-05-27T15:21:53  <dennda> that sounds wrong
2008-05-27T15:21:57  <johill> why?
2008-05-27T15:22:10  <johill> oh you mean because of the new revision
2008-05-27T15:22:22  <johill> hmm let me thinkg about it for a minute
2008-05-27T15:22:26  <dennda> because with that you may be trying to save a revision that just has been created but isn't finished yet
2008-05-27T15:22:42  <johill> oh. that would be a bug
2008-05-27T15:22:59  <johill> probably should be caught by marking revisions read-only as soon as we commit
2008-05-27T15:23:24  <dennda> Or just pass a revision you want to be commited
2008-05-27T15:27:17  <dennda> johill: that still would not solve the issue I pointed out
2008-05-27T15:27:33  <dennda> another revision could have been created in the interim
2008-05-27T15:28:03  <dennda> well
2008-05-27T15:28:48  <dennda> johill: I think it's not a problem if we don't allow create_revision to be passed with arbitrary revision numbers
2008-05-27T15:29:09  <dennda> just using the parentrevisions number which *must* exist
2008-05-27T15:30:50  <dennda> and I think we can assume people only commit if their revision is ready to be committed
2008-05-27T15:30:56  <dennda> if they don't we can't tell anyway
2008-05-27T15:33:29  <johill> hmm
2008-05-27T15:33:42  <dennda> That's imho the right way
2008-05-27T15:33:44  <johill> yeah
2008-05-27T15:33:53  <johill> well we can mark the revision object read-only when we commit
2008-05-27T15:33:58  <dennda> If you allow creating items whose parent is none existant you get ugly gaps
2008-05-27T15:34:00  <johill> to catch them writing to it later -> bug
2008-05-27T15:35:38  <dennda> that's pretty obvious
2008-05-27T15:35:57  <dennda> and is achieved by revisions not being mutable once saved
2008-05-27T15:36:11  <dennda> which is the D in ACID i think
2008-05-27T15:36:18  <xorAxAx> dennda: parent?
2008-05-27T15:36:23  <xorAxAx> the backend doesnt know about parents
2008-05-27T15:36:42  <dennda> xorAxAx: parent == preceeding revision
2008-05-27T15:36:45  <dennda> bad term
2008-05-27T15:37:43  <ThomasWaldmann> there are some applications with automatically created (and often updated) content, where it should be possible to update an item without creating a new revision
2008-05-27T15:38:19  <johill> nah
2008-05-27T15:38:22  <johill> implement those as a backend
2008-05-27T15:39:03  <ThomasWaldmann> then it is a per-item backend, not per namespace?
2008-05-27T15:39:23  <johill> no, but you can nest namespaces like unix mounts
2008-05-27T15:40:05  <ThomasWaldmann> (otoh, the problem of fast growing revision counts could be solved by a purge policy also)
2008-05-27T15:40:26  <johill> revisions are immutable
2008-05-27T15:40:31  <johill> everything else leads to locking nightmares
2008-05-27T15:41:08  <dennda> you cannot make all revisions mutable
2008-05-27T15:41:18  <dennda> that simply doesn't work properly
2008-05-27T15:41:31  <dennda> the most you could do is make the last revision mutable
2008-05-27T15:41:33  <johill> well you can if you want to have read locks
2008-05-27T15:41:39  <johill> not even that
2008-05-27T15:41:46  <johill> as soon as it's visible it must not change
2008-05-27T15:41:49  <johill> or you need read locks
2008-05-27T15:41:54  <dennda> otherwise you would end up changing old revisions although you already have newer ones
2008-05-27T15:42:00  <dennda> which makes the concept quite pointless imho
2008-05-27T15:42:27  <johill> that too
2008-05-27T15:42:39  <dennda> well, with "cannot" I didn't mean "technically impossible"
2008-05-27T15:42:53  <ThomasWaldmann> ok, we need a purge policy anyways (think of dvdimage.iso as item :)
2008-05-27T15:42:55  <dennda> but it just sounds wrong
2008-05-27T15:43:11  <dennda> ThomasWaldmann: disk space is getting cheaper every day :)
2008-05-27T15:43:17  <johill> TheSheep: sure, could do that, but it's mostly unrelated
2008-05-27T15:43:33  <johill> eh. sorry TheSheep, meant ThomasWaldmann
2008-05-27T15:43:36  <ThomasWaldmann> dennda: yes, but backup time is limited :)
2008-05-27T15:43:38  <dennda> if you got a thousend petabytes you don't want a purge policy
2008-05-27T15:43:49  <dennda> take a raid
2008-05-27T15:43:57  <johill> dennda: for sure your dvd images will be larger too then
2008-05-27T15:44:01  <johill> :)
2008-05-27T15:44:04  <dennda> johill: true
2008-05-27T15:44:06  <ThomasWaldmann> raid!=backup
2008-05-27T15:45:04  <dennda> ok guys
2008-05-27T15:45:18  <dennda> let's worry about that when HDDs are that large :)
2008-05-27T15:46:12  <ThomasWaldmann> worry about what?
2008-05-27T15:47:02  <dennda> well yeah, the backup thing already exists. I almost forgot
2008-05-27T15:47:15  <dennda> but that is not part of the storage layer
2008-05-27T15:47:17  <dennda> is it?
2008-05-27T15:49:08  <ThomasWaldmann> purge policy is
2008-05-27T15:49:37  <ThomasWaldmann> (because the way a revision is purged depends on the backend)
2008-05-27T15:49:52  <johill> yeah but it's not part of the normal API
2008-05-27T15:49:55  <johill> let's do that first
2008-05-27T15:49:58  <dennda> actually we didn't plan to provide remove_revision, did we, johill?
2008-05-27T15:50:03  <ThomasWaldmann> yeah, ok.
2008-05-27T15:50:15  <ThomasWaldmann> just keep it in mind we want such a thing
2008-05-27T15:50:30  <johill> dennda: we didn't, but we probably have to bite the bullet at some point and have it, but make sure the users know it needs locking
2008-05-27T15:50:40  <ThomasWaldmann> also we want to have some migration script that converts from one (old?) backend to a (new?) backend
2008-05-27T15:50:44  <dennda> johill: let's add it when we need it
2008-05-27T15:50:45  <ThomasWaldmann> bbl
2008-05-27T15:50:52  <dennda> that's *my* new policy
2008-05-27T15:50:53  <johill> dennda: if we ever need to do something like that, or modify the immutable objects, then we need a global request lock
2008-05-27T15:51:13  <johill> dennda: I agree
2008-05-27T15:52:13  <dennda> modifying immutable objects?
2008-05-27T15:52:48  <dennda> Isn't that a bit contradicting? :)
2008-05-27T15:53:08  <johill> yeah
2008-05-27T15:53:33  <johill> but it'll probablyh happen anyway, like say you want a markup converter that converts history too
2008-05-27T15:55:45  <johill> but that's not part of the regular api
2008-05-27T15:57:18  <johill> people still want it, e.g. when they accidentally publish something internal
2008-05-27T15:57:30  <johill> right now many people actually hack around in the filesystem db manually
2008-05-27T16:00:15  <dennda> you got a point there
2008-05-27T16:00:58  <johill> anyhow, leave it out for now
2008-05-27T16:01:14  <johill> it's not regular API, and it needs very coarse locking
2008-05-27T16:09:19  <dennda> johill: do we agree now that you *must* provide the latest revno in create_revision?
2008-05-27T16:09:31  <dennda> (that has already been committed successfully)
2008-05-27T16:12:43  <johill> I think so
2008-05-27T16:12:55  <dennda> Because if we do, I don't feel we need the revision number to be provided explicitly. We can just check what the latest revision is when create_revision is called. if there are no concurrent calls everything is fine, and if there are concurrent creations of the same revisions they get the same revisionnumber internally because neither of them has already commited by the time they create the revision
2008-05-27T16:13:12  <dennda> (I hope that sentence makes sense)
2008-05-27T16:13:46  * johill thinks
2008-05-27T16:14:17  <johill> yes, we could do something like
2008-05-27T16:14:21  <johill> rev = create_rev()
2008-05-27T16:14:33  <johill> if rev.parent_id != expected_parent_id:
2008-05-27T16:14:34  <johill>   fail
2008-05-27T16:15:18  <dennda> we don't even need that imho
2008-05-27T16:15:45  <dennda> we just need commit_item() to check if the revision you are trying to commit already exists
2008-05-27T16:15:50  <dennda> if it does, clash. if not, proceed
2008-05-27T16:16:04  <dennda> lemme write a few lines of code
2008-05-27T16:16:22  <johill> no
2008-05-27T16:16:28  <johill> what if it already existed at create_revision
2008-05-27T16:16:53  <johill> say you have user 1: edit page
2008-05-27T16:17:02  <johill> user 2: edit page, save, all is stored
2008-05-27T16:17:07  <johill> user 1: hit save in web iface
2008-05-27T16:17:24  <johill> if you do that internally you won't detect that now he's overrwriting user 1's changes
2008-05-27T16:18:29  <johill> ThomasWaldmann: mailer problem?
2008-05-27T16:18:30  <johill> Status of sending notification mails:
2008-05-27T16:18:39  <johill> [en] Kurt N. Breuhaus, ChristopherDenter, PawelPacana: (452, '4.3.1 Insufficient system storage', ...)
2008-05-27T16:19:13  <dennda> johill: http://paste.pocoo.org/show/54672/
2008-05-27T16:20:29  <johill> dennda: sure
2008-05-27T16:20:51  <dennda> so imho the problem you just pointed out doesn't exist here
2008-05-27T16:21:04  <johill> well, let me write up the problem
2008-05-27T16:22:29  <dennda> johill: Kurt N Breuhaus?
2008-05-27T16:22:38  <johill> I dunno, was subscribed to your page
2008-05-27T16:23:10  <ThomasWaldmann> oops
2008-05-27T16:23:23  <dennda> why the heck didn't I receive an email on your change, johill?
2008-05-27T16:23:31  <johill> because of the mailer problem :)
2008-05-27T16:24:49  <dennda> ah ;)
2008-05-27T16:25:02  <johill> dennda: http://paste.pocoo.org/show/54675/
2008-05-27T16:25:07  <dennda> I can't seem to find what you meant with kurt n breuhaus
2008-05-27T16:25:11  <dennda> got a link?
2008-05-27T16:25:36  <johill> kurt n breuhaus is a user who is subscribed to your page
2008-05-27T16:25:44  <johill> I just pasted the notifidcation status message
2008-05-27T16:26:20  <xorAxAx> yeah, moins usability at its best :)
2008-05-27T16:27:04  <johill> if ThomasWaldmann can't run the MTA probperly ;)
2008-05-27T16:27:07  <johill> -b
2008-05-27T16:27:37  <johill> dennda: that problem I try to avoid with passing the parent revno which you know across the form because you put it into a form field
2008-05-27T16:27:46  <johill> dennda: and making it part of the API means it can't be forgotten
2008-05-27T16:28:35  <dennda> ok
2008-05-27T16:28:50  <dennda> my brain really is a sieve
2008-05-27T16:29:04  <dennda> didn't we discuss wether or not commit_item should receive a revision to save?
2008-05-27T16:29:29  <johill> I thought we said the item can memoize it
2008-05-27T16:29:41  <johill> because it's invalid to create two w/o comitting
2008-05-27T16:31:05  <dennda> no it isn't since you can have two users create_revision(my_item, 5)
2008-05-27T16:31:23  <dennda> the one finished, the other didn't
2008-05-27T16:31:29  <dennda> and now you're gonna commit
2008-05-27T16:31:31  <johill> eh, they have different item instances
2008-05-27T16:31:32  <dennda> what happens?
2008-05-27T16:32:49  <johill> well they have different item objects
2008-05-27T16:32:53  <dennda> suer
2008-05-27T16:32:54  <johill> so it's fine
2008-05-27T16:32:55  <dennda> sure
2008-05-27T16:33:07  <johill> the item object has the new revision
2008-05-27T16:36:18  <dennda> johill: How do we prevent race conditions from happening when two users act on the same item and one starts to rename it?
2008-05-27T16:36:43  <dennda> (I hope I used the term race condition correctly here)
2008-05-27T16:39:37  <johill> there is no race condition
2008-05-27T16:39:57  <johill> you're mashing the item object and the storage together
2008-05-27T16:40:36  <johill> whe nyou have to users doing that
2008-05-27T16:40:38  <johill> the first one does
2008-05-27T16:40:49  <johill> item1 = get_item('asdf')
2008-05-27T16:40:53  <johill> and the second does
2008-05-27T16:40:57  <johill> item2 = get_item('asdf')
2008-05-27T16:41:19  <johill> r1 = item1.new_revision(...)
2008-05-27T16:41:23  <johill> r1.dostuff...
2008-05-27T16:41:33  <johill> r2 = item2.new_revision(...)
2008-05-27T16:41:38  <johill> r2.dostuff...
2008-05-27T16:41:44  <johill> item1.commit()
2008-05-27T16:41:48  <johill> item2.commit() - fails
2008-05-27T16:42:06  <johill> think of it this way
2008-05-27T16:42:13  <johill> if you'd have to pass the rev to commit
2008-05-27T16:42:17  <johill> you could do
2008-05-27T16:42:25  <johill> r1 = item1.new_revision(...)
2008-05-27T16:42:31  <johill> item1._new_rev = r1
2008-05-27T16:42:33  <johill> ...
2008-05-27T16:42:38  <johill> item1.commit(item1._new_rev)
2008-05-27T16:42:53  <johill> so it's pointless
2008-05-27T16:44:02  <dennda> ok
2008-05-27T16:45:25  <dennda> - _new_revision_metadata(revobj)  - new metadata object
2008-05-27T16:45:48  <johill> another note on the revision stuff: it should be invalid anyway to create a rev with one item and commit it on another
2008-05-27T16:45:50  <dennda> How do we want metadata to be stoerd?
2008-05-27T16:46:00  <dennda> yes
2008-05-27T16:46:04  <johill> stored? depends...
2008-05-27T16:46:12  <dennda> metadata is a dict
2008-05-27T16:46:21  <dennda> with keys as strings and values as python objects
2008-05-27T16:46:29  <johill> the backward-copmat backend stores it as #key: value in the revision file
2008-05-27T16:46:58  <johill> and it only supports unicode objects and lists of those
2008-05-27T16:47:09  <johill> I was a bit daring maybe to put 'python objects'
2008-05-27T16:47:16  <johill> should we support that, or can we live with strings?
2008-05-27T16:48:56  <dennda> hm
2008-05-27T16:49:42  <dennda> I didn't mean "store" as in "store in the filesystem / SQL DB"
2008-05-27T16:49:53  <dennda> more a question of the api
2008-05-27T16:50:04  <johill> oh
2008-05-27T16:50:07  <dennda> because that new_revision_metadata thing currently only receives a revobj as parameter
2008-05-27T16:50:19  <johill> well I suppose it would return a dict-like object
2008-05-27T16:50:45  <dennda> why not use something like new_revision_metadata(revobj, key, value)?
2008-05-27T16:50:56  <dennda> or is that too limited?
2008-05-27T16:51:32  <johill> well the problem with that is that metadata needs of course be committed too
2008-05-27T16:51:47  <johill> so if you do that you have the backend store it in a dict in the revobj anyway
2008-05-27T16:51:49  <johill> which seems weird
2008-05-27T16:53:51  <dennda> hmmmm could you elaborate that a little?
2008-05-27T16:54:22  <dennda> (I am trying to get the whole thing while I am going through this. That's probably the reason why I ask more questions than the rest ;))
2008-05-27T16:54:24  <johill> for all I care the revision object could itself be a dict-like
2008-05-27T16:54:30  <johill> and you access metadata through it
2008-05-27T16:54:30  <dennda> just tell me if you get fed up
2008-05-27T16:54:52  <TheSheep> it wuld be nice to commit both together
2008-05-27T16:55:15  <johill> TheSheep: that's the plan
2008-05-27T16:55:36  <johill> dennda: I just can't type fast enough, maybe we shoudl talk on phone again?
2008-05-27T16:56:21  <TheSheep> johill: maybe you should do your notes in gobby or some such?
2008-05-27T16:56:36  <dennda> TheSheep: that probably is a good idea
2008-05-27T16:56:52  <dennda> I got a sobby server
2008-05-27T16:56:58  <dennda> which we could use
2008-05-27T16:57:12  <johill> abiword supports it over jabber ;)
2008-05-27T16:57:22  <dennda> abiword????
2008-05-27T16:57:34  <dennda> you don't write your code in it, do you?
2008-05-27T16:57:38  <johill> heh no
2008-05-27T16:57:40  <dennda> :)
2008-05-27T16:57:46  * johill installs gobby
2008-05-27T16:58:25  <dennda> There once was a polish politician (female) who claimed on a highly official debate on free software that linux and co sucked because most software was written for Microsoft Word
2008-05-27T16:58:28  <johill> maybe rev = item.get_revision(...)
2008-05-27T16:58:32  <johill> print rev['editor']
2008-05-27T16:58:34  <johill> is good?
2008-05-27T16:58:49  <johill> rather than rev.metadata['editor']
2008-05-27T16:59:01  <TheSheep> dennda: I had a link to the log from that
2008-05-27T16:59:07  <TheSheep> dennda: but lost it
2008-05-27T16:59:26  <TheSheep> dennda: she wasn't a politician, she was a hired expert
2008-05-27T16:59:34  <dennda> johill: that looks much better, yes
2008-05-27T16:59:46  <dennda> TheSheep: That makes it even WORSE
2008-05-27T17:00:05  <TheSheep> yup
2008-05-27T17:00:18  <xorAxAx> gobby is a nice idea, you just need to make sure to take backups
2008-05-27T17:00:21  <johill> dennda: then get_revision_metadata is moot
2008-05-27T17:00:24  <dennda> http://de.sevenload.com/videos/SyMWUPh-Kinder-fragen-Politiker-nach-dem-internet
2008-05-27T17:00:27  <dennda> !!
2008-05-27T17:01:40  <johill> ok where do I connet gobby?
2008-05-27T17:02:41  <dennda> just a sec
2008-05-27T17:02:44  <dennda> lemme set up a session
2008-05-27T17:03:33  <johill> xorAxAx: what do you think wrt. the data that can be stored in metadata values?
2008-05-27T17:03:50  <xorAxAx> johill: you mean the types?
2008-05-27T17:03:55  <johill> yes
2008-05-27T17:05:11  <dennda> johill: the-space-station.com pw: guhge port: standard
2008-05-27T17:05:17  <dennda> guhgel
2008-05-27T17:05:19  <dennda> is the pw
2008-05-27T17:08:23  <dennda> I think I will keep the server running
2008-05-27T17:08:28  <dennda> if you others want to use it, feel free
2008-05-27T17:11:58  <johill> xorAxAx: the thing is, if we just use strings, almost certainly somebody will pickle something into it
2008-05-27T17:13:09  <xorAxAx> johill: yes, and thats necessary sometimes
2008-05-27T17:13:24  <johill> yeah but so we might just as well allow all types and pickle internally
2008-05-27T17:13:28  <johill> (if necessary)
2008-05-27T17:21:49  <xorAxAx> johill: hm, no
2008-05-27T17:22:00  <xorAxAx> johill: forcing pickle into that layer is ugly because pickle is ugly
2008-05-27T17:22:10  <xorAxAx> also it restricts the backend heavily when it comes to indexing
2008-05-27T17:23:34  <johill> true
2008-05-27T17:23:51  <johill> in any case, the current backend code is buggy
2008-05-27T17:24:00  <johill> it doesn't allow storing strings with newlines
2008-05-27T17:26:39  <johill> actually, wrt. indexing, I think it might benefit from knowing the type
2008-05-27T17:41:40  <dennda> uni, bbl
2008-05-27T17:47:43  <johill> ThomasWaldmann: yeah I agree the syntax shouldn't be there any more, but I think it's easier for now to just accept it
2008-05-27T17:53:59  <johill> can we use with yet? :)
2008-05-27T17:57:42  <ThomasWaldmann> still 2.3
2008-05-27T17:58:16  <ThomasWaldmann> but if someone has time, he can check which enterprise distributions still have 2.3 and are still supported
2008-05-27T17:58:40  * ThomasWaldmann guesses no current desktop distribution still ships 2.3, right?
2008-05-27T17:58:53  <johill> nope
2008-05-27T17:58:56  <johill> with is 2.5 tho
2008-05-27T17:59:06  <ThomasWaldmann> no way
2008-05-27T17:59:08  <johill> only debian/stable probably still ships that though
2008-05-27T17:59:12  <johill> eh, 2.4
2008-05-27T17:59:33  <ThomasWaldmann> i though about requiring 2.4, but the research has to be done first :)
2008-05-27T17:59:50  <johill> actually, with is 2.6
2008-05-27T17:59:58  <johill> and available in 2.5 via 'from __future__ import with_statement'
2008-05-27T18:00:05  <ThomasWaldmann> ask again in 2 years for 2.6 :)
2008-05-27T18:00:46  <johill> imho future imports are fine tho
2008-05-27T18:01:06  <johill> the code shouldn't use 'with' or 'as' anyway if they'll become keywords
2008-05-27T18:01:44  <ThomasWaldmann> yes but we should not require too new python versions or some people will get into trouble when trying to install it on their (or hoster's) server
2008-05-27T18:03:08  <johill> yeah
2008-05-27T18:03:10  <johill> I know
2008-05-27T18:03:12  <johill> still sucks
2008-05-27T18:03:24  <johill> lanius created bugs to his own locking API because he always forgot try/finally
2008-05-27T18:03:36  <johill> if even the guy who wrote the API forgets that, won't everybody else?
2008-05-27T18:03:41  <ThomasWaldmann> we could create a page about requiring 2.4 and collect some infos
2008-05-27T18:05:31  <johill> yeah
2008-05-27T18:05:34  * johill has an evil idea
2008-05-27T18:06:56  * ThomasWaldmann creates a page
2008-05-27T18:08:42  <johill> hmm
2008-05-27T18:08:45  <johill> evil idea doesn't work in 2.4
2008-05-27T18:10:33  <johill> bugger
2008-05-27T18:12:17  <johill> hmm
2008-05-27T18:12:20  <johill> can we rely on the gc?
2008-05-27T18:12:24  <johill> I guess not
2008-05-27T18:16:10  <ThomasWaldmann> http://moinmo.in/PollAboutRequiringPython24
2008-05-27T18:16:28  <xorAxAx> http://bramcohen.livejournal.com/52148.html
2008-05-27T18:30:17  <zenhase> reset
2008-05-27T18:30:20  <zenhase> ups :)
2008-05-27T18:31:47  <zenhase> what's the current version of python in debian stable?
2008-05-27T18:32:56  <zenhase> and regarding enterprisey distributions: those often have ... well ... LTS (read long term support). if you want to support them until end of line, you would be stuck with old versions of python for several years to come
2008-05-27T18:33:39  <zenhase> ah, debian already is stated on the page ;)
2008-05-27T18:35:36  <johill> hmm
2008-05-27T18:35:40  <johill> I now have three syntax alternatives
2008-05-27T18:35:43  <zenhase> ah, someone was quicker with centos :(
2008-05-27T18:35:53  <zenhase> i just tried to look for that too ;)
2008-05-27T18:37:41  <johill> I'm asking for rh/fedora
2008-05-27T18:38:03  <johill> rhel4 has 2.3
2008-05-27T18:40:07  <johill> http://paste.pocoo.org/show/54729/
2008-05-27T18:40:11  <zenhase> fedora is quite bleeding edge most of the time
2008-05-27T18:40:13  <johill> http://paste.pocoo.org/show/54731/
2008-05-27T18:40:19  <johill> http://paste.pocoo.org/show/54730/
2008-05-27T18:41:15  <johill> compare the three code snippets
2008-05-27T18:41:18  <johill> which do you like most?
2008-05-27T18:44:58  <johill> http://paste.pocoo.org/show/54733/ wuld be nice
2008-05-27T18:49:06  <zenhase> i don't like the lambda-one :o
2008-05-27T19:02:58  <johill>  you don't need to pass a lambda
2008-05-27T19:03:03  <johill> I actually like that one best
2008-05-27T19:03:10  <johill> it provides the best encapsulation
2008-05-27T19:03:20  <johill> no need to even think about locking etc, all you need to know is update_metadata
2008-05-27T19:04:20  <johill> and in moin, the only things using item metadata is page locks and user storage
2008-05-27T19:09:12  <zenhase> hmm
2008-05-27T19:09:27  <zenhase> i was wondering on how sqlalchemy did it again
2008-05-27T19:09:54  <zenhase> i think they had a more explicit scheme with a Session object
2008-05-27T19:11:17  <johill> that means you need to sprinkle try/finally everywhere
2008-05-27T19:11:30  <zenhase> hmm
2008-05-27T19:12:29  <zenhase> is that really a bad thing?
2008-05-27T19:12:35  <johill> people tend to forget
2008-05-27T19:13:14  <zenhase> well, actually i don't think that APIs should be designed to prevent coders to shoot themselves in the foot
2008-05-27T19:14:18  <xorAxAx> omg
2008-05-27T19:14:22  <johill> I actually do think so, where feasible
2008-05-27T19:14:46  <johill> besides, it provides better encapsulation
2008-05-27T19:14:47  <johill> xorAxAx: what?
2008-05-27T19:15:04  <zenhase> in such cases i really hate that python has no blocks like ruby does :/
2008-05-27T19:15:05  <xorAxAx> if try/finally is the only way to get correct semantics, its not possible to protect people from it
2008-05-27T19:15:17  <xorAxAx> ... incorrectly using it
2008-05-27T19:15:21  <zenhase> everything looks kind of ugly this way :o
2008-05-27T19:15:34  <johill> xorAxAx: well it isn't really the only way, you can have an update function like I said
2008-05-27T19:15:37  <zenhase> xorAxAx: hmm yes, that is kind of true too
2008-05-27T19:15:48  <johill> I actually think that makes sense in  this context
2008-05-27T19:15:55  <johill> let me draw up a more real example
2008-05-27T19:16:04  <zenhase> :)
2008-05-27T19:16:07  <xorAxAx> on a wiki page or gobby document :)
2008-05-27T19:16:11  <zenhase> use cases in moin :D
2008-05-27T19:16:17  <zenhase> btw ... what is gobby?
2008-05-27T19:16:58  <johill> xorAxAx: connect to gobby, I have it all in there
2008-05-27T19:17:26  <xorAxAx> johill: hostname?
2008-05-27T19:17:54  <zenhase> uh
2008-05-27T19:18:18  <zenhase> it's subethaedit for other platforms than mac and opensource ... cool
2008-05-27T19:18:31  <johill> xorAxAx: what dennda said
2008-05-27T19:19:14  <zenhase> is it jabber-based?
2008-05-27T19:19:14  <johill> the-space-station.com, password guhgel
2008-05-27T19:19:23  <johill> no
2008-05-27T19:19:28  <johill> abiword and inkscape are, afaik
2008-05-27T19:19:35  <xorAxAx> who is taking backups, johill?
2008-05-27T19:19:46  <xorAxAx> dennda: whats the default port?
2008-05-27T19:20:08  <xorAxAx> 6522
2008-05-27T19:20:25  <johill> xorAxAx: how do you do backups? I dunno
2008-05-27T19:20:44  <johill> xorAxAx: it's version2
2008-05-27T19:35:50  <dreimark> re
2008-05-27T19:36:14  <johill> oh. hm gobby crashed
2008-05-27T19:36:25  <johill> oh no just stuck
2008-05-27T19:37:48  <dreimark>  
2008-05-27T19:48:46  * dreimark has arrived in zuerich
2008-05-27T19:50:14  <zenhase> \o/
2008-05-27T19:50:19  <zenhase> gruezi!
2008-05-27T20:10:30  <dennda> gobby takes automatic backups (though only one I suppose) every 60 seconds
2008-05-27T20:11:01  <xorAxAx> yes, a bit useless
2008-05-27T20:13:00  <dennda> lemme check
2008-05-27T20:13:50  <dennda> hm
2008-05-27T20:14:04  <dennda> needs a script or something to have that thing backup properly
2008-05-27T20:14:10  <dennda> it saves the whole session
2008-05-27T20:14:19  <dennda> not only the plain textfiles
2008-05-27T20:18:58  <mitsuhiko> zenhase: let's move it over here :)
2008-05-27T20:20:07  <zenhase> i am trying to follow the request-objects through it's life in moin, to gather information on which methods are expected
2008-05-27T20:20:40  <zenhase> so i can put them on the  context-objects we talked about
2008-05-27T20:21:06  <mitsuhiko> are you using some sort of tracing function?
2008-05-27T20:21:25  <zenhase> yes, my brain :o
2008-05-27T20:21:36  <johill> zenhase: like requestion.session?
2008-05-27T20:21:37  <zenhase> but you are right
2008-05-27T20:21:46  <johill> zenhase: that's a mess...
2008-05-27T20:21:56  <johill> even the parser and formatter stick things there
2008-05-27T20:22:02  <zenhase> i should add a tracer to my moin.wsgi script
2008-05-27T20:22:02  <mitsuhiko> it's insane
2008-05-27T20:22:11  <zenhase> it get's even worse
2008-05-27T20:22:27  <zenhase> it's not about what parts stick there or expect there
2008-05-27T20:22:29  <mitsuhiko> i noticed that the parsers and macros put stuff on the request object
2008-05-27T20:22:39  <mitsuhiko> for example the TOC macro
2008-05-27T20:22:55  <zenhase> hrhr
2008-05-27T20:23:36  <mitsuhiko> zenhase: i would try to pass mock objects around with a __getattr__ / __setattr__ that raises something like AssertionError("UR DOIN IT WRONG")
2008-05-27T20:23:51  <mitsuhiko> or better, something that logs it
2008-05-27T20:24:12  <zenhase> yeah
2008-05-27T20:24:24  <xorAxAx> and where should they store the state instead?
2008-05-27T20:24:32  <mitsuhiko> for example a proxy that logs every access to http request stuff. if something in the formatter fiddles with it it breaks
2008-05-27T20:24:39  <mitsuhiko> xorAxAx: in a wiki with a clean design... :)
2008-05-27T20:25:22  <johill> xorAxAx: something like request.state so you can cleanly throw it away for re-request stuff
2008-05-27T20:25:42  <mitsuhiko> table of contents macro from inyoka: http://paste.pocoo.org/show/54761/
2008-05-27T20:25:46  <mitsuhiko> no need for state here :)
2008-05-27T20:26:02  <johill> are you sure the toc macro still has state?
2008-05-27T20:26:03  <johill> I'm confused
2008-05-27T20:26:09  <johill> I thought it just re-formatted with the toc formatter now
2008-05-27T20:26:12  <xorAxAx> mostly to avoid recursion
2008-05-27T20:26:26  <xorAxAx> or take include
2008-05-27T20:27:28  <zenhase> hmm, i think include was something with output capturing and includedpage.send_page(content_only=1)
2008-05-27T20:27:55  <zenhase> and output capturing again is state ... on the request-object ;O
2008-05-27T20:28:52  <mitsuhiko> johill: there is request._tocfm_collected_headings
2008-05-27T20:31:45  <johill> hm ok
2008-05-27T20:32:02  <johill> probably because you can't pass around formatter state easily
2008-05-27T20:32:32  <johill> I can't remember, even tho I wrote it
2008-05-27T20:33:55  <ThomasWaldmann> PawelPacana: dennda: you agreed on the amount of repos you want?
2008-05-27T20:34:09  <dennda> ThomasWaldmann: Yes, we agreed to have seperate ones.
2008-05-27T20:34:24  <ThomasWaldmann> ok
2008-05-27T20:38:42  <ThomasWaldmann> dennda: PawelPacana: does it help you to get the current 1.7-storage state cloned into your repo?
2008-05-27T20:39:14  <johill> ThomasWaldmann: for sure, since it's not easily mergable right now
2008-05-27T20:40:28  <ThomasWaldmann> otoh it means to do the merge in 2 repos then
2008-05-27T20:40:52  <ThomasWaldmann> (or at least some potential conflict resolution)
2008-05-27T20:40:54  <johill> nah just merge the 1.7-storage one
2008-05-27T20:41:06  <dennda> and then merge with us
2008-05-27T20:41:08  <johill> I mean, if somebody updates hwendel tehy can both merge them
2008-05-27T20:41:21  <ThomasWaldmann> ok
2008-05-27T20:41:31  <dennda> would be great
2008-05-27T20:41:37  <dennda> I work on more than one machine :)
2008-05-27T20:45:54  <zenhase> i will get some food now
2008-05-27T20:51:58  <ThomasWaldmann> PawelPacana: dennda: http://hg.moinmo.in/
2008-05-27T20:52:26  <dennda> great
2008-05-27T20:52:52  * ThomasWaldmann will add a tag, wait a minute
2008-05-27T20:55:57  <CIA-50> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 3902:f942a75d1b94 1.8-storage-cdenter/.hgtags: tagged SOC2008-START-STORAGE
2008-05-27T20:57:07  * dennda pulls
2008-05-27T20:59:37  <ThomasWaldmann> PawelPacana: same changeset is also in your repo, but was filtered as duplicate before notifying CIA :)
2008-05-27T21:07:25  <mrtuple> Question:  I've got 1.7rc1 working under apache2 CGI, if I make the correct changes to the apache2 config, should I have to change any of wiki config for WSGI to work?
2008-05-27T21:09:38  <dennda> mrtuple: I think thats more a question for the support channel
2008-05-27T21:11:27  <mrtuple> sorry.
2008-05-27T21:19:05  <dennda> no worries
2008-05-27T22:28:31  <dennda> hm
2008-05-27T22:28:35  <dennda> trying to get hg to work
2008-05-27T22:29:12  <johill> what's wrong?
2008-05-27T22:29:38  <dennda> trying to push for the first time, just says ssl required. lemme google it
2008-05-27T22:29:52  <johill> ssl?
2008-05-27T22:29:55  <johill> you should be using ssh
2008-05-27T22:30:04  <johill> default-push = ssh://moin-hg/moin/1.7-storage-hwendel/
2008-05-27T22:30:07  <johill> or similar
2008-05-27T22:30:11  <johill> different branch, of course
2008-05-27T22:35:39  <dennda> ThomasWaldmann: did you use this key? https://launchpad.net/~dennda/+sshkeys
2008-05-27T22:36:15  <dennda> I get permission denied (publickey)
2008-05-27T22:38:14  <ThomasWaldmann> dennda: yes
2008-05-27T22:38:31  <dennda> why is that then?
2008-05-27T22:38:42  <dennda> both the public and the private key are within my ~/.ssh
2008-05-27T22:38:54  <johill> bad debian key?
2008-05-27T22:39:01  <ThomasWaldmann> and it is default-push = ssh://hg@hg.moinmo.in/moin/1.8-storage-cdenter/
2008-05-27T22:39:42  <dennda> ah ok, forgot the hg@
2008-05-27T22:41:14  <dennda> still permission denied
2008-05-27T22:41:15  <dennda> hm
2008-05-27T22:41:57  <dennda> ThomasWaldmann: Does the name of the files in ~/.ssh matter? they are called id_rsa_dennda and id_rsa_dennda.pub rather than just id_rsa and id_rsa.pub
2008-05-27T22:42:28  <ThomasWaldmann> you have to tell ssh to use them
2008-05-27T22:43:14  <dennda> how? (I didn't set up any ssh-agent or something like that)
2008-05-27T22:44:06  <mrtuple> With plain old ssh, you use -i I think--- but I'm not sure how to fold that into the hg uri
2008-05-27T22:44:24  <ThomasWaldmann> dennda: why don't you use the default filename?
2008-05-27T22:44:39  <dennda> ThomasWaldmann: because there's more than one ssh key I use
2008-05-27T22:45:43  <ThomasWaldmann> and you don't have a .config yet?
2008-05-27T22:46:15  <ThomasWaldmann> Host hg.moinmo.in
2008-05-27T22:46:25  <zenhase> or just use ssh-agent :)
2008-05-27T22:46:37  <ThomasWaldmann>   IdentityFile ~/.ssh/foo
2008-05-27T22:46:38  <zenhase> it's more convenient anyway
2008-05-27T22:47:07  <dennda> zenhase: I'd need to configure that as well, this is a very minimalistic arch system :)
2008-05-27T22:47:13  <dennda> but maybe I should
2008-05-27T22:47:14  <ThomasWaldmann> put that into .ssh/config
2008-05-27T22:47:27  <dennda> ok
2008-05-27T22:47:58  <mrtuple> Won't the .config approach ask for a passphrase multiple times?  ssh-agent gets you around that at least...
2008-05-27T22:48:31  <johill> zenhase: Hostname moin ;)
2008-05-27T22:48:39  <johill> eh Host moin, Hostname ...
2008-05-27T22:49:01  <zenhase> johill: hmm?
2008-05-27T22:49:32  <johill> zenhase: I do that, then you can just say ssh://moin/..
2008-05-27T22:49:56  <zenhase> dennda: well, kinda defeats the purpose of using an 'diy-most-of-the-time'-distro if you actually never do the configuration part ;)
2008-05-27T22:50:24  <zenhase> johill: i use ssh-agent because of the passwords on my keys
2008-05-27T22:50:26  <dennda> true
2008-05-27T22:50:32  <dennda> boy
2008-05-27T22:50:51  <johill> zenhase: oh sorry I got confused reading the discussion
2008-05-27T22:51:02  <zenhase> johill: no prob :D
2008-05-27T22:51:52  <dreimark> dennda: ssh-add key
2008-05-27T22:52:36  <dreimark> in the lobby the wlan is much better than the one from freenet.ch
2008-05-27T22:52:50  <dennda> ok, I got another problem but I am not gonna tell you :p
2008-05-27T22:52:58  <dennda> you'd kill me
2008-05-27T22:52:59  * dreimark dislikes ssh-agent
2008-05-27T22:55:08  <dreimark> dennda: ??
2008-05-27T22:56:12  <zenhase> dennda: you forgot your key-password? ;)
2008-05-27T22:56:25  <zenhase> that was the case with my ssh-key from last year :D
2008-05-27T22:56:31  <dennda> zenhase: bingo
2008-05-27T22:56:48  <dennda> but I was absolutely sure I knew it
2008-05-27T22:57:03  <dreimark> dennda: another question on AttachFile
2008-05-27T22:57:10  <dennda> trying to bruteforce it now
2008-05-27T22:57:27  <dreimark> looks like you missed install for packages by superuser
2008-05-27T22:57:34  <johill> dreimark: that was me
2008-05-27T22:57:48  <dreimark> ok
2008-05-27T22:58:02  <johill> ThomasWaldmann: did you see http://moinmo.in/MoinMoinBugs/StrikeThrough?
2008-05-27T22:58:37  <dreimark> another question is about what to do with the meta data of alt
2008-05-27T22:58:42  <ThomasWaldmann> yes, see my comment there
2008-05-27T22:58:50  <dreimark> i think it should be meta data
2008-05-27T22:59:08  <johill> dreimark: explain packages
2008-05-27T22:59:22  <johill> oh. I alwasys forget to subscribe to my bugs
2008-05-27T23:00:12  <dreimark> see action Package page it creates a special zip file
2008-05-27T23:00:14  <ThomasWaldmann> dennda: unzip page/foo.zip should be page/{items}, not page/foo.zip/{items} to emulate current behaviour
2008-05-27T23:00:39  <johill> ThomasWaldmann: don't you think it should be easy to look ahead if there is )-- elsewhere on the line?
2008-05-27T23:00:40  <dreimark> or the moin command
2008-05-27T23:00:47  <johill> ThomasWaldmann: go change it, that was me too
2008-05-27T23:01:16  <dreimark> johill: both can be used to create pages and attachments on pages
2008-05-27T23:01:34  <dreimark> another feature is to install plugins
2008-05-27T23:01:52  <ThomasWaldmann> johill: the problem is not limited to )--
2008-05-27T23:01:59  <dreimark> if you use as superuser install
2008-05-27T23:02:07  <johill> ThomasWaldmann: but any markup should be closed again
2008-05-27T23:02:21  <johill> ThomasWaldmann: so shouldn't it be possible to see that?
2008-05-27T23:03:09  <ThomasWaldmann> maybe, but we'll have bigger parser/formatter changes soon anyway
2008-05-27T23:03:16  <johill> true
2008-05-27T23:04:58  * dennda swears
2008-05-27T23:09:01  <dennda> ok I tried 50+ different combinations of the passwords I usually use
2008-05-27T23:09:09  <dennda> that is becoming annoying
2008-05-27T23:09:29  <johill> rm helps
2008-05-27T23:09:35  <johill> and ssh-keygen
2008-05-27T23:09:42  <dennda> ThomasWaldmann: is gonna kill me
2008-05-27T23:10:10  <ThomasWaldmann> hehe
2008-05-27T23:10:17  <ThomasWaldmann> another key? :)
2008-05-27T23:10:49  <dennda> if it asks me for the pw that means that at least the key is correct, right?
2008-05-27T23:11:05  <dreimark> no
2008-05-27T23:11:21  <dreimark> why should it know this?
2008-05-27T23:12:10  <ThomasWaldmann> dennda: it asks what question?
2008-05-27T23:12:34  <dennda> ThomasWaldmann: it asks for the password for the key
2008-05-27T23:12:50  <ThomasWaldmann> that's done before the key is used
2008-05-27T23:13:06  <CIA-50> Christopher Denter <moin@the-space-station.com> default * 3903:787223ff6eeb 1.8-storage-cdenter/MoinMoin/storage/abstract.py: adding first version of the new api design. this can be found in abstract.py
2008-05-27T23:13:13  <dennda> :)
2008-05-27T23:13:23  <dreimark> ah you got iy
2008-05-27T23:13:26  <dreimark> it
2008-05-27T23:17:58  <johill> dennda: I'd probably haev put it into MoinMoin/storage/__init__.py but doesn't matter
2008-05-27T23:18:54  <dennda> johill: what?
2008-05-27T23:19:05  <johill> all the base classes
2008-05-27T23:19:21  <dennda> that'd be quite unusual, wouldn't it?
2008-05-27T23:19:35  <johill> would it? I dunno, I do that all the time
2008-05-27T23:19:38  <dennda> you only use __init__.py to indicate the folder is a module / package
2008-05-27T23:19:49  <ThomasWaldmann> all your base ...
2008-05-27T23:19:49  <dennda> as far as I know
2008-05-27T23:19:53  <dennda> ThomasWaldmann: :)
2008-05-27T23:21:13  <johill> I dunno. I did that in auth/__init__ too
2008-05-27T23:21:35  <johill> why would it be wrong?
2008-05-27T23:21:55  <dennda> because, by convention, you wouldn't expect any context in there
2008-05-27T23:22:02  <dennda> content
2008-05-27T23:22:54  <johill> I never heard of that convention so I do, indeed, check in there too ;)
2008-05-27T23:23:06  <ThomasWaldmann> i also like base stuff in __init__ - makes your imports shorter :D
2008-05-27T23:24:09  <dennda> what would be the appropriate import statement then?
2008-05-27T23:24:18  <johill> from MoinMoin.storage import ...
2008-05-27T23:24:51  <ThomasWaldmann> or from MoinMoin import storage
2008-05-27T23:24:51  <dennda> instead of from MoinMoin.storage.abstract import ..?
2008-05-27T23:25:16  <johill> yeah
2008-05-27T23:25:47  <johill> then I'd probably also move the stuff down from backends but that's up to you
2008-05-27T23:25:54  <johill> I don't like the rather deep nesthing there
2008-05-27T23:26:10  <johill> from "MoinMoin.storage.backends import sql1"...
2008-05-27T23:27:04  <johill> doesn't really matter too much
2008-05-27T23:31:47  <dennda> I'll think about it tomorrow
2008-05-27T23:31:50  <dennda> need some sleep now
2008-05-27T23:31:54  <dennda> good night :)
2008-05-27T23:32:04  <dreimark> good night dennda
2008-05-27T23:32:22  <dreimark> johill: do you need more on packages?
2008-05-27T23:34:16  <johill> dreimark: how about you just fill in the table? :)
2008-05-27T23:40:31  <dreimark> johill: done
2008-05-27T23:42:30  <dreimark> good night
2008-05-27T23:53:45  <zenhase> i am getting sleepy too
2008-05-27T23:54:33  <zenhase> at least my sleep rhythm is in line again, after my server problem kept me awake the last 2 nights
2008-05-27T23:55:01  <zenhase> gn8

MoinMoin: MoinMoinChat/Logs/moin-dev/2008-05-27 (last edited 2008-05-26 22:15:04 by IrcLogImporter)