Anda di halaman 1dari 4

Name: Anton Flavius - Valentin IRC: fanton@freenode.net University: Politehnica University of Bucharest Email: fvanton@yahoo.com , flavius.anton@cti.pub.

ro Telephone: +4 0745 758 953 Timezone: GMT+2 Occupation: I am currently in my first year of Computer Science. The semester will end on 8th of June. Summer activities: None planned so far (if I intend to plan anything I will consider the GSoC program first). However, since the start of the coding period overlaps with my final exams period ( from 21th of May until the 5th of June) there will be an approximative two week period during which I will not be able to fully commit to the project. After the 5th my vacation will begin and I will be able to fulfill my duties entirely.

Proposal
My proposal is about improving the actual chat log viewer. The current problem is there is no way browsing conversations with multiple contacts at once, such as a tree hierarchy of all logs (so you don't have to use View Log dialog for each buddy). My idea is to add a chat log viewer with multiple functionality. Thus, the user can use both the old feature of seeing logs grouped by contacts and he will also have the possibility of browsing through all logs sorted by date or protocol used.

Main features :
Viewing logs grouped not only by contact, but: by date the user have to select a day from a calendar menu and all conversations started on that day will be showed up; by protocol used the user have to select a specific protocol and he will see the last conversations made on that protocol sorted by date/by account. by user's account so let's say someone has three accounts using the same protocol, but just wants to see the logs only for one account. by frequency the ones with whom the user chatted the most will be showed first in the list, unless another filtering option is selected. Intelligent contact association If the user has two or more contacts with approximatively the same name, they could be merged into the same log. So if one contact is fvanton@yahoo.com, another one is f.v.anton@gmail.com and another one fanton@freenode.net they will be shown as the same person Flavius Anton, with a small icon before indicating

which protocol have been used. If, by mistake, two contacts of totally different people are merged, the user will have the possibility to separate them. Also, if one person have two accounts, but with totally different names, such as fvanton@yahoo.com and pidgintest123@yahoo.com, the user can use a Merge contacts log option, and from that moment on, the two buddies will be shown in the log viewer as if they represent the same contact. Real-time searching The searching through log history will display real-time results, as the user types in. The output will be sorted by most-recent hits and the user doesn't have to scroll down through all the log just because one hit; he will see just a few lines before and after the text he searched for. If he wants to see the entire log, a button saying See full conversation has to be pressed. Same feature will be applied for searching through contacts.

Further Details
The Graphical Interface will be made as simple to use as possible. On the left side it will be a panel displaying buddy names sorted by most recent conversation (default). Above this will be a button that, once pressed, will display a pop-up menu for the user to chose another sorting option for contact list (Top contacts most frequently chatted with, Alphabetically, Most recent talked to). Besides this, the user can select if he wants to see logs grouped by contacts, by protocol, by account used or by a specific date; a pop-up calendar will appear and any date can be selected. At the bottom of the panel described above will be a search box for finding conversations with a specific buddy, no matter which sorting option the user have selected. So, it will be possible to search for all conversations, only for one protocol, on any given day, with a certain buddy. Of course, the results will be displayed real-time, as the user types in. In the middle-up area the user can see his selected buddy's name together with all his ID's on all protocols. This feature will have in background an algorithm of finding multiple contacts for the same person and merging their logs. The details on how much those name should differ to be merged-up will be discussed with the mentor, but probably if the names are 80-90% the same, they belong to the same contact. Also, the user will have the possibility to manually merge contacts or, if some of them have been merged mistakenly, to separate one from another. The biggest part of the window will be used by the actual conversation log and should be placed in the middle. My idea is to allow the user to scroll down from the newest log to the oldest, but without loading all logs in memory, just a few of them. Once the user scrolls down, more logs will be loaded and the oldest will be freed, thus assuring that this will not result in heavy memory usage. The user doesn't have to know this, his experience won't be affected at all. In the upper right corner another search box will be placed, this time only for searching text inside conversations. If any kind of filtering is active the results will be displayed

according to it. If not, the look-up will be done through all logs. The output will be presented similar to the one done by grep -$N <text_to_search>, where $N can vary from 3 to 5. Once again, outcomes will be displayed real-time, while the user types in.

Timeline
Weeks 1 3: As said before, I will not be able to commit fully to my tasks because of my final exams. During this period I will try to implement partially (or fully) the main interface of the chat log viewer (having the actual one as a model). Weeks 4 6: I will finish the main interface and will also add the possibility of viewing logs grouped by buddy, protocol or account used to chat. Weeks 7 - 8: During this time I will work on the more advanced filtering options such as Most frequently talked to and the possibility of choosing one date from the calendar and show up all conversations started that day. Weeks 9 10: These weeks I will work on the Merge contacts logs feature together with the search options. At mid-term the chat log viewer should be almost fully functional. Weeks 11 13: During this period I will finish all the remaining small things, such as shortcuts, a refresh button, a button for viewing log in HTML etc. Weeks 14 15: Proper testing, arranging code, writing small documentation for potential future developers. After: I will keep fixing any bugs related to the code, and hopefully continue development on the chat log viewer.

Availability
The above timeline it's flexible and can change according to my mentor's suggestions. As said before, I have the entire summer available for the project. This will be my main activity during the summer; the first two weeks (May 21to June 4) it will be the Exam period at the university, so I estimate having up to 15 hours per week left for working on GSoC, and maybe taking a few days off); after that, I can commit for a 40 hours per week work time. In addition, if complications occur and I will encounter unexpected problems, I can push my working time up to 10 hours per day, if needed. However, it is still possible that around 25th of July to take a few days off, not more than 3 or 4.

Why should you choose me?


I am a 19 year old student from Romania who has just started his ascension in the IT field. At this step I take every occasion to improve my understanding of this line of work. Either if it's going to presentations, meeting interesting people, getting involved in projects or coding on my own, I try to learn everything I can. I'm not afraid of working hard, I have good co-operational skills and I always like to receive feedback, so I can improve. I do not have any previous experience on working on an open source project before, but I will try hard and meet up with your standards. Being a first year student doesn't yield too much experience so I'll try to make my first steps into the open source world with the Pidgin community! I will do what it takes in order to improve, and to become an adequate contributor to Pidgin. In fact, I have already done my first steps, thanks to the Community and Develpment Lab[1], held by ROSEdu[2] (Romanian Open Source Education). I am a proud student of this program since February 2012, and the project I have been assigned to work on is also Pidgin. It is a great occasion before the GSoC for me, because I got to learn about working in an open-source community, using version-control systems like git, asking for help on mailing lists and other stuff like that. So I am already familiar with the source code and I also sent my first patch[3] that also got accepted. Our main activity here is to fix whatever bugs we can and make whatever improvements we can so I can start working on the new chat log viewer even before the official Coding period starts. I am confident that I have the required skills and enthusiasm to be the perfect student for this project.

Known programming languages and technologies


C intermediate (more than 1 year of experience) C++, Python beginner GTK, glib beginner (started learning together with the CDL course mentioned above)

Links
[1] http://cdl.rosedu.org [2] http://www.rosedu.org [3] http://developer.pidgin.im/ticket/2497

Anda mungkin juga menyukai