Archive for May, 2006

Failed to get SoC project

Wednesday, May 24th, 2006

Tags:After a whole day waiting, I received a mail from soc2006support@google.com:

Dear Applicant, First of all, Google and the open source organizations taking part in the Summer of Code would like to thank for applying to take part in this year’s Summer of Code. Unfortunately, your application was not one of those selected to take part in this year’s program. Universally, the quality of the submitted applications was very high, but we had a limited number of slots available. This often difficult decision was made by the organization you applied to, so any questions regarding application selection should be directed at them. We hope you’ll consider applying next year. Some of you may have received an email with incorrect text stating that one of your applications was accepted. For this, we are deeply sorry for the confusion. Kind regards, The Summer of Code Program Administration Team

My brain became blank at once. Then I accepted the result. No more to say. No application next year, because I would not be a student then in all probability. The page of SoC2006 is marked as history. I will also send all information to the one who in charge of KNotes, maybe some help. That’s all for Google Summer of Code 2006, a meteor in my life.

Advice from mailing list

Tuesday, May 23rd, 2006

Tags: Today is timeline of approved list show. After wishing me good luck, I wrote down these last effort I made. If I failed, this maybe the last post about SoC. And I will send these data to the people who in charge of the knotes improvement project. But I am still eagar to get this project, so WISH ME GOOD LUCK^_^

I send a survey to kde-linux and kdepim-user yesterday in order to find users thoughts of knotes’ categories.

Thanks to Grahma Cobb in kdepim-user. He not only give me useful suggest on categories, but also spent time on correcting my English. That’s very kind of him. I am appreciate him.
Cobb says he didn’t mind only one level category, and not mind no “new”/”delete” button. He suggested a very useful feature: filter for categories. He wrote:

I think the most important feature, however, is to be able to filter the notes view by category. For example, in Outlook I have notes which I want to keep but which I don’t want to clutter up the view normally. I have a category called “Obsolete” which I assign to the notes I don’t want to see and my normal default view only displays notes which do not have the Obsolete category.

I am thinking over this. This is a very useful feature I believe, but not clear in details. For example, how to show all notes? KNotes didn’t provide another view of notes. Maybe Kontact can help. Or you must change filter every time. But it’s really a good idea. I am willing to implement it.

Thanks to Jim Philips in kde-linux.
He suggested that KNotes/Kontact can be associated with GTD, a influential time management technique
formalized by David Allen. Last year, there is a SoC KDE project called GTD,
targeted on “make Kontact much more efficient and comfortable as “the system you can trust'’”. And he provide MonkeyGTD as a example for GTD Application. I also found some articles on GTD, which is very helpful for understanding.

General design of knotes improvement

Monday, May 22nd, 2006

Tags:

I have just finished my midterm exams, so I didn’t update blog for several days. But I am continue working on knotes in my spare time.
Now I have basicly completed the knotes code’s analyzing.

The improvement will effect following class at least:

  • KNote: Add a item or something other to choose categories.
  • KNotesApp: Improve the implement of note list(KNotesApp::updateNoteActions, NotesApp::m_noteActions, etc.). It seems that a big changed using KXMLGUIClient is needed for implement tree. Also a new initialization for single note is needed.
  • Because categories should be managed, a new config dialog is needed., or we can add a option to KNotesGlobalConfig (knotesglobalConfig.kcfg) .
  • Are the different default settings needed in different categories? Considerable.
  • I am planning to carry out the improvement in the following way:
    1. Left click on the icon will generate a menu with sub menues(categories). In fact, one note can be displayed under different sub menues.
    2. When right click on the icon, you can find a way to manage all categories, like rename. I don’t think the new and delete action is needed here. Because I preferred( so did my mentor ) Method B, which means if there is no note with this tag, the tag won’t exist. I don’t know if it is properly, and if it is can be accepted by most people. But I know the idea of tag is very popular with web2.0 like delicious. At least, I think this method has very good flexibility.
    3. When you editing a note, you can setting its tags by right click on the title or something other. The exist tags will be provided to choose, you can also create a tag.

    I have send a survey to mailinglist(kdepim-user and kde-linux). I want to know if tags-style can be accepted.

    The other thing is about knotes in kontact. I skimmed the source code, and it is seems another story… I am planning to add something like QListWidget for users to choose categories.

    Some Thought on KNotes Catagory

    Friday, May 12th, 2006

    Tags:

    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

    Tuesday, May 9th, 2006

    Tags:

    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

    Tuesday, May 9th, 2006

    Tags: 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

    Monday, May 1st, 2006

    Tags:

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