2006-08-31T08:57:10  <ThomasWaldmann> moin
2006-08-31T09:11:16  <Kepplar> moin
2006-08-31T10:46:40  <Kepplar> So anyone got any ideas on how we should handle the combination/separation of metadata
2006-08-31T10:46:43  <Kepplar> ?
2006-08-31T10:52:39  <mitsuhiko> Kepplar: for flatfile?
2006-08-31T10:53:09  <Kepplar> generally
2006-08-31T10:53:21  <mitsuhiko> imho you only have one way
2006-08-31T10:53:31  <Kepplar> the flatfile is transparent
2006-08-31T10:53:35  <mitsuhiko> since moin supports more than one formatter each formatter might display metadata in the editor different
2006-08-31T10:53:45  <Kepplar> Yea
2006-08-31T10:53:52  <mitsuhiko> for example the normal moin editor requires that you put hashes in the header:
2006-08-31T10:53:58  <mitsuhiko> #mimetype x-something/blub
2006-08-31T10:54:17  <Kepplar> Problem is mimetype was designed to be a separate dicitionary on an item object along side raw data
2006-08-31T10:54:28  <mitsuhiko> that's not a problem
2006-08-31T10:54:41  <Kepplar>  the mimetype bug we have on storage atm stems from it
2006-08-31T10:54:42  <mitsuhiko> just add a method prepare_for_editor(text, mimetype) to the formatter
2006-08-31T10:54:57  <Kepplar> hmm
2006-08-31T10:54:59  <mitsuhiko> and then fetch_metadata_from_text(text) which outputs the stipped text and mimetype again
2006-08-31T10:55:09  <mitsuhiko> and your storage system then saves it like it needs to
2006-08-31T10:55:20  <mitsuhiko> sql for example would have a table with some joines for it
2006-08-31T10:55:29  <Kepplar> yep
2006-08-31T10:55:35  <mitsuhiko> the flatfile system would have a seperated file called "metadata" in the folder of the page
2006-08-31T10:55:50  <Kepplar> well no the legacy system will store it in the same file
2006-08-31T10:56:07  <mitsuhiko> that's an implementation detail
2006-08-31T10:56:19  <Kepplar> this seems like a good intermediate step - personally I dont think any formatter should have metadata and data as one
2006-08-31T10:56:21  <mitsuhiko> basically you don't need to know where the metadata actually is stored in
2006-08-31T10:56:23  <Kepplar> in the future
2006-08-31T10:58:37  <ThomasWaldmann> mitsuhiko: metadata is stored separately and the storage format won't be different for different mimetypes of the data item
2006-08-31T10:59:04  <ThomasWaldmann> (this is the goal, at least)
2006-08-31T10:59:22  <mitsuhiko> ThomasWaldmann: depends on the storage backend doesn't it?
2006-08-31T10:59:36  <ThomasWaldmann> not really
2006-08-31T10:59:48  <mitsuhiko> an sql backend would storage metadata different from an plain text solution
2006-08-31T11:00:05  <ThomasWaldmann> that doesnt change the metadata itself
2006-08-31T11:00:09  <mitsuhiko> but for the editor the mimetype would move into the same textarea
2006-08-31T11:00:28  <mitsuhiko> so the formatter has to strip that out after the saving
2006-08-31T11:00:40  <xorAxAx> mitsuhiko: no, the formatter wont do that
2006-08-31T11:00:45  <xorAxAx> mitsuhiko: its unrelated
2006-08-31T11:00:51  <xorAxAx> it doesnt see them at all
2006-08-31T11:00:52  <ThomasWaldmann> and we can mix data and metadata until we have a better solution - on the UI
2006-08-31T11:01:16  <mitsuhiko> xorAxAx: take mokuwiki as an example
2006-08-31T11:01:22  <mitsuhiko> there comments start with ;;
2006-08-31T11:01:59  <mitsuhiko> or do you want to use "#" just in the header and strip that before giving it the parser?
2006-08-31T11:02:31  <xorAxAx> ?
2006-08-31T11:02:33  <Kepplar> ThomasWaldmann: it will only store item types in the same place for a given engine, another engine instance may store i somewhere else (just saying its possible)
2006-08-31T11:02:40  <xorAxAx> mitsuhiko: the parser handles them currently
2006-08-31T11:02:48  <ThomasWaldmann> metadata is just pairs key, value
2006-08-31T11:03:08  <Kepplar> btw any idea guys why storage is currently printing out the metadata to the screen?
2006-08-31T11:03:13  <Kepplar> (ive not touched any formatters)
2006-08-31T11:03:18  <ThomasWaldmann> UI might present them in a separate editor window as "key: value\nkey2: value2\n..."
2006-08-31T11:03:27  <mitsuhiko> xorAxAx: the moin parser. not the mokuwiki, mediawiki-like parser
2006-08-31T11:03:33  <mitsuhiko> they don't have comments starting with "#"
2006-08-31T11:03:48  <mitsuhiko> in mediawiki is "#" the start of an enumeration afair
2006-08-31T11:04:14  <ThomasWaldmann> or UI might merge them at top of a text page as "#pragma key value\n..." (or whatever...)
2006-08-31T11:04:23  <ThomasWaldmann> (for 1.5 compat)
2006-08-31T11:04:42  <mitsuhiko> ThomasWaldmann: therefore the method on the parser to add and strip the metadata before putting it into the editor
2006-08-31T11:05:03  <ThomasWaldmann> can be done like this
2006-08-31T11:05:28  <ThomasWaldmann> but i guess we have to approach all this stuff differently
2006-08-31T11:05:30  <Kepplar> parser not formatter?
2006-08-31T11:05:44  <ThomasWaldmann> in much smaller steps, or it won't work ever
2006-08-31T11:05:56  <Kepplar> we should have a design first =)
2006-08-31T11:06:06  <Kepplar> hence my diagrams on NextGenerationArchitecture
2006-08-31T11:06:17  <mitsuhiko> Kepplar: you should had the design... hmm... two months ago?
2006-08-31T11:06:24  <Kepplar> i did
2006-08-31T11:06:30  <Kepplar> this is not storage design
2006-08-31T11:06:31  <ThomasWaldmann> Kepplar: i didnt get much out of those yet
2006-08-31T11:06:43  <mitsuhiko> Kepplar: so metadata isn't part of storage?
2006-08-31T11:07:17  <Kepplar> mitsuhiko: storage stores things, it doesnt know what its storing it knows what data is and what is metadata, how its presented, how its handled by moin is outside storage
2006-08-31T11:07:49  <ThomasWaldmann> but an approach (while doing more planning) is to simplify moin before
2006-08-31T11:07:56  <mitsuhiko> so your task was just writing it and not integrating it? Oo
2006-08-31T11:08:20  <Kepplar> mitsuhiko: yes it was, but in hindsight it was more or less impossible in the timeframe
2006-08-31T11:08:24  <ThomasWaldmann> like e.g. removing hierarchical stuff we dont use anyway
2006-08-31T11:08:55  <Kepplar> mitsuhiko: integration was partially and crudly done, its not suitable for production
2006-08-31T11:09:07  <ThomasWaldmann> or moving user profiles to 1.5 page storage
2006-08-31T11:09:17  <Kepplar> usrs are using storage
2006-08-31T11:09:21  <ThomasWaldmann> (we can hide them by acl)
2006-08-31T11:09:27  <Kepplar> im not sure how successful they are atm
2006-08-31T11:10:12  <Kepplar> Anyway I think the first thing we need to do is get a diagram of how Moin works now, and then what we want it to look like
2006-08-31T11:10:12  <ThomasWaldmann> Kepplar: 3 months fulltime are LOTS of time
2006-08-31T11:10:23  <Kepplar> ThomasWaldmann: there was no architecture diagrams though
2006-08-31T11:10:34  <Kepplar> that was my main point
2006-08-31T11:10:43  <Kepplar> i have to work top-down
2006-08-31T11:10:58  <Kepplar> reverse engineering to learn how it works is slow and painful
2006-08-31T11:11:16  <Kepplar> hence now with no deadline we should think about doing it properly
2006-08-31T11:11:43  <Kepplar> *i* can't do the current architecture diagrams
2006-08-31T11:11:55  <Kepplar> I dont really get it
2006-08-31T11:12:00  <ThomasWaldmann> i guess after writing the converter i can work on simplifying moin in some related parts
2006-08-31T11:12:28  <ThomasWaldmann> the main point is we have to keep it working while doing that stuff
2006-08-31T11:12:38  <Kepplar> yea
2006-08-31T11:12:54  <Kepplar> but having specific idea of what its going to look like is nicer for focus :)
2006-08-31T11:13:06  <Kepplar> hence the arch diagrams
2006-08-31T11:13:24  <Kepplar> I've made a start from storage perspective for the NG Architecture
2006-08-31T11:14:04  <Kepplar> at the very least could someone explain it in a way I can write the diagram for existing :)
2006-08-31T11:16:17  <ThomasWaldmann> sorry, but looking at those diagrams on NGA doesn't give me much
2006-08-31T11:17:35  <Kepplar> its a pesudo-object diagram
2006-08-31T11:17:52  <Kepplar> its not complete, just started infact
2006-08-31T11:18:07  <Kepplar> but regardless thats the new architeture, the old one is what we need done before progressing :)
2006-08-31T11:18:24  <Kepplar> basically "how" moin works the question i asked at the start of SOC but didn't really get an answer
2006-08-31T11:18:30  <Kepplar> what happens when a page is pressed
2006-08-31T11:18:34  <Kepplar> what objects get created
2006-08-31T11:18:38  <Kepplar> what is parsed around to where
2006-08-31T11:18:42  <Kepplar> how it all works
2006-08-31T11:20:49  <ThomasWaldmann> you don't expect we paraphrase the whole src on irc for you?
2006-08-31T11:21:24  <Kepplar> Generally speaking (im not talking about moin specifically) i expect this to have been documented at the start =)
2006-08-31T11:21:52  <ThomasWaldmann> there is quite some stuff in the wiki and there is also a search function
2006-08-31T11:22:05  <Kepplar> Hence i think we all need to work together in producing it
2006-08-31T11:22:14  <Kepplar> ThomasWaldmann: oh i tried that
2006-08-31T11:22:17  <ThomasWaldmann> some of that stuff outdates, though, so it is better to look at the src
2006-08-31T11:22:30  <Kepplar> reverse enginering the source will take me a year
2006-08-31T11:23:06  <Kepplar> and seeing as everyone else is so good with the code i think it would be quicker if everyone contributed the bits they know about :)
2006-08-31T11:23:32  <ThomasWaldmann> no, you will know enough after maybe 2 weeks fulltime reading and working with the src.
2006-08-31T11:24:00  <ThomasWaldmann> it isnt THAT complicated
2006-08-31T11:24:06  <Kepplar> i beg to differ
2006-08-31T11:24:33  <Kepplar> remember you see the code much easier because you know it :)
2006-08-31T11:24:55  <xorAxAx> Kepplar: i just needed that amount of time when i got into it a few months ago
2006-08-31T11:25:19  <xorAxAx> Kepplar: it was 2004 ...
2006-08-31T11:25:27  <Kepplar> your a hacky programmer though
2006-08-31T11:25:49  <Kepplar> and you work on the reverse engineering principle
2006-08-31T11:26:05  <ThomasWaldmann> you also don't need to read everything. e.g. formatter base (and maybe text_html) is enough, you dont need to read all formatters
2006-08-31T11:26:35  <Kepplar> i can read a class and object, but i have no idea from the code unless i read everywhere where in the page loading process it is called etc
2006-08-31T11:26:38  <ThomasWaldmann> same is true for macro, action, parser, request, ... (everything that is modular and that's quite much)
2006-08-31T11:27:26  <xorAxAx> Kepplar: not really
2006-08-31T11:28:06  <xorAxAx> Kepplar: as i said, my colleagues in my small job are all physiscians, economics people etc. and they read the code because there are no docs
2006-08-31T11:29:02  <Kepplar> no offense but i find alot of the code obfuscated (Well what ive been working with)
2006-08-31T11:29:18  <Kepplar> plus having a visual memory doesnt help
2006-08-31T11:29:38  <xorAxAx> you can write down your results, then memory problems are gone
2006-08-31T11:29:51  <Kepplar> in diagrams
2006-08-31T11:30:02  <xorAxAx> yeah, where are they?
2006-08-31T11:30:11  <Kepplar> on my desk and in visio
2006-08-31T11:30:20  <Kepplar> but only regarding my code
2006-08-31T11:30:33  <xorAxAx> your code is irrelevant in this discussion
2006-08-31T11:30:50  <xorAxAx> because you are still at the point "understand system"
2006-08-31T11:31:02  <Kepplar> all i see is Page, user, somehow caching and security somehow tied to request in a giant cobweb of functions calls for the rest of the system
2006-08-31T11:31:04  <xorAxAx> not at "design new system"
2006-08-31T11:31:20  <Kepplar> Yes, hence why im asking for documents
2006-08-31T11:31:47  <Kepplar> you yourself said you were against API's and just call code whenever you feel like which i felt a bit shocked about
2006-08-31T11:31:54  <xorAxAx> you said that memory problems stopped you - i said that you can draw your (intermediary) docs
2006-08-31T11:32:05  <xorAxAx> Kepplar: when did i say that?
2006-08-31T11:32:22  <xorAxAx> i dislike the breaking APIs of moin and try to get everybody who breaks them to document changes
2006-08-31T11:32:26  <xorAxAx> and give a reasoning
2006-08-31T11:32:42  <Kepplar> thats ironic
2006-08-31T11:32:47  <xorAxAx> ?
2006-08-31T11:32:51  <Kepplar> i could have sworn you said the opposite last week
2006-08-31T11:33:00  <Kepplar> (thats even gone into my eval)
2006-08-31T11:33:07  <xorAxAx> i would be really interested in the quote
2006-08-31T11:33:17  * ThomasWaldmann works on the step by step stuff
2006-08-31T11:33:25  <Kepplar> ThomasWaldmann: hmm?
2006-08-31T11:33:37  <xorAxAx> its a really bad base to have people in the team defame others
2006-08-31T11:33:38  <Kepplar> xorAxAx: ill have alook around logs later
2006-08-31T11:33:48  <Kepplar> xorAxAx: i didnt mention you
2006-08-31T11:34:01  <Kepplar> xorAxAx: i said i was a little suprised at some of the developers styles and ethos
2006-08-31T11:34:08  <xorAxAx> but even then, you must have misunderstand me
2006-08-31T11:34:26  <xorAxAx> personally, i dont recall a broken API in the moin code because of my changes
2006-08-31T11:34:37  <Kepplar> nooo
2006-08-31T11:34:47  <xorAxAx> ?
2006-08-31T11:35:05  <Kepplar> my point i made a few weeks ago is that moins code appears (at least to me) as a big mess of interdependant method calls without any defined (and controlled) apis on what calls what
2006-08-31T11:35:21  <xorAxAx> oh, then you havent understand it :)
2006-08-31T11:35:25  <xorAxAx> s/and/ood/
2006-08-31T11:35:33  <xorAxAx> there are some dirty edges
2006-08-31T11:35:43  <xorAxAx> but mostly there is a sound concept
2006-08-31T11:36:02  <Kepplar> i'd be very dissapointed if everyone outside storage was fine and the "dirty edge" was storage :>
2006-08-31T11:36:11  <xorAxAx> and no, jürgen wasnt the person who introduced all of those dirty edges. i.e. you can ask people here to give explanations about the dirty edges
2006-08-31T11:36:41  <Kepplar> ah here we go, an analogy
2006-08-31T11:37:14  <Kepplar> Last three months (dispite asking for a map) ive been working surrounded by tower blocks as far as the eye can see trying to map out how everything is put together
2006-08-31T11:37:24  <Kepplar> and getting dazed at the tower blocks around me because im without a map
2006-08-31T11:43:10  <ThomasWaldmann> Kepplar: on the "making it easier by small steps plan"
2006-08-31T11:52:37  <Kepplar> ah
2006-08-31T11:53:03  <Kepplar> so we going to take action on producing a arch diagram?
2006-08-31T11:54:22  <xorAxAx> you will do the first step and we will join in
2006-08-31T11:54:24  * ThomasWaldmann is not used to drawing diagrams
2006-08-31T11:54:47  <Kepplar> ok
2006-08-31T12:00:55  <ThomasWaldmann> Kepplar: see if my last wiki edit addresses some of your problems
2006-08-31T13:01:05  <ThomasWaldmann> ok, finished editing for now. bbl.
2006-08-31T18:31:53  <ThomasWaldmann> re

MoinMoin: MoinMoinChat/Logs/moin-dev/2006-08-31 (last edited 2007-10-29 19:08:21 by localhost)