2007-08-08T00:13:42 <DrFrasierCrane> omg
2007-08-08T00:14:08 <nwp> now that's just rude. get us all interested and then quit...
2007-08-08T00:17:31 <grzywacz> ;-)
2007-08-08T00:22:54 * ThomasWaldmann .oO(famous last words)
2007-08-08T00:24:13 <nwp> oh, he is there :-)
2007-08-08T00:26:36 <ThomasWaldmann> http://moinmo.in/LinkMarkupCollection maybe all check if i forgot your favourite broken 1.5 link syntax :)
2007-08-08T00:32:16 <nwp> ThomasWaldmann: ok, I see the wsgi server_* stuff doesn't provide any config stuff
2007-08-08T00:32:45 <nwp> and I'm not 100% clear what config stuff is potentially dealt with in there (would be good to have an exhaustive list somewhere)
2007-08-08T00:33:52 <nwp> so I'm not entirely clear how the wsgi one sets up logging
2007-08-08T00:33:58 <nwp> if it does
2007-08-08T00:35:37 * ThomasWaldmann looks
2007-08-08T00:37:39 <ThomasWaldmann> nwp: yeah, you are right. i have to look at the wsgi stuff. maybe look at another one for examples.
2007-08-08T00:38:41 <nwp> ok, what is the aim then - config to do with getting the thing running is dealt with there, and what it does once it's running in the MoinMoin/config stuff? or should both be merged together somehow at some point?
2007-08-08T00:39:08 <ThomasWaldmann> that Config has nothing to do with wikiconfig
2007-08-08T00:39:21 <nwp> right
2007-08-08T00:39:46 <ThomasWaldmann> it is just to have a place for defaults for the adaptor script
2007-08-08T00:39:57 <ThomasWaldmann> (and init logging etc.)
2007-08-08T00:40:01 <nwp> thought so, just checking
2007-08-08T00:40:37 <ThomasWaldmann> e.g. server_cgi is very easy
2007-08-08T00:40:42 <nwp> yes
2007-08-08T00:41:17 <nwp> I can't think of anything beyond logging that modpython needs at the moment either
2007-08-08T00:42:05 <ThomasWaldmann> debug/profiling options?
2007-08-08T00:42:52 <nwp> it did occur to me while looking at it that it might be nice to do it in the apache config (in the way that _setup_vars_from_std_env does) and read it from there rather than editing these files, but that might overcomplicate things unnecessarily
2007-08-08T00:42:55 <nwp> I guess
2007-08-08T00:43:03 <nwp> not familiar with any profiling for python
2007-08-08T00:43:39 <ThomasWaldmann> well, editing the apache config only works for apache :)
2007-08-08T00:44:13 <nwp> yes, but using the environment would work for cgi, fcgi, wsgi & modpy, wouldn't it?
2007-08-08T00:44:35 <nwp> anyway, I thought it was a bad idea to think too much about that right now ;-)
2007-08-08T00:45:05 <ThomasWaldmann> btw, does moin under modpy also need that properties stuff? this is also in Config.
2007-08-08T00:45:13 <nwp> was looking at that
2007-08-08T00:45:29 <nwp> it could easily be added, but again I wasn't clear what it would be used for
2007-08-08T00:46:08 <ThomasWaldmann> maybe just copy server_cgi to server_mod_python and just edit it
2007-08-08T00:46:18 <nwp> that's what I was doing :-)
2007-08-08T00:47:00 <nwp> and I have something that should at least work, but can't resist trying to tidy it up and make it like the others at the same time
2007-08-08T00:47:52 <grzywacz> argh
2007-08-08T00:49:42 <grzywacz> stupid conflict, I hope I won't mess it up...
2007-08-08T00:53:49 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2639:11447cada25e 1.7-jabber-knowak/jabberbot/xmlrpcbot.py: Fix layering violation in xmlrpcbot code, as mentioned in TODO.
2007-08-08T00:53:50 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2640:0608417246ee 1.7-jabber-knowak/jabberbot/xmppbot.py: Use a more generic way to store information about supported extensions.
2007-08-08T00:53:51 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2641:9efa3194636d 1.7-jabber-knowak/jabberbot/xmppbot.py: Pass URLs using OOB only if it's known to be supported by the client.
2007-08-08T00:53:52 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2642:82b0e4625f90 1.7-jabber-knowak/MoinMoin/script/migration/_tests/test_conv160_wiki.py: Whitespace fix.
2007-08-08T00:53:53 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2643:d3503c3c2ba4 1.7-jabber-knowak/MoinMoin/xmlrpc/__init__.py: More whitespace fixes.
2007-08-08T00:53:56 <CIA-28> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2644:459199b59cf7 1.7-jabber-knowak/ (3 files in 3 dirs): Merge changes done in my other branches.
2007-08-08T01:09:01 * ThomasWaldmann looked at creole link markup.
2007-08-08T01:17:03 <ThomasWaldmann> looks like creole link markup could be the easiest - if we accept a radical change in link syntax (and macro syntax)
2007-08-08T01:31:08 <ThomasWaldmann> nobody shocked, crying wtf or whatever? :D
2007-08-08T01:36:47 <nwp> busy
2007-08-08T01:37:28 <nwp> I think if you make significant changes to markup then it needs to become pluggable to allow people with hard-of-learning users to stick with the traditional scheme
2007-08-08T01:37:57 <nwp> but for myself, so long as it can be automatically converted-to from the current system, I don't care too much
2007-08-08T01:41:06 <ThomasWaldmann> the problem is that moin's link syntax is ... grown (not to say fscking complex)
2007-08-08T01:42:18 <ThomasWaldmann> to remove at least some of its strange workarounds I will have to at least introduce quoting for stuff with spaces plus free links with link text
2007-08-08T01:43:23 <ThomasWaldmann> but if I have to convert much of the link stuff anyway, i could also convert to [[link|text]] syntax
2007-08-08T01:44:40 <ThomasWaldmann> solves the same problems, make creole fans happy, makes mediawiki users compatible for internal links
2007-08-08T01:47:24 <starshine> what do dreole link markup look like?
2007-08-08T01:47:56 <starshine> is it easier than mw?
2007-08-08T01:49:09 <starshine> how well does it handle links such as http://some.site.here.org/cgi.pl?foo=bar&thing=whatsit&ouch=bandaid;more.options.here ?
2007-08-08T01:50:05 <starshine> that you'd like to replace with some helpfully plain text like _my mom's first aid kit_
2007-08-08T01:51:10 <starshine> ah it's same as mw for a specific sort of link. ok that might be nice
2007-08-08T01:53:27 <ThomasWaldmann> it is a bit easier than mw as they use double brackets for external links also
2007-08-08T01:53:41 <starshine> ok consistent sounds good
2007-08-08T01:54:13 <ThomasWaldmann> i am currently thinking about what to do with macro syntax.
2007-08-08T01:56:50 <ThomasWaldmann> creole uses <<...>> for plugins
2007-08-08T02:01:12 <ThomasWaldmann> or <<<..>>>, seems not to be decided yet
2007-08-08T02:05:09 <starshine> do you need to decide subclass of macros for anything?
2007-08-08T02:05:27 <starshine> right now Macro resembles a link with programming options.
2007-08-08T02:05:49 <ThomasWaldmann> we dont use [[ for links yet
2007-08-08T02:06:18 <ThomasWaldmann> but we could, if we choose sth else for macros
2007-08-08T02:07:02 <ThomasWaldmann> instead of [[Macro(p,q,r)]] it could be <<<Macro p,q,r>>>
2007-08-08T02:09:09 <ThomasWaldmann> same amount of keystrokes :)
2007-08-08T02:15:20 * ThomasWaldmann looks at TheSheep's creole parser
2007-08-08T02:26:33 <starshine> if I make moin cookies for linux picnic how do you want me to check them in?
2007-08-08T02:26:40 <starshine> ooh I know
2007-08-08T02:26:58 <starshine> I could make some, and take a photo of one, and submit it as an alternate corner-logo.
2007-08-08T02:27:23 <starshine> they would probably be my most complicated moin logo.
2007-08-08T02:28:03 <starshine> .o( advatage is, they'd be round.
2007-08-08T02:30:28 <ThomasWaldmann> hehe
2007-08-08T04:00:31 <CIA-28> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2612:e3e5e2373c60 1.7/MoinMoin/script/migration/ (_conv160_wiki.py _tests/test_conv160_wiki.py): 1.6 converter: cleanup link conversion, cleanup/add tests
2007-08-08T04:00:34 <CIA-28> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2613:ddbbf05d0eac 1.7/MoinMoin/parser/text_creole.py: add creole 0.5 parser (thanks to Radomir Dopieralski)
2007-08-08T06:17:20 <CIA-28> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2614:9a90c11c6c0d 1.7/MoinMoin/parser/text_creole.py: update creole parser to support creole 1.0
2007-08-08T10:37:18 <CIA-28> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2806:f4fb8cb9db2c 1.7-storage-hwendel/MoinMoin/ (19 files in 10 dirs): implement global edit-log and news()
2007-08-08T10:37:47 <ThomasWaldmann> moin
2007-08-08T10:37:51 <lanius> moin
2007-08-08T10:38:44 <ThomasWaldmann> good timings :)
2007-08-08T10:38:48 <lanius> hehe
2007-08-08T10:41:18 <ThomasWaldmann> ehrm, eventlog: if the param is called mtime_usecs, it must be usecs. otherwise it have to be mtime
2007-08-08T10:46:09 <lanius> usecs means what?
2007-08-08T10:46:31 <ThomasWaldmann> micro seconds
2007-08-08T10:47:12 <lanius> ah, ok
2007-08-08T10:47:39 <lanius> i changed it everywhere
2007-08-08T10:47:47 <lanius> so i will rename it evyerwhere
2007-08-08T10:47:48 <ThomasWaldmann> u is usually taken if your kbd misses the greek "mue"
2007-08-08T10:48:16 <lanius> i would take the m because that's where the mue is located on my keyboard :-)
2007-08-08T10:48:46 <xorAxAx> msec is milli second
2007-08-08T10:49:03 <xorAxAx> milli != micro
2007-08-08T10:49:29 <lanius> yes, but still the mue is on the m
2007-08-08T10:49:49 <xorAxAx> thats no reason to call it msec :)
2007-08-08T10:50:26 <ThomasWaldmann> GlobalEditLog.next: item_name, rev, ed_time = self.items[self.pos]
2007-08-08T10:50:42 <ThomasWaldmann> just to avoid using indices and for clarity
2007-08-08T10:51:11 <ThomasWaldmann> + self.pos = self.pos + 1
2007-08-08T10:51:18 <ThomasWaldmann> += exists
2007-08-08T10:53:26 <ThomasWaldmann> wikiutil.timestamp2version(bookmark_usecs) this is also wrong or strangely named
2007-08-08T10:54:10 <ThomasWaldmann> and btw, you can drop that long() stuff in favour for int()
2007-08-08T10:54:21 <ThomasWaldmann> we dont support py 2.2 any more
2007-08-08T10:54:45 <lanius> somewhere in the comments it's mentioned that 2.3 needs it as well
2007-08-08T10:57:12 <lanius> maybe not
2007-08-08T10:58:34 <ThomasWaldmann> lanius: + items.sort(key=lambda x: str(x[2]) + str(x[1]) + x[0], reverse=True)
2007-08-08T10:58:44 <ThomasWaldmann> please explain
2007-08-08T10:59:07 <lanius> it's first sorted by mtime, then by rev and then by the name, everything reversed
2007-08-08T11:01:44 <ThomasWaldmann> >>> "42" > "2323"
2007-08-08T11:01:44 <ThomasWaldmann> True
2007-08-08T11:03:13 <ThomasWaldmann> guess why i used %08d for the revstr :)
2007-08-08T11:03:33 <xorAxAx> ugh, ugly sort
2007-08-08T11:03:47 <ThomasWaldmann> but you can just use int there
2007-08-08T11:04:25 <ThomasWaldmann> and if you can reverse order in that tuple, it will naturally sort right
2007-08-08T11:05:44 <ThomasWaldmann> + mtime = os.path.getmtime(self._get_item_path(item)) wtf?
2007-08-08T11:07:26 <ThomasWaldmann> (i was quite glad about removing mtime stuff a few years ago when i refactored storage)
2007-08-08T11:10:22 <xorAxAx> yep, esp. a windows user should be aware of the problems :)
2007-08-08T11:10:35 <ThomasWaldmann> + TODO: news is too slow currently < i guess it will even get slower now
2007-08-08T11:11:03 <ThomasWaldmann> yeah, M$ fucked it up completely :D
2007-08-08T11:11:16 <xorAxAx> only on fat and with legacy apps, though :)
2007-08-08T11:13:34 <ThomasWaldmann> but you dont need win32 to break mtimes, just using (s)cp for backups is enough
2007-08-08T11:14:15 <lanius> the news implementation has to be changed, it is just a "proof of concept" for the interface
2007-08-08T11:15:08 <ThomasWaldmann> well, proof it correctly, please :)
2007-08-08T11:18:21 <ThomasWaldmann> and please try it for 1000 and 10000 items
2007-08-08T11:20:34 <ThomasWaldmann> + if not os.path.exists(self._get_item_path(item, "revisions", _get_rev_string(revno))):
2007-08-08T11:20:37 <ThomasWaldmann> + continue
2007-08-08T11:20:40 <ThomasWaldmann> + mtime = os.path.getmtime(self._get_item_path(item, "revisions", _get_rev_string(revno)))
2007-08-08T11:20:43 <ThomasWaldmann> revno?
2007-08-08T11:21:01 <ThomasWaldmann> try/except would be much faster
2007-08-08T11:21:33 <lanius> ok, what about revno?
2007-08-08T11:21:41 <ThomasWaldmann> undefined
2007-08-08T11:21:55 <ThomasWaldmann> ehrm, no
2007-08-08T11:23:54 <ThomasWaldmann> you could break out that loop once you get a older rev than timestamp
2007-08-08T11:24:42 <lanius> yes
2007-08-08T11:24:45 <lanius> no
2007-08-08T11:25:04 <lanius> in theory you can edit rev 1 after rev2
2007-08-08T11:25:04 <ThomasWaldmann> :)
2007-08-08T11:26:01 <lanius> since the implementation will change completly, it doesn't matter
2007-08-08T11:26:49 <ThomasWaldmann> how will it change completely?
2007-08-08T11:27:07 <lanius> based on a cache
2007-08-08T11:27:48 <lanius> for a database it will be a one line sql query
2007-08-08T11:27:52 <lanius> should be quite fast
2007-08-08T11:28:15 <ThomasWaldmann> yeah, but the fs stuff is harder
2007-08-08T11:28:19 <lanius> yes
2007-08-08T11:28:32 <lanius> i'm looking into using the global edit log file again
2007-08-08T11:29:04 <ThomasWaldmann> you know it breaks on nfs
2007-08-08T11:29:19 <lanius> that means that the current 1.6 implementaiton is broken as well?
2007-08-08T11:29:36 <ThomasWaldmann> yes, for broken filesystems
2007-08-08T11:29:45 <lanius> so it's no issue ;)
2007-08-08T11:30:29 <xorAxAx> hmm?
2007-08-08T11:30:39 <ThomasWaldmann> but we wanted to get rid of that "global edit-log as a file"
2007-08-08T11:30:56 <lanius> any other idea?
2007-08-08T11:30:57 <xorAxAx> yes, lanius wanted to do so
2007-08-08T11:31:07 <xorAxAx> using news(), its not necessary
2007-08-08T11:31:13 <lanius> i want to get rid of all this filesystem stuff ;)
2007-08-08T11:31:28 <ThomasWaldmann> that's no option
2007-08-08T11:31:34 <lanius> just kidding
2007-08-08T11:31:34 <xorAxAx> ThomasWaldmann: hmm?
2007-08-08T11:31:44 <xorAxAx> and what is broken on nfs?
2007-08-08T11:31:48 <lanius> xorAxAx: any idea for a fast implementation of news()
2007-08-08T11:31:59 <ThomasWaldmann> append mode is broken on nfs
2007-08-08T11:32:03 <xorAxAx> ThomasWaldmann: indeed
2007-08-08T11:32:04 <DrFrasierCrane> guys who made this change: http://tools.assembla.com/newton/wiki/ArchitecturePlan?action=diff&version=6
2007-08-08T11:32:21 <xorAxAx> lanius: well, it gets a global revision or timestamp
2007-08-08T11:32:37 <grzywacz> moin
2007-08-08T11:32:38 <xorAxAx> lanius: the file backend writes a file with append and does a binary search to find the position
2007-08-08T11:32:53 <lanius> global revision or timestamp means what?
2007-08-08T11:33:41 <xorAxAx> lanius: either you have some counter that is incremented for every change in the backend or you just store a timestamp that is increasing automatically
2007-08-08T11:34:00 <xorAxAx> i think its the third time that i am explaining this idea in here
2007-08-08T11:34:30 <xorAxAx> (would be nice if you paid a bit more attention or make notes etc.)
2007-08-08T11:34:39 <lanius> i pay enough attentions
2007-08-08T11:34:41 <lanius> it's the details
2007-08-08T11:34:52 <lanius> what is this counter for?
2007-08-08T11:34:53 <DrFrasierCrane> I guess it was a ghost :-) hmm
2007-08-08T11:34:53 <xorAxAx> mindmapping helps :)
2007-08-08T11:35:01 <DrFrasierCrane> thanks anyway whoever it was
2007-08-08T11:35:08 <lanius> (you never talked about a counter before)
2007-08-08T11:35:10 <xorAxAx> lanius: the idea is that you need some incrementing value to do a binary search
2007-08-08T11:35:19 <xorAxAx> lanius: i talked about revision numbers or timestamps
2007-08-08T11:35:30 <xorAxAx> one idea was to use an item in the backend with meta-data revs only
2007-08-08T11:35:37 <xorAxAx> so the rev no would be incrementing automatically
2007-08-08T11:35:51 <lanius> which is not fast at all
2007-08-08T11:36:34 <ThomasWaldmann> it's quite faster than what you have now and it doesnt need additionaly code for a basic impl.
2007-08-08T11:36:50 <xorAxAx> lanius: why not?
2007-08-08T11:37:03 <lanius> xorAxAx: n file access for n revisions, just like now
2007-08-08T11:37:15 <lanius> ThomasWaldmann: no additionally code? so it is done?
2007-08-08T11:37:31 <ThomasWaldmann> you already have revisioned item metadata
2007-08-08T11:37:41 <xorAxAx> lanius: hmm, no
2007-08-08T11:38:00 <xorAxAx> lanius: currently you need to query n items while in that system, you would query m revs
2007-08-08T11:38:07 <xorAxAx> and m is less than n
2007-08-08T11:38:16 <lanius> m is more then n
2007-08-08T11:38:20 <xorAxAx> no
2007-08-08T11:38:23 <lanius> each item has 1 or more revision
2007-08-08T11:38:27 <ThomasWaldmann> you just need to put it into one place (e.g. the root item)
2007-08-08T11:38:37 <xorAxAx> n is 1000 pages but only lets say 5 changes are new
2007-08-08T11:38:41 <xorAxAx> so 5 < 1000
2007-08-08T11:38:54 <lanius> but you have to check if every change is new
2007-08-08T11:39:39 <xorAxAx> hmm?
2007-08-08T11:39:57 <ThomasWaldmann> you currently even check n items * o revisions
2007-08-08T11:40:03 <lanius> where do the 1000 pages come from
2007-08-08T11:40:18 <lanius> where is the information about the changes stored
2007-08-08T11:40:24 <xorAxAx> lanius: its a large wiki with 1000 pages
2007-08-08T11:40:32 <xorAxAx> lanius: on the filesystem
2007-08-08T11:40:38 <lanius> where, that's important
2007-08-08T11:40:53 <ThomasWaldmann> 1000 is rather medium
2007-08-08T11:41:01 <lanius> that's not the point
2007-08-08T11:41:15 <xorAxAx> lanius: in every single rev
2007-08-08T11:41:17 <lanius> how and where are the changes stored and access, that's the perfromance question
2007-08-08T11:41:28 <xorAxAx> lanius: yes
2007-08-08T11:41:47 <lanius> what does "in every single rev" mean
2007-08-08T11:42:10 <xorAxAx> lanius: that the single fixed-row-width file only points to the meta data revs which have the usual metadata
2007-08-08T11:42:14 <xorAxAx> so you dont have any redudancy
2007-08-08T11:42:25 <xorAxAx> well, recentchagnes is an important page
2007-08-08T11:42:41 <xorAxAx> nevertheless this mustnt be much slower than the old solution of having just one file
2007-08-08T11:43:24 <lanius> must not or should not
2007-08-08T11:43:29 <xorAxAx> if you dislike the indirection, you wont have any other possibility of reusing the global edit log design and add an interface to it
2007-08-08T11:44:18 <lanius> itÄs not about liking anything
2007-08-08T11:44:18 <ThomasWaldmann> must not be much :)
2007-08-08T11:44:23 <xorAxAx> lanius: "wont likely be"
2007-08-08T11:44:30 <lanius> xorAxAx: must not is "darf nicht"
2007-08-08T11:44:38 <xorAxAx> yes
2007-08-08T11:44:58 <lanius> i don't understand the indirection part
2007-08-08T11:45:02 <xorAxAx> sigh
2007-08-08T11:45:12 <xorAxAx> there is a single logging entity
2007-08-08T11:45:12 <lanius> sigh'ing doesn't help
2007-08-08T11:45:18 <xorAxAx> that stores the 3-tuple
2007-08-08T11:45:22 <xorAxAx> do you remember? :)
2007-08-08T11:45:28 <xorAxAx> and its accessed via news()
2007-08-08T11:45:39 <lanius> in the single changes file?
2007-08-08T11:45:44 <xorAxAx> and in order to load the referred data, you need to fetch the revs of the items
2007-08-08T11:45:44 <lanius> where all tuples are stored?
2007-08-08T11:45:59 <xorAxAx> yes, in a file with a fixed row-width
2007-08-08T11:46:13 <lanius> fixed-row-width?
2007-08-08T11:46:14 <ThomasWaldmann> xorAxAx: how fixed for the item name?
2007-08-08T11:46:22 <xorAxAx> ThomasWaldmann: using some maximum length
2007-08-08T11:46:31 <lanius> why do we need that
2007-08-08T11:46:31 <ThomasWaldmann> ugh
2007-08-08T11:46:36 <xorAxAx> lanius: yes, so that you can bisect easily
2007-08-08T11:46:37 <xorAxAx> lanius: speed
2007-08-08T11:46:58 <xorAxAx> ThomasWaldmann: why ugh?
2007-08-08T11:47:25 <ThomasWaldmann> how much is max_path (or whatever it is called) usually?
2007-08-08T11:47:26 <xorAxAx> 255 chars ought to be enogh for everybody, or smoething like that
2007-08-08T11:47:34 <xorAxAx> 1024
2007-08-08T11:47:57 <xorAxAx> lanius: you wanted speed
2007-08-08T11:48:00 <ThomasWaldmann> if you dont want the mossad kill you, you would have to choose 1024
2007-08-08T11:48:09 <xorAxAx> we dont need it, we could use the same code that we have in the logfile modules
2007-08-08T11:48:17 <xorAxAx> using on-the-fly indexing
2007-08-08T11:48:29 <xorAxAx> and over allocation of read buffers
2007-08-08T11:48:35 <lanius> but speed whithout bugs
2007-08-08T11:48:48 <xorAxAx> lanius: bugs?
2007-08-08T11:48:50 <ThomasWaldmann> (or at least about 1000)
2007-08-08T11:49:07 <lanius> theoretically you can always create an item larger than max
2007-08-08T11:49:18 <xorAxAx> ThomasWaldmann: why, do palestinian terrorists have such long names?
2007-08-08T11:49:26 <lanius> so if we enforce a max, it must be enforced throughout the wiki
2007-08-08T11:49:28 <xorAxAx> lanius: ?
2007-08-08T11:49:39 <xorAxAx> lanius: well, thats a detail
2007-08-08T11:49:51 <xorAxAx> lanius: you can try using a non-fixed-width file as well
2007-08-08T11:49:52 <lanius> ok
2007-08-08T11:50:02 <ThomasWaldmann> no, but quoted or utf-8 encoded hebrew (chinese, ...) chars are a bit longer than ascii
2007-08-08T11:50:09 <xorAxAx> and benchmark how large the performance loss of indirection is
2007-08-08T11:50:17 <xorAxAx> ThomasWaldmann: yes
2007-08-08T11:50:45 <lanius> there was no indirection in that explanation until now, just a file with item/revision/mtime tuples
2007-08-08T11:50:48 <ThomasWaldmann> nir reported hitting the maxpath boundary rather easily iirc
2007-08-08T11:51:22 <ThomasWaldmann> the indirection is that you look up the rest in the item's local metadata
2007-08-08T11:51:39 <lanius> on which level does the indirection happen
2007-08-08T11:52:22 <xorAxAx> lanius: the indirection is the fact that you will mostly more parts of the meta data of the revisions
2007-08-08T11:52:27 <xorAxAx> lanius: e.g. the authorname
2007-08-08T11:52:46 <xorAxAx> lanius: therefore, you will need to use the "pointers" returned by news() to query the backend again
2007-08-08T11:52:52 <xorAxAx> for RC
2007-08-08T11:53:09 <lanius> so this is not on the storage level anymore but on the editlog level
2007-08-08T11:53:48 <lanius> right?
2007-08-08T11:53:57 <xorAxAx> or item collection level etc.
2007-08-08T11:54:06 <lanius> ok, i already implementet that
2007-08-08T11:54:08 <ThomasWaldmann> btw, if we go for that 1024 bytes row size, we need some purging more than we needed it for the 1.6 global edit-log (which never was touched in that respect)
2007-08-08T11:55:10 <xorAxAx> ThomasWaldmann: why?
2007-08-08T11:55:21 <ThomasWaldmann> because of size?
2007-08-08T11:55:35 <ThomasWaldmann> i guess it is 10x bigger
2007-08-08T11:56:49 <ThomasWaldmann> hmm, 8MB currently for mm, so it would be 80MB. We could live with that.
2007-08-08T11:57:15 <ThomasWaldmann> but append mode on nfs will still be broken?
2007-08-08T11:57:35 <xorAxAx> it will show less problems :)
2007-08-08T11:57:45 <lanius> will it?
2007-08-08T11:57:49 <xorAxAx> because you would notice a corrupt file directly
2007-08-08T11:57:53 <johill> Timo Sirainen (sp?) just did nfs/append mode analysis iirc
2007-08-08T11:58:16 <xorAxAx> but this idea only makes sense if the bisection time is much more than the time spent on indirection/metadata fetching
2007-08-08T11:58:28 <xorAxAx> so it has to be benchmark
2007-08-08T11:58:29 <xorAxAx> e
2007-08-08T11:58:30 <xorAxAx> d
2007-08-08T11:59:10 <ThomasWaldmann> hmm, we should use a fixed line length text/plain file if we do that
2007-08-08T11:59:24 <ThomasWaldmann> or it will suck if you have to fix it when it gets broken
2007-08-08T11:59:36 <johill> it'll suck anyway because you'd have to get the padding absolutely correct by hand
2007-08-08T11:59:43 <lanius> xorAxAx: the time on metadata fetching should be low since this stuff will be cached then
2007-08-08T12:00:02 <ThomasWaldmann> that is less hard than editing a binary file
2007-08-08T12:00:30 * lanius is getting something to eat
2007-08-08T12:00:37 <johill> depends on the tools; if you use bvi and have 1024 block sizes it'd be quite apparent when something is wrong
2007-08-08T12:00:56 <xorAxAx> ThomasWaldmann: not sure :)
2007-08-08T12:01:01 <xorAxAx> editing a binary file has its advantages
2007-08-08T12:01:06 <ThomasWaldmann> johill: and you can fix it then with bvi?
2007-08-08T12:01:11 <xorAxAx> because you wont try with a non-hex-editor
2007-08-08T12:01:17 <johill> sure, why not?
2007-08-08T12:01:23 <johill> if the blocking is bad insert/remove a few bytes
2007-08-08T12:01:36 <johill> if I want to add/remove something I can see exactly whether I got the block length right
2007-08-08T12:02:08 <xorAxAx> what is bvi? :)
2007-08-08T12:02:32 <johill> binary vi :)
2007-08-08T12:02:35 <xorAxAx> ah
2007-08-08T12:02:56 <ThomasWaldmann> btw, we can have both
2007-08-08T12:03:15 <ThomasWaldmann> it is just a matter of crlf at pos 1022
2007-08-08T12:03:35 <xorAxAx> argh
2007-08-08T12:03:36 <johill> yeah but if you use spaces to pad people won't see them and will use a text editor
2007-08-08T12:03:44 <ThomasWaldmann> and using 0x20 instead of 0x00
2007-08-08T12:03:46 <johill> if you use NULs to pad the text editor will give up right away
2007-08-08T12:04:11 <johill> so then you have to educate users to use a binary editor instead of them noticing
2007-08-08T12:05:07 <xorAxAx> you can also pad with #
2007-08-08T12:05:08 <xorAxAx> :-)
2007-08-08T12:05:43 <johill> :)
2007-08-08T12:06:05 <xorAxAx> well, it would be sensible to store utf-16
2007-08-08T12:06:13 <xorAxAx> or utf-32
2007-08-08T12:06:22 <xorAxAx> if the field is fixed-width anyway
2007-08-08T12:06:54 <ThomasWaldmann> then you have to have 4k row size
2007-08-08T12:07:07 <xorAxAx> ?
2007-08-08T12:07:22 <ThomasWaldmann> because for ascii it will be 4bytes instead of 1
2007-08-08T12:07:28 <xorAxAx> well, so you want to make the limit on bytes and not on chars?
2007-08-08T12:07:40 <xorAxAx> 1k utf-8 will be less bytes than 1k utf-32 in the worst case
2007-08-08T12:07:46 <xorAxAx> s/bytes/chars/
2007-08-08T12:08:03 <ThomasWaldmann> but not in the usual case
2007-08-08T12:08:13 <johill> you have to make a byte limit though, no?
2007-08-08T12:08:14 <ThomasWaldmann> ascii users also should be able to use maxpath
2007-08-08T12:08:28 <xorAxAx> johill: if the encoding is fixed-size, no :)
2007-08-08T12:08:41 <johill> yeah, ok, then you have to use ucs-4
2007-08-08T12:08:59 <ThomasWaldmann> so if they could use 1000 chars for a name, you need 4k utf-32
2007-08-08T12:09:02 <xorAxAx> well, all those implementation details ...
2007-08-08T12:09:11 <xorAxAx> that could be made configurable
2007-08-08T12:10:26 <ThomasWaldmann> btw, that large block size was why I was giving up that idea.
2007-08-08T12:10:47 <ThomasWaldmann> but well, we have the GBytes, so I now think it could be done.
2007-08-08T12:10:50 <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2786:709ad9287c9b 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Fix a bug with using info stuff even when the user didn't want info handling, which caused an error.
2007-08-08T12:14:10 <ThomasWaldmann> btw, I am waiting for creole link syntax comments from the usual suspects :)
2007-08-08T12:14:46 <ThomasWaldmann> see http://moinmo.in/LinkMarkupCollection
2007-08-08T12:15:24 <ThomasWaldmann> brb
2007-08-08T12:16:23 <johill> I'm all for redesigning the markup ;) but there are other odd corner cases too
2007-08-08T12:30:32 <ThomasWaldmann> yeah, it needs an escape for |
2007-08-08T12:31:38 <DrFrasierCrane> la la la
2007-08-08T12:31:49 <ThomasWaldmann> btw, did you look at radomir's creole parser (see 1.7 repo)? it builds a domtree internally and then processes it, calling the formatter.
2007-08-08T12:32:03 <johill> gave it a quick look, but not too much
2007-08-08T12:39:14 <ThomasWaldmann> looks much cleaner than the moin wiki parser
2007-08-08T12:39:33 <ThomasWaldmann> (well, it would be hard work to have it look worse :D )
2007-08-08T12:40:30 <johill> :)
2007-08-08T12:45:38 <johill> I quite like the ["xx" yy] syntax though probably the yy should be allowed to be quoted too
2007-08-08T12:46:09 <johill> but you can't use closing brackets anyway since the RE-based parser will terminate at one
2007-08-08T12:49:15 <ThomasWaldmann> the nice thing i found when trying creole alternatively to what we (would) have in 1.6
2007-08-08T12:49:44 <ThomasWaldmann> is that it solves quoting with the [[ | ]] markup
2007-08-08T12:50:10 <ThomasWaldmann> so it is simpler than using [] plus "" in misc. combinations
2007-08-08T12:50:22 <johill> but | isn't allowed in a link
2007-08-08T12:51:17 <johill> and people are already familiar with [""]
2007-08-08T12:51:45 <ThomasWaldmann> well, I guess nobody loves the 1.5 state of moin link markup
2007-08-08T12:51:51 <johill> heh
2007-08-08T12:52:55 <ThomasWaldmann> and if one would have to choose between [[]] and [""] in a clean room, one would go for [[]]
2007-08-08T12:53:11 <ThomasWaldmann> esp. us kbd owners love it
2007-08-08T12:53:11 <johill> oh sure
2007-08-08T12:53:33 <johill> yeah especially since [""] uses the right little finger twice there
2007-08-08T12:53:46 <johill> on different keys and with and without shift
2007-08-08T12:54:49 <ThomasWaldmann> we also have some not supported markup: [CamelCase link text] for example
2007-08-08T12:55:03 <ThomasWaldmann> but people often expect that to work
2007-08-08T12:55:20 <johill> yeah, good point
2007-08-08T12:55:32 <ThomasWaldmann> of course you can use "" to make it work, but it is a bit unnatural
2007-08-08T12:55:45 <johill> but if you're going to revamp the markup then you might want to consider other things like the pre sections too
2007-08-08T12:56:21 <ThomasWaldmann> because of the nested brokenness?
2007-08-08T12:56:26 <johill> for example
2007-08-08T12:56:42 <johill> and if paragraphs work right then you can mandate starting {{{ on a new line
2007-08-08T12:56:45 <johill> i.e. if
2007-08-08T12:56:47 <johill> this is
2007-08-08T12:56:48 <ThomasWaldmann> and <<macro arg,arg,arg>>
2007-08-08T12:56:49 <johill> a single paragraph
2007-08-08T12:56:53 <johill> gives a single paragraph
2007-08-08T12:57:04 <johill> because {{asdf}} is replaced by `asdf` anyway
2007-08-08T12:57:51 <johill> yeah I guess macros can't use [[]] any more then
2007-08-08T12:58:05 <johill> I also dislike the heading strictness
2007-08-08T12:58:19 <johill> it seems useless to have to indicate the heading depth twice
2007-08-08T12:58:35 <ThomasWaldmann> style reasons :)
2007-08-08T12:58:54 <ThomasWaldmann> this is the reasons why creole allows both
2007-08-08T12:59:08 <ThomasWaldmann> i don't like that they allow unbalanced, though
2007-08-08T12:59:14 <johill> I think they just allow any number of ending equal signs
2007-08-08T12:59:21 <johill> actually, I think it makes sense
2007-08-08T12:59:35 <johill> if you want to use the same document as plain text then sometimes it can make sense to indicate first-level headings by
2007-08-08T12:59:40 <johill> = heading =====
2007-08-08T12:59:43 <johill> padding it to some common width
2007-08-08T13:00:11 <ThomasWaldmann> looks dirty for me
2007-08-08T13:01:30 <johill> :)
2007-08-08T13:01:44 <johill> you probably want a text/plain formatter anyway
2007-08-08T13:02:04 <johill> in any case, macro args for example require a smarter parser
2007-08-08T13:02:09 <johill> or you can never use >> in a macro arg
2007-08-08T13:02:22 <johill> or right now you can't use ")]]"
2007-08-08T13:02:42 <johill> anyway, I gotta go
2007-08-08T16:32:38 <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2787:a5b19012e2a7 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Fix outdated comment
2007-08-08T16:32:41 <CIA-28> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2788:14c8200c3b0f 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Add support for translated man files, validate man XML files too.
2007-08-08T19:02:09 <zenhase> re
2007-08-08T19:02:30 <zenhase> ThomasWaldmann: yeah i think so
2007-08-08T19:03:26 <ThomasWaldmann> zenhase: ok, how far is your stuff?
2007-08-08T19:05:01 <zenhase> tests are working, genshi themes like in the prototype are working including the user selection screen
2007-08-08T19:05:33 <zenhase> last thing i was working on was beautifying the html-code a bit and then add documentation
2007-08-08T19:05:52 <ThomasWaldmann> Help page and docs/CHANGES.genshitheme please
2007-08-08T19:07:14 <zenhase> what should CHANGES.genshitheme contain? same as the help page or something more technical in description?
2007-08-08T19:07:39 <ThomasWaldmann> see what CHANGES contains :)
2007-08-08T19:07:46 <zenhase> ok :)
2007-08-08T19:07:54 <ThomasWaldmann> use the same format, just for your stuff
2007-08-08T19:08:12 <ThomasWaldmann> (it will be moved to CHANGES when the merge happens)
2007-08-08T19:08:32 <ThomasWaldmann> s/moved to/copied into/
2007-08-08T19:09:02 <ThomasWaldmann> you can also refer to your help page from there
2007-08-08T19:09:18 <ThomasWaldmann> ok, gtg to LUG meeting, cu :)
2007-08-08T19:09:26 <zenhase> hf
2007-08-08T19:30:31 <lanius> ThomasWaldmann: the editlog/__init__.py code is really scary
2007-08-08T19:32:02 <lanius> logfile/__init__.py i mean
2007-08-08T19:33:31 <lanius> what is all this buffer stuff for in it?
2007-08-08T19:35:57 <lanius> xorAxAx: any idea?
2007-08-08T20:16:26 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2645:892055d122fb 1.7-jabber-knowak/jabberbot/ (main.py xmlrpcbot.py xmppbot.py): Handle process/thread termination gracefully.
2007-08-08T20:16:30 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2649:9a17fabb8008 1.7-jabber-knowak/MoinMoin/ (3 files in 3 dirs): Merge main.
2007-08-08T21:19:02 <ThomasWaldmann> lanius: buffering using 2 buffers
2007-08-08T21:19:17 <ThomasWaldmann> now you see why i want to get rid of it
2007-08-08T22:33:53 * grzywacz grumbles
2007-08-08T22:40:55 <grzywacz> xorAxAx?
2007-08-08T22:41:10 <grzywacz> Anyone familiar with XPath?
2007-08-08T23:01:58 <xorAxAx> neagulm: baebd17538a8 cant be correct (This message has been postponed.)
2007-08-08T23:02:17 <neagulm> hello
2007-08-08T23:09:06 <grzywacz> hi neagulm
2007-08-08T23:11:20 <lanius> ThomasWaldmann: what are the two buffers good for
2007-08-08T23:14:20 <neagulm> ThomasWaldmann, hello
2007-08-08T23:19:34 <CIA-14> moin: Marian Neagul marian@info.uvt.ro work * 2759:a5b259f8f87b 1.7-classify-mneagul/MoinMoin/ (classifier/recommendation_system.py support/art.py): Use numpy. 15xfaster
2007-08-08T23:32:27 <ThomasWaldmann> lanius: if one buffer reads up to pos x, the next will read up to pos x+bufsize if you continue reading
2007-08-08T23:40:55 <lanius> ThomasWaldmann: and why
2007-08-08T23:42:42 <neagulm> ThomasWaldmann, did you have time to check the classifier, the behavior?
2007-08-08T23:55:52 <grzywacz> haha! /me dances a happy dance
2007-08-08T23:57:28 <nwp> grzywacz: XPath? why?
2007-08-08T23:59:11 <grzywacz> nwp, jabber. I wanted to have a one-liner that would return an inner <x> element of a <message> stanza
2007-08-08T23:59:22 <nwp> ah
2007-08-08T23:59:24 <grzywacz> I got owned by evil namespaces, but it seems to work now. ;)
2007-08-08T23:59:39 <nwp> I can't remember it offhand, but I recommend the O'Reilly XSLT book
MoinMoin: MoinMoinChat/Logs/moin-dev/2007-08-08 (last edited 2007-10-29 19:08:21 by localhost)