Tore Eriksson Wrote:
-------------------------------------------------------
> But as an LDraw user, I DON'T want it on my own
> private workspace, ie the Models folder. No way!
> B. I made the mistake to have no header at all in
> some of my boxed parts. This has been no problems
> with the software I've used so far, but Roland has
> made me aware that it may cause problems in some
> cases, like his new editor.
>
Current version handles them fine without a header, only thing is there's a chance on 'glitches' cause it's guessing (aka applying fuzzy logic).
I'm not expecting (or demanding) users to change stuff in order to use my software, it might only hurt render quality or prevent them from (easily) editing a particular model.
> How do we address issue B? (Issue A is a non-issue
> IMO) The bad, really bad way would be a new,
> over-formalized Standard that you force us poor
> users to obey, or else we will encounter endless
> warnings and errors. Of course it will render all
> previously made models illegal, like DAT-Header
> now signals 'Hold' for all parts ending with the
> previouly compulsary "0" line. (Oh, stupidivity of
> stupidivities!) Now, where was I? I don't mind a
> new syntax, like "0 !PRIVATE Part", although I
> find it too easy to misunderstand for those who
> happen to have that kind of humour.
>
Personally I use all information in the headers as 'nice to have', if missing my software won't add stuff or make changes unasked. But like said it will hurt rendering and or functionality when it can't be parsed and identified correctly. that's where the power of a good standard comes in.
> But I get very much more worried about the
> opposite ditch. Leaning too much on defined
> semantics, blaming the ignorant users for all
> syntax errors. Backwards compability should IMO
> also mean that software recognize parts and models
> made 5 or 10 years ago, without spitting out
> needless and annoying warnings and errors. They
> should accept and understand statements like:
> 0 Un-official Part
> 0 Un-official LDraw Primitive
> 0 Unofficial Shortcut
> 0 Unofficial Classic Space Model
> 0 Unofficial Moonbase Vehicle model
> , regardless what standard may be set - or later
> on altered again.
>
You are right there should always be a 'fallback' but users can't expect all software to handle all documents flawlessly, especially if the documents are that old and don't 'try to help' the parser.
> Instead of "0 !PRIVATE" as a complement to "0
> !LDRAW_ORG", I would suggest either "0 !LDRAW" or
> maybe "0 !INFO". But maybe there's an even better
> name?
>
I will take this up in the LSC soon, maybe a generic 'what's the nature of this document' meta would help which programs can scan for the term "model" or "part". Or a simular meta with a set of static keywords to choose from.
> > Something like "0 !PRIVATE Unofficial_Set",
> would
> > allow us, in the future to start issuing
> LDraw.org
> > versions of models, using "0 !LDRAW_ORG
> > Unofficial_Set" during review and "0 !LDRAW_ORG
> > Official_Set" upon release.
>
> 1. What motivates that unnatural underscore in
> Official_Set? In LDRAW_ORG, I can understand it,
> but not to separate normal words from each_other.
> That underscore is a heavily potential source of
> errors. It makes it (slightly) harder to write and
> much harder to remember to write as it's certainly
> not the normal way to write. And also, it's a
> little harder for the programmer to extract
> relevant information like is it a model, part,
> primitive, assembly or a shortcut.
>
It's a parser thing, it so the grammar can be dissected without worrying about multiple words in a single 'token'. After it's read the program can split it on the _ and handle it from there (sub parsing the intended goal). An alternative would be using " " around the goal e.g. 0 !PRIVATE "datsville model" or by making it a single variable meta (everything after !PRIVATE is a single value no further dissection needed in order to get the 'goal text' part of the string.)
> 2. Isn't a set still a model, or is there a
> difference I have overlooked?
>
> (Hmm, let me see if I got it right about to start
> issuing LDraw.org versions of models. First, it's
> an LDraw.org unofficial official TLG set model
> that after after reviewing becomes an LDraw.org
> official official TLG set model. Right? Oh, where
> are my Aspirine pills...?)
>
I think the 'official' 'unofficial' keywords only apply to it being in the related library version.
-------------------------------------------------------
> But as an LDraw user, I DON'T want it on my own
> private workspace, ie the Models folder. No way!
> B. I made the mistake to have no header at all in
> some of my boxed parts. This has been no problems
> with the software I've used so far, but Roland has
> made me aware that it may cause problems in some
> cases, like his new editor.
>
Current version handles them fine without a header, only thing is there's a chance on 'glitches' cause it's guessing (aka applying fuzzy logic).
I'm not expecting (or demanding) users to change stuff in order to use my software, it might only hurt render quality or prevent them from (easily) editing a particular model.
> How do we address issue B? (Issue A is a non-issue
> IMO) The bad, really bad way would be a new,
> over-formalized Standard that you force us poor
> users to obey, or else we will encounter endless
> warnings and errors. Of course it will render all
> previously made models illegal, like DAT-Header
> now signals 'Hold' for all parts ending with the
> previouly compulsary "0" line. (Oh, stupidivity of
> stupidivities!) Now, where was I? I don't mind a
> new syntax, like "0 !PRIVATE Part", although I
> find it too easy to misunderstand for those who
> happen to have that kind of humour.
>
Personally I use all information in the headers as 'nice to have', if missing my software won't add stuff or make changes unasked. But like said it will hurt rendering and or functionality when it can't be parsed and identified correctly. that's where the power of a good standard comes in.
> But I get very much more worried about the
> opposite ditch. Leaning too much on defined
> semantics, blaming the ignorant users for all
> syntax errors. Backwards compability should IMO
> also mean that software recognize parts and models
> made 5 or 10 years ago, without spitting out
> needless and annoying warnings and errors. They
> should accept and understand statements like:
> 0 Un-official Part
> 0 Un-official LDraw Primitive
> 0 Unofficial Shortcut
> 0 Unofficial Classic Space Model
> 0 Unofficial Moonbase Vehicle model
> , regardless what standard may be set - or later
> on altered again.
>
You are right there should always be a 'fallback' but users can't expect all software to handle all documents flawlessly, especially if the documents are that old and don't 'try to help' the parser.
> Instead of "0 !PRIVATE" as a complement to "0
> !LDRAW_ORG", I would suggest either "0 !LDRAW" or
> maybe "0 !INFO". But maybe there's an even better
> name?
>
I will take this up in the LSC soon, maybe a generic 'what's the nature of this document' meta would help which programs can scan for the term "model" or "part". Or a simular meta with a set of static keywords to choose from.
> > Something like "0 !PRIVATE Unofficial_Set",
> would
> > allow us, in the future to start issuing
> LDraw.org
> > versions of models, using "0 !LDRAW_ORG
> > Unofficial_Set" during review and "0 !LDRAW_ORG
> > Official_Set" upon release.
>
> 1. What motivates that unnatural underscore in
> Official_Set? In LDRAW_ORG, I can understand it,
> but not to separate normal words from each_other.
> That underscore is a heavily potential source of
> errors. It makes it (slightly) harder to write and
> much harder to remember to write as it's certainly
> not the normal way to write. And also, it's a
> little harder for the programmer to extract
> relevant information like is it a model, part,
> primitive, assembly or a shortcut.
>
It's a parser thing, it so the grammar can be dissected without worrying about multiple words in a single 'token'. After it's read the program can split it on the _ and handle it from there (sub parsing the intended goal). An alternative would be using " " around the goal e.g. 0 !PRIVATE "datsville model" or by making it a single variable meta (everything after !PRIVATE is a single value no further dissection needed in order to get the 'goal text' part of the string.)
> 2. Isn't a set still a model, or is there a
> difference I have overlooked?
>
> (Hmm, let me see if I got it right about to start
> issuing LDraw.org versions of models. First, it's
> an LDraw.org unofficial official TLG set model
> that after after reviewing becomes an LDraw.org
> official official TLG set model. Right? Oh, where
> are my Aspirine pills...?)
>
I think the 'official' 'unofficial' keywords only apply to it being in the related library version.