From Fedora Project Wiki

Revision as of 11:58, 11 May 2010 by Kay21s (talk | contribs)

About me

  1. Name: Kai Zhang
  2. Email:
  3. wiki username: kay21s
  4. IRC nickname:
  5. primary language: Chinese, It is fine with me to use English
  6. Located: China, My time zone is GMT+08:00 and I will work in afternoon and night.
  7. Work: I have not participated open-source project before. However, I have done some projects based on several open-source project. Such as Flex, Libnids, Libumem, Ntop, Nprobe and so on. I think it is a great thing to work on an open-source software and I feel excited at the thought of millions of people around the world will use the code I wrote. What's more, working with experienced mentors will make me progress.

About my project

  1. Project Name: Add Yahoo chat room support into Libyahoo2
  2. Idea page: [[1]]
  3. Libyahoo2 is a Yahoo messaging protocol library implemented in C. As the Yahoo! messaging protocol(YMSG) is updated to version 16, there are a number of differences between it and the protocol currently implemented in Libyahoo2. My project is to work on the chat room module of Libyahoo2 to get it to support YMSG 16. Much of the work needs to be done by studying protocol dumps of the windows based yahoo messenger with a new version and then interpreting and writing similar functionality. Several messengers, including freehoo and ayttm which are in Fedora, is based on the Libyahoo2. So, if the Libyahoo2 doesn't updated to support the new version of YMSG 16, these clients will not be useful any longer.In this project, C is the primary language in which the Libyahoo2 is implemented. Wireshark and Tcpdump are the common tools to capture packets to analysis the YMSG protocol. Automake and autoconfig are used for generating the configure and Makefile.
  4. Timeline:
    • Week 1(May 24 - May 31): Analyse the YMSG 16 protocol to find out the new features and changes.
    • Week 2(June 1 - June 7): Implement the function of getting chat room list.
    • Week 3(June 8 - June 14): Implement the function of joining a chat room
    • Week 4-5(June 15 - June 30): Implement the function of parsing the system messages
    • Week 6(July 1 - July 7): Implement the function of exchanging messages in a chat room
    • Until now, 90% of the work has been done.
    • Week 7(July 8 - July 14): Add keep alive message support.
    • Week 8(July 15 - July 21): Implement the function of leaving chat rooms
    • Week 9-10(July 22 - August 9): Debug previous work and capture the packages it sends out to verify their accuracy.
  5. About myself:I am on my first year of pursuing master's degree. My lab is focusing on building parallel NIDS on multi-core platforms, I did some work in it and based on it, I built a high-performance parallel HTTP parser which can achieve at least 2Gbps line rate in a harsh environment. I am experienced in C programming and familiar with network domain knowledge. Wireshark and tcpdump are tools which are usually used, regular expressions are also used frequently in locating a particular pattern when debugging the system. I have also read the HTTP and TCP RFCs and have the ability to learn other protocols. Many of the skills used in this project is similar with that in my previous work. In conclusion, it is ideal for me to work on this project.

I and the Community

  1. If my project is successfully completed:
    • If the project is completed, many of the Yahoo messengers based on Libyahoo2 will be able to support the new YMSG protocol, such as freehoo and ayttm. That will facilitate many people who are using Fedora as their OS, because they will not be troubled by switching to Windows when they need to use Yahoo! messenger to communicate with others. The Libyahoo2 will also benefit other Linux users. What's more, if these common and fundamental functions are not supported, it will block Linux to get more popular.
  2. If I get stuck on my project and my mentor isn't around. I will ask folks on the mailing list, on the forum of Yahoo! coder's cookbook or communicate with the ones who are working on the other projects of Libyahoo2, I believe I will overcome it.
  3. In addition to the required blogging minimum of twice per week, I will send a mail when a main function module has been completed and when I confronted with any problems which I feel uncertain about it.


  1. Answers:
    • Yes, I have installed Libyahoo2, Wireshark, Tcpdump and other tools for development on my computer.
    • Yes, I have contact with Siddhesh Poyarekar, who is going to be the mentor of the project and has given me lots of guidence.
  2. T-shirt size: 175/96A
  3. Learning experience as a child: The magic cube. At first, I supposes it without any regular rules. However, when my father showed me he could work this out in 1 minute and taught me there were some rules and formulas needed to remember, I got fascinated with it. When I grew up, I decided to learn computer science because I think everything has an algorithm to implement, just as the magic cube.
  4. I like challenging and I have the confidence to do it well:-)