discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: [OpenSCAD] OpenSCAD / Google Summer of Code Update

AK
Amarjeet Kapoor
Sun, Apr 24, 2016 3:29 PM

On Apr 24, 2016 12:49 AM, "Marius Kintel" marius@kintel.net wrote:

Torsten and I will both participate in mentoring. We’re both in different

timezones (I’m EST/EDT, Torsten is CET), so hopefully this will be helpful
in finding each other online.

and mine is IST.

In terms of your proposal, it’s a bit ambitious. It would be wise to

spend the time before full-time coding starts to create a real project plan
based on the proposal.

This plan should be much more clear what should be done, how to break

down work into components, as well as what kind of support or work you need
from others.

okay, I will try to do that.

This is probably best to discuss in real-time on IRC.
We will help you with the plan, but exactly how this is done really

depends on your skill level and comfort with both C++, Qt and OpenSCAD.

Could give us a general outline of what you think your work schedule will

look like in the coming weeks (e.g. morning vs. evening), so we have an
idea when you’ll be on IRC.

Just for these three days I will be busy in MSTs( Still will be available
to reply ) and for rest of time I will be free preparing for final exams
and so, I will be always available on email (as I mainly check for new
mails hourly ) and you can also message on openscad irc channel as I also
check for discussion there minimum 1 time a day and I will also be
available on IRC regularly from 27 april from period between 8pm to 11pm
IST.  You can also contact me on hangout and WhatsApp.

Feel free to reach out, both here and on IRC.
I’m sure other people will engage in discussions as well :)

Thanks and Please evaluate me regularly even in bonding period and provide
feedback.

--
Amarjeet Singh
https://amarjeetkapoor1.wordpress.com
https://github.com/amarjeetkapoor1
https://bitbucket.org/amarjeetkapoor

" There are things and there are pointers to the things. "

On Apr 24, 2016 12:49 AM, "Marius Kintel" <marius@kintel.net> wrote: > Torsten and I will both participate in mentoring. We’re both in different timezones (I’m EST/EDT, Torsten is CET), so hopefully this will be helpful in finding each other online. > and mine is IST. > In terms of your proposal, it’s a bit ambitious. It would be wise to spend the time before full-time coding starts to create a real project plan based on the proposal. > This plan should be much more clear what should be done, how to break down work into components, as well as what kind of support or work you need from others. okay, I will try to do that. > This is probably best to discuss in real-time on IRC. > We will help you with the plan, but exactly how this is done really depends on your skill level and comfort with both C++, Qt and OpenSCAD. > > Could give us a general outline of what you think your work schedule will look like in the coming weeks (e.g. morning vs. evening), so we have an idea when you’ll be on IRC. > Just for these three days I will be busy in MSTs( Still will be available to reply ) and for rest of time I will be free preparing for final exams and so, I will be always available on email (as I mainly check for new mails hourly ) and you can also message on openscad irc channel as I also check for discussion there minimum 1 time a day and I will also be available on IRC regularly from 27 april from period between 8pm to 11pm IST. You can also contact me on hangout and WhatsApp. > Feel free to reach out, both here and on IRC. > I’m sure other people will engage in discussions as well :) Thanks and Please evaluate me regularly even in bonding period and provide feedback. -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor " There are things and there are pointers to the things. "
AK
Amarjeet Kapoor
Mon, Apr 25, 2016 12:42 PM

Dear mentors, before proceeding further with much enthusiasm and
regulated ambition, I would like to put something to rest, once and
for all (pardon the dramatic touch to my words, its nothing but
excitement in disguise). It has been bugging me a bit. Earlier it was
a little odd but now it is starting to fringe onto the mystical. So I
am asking again, the below mentioned pull requests have neither been
accepted (which is perfectly fine) nor have they been rejected. My
earlier queries about this were also met with silence of sorts. I
would really like if you could offer some reasoning for this.

https://github.com/openscad/openscad/pull/1618

https://github.com/openscad/openscad/pull/1613

I would also like to discuss the order of our discussions i.e. should
they be milestone oriented(weekly) or based on each feature I proposed
as we go along? And I will start studying accordingly.

--
Amarjeet Singh
https://amarjeetkapoor1.wordpress.com
https://github.com/amarjeetkapoor1
https://bitbucket.org/amarjeetkapoor

"Words are our most inexhaustible source of magic.
Capable of both inflicting injury and remedying it."

Dear mentors, before proceeding further with much enthusiasm and regulated ambition, I would like to put something to rest, once and for all (pardon the dramatic touch to my words, its nothing but excitement in disguise). It has been bugging me a bit. Earlier it was a little odd but now it is starting to fringe onto the mystical. So I am asking again, the below mentioned pull requests have neither been accepted (which is perfectly fine) nor have they been rejected. My earlier queries about this were also met with silence of sorts. I would really like if you could offer some reasoning for this. https://github.com/openscad/openscad/pull/1618 https://github.com/openscad/openscad/pull/1613 I would also like to discuss the order of our discussions i.e. should they be milestone oriented(weekly) or based on each feature I proposed as we go along? And I will start studying accordingly. -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor "Words are our most inexhaustible source of magic. Capable of both inflicting injury and remedying it."
MK
Marius Kintel
Mon, Apr 25, 2016 3:23 PM

On Apr 25, 2016, at 08:42 AM, Amarjeet Kapoor amarjeet.kapoor1@gmail.com wrote:
[…]the below mentioned pull requests have neither been
accepted (which is perfectly fine) nor have they been rejected.
https://github.com/openscad/openscad/pull/1618
https://github.com/openscad/openscad/pull/1613

I don’t have much to say about those PRs. I belive they’re implemented cleanly enough, so the question is what problem they really solve and what issues they introduce. Perhaps some of the more heavy users of these features (animation and export to various file formats) could chip in?
In any case, let’s move the details into discussions per issue.

I would also like to discuss the order of our discussions i.e. should
they be milestone oriented(weekly) or based on each feature I proposed
as we go along? And I will start studying accordingly.

I think we should split the proposal into much smaller parts, to avoid starting on something big and never finishing it. This has more to do with workflow than with the proposal though, but it’s good to keep in mind.
The overall project should be milestone oriented, and I expect there to be only a few milestones, but each milestone should ideally consist of a large number of small features which could be committed or merged separately.
Earlier, students have attempted to write a project plan for the summer, specifying what should be done each week. While this is a good exercise, it will always be wrong, often by 200% or more. Such estimates are just an indicator of complexity. The main guide should be a more or less prioritized list of what should be done, and dependencies between tasks.

Keep in mind that every time you issue a pull request, there is a lot of work that needs to be done on our side to validate use-cases, think about corner cases, looking for broken workflows, multi-platform testing, documentation, testing, asking for community input etc. The better we can structure this process, the easier it will be to accept pull requests rapidly.
Also, having multiple pull requests open at the same time is normal. This can be a bit stressful in terms of how to manage source code, but it’s a very common workflow.

Kind Regards,

-Marius

> On Apr 25, 2016, at 08:42 AM, Amarjeet Kapoor <amarjeet.kapoor1@gmail.com> wrote: > […]the below mentioned pull requests have neither been > accepted (which is perfectly fine) nor have they been rejected. > https://github.com/openscad/openscad/pull/1618 > https://github.com/openscad/openscad/pull/1613 > I don’t have much to say about those PRs. I belive they’re implemented cleanly enough, so the question is what problem they really solve and what issues they introduce. Perhaps some of the more heavy users of these features (animation and export to various file formats) could chip in? In any case, let’s move the details into discussions per issue. > I would also like to discuss the order of our discussions i.e. should > they be milestone oriented(weekly) or based on each feature I proposed > as we go along? And I will start studying accordingly. > I think we should split the proposal into much smaller parts, to avoid starting on something big and never finishing it. This has more to do with workflow than with the proposal though, but it’s good to keep in mind. The overall project should be milestone oriented, and I expect there to be only a few milestones, but each milestone should ideally consist of a large number of small features which could be committed or merged separately. Earlier, students have attempted to write a project plan for the summer, specifying what should be done each week. While this is a good exercise, it will always be wrong, often by 200% or more. Such estimates are just an indicator of complexity. The main guide should be a more or less prioritized list of _what_ should be done, and dependencies between tasks. Keep in mind that every time you issue a pull request, there is a lot of work that needs to be done on our side to validate use-cases, think about corner cases, looking for broken workflows, multi-platform testing, documentation, testing, asking for community input etc. The better we can structure this process, the easier it will be to accept pull requests rapidly. Also, having multiple pull requests open at the same time is normal. This can be a bit stressful in terms of how to manage source code, but it’s a very common workflow. Kind Regards, -Marius
AK
Amarjeet Kapoor
Wed, Apr 27, 2016 3:20 PM

I have started with process of converting my proposal into plan and
started with first milestone in my project i.e. related to "Option to
Specify input widget" .

I have made this doc for writing everything related to what will be
decided related to project plan. At present, It contain what I have
thought of first milestone. Please, review and suggest.

https://docs.google.com/document/d/1aApCk8EhMfRhIVowKLpZG1hpHHiQJxtYKwW_K5h4H4A/edit?usp=sharing

On 25 April 2016 at 20:53, Marius Kintel marius@kintel.net wrote:

On Apr 25, 2016, at 08:42 AM, Amarjeet Kapoor amarjeet.kapoor1@gmail.com wrote:
[…]the below mentioned pull requests have neither been
accepted (which is perfectly fine) nor have they been rejected.
https://github.com/openscad/openscad/pull/1618
https://github.com/openscad/openscad/pull/1613

I don’t have much to say about those PRs. I belive they’re implemented cleanly enough, so the question is what problem they really solve and what issues they introduce. Perhaps some of the more heavy users of these features (animation and export to various file formats) could chip in?
In any case, let’s move the details into discussions per issue.

I would also like to discuss the order of our discussions i.e. should
they be milestone oriented(weekly) or based on each feature I proposed
as we go along? And I will start studying accordingly.

I think we should split the proposal into much smaller parts, to avoid starting on something big and never finishing it. This has more to do with workflow than with the proposal though, but it’s good to keep in mind.
The overall project should be milestone oriented, and I expect there to be only a few milestones, but each milestone should ideally consist of a large number of small features which could be committed or merged separately.
Earlier, students have attempted to write a project plan for the summer, specifying what should be done each week. While this is a good exercise, it will always be wrong, often by 200% or more. Such estimates are just an indicator of complexity. The main guide should be a more or less prioritized list of what should be done, and dependencies between tasks.

Keep in mind that every time you issue a pull request, there is a lot of work that needs to be done on our side to validate use-cases, think about corner cases, looking for broken workflows, multi-platform testing, documentation, testing, asking for community input etc. The better we can structure this process, the easier it will be to accept pull requests rapidly.
Also, having multiple pull requests open at the same time is normal. This can be a bit stressful in terms of how to manage source code, but it’s a very common workflow.

Kind Regards,

-Marius


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I have started with process of converting my proposal into plan and started with first milestone in my project i.e. related to "Option to Specify input widget" . I have made this doc for writing everything related to what will be decided related to project plan. At present, It contain what I have thought of first milestone. Please, review and suggest. https://docs.google.com/document/d/1aApCk8EhMfRhIVowKLpZG1hpHHiQJxtYKwW_K5h4H4A/edit?usp=sharing On 25 April 2016 at 20:53, Marius Kintel <marius@kintel.net> wrote: >> On Apr 25, 2016, at 08:42 AM, Amarjeet Kapoor <amarjeet.kapoor1@gmail.com> wrote: >> […]the below mentioned pull requests have neither been >> accepted (which is perfectly fine) nor have they been rejected. >> https://github.com/openscad/openscad/pull/1618 >> https://github.com/openscad/openscad/pull/1613 >> > I don’t have much to say about those PRs. I belive they’re implemented cleanly enough, so the question is what problem they really solve and what issues they introduce. Perhaps some of the more heavy users of these features (animation and export to various file formats) could chip in? > In any case, let’s move the details into discussions per issue. > >> I would also like to discuss the order of our discussions i.e. should >> they be milestone oriented(weekly) or based on each feature I proposed >> as we go along? And I will start studying accordingly. >> > I think we should split the proposal into much smaller parts, to avoid starting on something big and never finishing it. This has more to do with workflow than with the proposal though, but it’s good to keep in mind. > The overall project should be milestone oriented, and I expect there to be only a few milestones, but each milestone should ideally consist of a large number of small features which could be committed or merged separately. > Earlier, students have attempted to write a project plan for the summer, specifying what should be done each week. While this is a good exercise, it will always be wrong, often by 200% or more. Such estimates are just an indicator of complexity. The main guide should be a more or less prioritized list of _what_ should be done, and dependencies between tasks. > > Keep in mind that every time you issue a pull request, there is a lot of work that needs to be done on our side to validate use-cases, think about corner cases, looking for broken workflows, multi-platform testing, documentation, testing, asking for community input etc. The better we can structure this process, the easier it will be to accept pull requests rapidly. > Also, having multiple pull requests open at the same time is normal. This can be a bit stressful in terms of how to manage source code, but it’s a very common workflow. > > Kind Regards, > > -Marius > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor "knowledge about knowledge is power"
AK
Amarjeet Kapoor
Sun, May 1, 2016 9:23 AM

After discussion regarding project plan. I have given allot of thought
to it and made following flow chart given in the doc.

https://docs.google.com/document/d/1aApCk8EhMfRhIVowKLpZG1hpHHiQJxtYKwW_K5h4H4A/edit?usp=sharing

I have thought of making back end for parameterization completely
separate from the parser (or code) for the original openscad language
(i.e separate parser for the parameterization ) unlike as in
meta-model branch. By making separate parser, we can have more than
one backend parser for parsing the parameter (basically as plug-in).
The parser could populate the parameter data structure with all the
necessary details and we can use that to GUI.

To start with data structure to store the information regarding the
parameters, I would like to know is their anything like scope of
variable in openscad language and If yes then what are the different
scope that a variable can be under.

After discussion regarding project plan. I have given allot of thought to it and made following flow chart given in the doc. https://docs.google.com/document/d/1aApCk8EhMfRhIVowKLpZG1hpHHiQJxtYKwW_K5h4H4A/edit?usp=sharing I have thought of making back end for parameterization completely separate from the parser (or code) for the original openscad language (i.e separate parser for the parameterization ) unlike as in meta-model branch. By making separate parser, we can have more than one backend parser for parsing the parameter (basically as plug-in). The parser could populate the parameter data structure with all the necessary details and we can use that to GUI. To start with data structure to store the information regarding the parameters, I would like to know is their anything like scope of variable in openscad language and If yes then what are the different scope that a variable can be under.
MK
Marius Kintel
Sun, May 1, 2016 10:11 PM

Hey,

Thanks for the diagram - it makes it more clear what you’re thinking.
I think it’s a bit of a mistake to separate the parameter parsing from the main parser. Mostly because this may be a lot of work which would later have to be redone as they would share a lot of logic.

I quickly drew a diagram showing my understanding of what we talked about (see attachment).
Note that I would suggest starting with the parameter description C++ data structure and UI renderer. This means that you can discover challenges and opportunities related to the UI end of things before committing to a particular syntax for parsing.
This are just suggestions for input.

On May 1, 2016, at 05:23 AM, Amarjeet Kapoor amarjeet.kapoor1@gmail.com wrote:
To start with data structure to store the information regarding the
parameters, I would like to know is their anything like scope of
variable in openscad language and If yes then what are the different
scope that a variable can be under.

There are multiple different scopes for variables (global scope, local scope, module scope, file scope). It should be the responsibility of the parser to extract the info about scopes, making the parameter extraction a simple AST traversal operation.

-Marius

Hey, Thanks for the diagram - it makes it more clear what you’re thinking. I think it’s a bit of a mistake to separate the parameter parsing from the main parser. Mostly because this may be a lot of work which would later have to be redone as they would share a lot of logic. I quickly drew a diagram showing my understanding of what we talked about (see attachment). Note that I would suggest starting with the parameter description C++ data structure and UI renderer. This means that you can discover challenges and opportunities related to the UI end of things before committing to a particular syntax for parsing. This are just suggestions for input. > On May 1, 2016, at 05:23 AM, Amarjeet Kapoor <amarjeet.kapoor1@gmail.com> wrote: > To start with data structure to store the information regarding the > parameters, I would like to know is their anything like scope of > variable in openscad language and If yes then what are the different > scope that a variable can be under. > There are multiple different scopes for variables (global scope, local scope, module scope, file scope). It should be the responsibility of the parser to extract the info about scopes, making the parameter extraction a simple AST traversal operation. -Marius
AK
Amarjeet Kapoor
Mon, May 2, 2016 11:47 AM

On May 2, 2016 3:42 AM, "Marius Kintel" marius@kintel.net wrote:

Hey,

Thanks for the diagram - it makes it more clear what you’re thinking.
I think it’s a bit of a mistake to separate the parameter parsing from

the main parser. Mostly because this may be a lot of work which would later
have to be redone as they would share a lot of logic.

I thought of making separate parser for parsing parameters because nodes
related to parameters would not be of any use in AST of FileModule. and we
can keep the two separate
as FileModule is futher evaluted for making the geometric model and
parameter related nodes will be used in making input widgets. As, there
functionality differ so, I thought it would be better to keep both logic
and data for both ( parameter related data and data related to construction
of geometric model ) seperate.

Yes, It would increase compilation time of scad program a little and some
work have to be redone but I would decrease time for extracting parameters
as AST constructed for parameter will be small one.

This was all in mind for thinking to make separate parser for parameter

I quickly drew a diagram showing my understanding of what we talked about

(see attachment).

Note that I would suggest starting with the parameter description C++

data structure and UI renderer. This means that you can discover challenges
and opportunities related to the UI end of things before committing to a
particular syntax for parsing.

This are just suggestions for input.

Yes, it's good and would be helpful for setting milestones and making
design plan

--
Amarjeet Singh
https://amarjeetkapoor1.wordpress.com
https://github.com/amarjeetkapoor1
https://bitbucket.org/amarjeetkapoor

" There are things and there are pointers to the things. "

--
Amarjeet Singh
https://amarjeetkapoor1.wordpress.com
https://github.com/amarjeetkapoor1
https://bitbucket.org/amarjeetkapoor

" There are things and there are pointers to the things. "

On May 2, 2016 3:42 AM, "Marius Kintel" <marius@kintel.net> wrote: > > Hey, > > Thanks for the diagram - it makes it more clear what you’re thinking. > I think it’s a bit of a mistake to separate the parameter parsing from the main parser. Mostly because this may be a lot of work which would later have to be redone as they would share a lot of logic. > I thought of making separate parser for parsing parameters because nodes related to parameters would not be of any use in AST of FileModule. and we can keep the two separate as FileModule is futher evaluted for making the geometric model and parameter related nodes will be used in making input widgets. As, there functionality differ so, I thought it would be better to keep both logic and data for both ( parameter related data and data related to construction of geometric model ) seperate. Yes, It would increase compilation time of scad program a little and some work have to be redone but I would decrease time for extracting parameters as AST constructed for parameter will be small one. This was all in mind for thinking to make separate parser for parameter > I quickly drew a diagram showing my understanding of what we talked about (see attachment). > Note that I would suggest starting with the parameter description C++ data structure and UI renderer. This means that you can discover challenges and opportunities related to the UI end of things before committing to a particular syntax for parsing. > This are just suggestions for input. Yes, it's good and would be helpful for setting milestones and making design plan -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor " There are things and there are pointers to the things. " -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor " There are things and there are pointers to the things. "
MK
Marius Kintel
Mon, May 2, 2016 2:16 PM

On May 2, 2016, at 07:47 AM, Amarjeet Kapoor amarjeet.kapoor1@gmail.com wrote:

I thought of making separate parser for parsing parameters because nodes related to parameters would not be of any use in AST of FileModule. and we can keep the two separate
as FileModule is futher evaluted for making the geometric model and parameter related nodes will be used in making input widgets. As, there functionality differ so, I thought it would be better to keep both logic and data for both ( parameter related data and data related to construction of geometric model ) seperate.

OK, ldLet’s keep that discussion open.
This is also a good indicator that the parser work belongs to the 3rd milestone, when we will know a lot more about what we’re building.

-Marius

> On May 2, 2016, at 07:47 AM, Amarjeet Kapoor <amarjeet.kapoor1@gmail.com> wrote: > > I thought of making separate parser for parsing parameters because nodes related to parameters would not be of any use in AST of FileModule. and we can keep the two separate > as FileModule is futher evaluted for making the geometric model and parameter related nodes will be used in making input widgets. As, there functionality differ so, I thought it would be better to keep both logic and data for both ( parameter related data and data related to construction of geometric model ) seperate. > OK, ldLet’s keep that discussion open. This is also a good indicator that the parser work belongs to the 3rd milestone, when we will know a lot more about what we’re building. -Marius
AK
Amarjeet Kapoor
Mon, May 2, 2016 5:54 PM

Hey, I just want to ask you have added evaluator as the part of the project
(milestone 2) in the flowchart. What need to be done regarding that?

--
Amarjeet Singh
https://amarjeetkapoor1.wordpress.com
https://github.com/amarjeetkapoor1
https://bitbucket.org/amarjeetkapoor

" There are things and there are pointers to the things. "

Hey, I just want to ask you have added evaluator as the part of the project (milestone 2) in the flowchart. What need to be done regarding that? -- Amarjeet Singh https://amarjeetkapoor1.wordpress.com https://github.com/amarjeetkapoor1 https://bitbucket.org/amarjeetkapoor " There are things and there are pointers to the things. "
MK
Marius Kintel
Mon, May 2, 2016 6:33 PM

On May 2, 2016, at 13:54 PM, Amarjeet Kapoor amarjeet.kapoor1@gmail.com wrote:

Hey, I just want to ask you have added evaluator as the part of the project (milestone 2) in the flowchart. What need to be done regarding that?

We need a way of making the values from the customizer available for rendering. I’m not sure how teepee solved that in his prototype branch, but this could be part of the evaluator (the component which transforms the AST to a CSG Tree).
Alternatively, we could modify the AST directly, by injecting the values back into the AST. I’m not sure what the best solution would be. It might be beneficial to app design to keep the AST read-only for subsequent processes, and thus merge customizer values during evaluation, but it’s a bit early to say.

FYI: MakerBot Customizer, simply re-runs the entire application with the values appended to the end of the .scad code. That could be an extreme quick&dirty solution which I wouldn’t recommend.

-Marius

> On May 2, 2016, at 13:54 PM, Amarjeet Kapoor <amarjeet.kapoor1@gmail.com> wrote: > > Hey, I just want to ask you have added evaluator as the part of the project (milestone 2) in the flowchart. What need to be done regarding that? > We need a way of making the values from the customizer available for rendering. I’m not sure how teepee solved that in his prototype branch, but this could be part of the evaluator (the component which transforms the AST to a CSG Tree). Alternatively, we could modify the AST directly, by injecting the values back into the AST. I’m not sure what the best solution would be. It might be beneficial to app design to keep the AST read-only for subsequent processes, and thus merge customizer values during evaluation, but it’s a bit early to say. FYI: MakerBot Customizer, simply re-runs the entire application with the values appended to the end of the .scad code. That could be an extreme quick&dirty solution which I wouldn’t recommend. -Marius