2007-08-09T00:00:08 <grzywacz> Is it focused on xslt only?
2007-08-09T00:00:39 <nwp> has good explanations of stuff you need in order to do xslt, which includes XPath
2007-08-09T00:00:50 <grzywacz> XSLT: recipes?
2007-08-09T00:01:00 <grzywacz> (should be quoted)
2007-08-09T00:01:03 <nwp> recipies in what sense?
2007-08-09T00:01:10 <grzywacz> Title of the book. ;)
2007-08-09T00:01:15 <nwp> ah, no
2007-08-09T00:01:25 <nwp> let me see...
2007-08-09T00:01:45 <grzywacz> XSLT Cookbook?
2007-08-09T00:02:19 <nwp> just "XSLT" by Doug Tidwell
2007-08-09T00:02:52 <grzywacz> Hm. I'm afraid it has not been published here, but I may try getting it from amazon...
2007-08-09T00:02:57 <grzywacz> s/may/might/
2007-08-09T00:03:02 <nwp> subtitle "Mastering XML Transformations"... has a "jabiru" on the cover
2007-08-09T00:03:22 <grzywacz> http://www.amazon.com/XSLT-2nd-Doug-Tidwell/dp/0596527217/ref=sr_1_3/105-4057359-7876420?ie=UTF8&s=books&qid=1186610548&sr=8-3
2007-08-09T00:03:43 <grzywacz> Uh oh, 65$ with Cookbook included.
2007-08-09T00:03:53 <nwp> http://www.amazon.com/Xslt-Doug-Tidwell/dp/0596000537/ref=pd_bbs_sr_6/102-9995882-1010511?ie=UTF8&s=books&qid=1186610602&sr=8-6
2007-08-09T00:04:05 <grzywacz> nwp, I pasted a link to 2nd edition :)
2007-08-09T00:04:14 <nwp> yup, just found that too
2007-08-09T00:04:19 <nwp> I wonder what's changed
2007-08-09T00:04:26 <grzywacz> :)
2007-08-09T00:04:31 <grzywacz> Thanks for recommendation.
2007-08-09T00:04:43 <nwp> ah, now covers XSLT 2.0
2007-08-09T00:04:48 <nwp> damn specification creep
2007-08-09T00:04:52 <grzywacz> ;]
2007-08-09T00:05:13 <grzywacz> Aaah, but it has not yet been released.
2007-08-09T00:05:17 <grzywacz> %)
2007-08-09T00:05:24 <nwp> sods law
2007-08-09T00:05:30 <nwp> ask O'Reilly when I guess
2007-08-09T00:07:24 <nwp> 2nd edition is 800pp, up from 450pp
2007-08-09T00:07:34 <nwp> so may be a bit harder to follow :-o
2007-08-09T00:07:44 <grzywacz> :O
2007-08-09T00:07:50 <nwp> lots more on XPath2.0, XML Schema etc.
2007-08-09T00:07:58 <nwp> which apparently XSLT2.0 requires
2007-08-09T00:08:05 <grzywacz> I guess so. Hopefully it's not mixed with previous content...
2007-08-09T00:08:50 <ThomasWaldmann> lanius: why not? if you have 2 buffers, you dont need to discard the content immediately. also, some log line might begin in buf1 and extent to buf2
2007-08-09T00:14:03 <ThomasWaldmann> or, while reading backwards, the line end might be at beginning of buf2 and the rest gets loaded from disk into buf1, so you finally have the complete line at the buffer border
2007-08-09T00:26:27 <ThomasWaldmann> neagulm: the german stop list looks strange. should that all be complete, valid words?
2007-08-09T00:28:19 <neagulm> ThomasWaldmann, they are not ok? They seem ok to me.
2007-08-09T00:29:10 <ThomasWaldmann> some are not
2007-08-09T00:29:37 <ThomasWaldmann> anderr this is no german word
2007-08-09T00:31:42 <ThomasWaldmann> nor some of the unse* stuff
2007-08-09T00:32:33 <neagulm> I will ask a colleague that studies German language at the university to take a look and remove the mistakes
2007-08-09T00:49:17 <ThomasWaldmann> well X)
2007-08-09T00:52:12 <ThomasWaldmann> i fixed some stuff
2007-08-09T00:53:10 <xorAxAx> lanius: the stuff is essential to avoid O(n^2) when reading backwards
2007-08-09T00:53:16 <xorAxAx> fabi wrote it
2007-08-09T00:53:33 <xorAxAx> neagulm: so, please explain the changeset
2007-08-09T00:56:05 <CIA-14> moin: Marian Neagul marian@info.uvt.ro work * 2760:841e555cc58c 1.7-classify-mneagul/MoinMoin/support/art.py: Do the numpy conversion in ART
2007-08-09T00:56:06 <CIA-14> moin: Marian Neagul marian@info.uvt.ro work * 2761:a5adc5b601f9 1.7-classify-mneagul/MoinMoin/ (classifier/recommendation_system.py macro/WikiClusters.py): Store page members as unicode.
2007-08-09T00:57:17 <neagulm> xorAxAx, I think that this was the issue, see a5adc5b601f9 . Am i wrong?
2007-08-09T00:59:26 <xorAxAx> sigh, i would not like to see yet another "i didnt listen to his exact messages" changeset *looking*
2007-08-09T01:01:15 <xorAxAx> neagulm: it STILL cant be correct
2007-08-09T01:01:23 <xorAxAx> because you only changed the caller side
2007-08-09T01:01:30 <xorAxAx> i dont see any hunk that modifies the calleee
2007-08-09T01:01:43 <xorAxAx> how should that work?
2007-08-09T01:02:16 <xorAxAx> or did your art layer return unicode strings all the tie
2007-08-09T01:02:17 <xorAxAx> time?
2007-08-09T01:02:20 <ThomasWaldmann> neagulm: + @param nume_features: Number of features typo
2007-08-09T01:03:01 <neagulm> ThomasWaldmann, fixed
2007-08-09T01:04:10 <neagulm> xorAxAx, the art layer returns only integers.
2007-08-09T01:04:44 <ThomasWaldmann> the golden rule for unicode vs. utf-8 is decode early (decode bytes to unicode objs when entering moin), encode late (when leaving moin and bytes are needed)
2007-08-09T01:04:58 <neagulm> xorAxAx, can you please help me find where I'm wrong.
2007-08-09T01:05:58 <xorAxAx> neagulm: the idea is that it doesnt make any sense to remove a decode call in one changeset only
2007-08-09T01:06:18 <xorAxAx> neagulm: do you have any decode calls left?
2007-08-09T01:06:22 <neagulm> ThomasWaldmann, the problem is that I use shelve and it does not support unicode key values so I have to encode the keys as utf-8
2007-08-09T01:06:37 <xorAxAx> why do you use shelve?
2007-08-09T01:07:09 <ThomasWaldmann> + def step(self, input, label = None, verbose = 0): pep8 error
2007-08-09T01:09:01 <neagulm> xorAxAx, there are no more decode calls left.
2007-08-09T01:10:51 <neagulm> xorAxAx, good question. I needed something simple... I think that I will code everything using bsddb. This will happen soon because I want to switch the clustering system to the user level not the wiki level
2007-08-09T01:11:18 <xorAxAx> neagulm: but if you load utf-8 strings from shelve, you will need decode calls
2007-08-09T01:11:40 <xorAxAx> anyway, good night
2007-08-09T01:11:47 <neagulm> xorAxAx, good night
2007-08-09T01:12:31 <ThomasWaldmann> gn xorAxAx
2007-08-09T01:12:47 <grzywacz> night xorAxAx..
2007-08-09T01:31:47 <nwp> ThomasWaldmann: OK, got it working now
2007-08-09T01:32:02 <nwp> where do you want patch/bundle/whatever?
2007-08-09T01:47:25 <grzywacz> zomg, pyxmpp bugs...
2007-08-09T01:51:14 <neagulm> good night
2007-08-09T02:55:42 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2650:9f6e830c82e0 1.7-jabber-knowak/jabberbot/xmppbot.py: Add more fields to search form, fix bug left from changes in service discovery.
2007-08-09T02:55:42 <grzywacz> night
2007-08-09T02:55:43 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2651:9c71c7c7f5f6 1.7-jabber-knowak/jabberbot/xmppbot.py: Add basic form handling.
2007-08-09T02:55:44 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2652:c1f0d6ec3b55 1.7-jabber-knowak/jabberbot/xmppbot.py: Add a hidden action field to the search form.
2007-08-09T02:55:46 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2653:4d4a1a5c0c42 1.7-jabber-knowak/jabberbot/ (commands.py xmppbot.py): Data forms search now works. Display of results... almost (no idea why not atm).
2007-08-09T02:55:47 <CIA-14> moin: Karol 'grzywacz' Nowak <grzywacz@sul.uni.lodz.pl> * 2654:0b9987a83cc9 1.7-jabber-knowak/jabberbot/ (commands.py xmppbot.py): Merge devel.
2007-08-09T04:58:38 <grzywacz> moin, bbl
2007-08-09T08:28:07 <ThomasWaldmann> nwp: file a bug report and attach the *.diff
2007-08-09T09:46:13 <lanius> ThomasWaldmann: can i assume that the backend is the same used by all threads/processes?
2007-08-09T10:03:32 <ThomasWaldmann> if you document it as requirement, you can assume it
2007-08-09T10:07:07 <xorAxAx> lanius: i wonder how that is important :)
2007-08-09T10:10:24 <xorAxAx> lanius: if another process is using a different storage backend, it wont see different data - no? :)
2007-08-09T10:10:49 <xorAxAx> if you mean settings like e.g. row width, it would make sense to encode them somewhere and check them
2007-08-09T10:20:11 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2615:153b68947eb2 1.7/MoinMoin/parser/text_creole.py: creole parser: do url escaping in a way that complete url gets escaped and // does not trigger italic
2007-08-09T10:21:25 <lanius> xorAxAx: ThomasWaldmann: well if i can assme that i can hold the news() stuff completly in memory and don't need to play with files
2007-08-09T10:23:10 <ThomasWaldmann> you have always to assume that someone is changing data on disk behind your back
2007-08-09T10:23:43 <ThomasWaldmann> always consider the multi-process case (e.g. cgi)
2007-08-09T10:24:17 <xorAxAx> yes, you have to check if the file was changed before answering news() results
2007-08-09T10:24:24 <xorAxAx> ... from a cache
2007-08-09T10:24:44 <lanius> that's a good idea
2007-08-09T10:26:37 <lanius> i'm currently on the road of using sqllite instead of some file stuff, because it is easier to usse
2007-08-09T10:30:02 <xorAxAx> yes, it will make more fun :)
2007-08-09T10:30:36 <lanius> but if doing the query on each access it does not seem to be faster
2007-08-09T10:33:20 <xorAxAx> ?
2007-08-09T10:33:30 <xorAxAx> you only have to do a stat() which is cached
2007-08-09T10:33:42 <xorAxAx> much cheaper than statting multiple files or reading any files
2007-08-09T10:33:57 <lanius> yeah, right
2007-08-09T10:34:22 <lanius> but doing "select mtime, revno, item from news where mtime>=? order by mtime DESC" on each news() without this stat is not faster then the current way
2007-08-09T10:34:51 <xorAxAx> well, it could still do a select max(mtime) from news
2007-08-09T10:35:06 <xorAxAx> which is usually pretty fast if there is an index
2007-08-09T10:35:15 <xorAxAx> (and use the caching internally)
2007-08-09T10:38:10 <lanius> that doesn't help, i think opening the db is what causes the time
2007-08-09T10:38:33 <xorAxAx> opening the db in sqlite is lazy and will be deferred to the next request, yes
2007-08-09T10:38:40 <xorAxAx> but you would open the db exactly once
2007-08-09T10:38:57 <xorAxAx> when the backend is initialized in the config
2007-08-09T10:38:59 <lanius> it does not seem to be possible to share one connection between multiple threads with sqllite
2007-08-09T10:39:08 <xorAxAx> so?
2007-08-09T10:39:14 <xorAxAx> the backend will need some connection pooling
2007-08-09T10:39:44 <lanius> which means it looks what the current thread is and returns the correct connection then?
2007-08-09T10:40:23 <xorAxAx> for example. or it just uses one connection that isnt in use by another thread anymore ...
2007-08-09T10:40:27 <xorAxAx> there is code for such stuff
2007-08-09T10:40:38 <lanius> it's not that the connection is in used
2007-08-09T10:40:47 <lanius> but if the connection was created by thread x it cannot used by thread y
2007-08-09T10:41:55 <lanius> but i could start an extra thread for the connection, couldn't i?
2007-08-09T10:42:08 <xorAxAx> you could but you dont want to
2007-08-09T10:42:13 <lanius> no?
2007-08-09T10:42:16 <xorAxAx> well, then pooling bound to threads is best
2007-08-09T10:42:42 <xorAxAx> you dont want to because you would introduce dead locks because of the read committed isolation level related locking by sqlite
2007-08-09T10:43:59 <neagulm> lanius, I had a simmilar problem, when trying to reuse an existing connection i got "OperationalError: database is locked" while experimenting with the recommendation backend
2007-08-09T10:44:25 <xorAxAx> neagulm: that means something else
2007-08-09T10:44:35 <xorAxAx> neagulm: it means that another transaction didnt yet end
2007-08-09T10:44:53 <xorAxAx> neagulm: and that you didnt setup a timeout in the connection where you got the exception
2007-08-09T10:46:51 <neagulm> xorAxAx, thank you, just had an "aha erlebnis" :)
2007-08-09T10:46:58 <CIA-14> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2789:dac095216474 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Ignore this commit, it is a test for my Fedora Infrastructure configuration
2007-08-09T10:47:05 <CIA-14> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2795:e4ce681026d7 1.7-maninfo-vpv/MoinMoin/ (3 files in 3 dirs): merge from main
2007-08-09T10:47:26 <xorAxAx> neagulm: :-)
2007-08-09T10:51:14 <lanius> ok, that connection sharing made it a bit faster, but not fast enough
2007-08-09T10:52:32 <lanius> because the max is not yet working
2007-08-09T10:53:37 <xorAxAx> "is not yet working?
2007-08-09T10:54:10 <lanius> just returns None currently
2007-08-09T10:54:27 <xorAxAx> "the max"?
2007-08-09T10:54:56 <lanius> select max(mtime) from news
2007-08-09T11:03:24 <ThomasWaldmann> btw, sqlite has to be installed separately for <2.5
2007-08-09T11:03:49 <ThomasWaldmann> that being used in moin's default storage backend would introduce new dependencies
2007-08-09T11:04:23 <ThomasWaldmann> so how about bsddb?
2007-08-09T11:05:14 <lanius> i don't see how bsddb could help
2007-08-09T11:05:19 <ThomasWaldmann> (if one wants to have some *sql backend, that should be realized in another backend, not the fs backend)
2007-08-09T11:06:31 <ThomasWaldmann> well, it is not sql, but also a db. and at least there in py 2.3 on lx and win.
2007-08-09T11:06:56 <lanius> it's only a dictionary
2007-08-09T11:07:08 <lanius> at least the interface that python provide
2007-08-09T11:07:09 <lanius> s
2007-08-09T11:07:22 <ThomasWaldmann> there are multiple interfaces to it
2007-08-09T11:07:45 <lanius> all three are dictionaries
2007-08-09T11:09:38 <ThomasWaldmann> http://www.python.org/doc/lib/bsddb-objects.html this has also sequential access
2007-08-09T11:11:18 <lanius> but not ordered
2007-08-09T11:13:26 <ThomasWaldmann> ordered by record number
2007-08-09T11:15:28 <ThomasWaldmann> The DB_SET_RANGE flag is identical to the DB_SET flag, except that the key is returned as well as the data item; and, in the case of the Btree access method, the returned key/data pair is the smallest key greater than or equal to the specified key (as determined by the comparison function), permitting partial key matches and range searches.
2007-08-09T11:15:41 <ThomasWaldmann> maybe this is useful?
2007-08-09T11:16:12 <ThomasWaldmann> http://pybsddb.sourceforge.net/bsddb3.html
2007-08-09T11:16:41 <lanius> yes, but this is a different library
2007-08-09T11:17:10 <xorAxAx> well, if bsddb was used, you would store the order in the values of the dict
2007-08-09T11:17:23 <xorAxAx> but thats a pain and bsddb isnt very nice either
2007-08-09T11:17:26 <ThomasWaldmann> This module is included in the standard python >= 2.3 distribution as the bsddb module.
2007-08-09T11:18:22 <ThomasWaldmann> how about using mtime_usecs as key and itemname, rev as value
2007-08-09T11:18:44 <lanius> mtime_usecs can be the same for multiple items
2007-08-09T11:19:15 <ThomasWaldmann> in theory that shouldnt be the case
2007-08-09T11:19:24 <lanius> in theory it scan
2007-08-09T11:19:29 <lanius> can
2007-08-09T11:19:44 <lanius> in praxis it should be very rare
2007-08-09T11:19:58 <ThomasWaldmann> so you think moin can create 2 items in same usec?
2007-08-09T11:20:09 <lanius> i got the case with my unit tets
2007-08-09T11:20:13 <ThomasWaldmann> i would be extremely happy if it was that fast
2007-08-09T11:20:55 <ThomasWaldmann> and you're sure you didnt have a mtime_sec or mtime_2secs rather?
2007-08-09T11:21:24 <lanius> yes
2007-08-09T11:21:44 <lanius> i had a time.time() which is usecs as float
2007-08-09T11:22:13 <ThomasWaldmann> 1186651316.646276
2007-08-09T11:22:13 <ThomasWaldmann> 1186651316.646292
2007-08-09T11:22:13 <ThomasWaldmann> 1186651316.646306
2007-08-09T11:22:13 <ThomasWaldmann> 1186651316.6463261
2007-08-09T11:22:13 <ThomasWaldmann> 1186651316.6463411
2007-08-09T11:22:16 <ThomasWaldmann> 1186651316.6463549
2007-08-09T11:22:18 <ThomasWaldmann> 1186651316.6463699
2007-08-09T11:22:31 <ThomasWaldmann> this is time.time() in a loop doing nothing else
2007-08-09T11:22:42 <lanius> your computer is too slow ;)
2007-08-09T11:22:57 <ThomasWaldmann> it is a quite fast server
2007-08-09T11:23:35 <lanius> ah, no, the value was from os.path.getmtime
2007-08-09T11:23:53 <ThomasWaldmann> that's not what i am talking about :)
2007-08-09T11:24:28 <ThomasWaldmann> and i dont want to see any such call except for "has someone touched my cache" stuff
2007-08-09T11:25:02 <lanius> i need it for building the history of news
2007-08-09T11:25:40 <ThomasWaldmann> i already told you that this is too fragile
2007-08-09T11:26:02 <lanius> too what?
2007-08-09T11:26:15 <ThomasWaldmann> moin 1.0 used fs mtimes and it was a PITA
2007-08-09T11:26:37 <ThomasWaldmann> just have someone use cp and it's fscked
2007-08-09T11:26:57 <lanius> it's only for the history
2007-08-09T11:27:16 <xorAxAx> you mean for cache invalidation
2007-08-09T11:27:19 <xorAxAx> (hopefully)
2007-08-09T11:28:07 <lanius> yes
2007-08-09T11:28:16 <ThomasWaldmann> lanius: you use win32?
2007-08-09T11:28:30 <lanius> yes
2007-08-09T11:28:53 <ThomasWaldmann> then please try for i in range(1000): print repr(time.time())
2007-08-09T11:29:11 <ThomasWaldmann> to see if it is some platform problem on win32
2007-08-09T11:29:36 <lanius> i get the same timestamp multiple times
2007-08-09T11:29:53 <ThomasWaldmann> oh well 8(
2007-08-09T11:30:10 <ThomasWaldmann> what resolution does it show?
2007-08-09T11:30:19 <lanius> 1/100 sec
2007-08-09T11:31:00 <ThomasWaldmann> for practice, this could be enough
2007-08-09T11:31:21 <lanius> i wouldn't rely on it though
2007-08-09T11:31:25 <ThomasWaldmann> we are far from creating 100 items/s
2007-08-09T11:32:06 <lanius> unit tests...
2007-08-09T11:34:33 <xorAxAx> yes, thats not nice
2007-08-09T11:37:30 <ThomasWaldmann> is there some way to get multiple values stored under same key with bsddb?
2007-08-09T11:39:32 <xorAxAx> using pickle
2007-08-09T11:39:48 <ThomasWaldmann> if bsddb proves rather useless, there is still this 1k fixed record size file done manually.
2007-08-09T11:41:30 <ThomasWaldmann> (and have some fresh readable code deal with it, not logfile)
2007-08-09T11:45:07 <xorAxAx> lanius: also note that the logfile buffering code is necessary if you want to read varsized row log files reversedly
2007-08-09T11:48:04 <lanius> i don't think i'm able to do this file stuff though
2007-08-09T11:49:46 <xorAxAx> yeah, you dont need to
2007-08-09T11:49:53 <xorAxAx> as long as its not O(n^2) :)
2007-08-09T11:55:27 <ThomasWaldmann> ?
2007-08-09T11:56:19 <xorAxAx> ThomasWaldmann: simply writing a text file and reading it reversedly is O(n^2)
2007-08-09T11:56:26 <xorAxAx> thats why ffesti added the buffering code
2007-08-09T11:56:44 <ThomasWaldmann> yeah, and we want to get rid of that
2007-08-09T11:57:17 <ThomasWaldmann> but we don't want to have a sql part within the fs backend
2007-08-09T11:57:40 <ThomasWaldmann> we dont want to have new dependencies (e.g. on py 2.5 or having to install sqlite)
2007-08-09T11:57:56 <ThomasWaldmann> so what's left?
2007-08-09T11:59:30 <CIA-14> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2796:94756e5b30cb 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: man_import_url is not needed anymore, since xmlrpc is not used. also remvoe the test from previous commit
2007-08-09T12:00:13 <xorAxAx> ThomasWaldmann: fixed-width rows :)
2007-08-09T12:00:56 <xorAxAx> you could store page names even in another file
2007-08-09T12:01:12 <xorAxAx> or in some bsddb
2007-08-09T12:01:57 * lanius is eating
2007-08-09T12:02:34 <ThomasWaldmann> xorAxAx: to just save some bytes?
2007-08-09T12:02:58 <xorAxAx> ThomasWaldmann: yes
2007-08-09T12:04:30 <ThomasWaldmann> i guess i'ld rather waste them instead of making the code more complex and deal with bugs/problems in bsddb
2007-08-09T12:07:10 <ThomasWaldmann> isnt what we try to do with fixed blocksize also doable with bsddb in recno mode?
2007-08-09T12:09:00 <xorAxAx> no idea
2007-08-09T12:09:06 <xorAxAx> indeed, bsddb should be a last resort
2007-08-09T12:11:35 <ThomasWaldmann> any special reason for that? if there is usable bsddb code, we would not have to invent own.
2007-08-09T12:14:39 <xorAxAx> well, bsddb has had concurrency issues (locking issues), data safety issues (data loss) and performance issues in the past
2007-08-09T12:15:22 <xorAxAx> esp. the former ones lead to cpython stdlib test suite test failures that are so hard to track down that nobody managed it in the past few years
2007-08-09T12:17:23 <ThomasWaldmann> "has had" means they just vanished or what?
2007-08-09T12:18:24 <xorAxAx> no, that i noticed them
2007-08-09T12:18:39 <xorAxAx> i think they are still relevant
2007-08-09T12:19:07 <ThomasWaldmann> hmpf
2007-08-09T12:20:00 * ThomasWaldmann feels a bit like back in the days of C coding
2007-08-09T12:22:14 <xorAxAx> well, mercurial is written completly in python and does binary file handling as well
2007-08-09T12:22:23 <xorAxAx> (the C parts are only dealing with binary diffs etc.)
2007-08-09T12:23:00 <xorAxAx> we could also use xml ...
2007-08-09T12:39:30 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2616:95072cb86462 1.7/MoinMoin/parser/text_creole.py: creole parser: removed history from docstring, refactored it to notes and todo
2007-08-09T12:45:39 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2617:784dda32048a 1.7/wiki/htdocs/ (3 files in 3 dirs): css: use same defs for th as for td
2007-08-09T12:51:30 <lanius> xorAxAx: yeah xml, the performance killer
2007-08-09T12:52:01 <ThomasWaldmann> hehe
2007-08-09T12:52:16 <ThomasWaldmann> lanius: you read my mind :D
2007-08-09T12:58:44 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2618:82cfcd5c4777 1.7/MoinMoin/parser/text_creole.py: creole parser: remove TODO (done by CSS fix in changeset before), cosmetic fixes
2007-08-09T13:13:24 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2619:ab96fb95248d 1.7/MoinMoin/parser/text_creole.py: creole parser: fix wrong italic caused by unrecognized urls
2007-08-09T13:40:13 <lanius> ThomasWaldmann: where should i create the Changes file in the storage dir or in the docs?
2007-08-09T13:41:02 <ThomasWaldmann> docs/CHANGES.storage
2007-08-09T13:41:18 <ThomasWaldmann> right besides the main one
2007-08-09T13:41:31 <lanius> ok
2007-08-09T13:47:33 <lanius> ThomasWaldmann: can you take a deeper look at the code in the next days and tell me what needs to be changed to be mergeable?
2007-08-09T13:48:17 <ThomasWaldmann> yes
2007-08-09T13:48:57 <ThomasWaldmann> you are working on what exactly right now?
2007-08-09T13:56:06 <lanius> the news and editlog stuff
2007-08-09T13:56:22 <lanius> which i think will be the last thing i'll get implemented other then fixes here and there
2007-08-09T14:05:40 <ThomasWaldmann> which approach?
2007-08-09T14:05:49 <lanius> approach?
2007-08-09T14:06:26 <ThomasWaldmann> how do you make it reasonably fast?
2007-08-09T14:07:18 <CIA-14> moin: Ville-Pekka Vainio <vpivaini AT cs DOT helsinki DOT fi> * 2797:a01594bd437e 1.7-maninfo-vpv/MoinMoin/script/import/manimport.py: Fix translated man pages handling problem when importing local files
2007-08-09T14:07:19 <lanius> i first try the sqlite version to get the infrastructure and then try bsddb or plain flies
2007-08-09T14:07:36 <lanius> because adapting that will be easier then
2007-08-09T14:07:46 <ThomasWaldmann> why do you want to put time into sqlite if that is no option anyway?
2007-08-09T14:08:45 <ThomasWaldmann> and if xoraxax is right, we dont need to try the bsddb stuff
2007-08-09T14:09:10 <lanius> because it shows me where to implement the required hooks and we have it as fall back if the other stuff doesn't work
2007-08-09T14:09:53 <ThomasWaldmann> a (on some systems) nonworking fallback is of limited use :)
2007-08-09T14:10:24 <ThomasWaldmann> but if you think the other reason is worth it, your choice (you will have to remove sqlite at the end)
2007-08-09T14:10:49 <lanius> i don't really see a problem with sqlite, you also proposed to use it at the beginning
2007-08-09T14:11:01 <lanius> it's a dependency, yes, but so whatß
2007-08-09T14:11:27 <ThomasWaldmann> it makes an additional dependency for something we can solve in other ways
2007-08-09T14:11:40 <lanius> we don't yet have a solution in other ways
2007-08-09T14:11:48 <lanius> and if we have to prove that it is faster
2007-08-09T14:11:59 <ThomasWaldmann> yeah, but you could start to make some :)
2007-08-09T14:12:01 <DrFrasierCrane> la la la
2007-08-09T14:12:15 <lanius> ThomasWaldmann: the other solutions are really hard to implement
2007-08-09T14:12:19 <lanius> ThomasWaldmann: so much low level stuff
2007-08-09T14:12:37 <ThomasWaldmann> so much?
2007-08-09T14:12:45 <lanius> yes
2007-08-09T14:12:58 <lanius> all this file, seek, backwards, forwards, buffer thing
2007-08-09T14:13:08 <lanius> i don't understand how logfile works at all
2007-08-09T14:13:48 <ThomasWaldmann> you dont need to reimplement something as complicated as the logfile stuff. just what's needed for fixed record size reading for your need.
2007-08-09T14:14:10 <lanius> and writing
2007-08-09T14:14:14 <ThomasWaldmann> i did some fixes to the logfile stuff and it was a pain.
2007-08-09T14:14:56 <ThomasWaldmann> let's see, maybe i have some time for experiments these evenings
2007-08-09T14:16:02 <lanius> i think i can commit the sqlite stuff this evening
2007-08-09T14:21:58 <CIA-14> moin: Thomas Waldmann <tw AT waldmann-edv DOT de> * 2620:286a011251ff 1.7/MoinMoin/parser/text_creole.py: creole parser: doing section parsers the moin 1.6+ way
2007-08-09T15:10:42 * ThomasWaldmann writes fixedsizerecordslog class
2007-08-09T15:12:38 <vpv> btw, fyi and other fancy acronyms, we're working on a test instance of my stuff in Fedora Infrastructure
2007-08-09T15:22:47 <ThomasWaldmann> i hope you do tests on your own machine, too
2007-08-09T15:23:48 <vpv> I've done them all the time locally :) it's just nice to hopefully show something to others as well.
2007-08-09T15:25:00 <vpv> moinmo.in has 500...
2007-08-09T15:26:21 <xorAxAx> ThomasWaldmann:
2007-08-09T15:33:45 <ThomasWaldmann> retry
2007-08-09T16:03:31 <xorAxAx> lanius: why are there still elog.add calls in your code?
2007-08-09T16:05:30 <xorAxAx> lanius: + news = self.backend.news() -- why doesnt it take a parameter?
2007-08-09T16:05:40 <xorAxAx> lanius: how does it know which news to deliver?
2007-08-09T16:05:50 <xorAxAx> looks like a layering violation to me
2007-08-09T16:06:32 <xorAxAx> ah, defaults to 0 ... where would that be useful?
2007-08-09T16:07:07 <ThomasWaldmann> you once told you dont want to purge RC :)
2007-08-09T16:07:24 <xorAxAx> ThomasWaldmann: hmm?
2007-08-09T16:07:36 <lanius> xorAxAx: for the global edit-log
2007-08-09T16:07:49 <lanius> xorAxAx: there is only one call for attachements left
2007-08-09T16:07:55 <lanius> xorAxAx: the other calls are eventlog
2007-08-09T16:07:58 <xorAxAx> lanius: ok
2007-08-09T16:08:00 <ThomasWaldmann> i suggested to purge RC except the last few items and you told you want xxxxxxxxx
2007-08-09T16:08:10 <ThomasWaldmann> :)
2007-08-09T16:08:33 <xorAxAx> ThomasWaldmann: xxxx?
2007-08-09T16:08:56 <xorAxAx> well, i said that purging is not applicable in all environments
2007-08-09T16:32:53 <vpv> does anyone have an idea what component it is that makes the db_compiled.dat file in DocBook XSL handling?
2007-08-09T16:33:07 <vpv> that's causing problems in the Fedora setup
2007-08-09T16:34:59 <xorAxAx> vpv: thats the xslt parser
2007-08-09T16:36:41 <ThomasWaldmann> xorAxAx: many
2007-08-09T16:37:41 <ThomasWaldmann> (and as for every item in the future, purging will be configurable somehow)
2007-08-09T16:38:07 <ThomasWaldmann> ok, fixed length logging support class is ready
2007-08-09T16:39:52 <vpv> xorAxAx: mmcgrath fixed it ny doing "delete cache"
2007-08-09T16:41:18 <vpv> so this is a start, http://publictest1.fedora.redhat.com/vpv/man/F-7/1/apropos
2007-08-09T16:45:49 <xorAxAx> cool
2007-08-09T16:47:26 <xorAxAx> hehe, pretty slow, as usual with 4suite :)
2007-08-09T16:49:00 <vpv> it is, that should get better if/when I use the docbook branch stuff
2007-08-09T16:49:32 <xorAxAx> possible, though its only using 4suite as well
2007-08-09T17:02:33 <vpv> I assume a Macro would be the right way of doing "index" pages in this situation? So that if someone would go to man/F-7/1/, it would automatically list all pages under that.
2007-08-09T17:02:57 <xorAxAx> no, virtualpages or a storage backend would be the right solution :)
2007-08-09T17:04:02 <vpv> oh, is virtualpages still a patch?
2007-08-09T17:04:29 <xorAxAx> yes, but storage refactoring is in 1.7 :)
2007-08-09T17:04:35 <xorAxAx> (not main, though)
2007-08-09T17:05:05 <xorAxAx> but you could also emit a macro call or a list
2007-08-09T17:05:45 <vpv> ok. that's just an idea I had, it's not #1 on my todo list right now :)
2007-08-09T17:31:54 <ThomasWaldmann> if process A does a single write to file X, and process B calls seek(to the end) in parallel, may it happen that B gets some "intermediate" result?
2007-08-09T17:33:30 <ThomasWaldmann> e.g. if A appends another 1024 bytes to a file that already has 1024 bytes, can B see anything else than 1024 or 2048 after seeking to the end and finding out its position?
2007-08-09T17:36:52 <xorAxAx> ThomasWaldmann: hmm, thats a good question for #mercurial
2007-08-09T18:55:00 <ThomasWaldmann> lanius: how's it going with sqlite? :)
2007-08-09T18:56:18 <ThomasWaldmann> lanius: http://docs.moinmo.in/files/records.py
2007-08-09T19:09:22 <xorAxAx> reminds me at my first steps in qbasic :)
2007-08-09T19:10:07 <ThomasWaldmann> did that also have generators? :-P
2007-08-09T19:10:48 <xorAxAx> no, but fixed width data files :)
2007-08-09T19:11:11 <ThomasWaldmann> well, that was a requirement for this :)
2007-08-09T19:11:28 <ThomasWaldmann> thanks network failure system
2007-08-09T19:11:50 <xorAxAx> no, thanks speed
2007-08-09T19:12:00 <xorAxAx> we dont need any buffering code if we choose fixed width
2007-08-09T19:12:13 <xorAxAx> (s/buffering/on-the-fly indexing/ rather)
2007-08-09T19:12:28 <ThomasWaldmann> yes, and the offset won't get fscked
2007-08-09T19:12:37 <xorAxAx> yes
2007-08-09T19:12:45 <ThomasWaldmann> worst thing that could happen is that an entry is overwritten
2007-08-09T19:13:15 <ThomasWaldmann> (for broken append mode)
2007-08-09T19:25:38 <ThomasWaldmann> 100.000 entries of 1K size -> 4s write, 3s read (no matter whether forward or reverse)
2007-08-09T19:39:57 <ThomasWaldmann> different buffer sizes in open() call make no difference here
2007-08-09T19:40:13 * ThomasWaldmann guesses it's all in the fs/buffer cache anyway
2007-08-09T19:40:20 <xorAxAx> yes
2007-08-09T19:45:57 <ThomasWaldmann> SEEK_SET etc. is only defined in posixfile?
2007-08-09T20:28:28 <CIA-14> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2807:9a5d41e338cb 1.7-storage-hwendel/MoinMoin/ (13 files in 9 dirs): more edit-lock work
2007-08-09T20:28:32 <CIA-14> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2812:3b8d9f34b981 1.7-storage-hwendel/MoinMoin/ (3 files in 3 dirs): merge main
2007-08-09T20:28:33 <CIA-14> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2813:8278da9794cf 1.7-storage-hwendel/MoinMoin/ (6 files in 4 dirs): use sqlite3 for news calculation, performance is good
2007-08-09T20:55:50 * ThomasWaldmann looks
2007-08-09T21:00:42 <ThomasWaldmann> lanius: - return long(ts*1000000L) # has to be long for py 2.2.x
2007-08-09T21:00:42 <ThomasWaldmann> + return long(ts*1000000L)
2007-08-09T21:01:07 <ThomasWaldmann> if you touched it, why is it still long?
2007-08-09T21:01:47 <ThomasWaldmann> also, i am not sure if removing that _usecs everywhere is a good thing
2007-08-09T21:02:15 <lanius> it didn't work the other way
2007-08-09T21:02:21 <lanius> why not?
2007-08-09T21:02:25 <ThomasWaldmann> usually you thing of secs since 1970 when reading something like "mtime"
2007-08-09T21:02:37 <lanius> it is secs, but as long
2007-08-09T21:02:45 <lanius> you can compare it with secs as int
2007-08-09T21:02:52 <ThomasWaldmann> not usecs?
2007-08-09T21:02:54 <lanius> no
2007-08-09T21:12:58 <ThomasWaldmann> _get_rev_path was a good idea :)
2007-08-09T21:16:57 <ThomasWaldmann> > ImportError: No module named sqlite3
2007-08-09T21:17:17 <ThomasWaldmann> so you need now sqlite3 to run the test
2007-08-09T21:17:19 <ThomasWaldmann> s
2007-08-09T21:18:09 <ThomasWaldmann> please look at the logging stuff I did, I did the low level stuff for you.
2007-08-09T21:22:45 <lanius> yes
2007-08-09T21:23:12 <ThomasWaldmann> lanius: http://docs.moinmo.in/files/records.py
2007-08-09T21:23:19 <lanius> yeah, saw that :-)
2007-08-09T21:24:00 <lanius> what's missing though is something to remove a line
2007-08-09T21:24:32 <ThomasWaldmann> we never had that yet :)
2007-08-09T21:24:37 <lanius> now we need it
2007-08-09T21:24:44 <ThomasWaldmann> why?
2007-08-09T21:24:52 <lanius> because you can rewrite one revision
2007-08-09T21:24:55 <lanius> overwrite
2007-08-09T21:25:15 <ThomasWaldmann> and what's the problem?
2007-08-09T21:25:25 <lanius> you have two entries in it then
2007-08-09T21:25:34 <lanius> for the same (item, rev) pair
2007-08-09T21:25:38 <lanius> which should be unique
2007-08-09T21:25:49 <lanius> it could be removed afterwards though
2007-08-09T21:25:57 <ThomasWaldmann> well, you just need to know what new since t==x
2007-08-09T21:26:12 <lanius> that's something that has to be done on meta.py level as well, remove duplicates
2007-08-09T21:26:18 <lanius> hadn't a good idea for it yet
2007-08-09T21:26:21 <ThomasWaldmann> thus you read log.reverse() and stop when you hit some t < x
2007-08-09T21:26:37 <ThomasWaldmann> you get pointers to the stuff that changed
2007-08-09T21:26:46 <ThomasWaldmann> it doesnt matter if you have a pointer twice
2007-08-09T21:26:47 <lanius> and still there can be duplicates
2007-08-09T21:27:00 <lanius> for the global edit-log it matters
2007-08-09T21:27:11 <ThomasWaldmann> why?
2007-08-09T21:27:38 <lanius> the item would appear twice in it
2007-08-09T21:27:59 <ThomasWaldmann> (aside from that we maybe won't use that ever, because we usually create new revs, not change existing ones)
2007-08-09T21:28:21 <lanius> yes
2007-08-09T21:29:01 <ThomasWaldmann> but even if, for rc you have to bundle items by name
2007-08-09T21:29:11 <ThomasWaldmann> you can filter out dupes when doing that also
2007-08-09T21:30:04 <lanius> do i need this magic part as well, or is it just an example?
2007-08-09T21:31:02 <ThomasWaldmann> it is in RecentChanges.py
2007-08-09T21:31:32 <lanius> ?
2007-08-09T21:31:56 <ThomasWaldmann> RC does this
2007-08-09T21:32:00 <lanius> yes
2007-08-09T21:32:08 <lanius> what about the magic thing ;)
2007-08-09T21:32:43 <ThomasWaldmann> are you talking of my code?
2007-08-09T21:32:50 <lanius> right
2007-08-09T21:33:05 <ThomasWaldmann> the magic has 2 purposes:
2007-08-09T21:33:19 <ThomasWaldmann> a) it is a magic. if it is not there, things have gone wrong.
2007-08-09T21:34:08 <ThomasWaldmann> b) it makes the file a text/plain file, you can carefully edit it with a editor
2007-08-09T21:34:20 <ThomasWaldmann> even better would be #\r\n as magic
2007-08-09T21:34:39 <ThomasWaldmann> so one can see where the lines end and that they all end at the same column
2007-08-09T21:38:05 <lanius> ThomasWaldmann: do i have to pass the correct width or is it adjusted automatically?
2007-08-09T21:39:04 <ThomasWaldmann> if you write() it will be filled up according what you told in the constructor
2007-08-09T21:40:06 <ThomasWaldmann> just make sure it is a str
2007-08-09T21:40:32 <ThomasWaldmann> i withstood introducing more magic there for type conversion
2007-08-09T21:41:26 * lanius is trying to use eclipse in vim mode
2007-08-09T21:57:21 <lanius> performance is better then sqlite
2007-08-09T21:57:38 <xorAxAx> + except:
2007-08-09T21:57:39 <xorAxAx> ugh
2007-08-09T21:58:58 <xorAxAx> lanius: hmm, your code doesnt close the cursor nor the connection ... not sure if that is fine in the long term
2007-08-09T21:59:12 <xorAxAx> esp. because you dont drop the cursor from the _connection array
2007-08-09T21:59:31 <xorAxAx> but i realise that this is prototype code - maybe some XXX would be fine
2007-08-09T21:59:45 <lanius> the code will be replaced in a few minutes
2007-08-09T21:59:54 <xorAxAx> cool
2007-08-09T22:01:29 <xorAxAx> lanius: remove would need rewriting the whole file
2007-08-09T22:01:47 <xorAxAx> lanius: i.e. you would only trigger it in maintenance mode
2007-08-09T22:03:13 <xorAxAx> there could be a moin.py compact_newsfile
2007-08-09T22:06:01 <ThomasWaldmann> or rather rebuild it completely
2007-08-09T22:06:21 <CIA-14> moin: Heinrich Wendel <h_wendel@cojobo.net> * 2814:3fa7aac1f89f 1.7-storage-hwendel/MoinMoin/ (6 files in 3 dirs): use Thomas records implementation for news stuff
2007-08-09T22:06:22 <ThomasWaldmann> we need this anyway if it gets damaged somehow (or lost or never had been there)
2007-08-09T22:07:24 <xorAxAx> btw. that record stuff needs some refactoring wrt to scheme and file ... currently you specify the scheme when instantiating the class which can be only used in one request
2007-08-09T22:07:34 <lanius> like i said, only a few lines of code changed :-)
2007-08-09T22:08:16 <lanius> and it is faster then sqlite, nice work
2007-08-09T22:09:25 <ThomasWaldmann> xorAxAx: how often do you want to change the scheme (layout?)?
2007-08-09T22:09:59 <xorAxAx> ThomasWaldmann: not at all - the point is a clean design
2007-08-09T22:10:11 <xorAxAx> so that you can instantiate the scheme class i nthe multiconfig
2007-08-09T22:10:21 <xorAxAx> and have it generate an instance of another class per request
2007-08-09T22:10:34 <xorAxAx> or per config, no idea
2007-08-09T22:10:53 <ThomasWaldmann> why do you want it configurable? it is rather fixed what's in there.
2007-08-09T22:11:08 <xorAxAx> lanius: why did you remove the storage test?
2007-08-09T22:11:10 <ThomasWaldmann> and even then, you can put that tuple list in the config
2007-08-09T22:11:20 <xorAxAx> ThomasWaldmann: because it could remain as abstract as it is
2007-08-09T22:11:29 <xorAxAx> its not about configuration
2007-08-09T22:11:32 <xorAxAx> its about concurrency
2007-08-09T22:11:35 <xorAxAx> and multiple instances
2007-08-09T22:11:49 <xorAxAx> of readers/writers in the same file
2007-08-09T22:12:19 <lanius> xorAxAx: i just removed the test for duplicates, because we agreed that duplicates are no problem
2007-08-09T22:12:48 <xorAxAx> ah
2007-08-09T22:13:50 <xorAxAx> ThomasWaldmann: e.g. currently - how do you make sure that two readers/writers dont conflict?
2007-08-09T22:13:58 <xorAxAx> there is only one instance per wiki instance
2007-08-09T22:14:21 <xorAxAx> every op needs at least two io ops (seek, read/write)
2007-08-09T22:14:47 <ThomasWaldmann> one instance of what?
2007-08-09T22:14:58 <xorAxAx> of the fixedsizedfoobar class you wrote :)
2007-08-09T22:15:12 <ThomasWaldmann> no
2007-08-09T22:15:19 <xorAxAx> ?
2007-08-09T22:15:23 <xorAxAx> see his changeset
2007-08-09T22:15:35 <xorAxAx> hmm
2007-08-09T22:15:35 <ThomasWaldmann> it can only read OR write
2007-08-09T22:15:42 <lanius> there is one for each operation
2007-08-09T22:15:42 <xorAxAx> indeed, he calls get_record
2007-08-09T22:15:42 <ThomasWaldmann> not both in the same instance
2007-08-09T22:15:43 <xorAxAx> ok
2007-08-09T22:15:44 <lanius> in my code
2007-08-09T22:15:47 <xorAxAx> sorry
2007-08-09T22:16:29 <ThomasWaldmann> but you can open and close the log multiple times if you like
2007-08-09T22:18:07 <ThomasWaldmann> - #shutil.rmtree(test_dir)
2007-08-09T22:18:07 <ThomasWaldmann> + shutil.rmtree(test_dir)
2007-08-09T22:18:22 <ThomasWaldmann> is this a must-have in a changeset :-P
2007-08-09T22:18:44 <lanius> i'm always switching back and forth and back and forth since sometimes the failing unittest errors will not be shown if i do the rmtree
2007-08-09T22:18:48 <xorAxAx> yes, its a mirror of the developer :)
2007-08-09T22:19:39 * ThomasWaldmann uses cmdline for killing the test wiki
2007-08-09T22:19:56 <ThomasWaldmann> lanius: c is no good as name
2007-08-09T22:20:11 <lanius> no, i thought i changed that ;)
2007-08-09T22:20:15 <xorAxAx> lanius: if you checked your changes, you would have avoided a checkin of the #shutil change
2007-08-09T22:21:22 <ThomasWaldmann> you need to test the magic
2007-08-09T22:22:18 <lanius> where?
2007-08-09T22:22:41 <xorAxAx> when reading
2007-08-09T22:22:56 <lanius> why
2007-08-09T22:23:32 <xorAxAx> to see whether the file is damaged
2007-08-09T22:24:31 <ThomasWaldmann> if the magic is not there, you can stop reading :)
2007-08-09T22:24:47 <ThomasWaldmann> (and log some error :)
2007-08-09T22:26:30 <ThomasWaldmann> the record code tries to make very sure that a caller can't damage the logfile
2007-08-09T22:26:49 <ThomasWaldmann> so if it is damaged, something very bad/dumb has happened
2007-08-09T22:55:27 <ThomasWaldmann> lanius: tests broken
2007-08-09T23:29:01 <xorAxAx> btw
2007-08-09T23:29:05 <xorAxAx> news() is still too slow
2007-08-09T23:29:10 <xorAxAx> as it is O(n) currently
2007-08-09T23:29:22 <xorAxAx> hmm, no
2007-08-09T23:29:39 <xorAxAx> if we needed only one entry, we could get it as fast as O(log n)
2007-08-09T23:32:11 <grzybacz> re
2007-08-09T23:32:41 <xorAxAx> grzywacz: please part and join again :)
2007-08-09T23:32:49 <grzywacz> ah ok
2007-08-09T23:32:52 <xorAxAx> grzywacz: + print i (This message has been postponed.)
2007-08-09T23:32:52 <xorAxAx> grzywacz: sigh, mixed whitespace/coding chekin (This message has been postponed.)
2007-08-09T23:33:09 <xorAxAx> ok, wasnt that much :)
2007-08-09T23:33:26 <grzywacz> xorAxAx: hm, I guess I might have missed a print indeed, but mixed whitespace?!
2007-08-09T23:33:45 <xorAxAx> well, mixed as in "whitespace cleanups should have gone into its own changesets"
2007-08-09T23:33:56 <grzywacz> xorAxAx: anyway, I did something wrong with formatting of output because psi doesn't show a results form
2007-08-09T23:34:17 <grzywacz> xorAxAx: no idea what, my xml looks almost exactly like an example in XEP
2007-08-09T23:34:24 <xorAxAx> h
2007-08-09T23:34:25 <xorAxAx> m
2007-08-09T23:34:27 <grzywacz> xorAxAx: so I'll have to ask someone more knowledgable tomorrow
2007-08-09T23:34:28 <xorAxAx> maybe a bug?
2007-08-09T23:34:32 <grzywacz> May be a bug, yes.
2007-08-09T23:38:08 <grzywacz> xorAxAx: I'll fix these issues tomorrow. I have to get up early and I had a very exhausting day. :\
2007-08-09T23:38:28 <xorAxAx> no problem
2007-08-09T23:38:58 <grzywacz> thanks
2007-08-09T23:43:27 * ThomasWaldmann .oO(St.Pepper in french on TV =8-X )
MoinMoin: MoinMoinChat/Logs/moin-dev/2007-08-09 (last edited 2007-10-29 19:08:30 by localhost)