[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lyx-devel
Subject:    Re: GSoC idea: UI improvements and non-linear writing enhancements (Technical)
From:       Ashley Shan <xueqing.shan () vanderbilt ! edu>
Date:       2013-04-25 4:47:26
Message-ID: CAES64ThtCtpqbwqwd_6ejJSzp8kjp6RLqCSFg2V06cDyHo755A () mail ! gmail ! com
[Download RAW message or body]

Hi Rob,

Thank you for replying in such a busy schedule. Your emails are always
helpful in clarification. I am working on my proposal and hopefully I can
have a pretty much complete draft by the end of this week. I plan to submit
and make further changes based on feedback I got if any.

*Regarding time commitment*
I have indicated this point in my proposal that I will have summer courses
for 6 weeks, hence I sort of structured my schedule for the project
accordingly. I plan to finish the majority of the work in the first 7
weeks, during which I can work as much as 8 hours a day and 7 days a week.
Then, when I'm having summer courses, I plan to work part-time, around
15-20 hours a week for 6 weeks. I also put two buffer weeks in the 6 weeks
of class. After that, I have another 2 free weeks, which I plan to put the
last part of the project there. Hence, there are 15 weeks in total on my
proposal.

*Regarding setting milestones*
Currently I'm buried in finals so I haven't got time to systematically
familiarize myself with LyX internals. I searched the web but didn't see
any clear route map about where I should get started or at least a good
overview for a beginner of LyX so I can plan my project. I have emailed
Abdel Younes about LyX internals. I will continue to look for resources.
I would appreciate if we can set up a Google Chat some time next week after
your deadline. Right now, I can work on other parts first and get help from
Abdel and other people in the mailing list.

*Regarding proposal details*
I have finished my schedule for first week; it has daily milestones. I plan
to familiarize myself with LyX development, Qt, and git in the first week
(the basics). I plan to work on the second or the second and the third week
tomorrow, which would have daily milestones as well if they are devoted to
studying the basics. I have two buffer weeks, weekly progress reports,
three progress evaluations (including one mid term), and one final
evaluation.
I realize that I know very little about terminologies, but I'm trying to be
as strict as possible regarding term usage.

I look forward to hearing from you. Good luck with the project you are
working on.

Xueqing Shan
------------------------------------
*Xueqing Shan*
Vanderbilt University, '16


On Wed, Apr 24, 2013 at 10:16 AM, Rob Oakes <lyx-devel@oak-tree.us> wrote:

> Hi Xueqing,
>
> Again, this is a brief reply. I've got a massive deadline looming on
> Monday and I will not have much time to respond until after then.
> Hopefully the notes below will be enough to get you started. If not, let
> me know and we can set up a time to visit via Skype/Google Chat.
>
> A lot of this would be much faster to explain than to write out.
>
> On Tue, 2013-04-23 at 01:18 -0500, Ashley Shan wrote
>
> > Thank you for all the information and materials. It took me a while to
> > read all your emails and linked blogs/infos, so please correct me if
> > I'm being unclear or if I omit anything. Again, thank you for your
> > patience and help.
>
> Glad to hear that they were helpful.
>
>
> # Proposal Contents #
> >
> > Non-linear writing process and the goal of this project
> > There are several ways for a writer to write creatively, and for this
> > project, if I'm understanding you correctly, there are two major
> > functionalities you want to achieve from a non-linear supportive
> > computer program: 1) to integrate the entire writing process
> > (collecting information, playing with ideas, and actually writing)
> > into one program, and 2) specifically, to provide a more intuitive way
> > for the user to "play with ideas".
>
> This is correct. The tools in my original proposal are geared toward
> "playing with ideas" and "actually writing." The first, "collecting
> information," is something I would also like to add support for, but
> should probably remain outside of the scope of the project aims. It is a
> project unto itself.
>
> > Hence, if we are to finish up the existing work, the project would
> > focus on one of the following:
> > 1. Modifying the LyX model (make QObject the base class of text/note
> > insets so that the program doesn't generate a new model each time the
> > text was changed.
> > 2. Modifying the corkboard view to use QGraphicsScene, for which we
> > can include functionalities such as "clipping texts into cards", "more
> > flexible arrangement of cards (&the hierarchical view)", and "more
> > flexible notecard views".
>
> Right.
> >
> > Regarding my GSoC application, I wish to get your suggestions for 1)
> > whether I should focus on both or only one of the goals mentioned
> > above and 2) whether there are other functionalities that I've raised
> > in previous emails and will be clarified in the rest of this email
> > which may be incorporated into the main goals.
>
> This depends upon how comfortable you feel with your programming
> abilities. If I were doing the work, I would probably need about a month
> to modify the LyX model so that it can utilize signals/slots. From
> there, it would be the work of a few weeks to modify the corkboard to
> use QGraphicsScene and to provide for the additional features. In total,
> this would mean about six weeks of part time (15 to 20 hours) work.
>
> As a rough estimate, I frequently assume it will take someone less
> familiar with the code between twice and three times as long to finish,
> or between 12 to 18 weeks. The first half could be spent on the LyX
> model, the second on the corkboard improvements.
>
> The model is by far the more delicate of the two, as it involves
> re-working several core classes in LyX. (This could result in breakages
> that would need to be addressed.)
>
> If you wished to be more conservative, you could focus your proposal on
> improving the model to use QObject.
>
> As you are trying to plan, I would contact Abdel Younes
> (younes@lyx.org), I have cc:ed him on this email. He is familiar with
> how LyX's internals  work and could provide guidance as you think about
> the design of your code. He's also in a good position to know about how
> much time it would take to implement the model changes, and the
> subsequent implications that would have for your proposal.
>
> I also have some ideas on this might be done, which I will try and flesh
> out in an email early next week. As you visit with Abdel, it would be
> good to have milestones (or specific tasks with "deliverables") that you
> can include in your proposal. For the first one or two weeks, it might
> be good to break these down into daily milestones. Later, it's not
> necessary to be quite so detailed.
>
>
> # Proposal Suggestions #
>
> I've now seen a few proposals that students have submitted for LyX, and
> in general, I've found the description of milestones and deliverables to
> be vague. The more specific you can be about your work product
> (especially right up front), the better it looks.
>
> Instead of using "Study LyX model internals" for your first week, it
> would be much better to use that as a description for the week, and the
> provide daily milestones and deliverables:
>
> Week 1: Draft QObject Based Design for Insets and LyX TocModel
>
> Day 1: Document existing inset and toc model structure, create class
> diagram showing relevant interactions
>
> Day 2: Create proposed design spec reworking insets and toc model to use
> QObject as a base class, determine signals/slots needed for corkboard,
> draft, and outline enhancements
>
> Day 3: Meet with mentor to discuss design, adjust based on feedback.
> Begin Qobject implementation in core inset classes. Submit patch for
> review to lyx-devel.
> ...
>
> (I would consider the timeline above to be fairly credible and you might
> use it as a jumping off point for your project.)
>
> For each day, I would recommend that you create something concrete, even
> if it is very simple (such as a diagram). This makes it much easier for
> me and the other mentors to help you and gives us something concrete to
> critique. It also creates documentation that might be useful in the
> future as we attempt to explain to others how LyX works.
>
> (After the first week or two, it's more appropriate to have larger
> milestones.)
>
>
> # Conclusion
>
> I will respond to the other points in your email as soon as I can. In
> the meantime, you may want to contact Abdel and get his input about
> QObject in the core.
>
> Cheers,
>
> Rob
>
>
>
>

[Attachment #3 (text/html)]

<div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Rob,</div><div \
class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" \
style="font-size:small">Thank you for replying in such a busy schedule. Your emails \
are always helpful in clarification. I am working on my proposal and hopefully I can \
have a pretty much complete draft by the end of this week. I plan to submit and make \
further changes based on feedback I got if any.</div> <div class="gmail_default" \
style="font-size:small"><br></div><div class="gmail_default" \
style="font-size:small"><b>Regarding time commitment</b></div><div \
class="gmail_default" style="font-size:small">I have indicated this point in my \
proposal that I will have summer courses for 6 weeks, hence I sort of structured my \
schedule for the project accordingly. I plan to finish the majority of the work in \
the first 7 weeks, during which I can work as much as 8 hours a day and 7 days a \
week. Then, when I&#39;m having summer courses, I plan to work part-time, around \
15-20 hours a week for 6 weeks. I also put two buffer weeks in the 6 weeks of class. \
After that, I have another 2 free weeks, which I plan to put the last part of the \
project there. Hence, there are 15 weeks in total on my proposal.</div> <div \
class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" \
style="font-size:small"><b>Regarding setting milestones</b></div><div \
class="gmail_default" style="font-size:small">Currently I&#39;m buried in finals so I \
haven&#39;t got time to systematically familiarize myself with LyX internals. I \
searched the web but didn&#39;t see any clear route map about where I should get \
started or at least a good overview for a beginner of LyX so I can plan my project. I \
have emailed Abdel Younes about LyX internals. I will continue to look for \
resources.</div> <div class="gmail_default" style="font-size:small">I would \
appreciate if we can set up a Google Chat some time next week after your deadline. \
Right now, I can work on other parts first and get help from Abdel and other people \
in the mailing list.</div> <div class="gmail_default" \
style="font-size:small"><br></div><div class="gmail_default" \
style="font-size:small"><b>Regarding proposal details</b></div><div \
class="gmail_default" style="font-size:small">I have finished my schedule for first \
week; it has daily milestones. I plan to familiarize myself with LyX development, Qt, \
and git in the first week (the basics). I plan to work on the second or the second \
and the third week tomorrow, which would have daily milestones as well if they are \
devoted to studying the basics. I have two buffer weeks, weekly progress reports, \
three progress evaluations (including one mid term), and one final evaluation. </div> \
<div class="gmail_default" style="font-size:small">I realize that I know very little \
about terminologies, but I&#39;m trying to be as strict as possible regarding term \
usage.</div><div class="gmail_default" style="font-size:small"> <br></div><div \
class="gmail_default" style="font-size:small">I look forward to hearing from you. \
Good luck with the project you are working on.</div><div class="gmail_default" \
style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"> \
Xueqing Shan</div><div class="gmail_extra"><div><div dir="ltr"><font face="arial, \
helvetica, sans-serif">------------------------------------</font><div><font \
face="arial, helvetica, sans-serif"><b>Xueqing Shan</b></font></div> <div><font \
face="arial, helvetica, sans-serif">Vanderbilt University, \
&#39;16</font></div></div></div> <br><br><div class="gmail_quote">On Wed, Apr 24, \
2013 at 10:16 AM, Rob Oakes <span dir="ltr">&lt;<a \
href="mailto:lyx-devel@oak-tree.us" \
target="_blank">lyx-devel@oak-tree.us</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
 Hi Xueqing,<br>
<br>
Again, this is a brief reply. I&#39;ve got a massive deadline looming on<br>
Monday and I will not have much time to respond until after then.<br>
Hopefully the notes below will be enough to get you started. If not, let<br>
me know and we can set up a time to visit via Skype/Google Chat.<br>
<br>
A lot of this would be much faster to explain than to write out.<br>
<br>
On Tue, 2013-04-23 at 01:18 -0500, Ashley Shan wrote<br>
<div class="im"><br>
&gt; Thank you for all the information and materials. It took me a while to<br>
&gt; read all your emails and linked blogs/infos, so please correct me if<br>
&gt; I&#39;m being unclear or if I omit anything. Again, thank you for your<br>
&gt; patience and help.<br>
<br>
</div>Glad to hear that they were helpful.<br>
<br>
<br>
# Proposal Contents #<br>
<div class="im">&gt;<br>
&gt; Non-linear writing process and the goal of this project<br>
&gt; There are several ways for a writer to write creatively, and for this<br>
&gt; project, if I&#39;m understanding you correctly, there are two major<br>
&gt; functionalities you want to achieve from a non-linear supportive<br>
&gt; computer program: 1) to integrate the entire writing process<br>
&gt; (collecting information, playing with ideas, and actually writing)<br>
&gt; into one program, and 2) specifically, to provide a more intuitive way<br>
&gt; for the user to &quot;play with ideas&quot;.<br>
<br>
</div>This is correct. The tools in my original proposal are geared toward<br>
&quot;playing with ideas&quot; and &quot;actually writing.&quot; The first, \
&quot;collecting<br> information,&quot; is something I would also like to add support \
for, but<br> should probably remain outside of the scope of the project aims. It is \
a<br> project unto itself.<br>
<div class="im"><br>
&gt; Hence, if we are to finish up the existing work, the project would<br>
&gt; focus on one of the following:<br>
&gt; 1. Modifying the LyX model (make QObject the base class of text/note<br>
&gt; insets so that the program doesn&#39;t generate a new model each time the<br>
&gt; text was changed.<br>
&gt; 2. Modifying the corkboard view to use QGraphicsScene, for which we<br>
&gt; can include functionalities such as &quot;clipping texts into cards&quot;, \
&quot;more<br> &gt; flexible arrangement of cards (&amp;the hierarchical view)&quot;, \
and &quot;more<br> &gt; flexible notecard views&quot;.<br>
<br>
</div>Right.<br>
<div class="im">&gt;<br>
&gt; Regarding my GSoC application, I wish to get your suggestions for 1)<br>
&gt; whether I should focus on both or only one of the goals mentioned<br>
&gt; above and 2) whether there are other functionalities that I&#39;ve raised<br>
&gt; in previous emails and will be clarified in the rest of this email<br>
&gt; which may be incorporated into the main goals.<br>
<br>
</div>This depends upon how comfortable you feel with your programming<br>
abilities. If I were doing the work, I would probably need about a month<br>
to modify the LyX model so that it can utilize signals/slots. From<br>
there, it would be the work of a few weeks to modify the corkboard to<br>
use QGraphicsScene and to provide for the additional features. In total,<br>
this would mean about six weeks of part time (15 to 20 hours) work.<br>
<br>
As a rough estimate, I frequently assume it will take someone less<br>
familiar with the code between twice and three times as long to finish,<br>
or between 12 to 18 weeks. The first half could be spent on the LyX<br>
model, the second on the corkboard improvements.<br>
<br>
The model is by far the more delicate of the two, as it involves<br>
re-working several core classes in LyX. (This could result in breakages<br>
that would need to be addressed.)<br>
<br>
If you wished to be more conservative, you could focus your proposal on<br>
improving the model to use QObject.<br>
<br>
As you are trying to plan, I would contact Abdel Younes<br>
(<a href="mailto:younes@lyx.org">younes@lyx.org</a>), I have cc:ed him on this email. \
He is familiar with<br> how LyX&#39;s internals  work and could provide guidance as \
you think about<br> the design of your code. He&#39;s also in a good position to know \
about how<br> much time it would take to implement the model changes, and the<br>
subsequent implications that would have for your proposal.<br>
<br>
I also have some ideas on this might be done, which I will try and flesh<br>
out in an email early next week. As you visit with Abdel, it would be<br>
good to have milestones (or specific tasks with &quot;deliverables&quot;) that \
you<br> can include in your proposal. For the first one or two weeks, it might<br>
be good to break these down into daily milestones. Later, it&#39;s not<br>
necessary to be quite so detailed.<br>
<br>
<br>
# Proposal Suggestions #<br>
<br>
I&#39;ve now seen a few proposals that students have submitted for LyX, and<br>
in general, I&#39;ve found the description of milestones and deliverables to<br>
be vague. The more specific you can be about your work product<br>
(especially right up front), the better it looks.<br>
<br>
Instead of using &quot;Study LyX model internals&quot; for your first week, it<br>
would be much better to use that as a description for the week, and the<br>
provide daily milestones and deliverables:<br>
<br>
Week 1: Draft QObject Based Design for Insets and LyX TocModel<br>
<br>
Day 1: Document existing inset and toc model structure, create class<br>
diagram showing relevant interactions<br>
<br>
Day 2: Create proposed design spec reworking insets and toc model to use<br>
QObject as a base class, determine signals/slots needed for corkboard,<br>
draft, and outline enhancements<br>
<br>
Day 3: Meet with mentor to discuss design, adjust based on feedback.<br>
Begin Qobject implementation in core inset classes. Submit patch for<br>
review to lyx-devel.<br>
...<br>
<br>
(I would consider the timeline above to be fairly credible and you might<br>
use it as a jumping off point for your project.)<br>
<br>
For each day, I would recommend that you create something concrete, even<br>
if it is very simple (such as a diagram). This makes it much easier for<br>
me and the other mentors to help you and gives us something concrete to<br>
critique. It also creates documentation that might be useful in the<br>
future as we attempt to explain to others how LyX works.<br>
<br>
(After the first week or two, it&#39;s more appropriate to have larger<br>
milestones.)<br>
<br>
<br>
# Conclusion<br>
<br>
I will respond to the other points in your email as soon as I can. In<br>
the meantime, you may want to contact Abdel and get his input about<br>
QObject in the core.<br>
<br>
Cheers,<br>
<br>
Rob<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic