Some Thought on KNotes Catagory

KNotes uses KCal::Journal(which provides a Journal in the sense of RFC2445) to save info. After read RFC2445,I found Journal has some good properties to meet our demands, like “categories”
or “related”. These two property also can occur more than once. That’s perfect.

I summed up the main threads of bug#41341 discussion as following:

  • 1. Taking category as some kind of note, which reduce the amount of change.
  • 2. Using drag and drop to operate the entries(consider later).
  • I don’t quite agree take category as a note. The most inportant meaning of doing so is that it reduce the change, because some function like “New” or “Rename” can be reused.
    But I don’t think so. In fact, I found the functions can be reused may be only “New” ,”Rename”. Surely many function can be override, but many other function like “Delete” will be changed a lot.

    Another question is if it is necessary to set up a “ROOT” note as the parent of all notes and categories? Otherwise if you delete a category note and want to save the notes, how can you use same function move these notes to root or to another category? It’s certain that a if can work, but I don’t like it… But if a ROOT note must be added, there will be a extra work on upgrade.

    After thinking over the serveral method, I found the focus is on “How to store category information”. There are serveral ways:

    Method A:
    Using category node. Store related information in parent using property “related”.
    Advantage:

  • 1. Some functions can be reused.
  • 2. The structure of logic is very clear.
  • 3. Advanced in the efficiency of most operations.
  • Disadvantage:

  • 1. Is that a ROOT note needed?
  • 2. In my opinion, most functions must be rewrited all the same.
  • 3. In any case, category is not a note. And no class fit for inherit. Strange feeling…
  • Method B:
    Store related information in notes using property “categories”. In fact, no catagory instance exists.
    Advantage:

  • 1. The operation of single note is very easy to implement.
  • 2. The operation of catagory is easy to implement, but low efficiency.
  • Disadvantage:

  • 1. Maybe a lot of work needed.
  • 2. Not clear structure of logic.
  • 3. Low efficiency(at most o(m*n) in searching).
  • 4. Difficult to implement more than one levels.
  • 5. Can’t keep the sort.
  • More:
    Because there aren’t many notes to deal with, I don’t think the efficiency is very important here.

    Method B+:
    On the basis of Method B, add temperory catagories instance to assist.
    Advantage:

  • 1. High efficiency.
  • 2. Clear structure of logic.
  • Disadvantage:
    How to implement, seems a little complex… Maybe counteract the advantage of Method B.

    Method C:
    Bring in catagory instance.
    Advantage:

  • 1. Very clear structure of logic.
  • 2. High efficiency.
  • Disadvantage:
    How to implement….

    The four method below is my initial ideas. Please tell me your opinion.
    These days I will continue study the source code and method of developing kdepim.

    Setting up timeline for soc project

    May 10th: Completed the resume and send it here as a page. Done
    May 12th: Completed the detail version of CV.Maybe not needed, so delay it
    The following week(week of exams): Describle the details of my opition on the project.
    After exams, more will be done before May 22……

    Apply for Google Summer of Code 2006

    I heard about Google Summer of Code 2006 last month. After scaning the ideas, I feel terrible, for it seems too difficult for me to solve any of them. Although I have spend more than ten years on programming, my improvement is so limited that I cannot claim that I am an experienced programmer. However, it is the my learning skills,which enabled me to keep pace with the rapid software development,that strengthen my confidence to solve a large number of problems in the learning process. I believe that I am a bright and passionate learner , and dedicate myself to the practise of programming. Nevertheless, destiny always avoid me to achieve my goals—for example,I was defeated in NOI five years ago,and then missed three chances of attending the Department of Computer Science & Technology so that I have to fight alone in my campus life, which is the best period to improve myself.

    There is no deny that I donot satisfy my ability now and eager to have greater advancement. Unfortunately, I doubt if I can successfully apply for a soc project before last night. But I decided to have a try at last when an idea striked my mind that it is surely that no result if you don’t try, isn’t it?

    I have applied for “KNotes Improvement” in KDE projects,which is very similar with a toy of mine. In addition,this project request a catalog function, which I would like to carry out by using tags that I wrote to organize the information—-what is my incipient design.

    Last night, I almost failed to submit application. When I decided to apply, I found that the timeline of proposals due by 16:00 Pacific Daylight Time May 8th(now update to 11:00 Pacific Daylight Time May 9…) and the school network would be down in 2 hours . Futhermore, I was shocked because I had not prepared anything yet. Two hours later, I was exhausted, but submitted my application successfully, just 8 minutes before network down.

    That is why the application I submitted last night is full of errors. (I even mistakenly turned GMT for UTF … )I will try my best to finish the task if I get it. Bad beginning, but ending must be fine. The more work will be done in the following days, for instance,I have to set up a page for soc, use a better way to express my idea, read source code, contact the KNotes developer, and so forth.

    Although there are four exams in this week, I will do my endeavor to win the task.

    Just read

    “This was a special case because we have the photos on the Internet, and because his mother was so persistent,” Huang said.

    Redirect homepage to here

    Because I am too lazy to build another page for the website, so I decided use this blog as the default page in my website.
    And you can enter my Chinese Blog by using http://blog.yasker.org/,or click the link on the right just below the “Personal”.
    However, I won’t worried about how to construct a homepage for website again.

    OK, it’s opened.

    Because of GFW and other reasons, I only post four articles in my last English blog. I wish this time will be better.
    But I haven’t decide the topic yet. I don’t want to only translate things I post in my Chinese blog. Maybe I will wrote some technical articles, or something isn’t properly to post in my Chinese blog.
    However, this blog is opened. So, let’s begin writing….^O^