Hi Xueqing,

For a more thorough technical overview, please see my earlier response.

On Mon, 2013-04-22 at 00:45 -0500, Ashley Shan wrote:

> Thank you so much for replying and encouragement. I was a little bit
> discouraged because everyone else in the mailing list trying to apply
> to GSoC seems to know everything. But I now have the confidence to
> work on this project! However, since I am a very inexperienced
> programmer, I plan to stick to your plan and focus on refining and
> making changes to the outline-corkboard idea. 
> 
I wouldn't let that worry you. Computer science is a broad and rich
field, and there is always something to learn. From personal adventures
in seeking funding (science related endeavors), I've found that what
matters most is the quality of your proposal. The more specific you can
be about your goals and your plan to get there, the better.
> 
> Another thing, since my school is on semester, so we have our summer
> break from May 3 to August 21. I asked in the mailing list and I think
> Cyrille said it's okay for me to shift my schedule a little bit
> earlier as long as my mentor is available at that time. I wonder,
> since you have been working on this project for a long time and will
> very likely be my mentor if I get accepted, whether you will have time
> for this project earlier than scheduled.
> 
I am currently working toward a deadline a week from today (April 29).
After that, I will be more available to help you. Keep in mind that
student applications are due by the 3rd of May. You should definitely
get started on your application(s) now. As you develop your ideas and
ask questions, I am sure that others on the list will be happy to
provide feedback.
> 
> I'm on the process of putting up an initial proposal, and here are
> some of my ideas I think we can incorporate in the outline-corkboard
> project for which I wish I could get some suggestions from you.

For specific item-by-item feedback, see below. In general, though: pick
two or three of the following items (or the examples in my other email).
Many of these items would require a pretty heft amount of time to
implement or extend. Additionally, LyX already provides support for many
of them.

> - Put the entire non-linear writing into a separate "draft" mode.
> - Track changes of draft and allow the user to undo/redo 100 times
> (+100/-100).

LyX already provides an "undo" system. Additionally, it has the ability
to merge with version control systems, which are capable of tracking the
entire history of a writing project. The following articles provide for
an overview of how this works:
http://blog.oak-tree.us/index.php/2009/02/13/subversion1
http://blog.oak-tree.us/index.php/2012/01/20/subversion2
http://blog.oak-tree.us/index.php/2012/01/30/subversion34
http://blog.oak-tree.us/index.php/2012/02/01/subversion4

My recommendation would be to take advantage of the external systems
that LyX already supports, rather than re-inventing the wheel.

It might be nice to save the undo history to the LyX-file, though, which
would allow for it to remain persistent between sessions. Along the same
vein, you might discuss ways to improve LyX's handling of version
control branches.

> - Save changes in some temporary repertoire. Hence if the thing crash,
> the user can retrieve his or her effort.

Again, LyX already does something similar. It keeps a separate copy of
the buffer, and if there is a crash, provides the ability to open the
temp copy of the document. It might be worthwhile to see if this
capability could be extended, perhaps integrating with LyX's current

> - Increase time and space efficiency by changing the way how text and
> outline are synchronized.

Not sure what you mean by this. The ideal would be to use the document
object model (DOM) for both outline and text, with outline (and
associated metadata) reflecting what is currently in the text.

> - Adjust LyX to non-linear writing by re-designing tags. For example,
> in our "draft" mode, we can have "brainstorm" tags, "outline" tags,
> "need refinement" tags to organize the process of writing.

This sounds like a very nice enhancement. There is some core work which
would need to be done in order to accomodate it, such as moving some
insets (LyX's internal representation of text) to a signal/slot type of
architecture.

> - Arrangement of yellow sticky notes: instead of let them be squares
> of the same size and lined up in order, we can allow the user to drag
> and place them to wherever he wants, such as nodes in other mind
> mapping applications.
> - Allow the user to clip texts into cards.
> - Allow the user to define his own outline independent of what is on
> the text. (I personally find myself limited once I feel I have to
> stick to the outline. I'm not sure about this idea.)
> 
Again, an interesting idea. I think we need to explore more what you
have in mind, though. Clipping texts into cards is pretty
self-explanatory, but how would you see the outline developing? When you
say "independent of what is in the text", what do you mean? Would you
advocate having a completely separate outline pane, untied to the
underlying structure? Or something of hybrid, where some outline nodes
are tied to the structure of your writing, and others are not?

Cheers,

Rob


Reply via email to