Summer Coding 2010 proposal - CHASM-mfm

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(The Project)
m (The Project)
Line 15: Line 15:
  
 
Gantt chart [https://www.muteddisk.com/timeline.html].
 
Gantt chart [https://www.muteddisk.com/timeline.html].
 
  
  

Revision as of 18:18, 19 May 2010

Contents

About Me

www.muteddisk.com
  1. My name is Matt Mooney
  2. My email address is mfmooney@gmail.com
  3. My wiki username is mfm
  4. My IRC nickname is _mfm_
  5. My wiki page is https://fedoraproject.org/w/index.php?title=User:mfm
  6. My primary language is English
  7. Location, and what hours tend to work: California, USA. 13:00-3:00 GMT-7
  8. I am a developer coding mainly in c/c++, of course I can do scripting too. I tend to spend my time studying operating systems, namely, the Linux Kernel. I have a few trivial patches in the kernel already, with a couple more in Andrew Morton's tree awaiting the merge window. Recently I made significant documentation changes to one of the kbuild docs, which should also be in the next merge. I also have attempted to fix a few bugs in other projects that I have experienced; however, after downloading the repository and checking the log, I have so far been a few days or weeks too late.

I am an open source enthusiast and would love to contribute to more projects. Fedora is one of the distributions I use, and is currently the distribution I install on all of my non-technical friends systems to get them to switch to open source.

The Project

CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution. The idea is mentor suggested [1].


Responsibilities

I will be responsible for implementing a segment of an application-level protocol designed by the project creators. The new protocol will facilitate the efficient communication between all nodes in the system and provide a specification for node interaction. The segment I will be primarily responsible for, is the communication between the upstream and downstream nodes in the system. A time sequence diagram for this segment can be found here [2]. I also will be responsible for developing a library that will simplify the usage of Unix domain sockets for message passing within the system. Test code, probably along the lines of a mock object, and documentation will also be of a primary concern.


Timeline

Gantt chart [3].


Experience

I have developed a small program in the same domain before, but it is honestly trivial and does not compare. Like most students, I have written a lot of small programs in various programming language paradigms, and I also have done some larger projects that were deadline oriented. Last year I had an internship at a major corporation fixing bugs. Through the experience I acquired a better understanding of the TCP/IP protocol suite, and, as a result, how to use tools such as tcpdump and wireshark to debug applications. Following and slowly contributing to the Linux Kernel, however, has lead to the biggest growth for me as a developer. It has given me an understanding of how large-scale systems evolve, and the professional development methods used to attain the end result.
Nevertheless, I still lack the necessary credentials for obtaining a position in open source. Depending on the outcome, I hope this opportunity will open some doors for me so that I may contribute to other open source projects and, eventually, maintain a few packages. I truly believe that I will be able to successfully complete the project simple due to being a highly motivated individual and for the absolute _passion_ I have for systems programming.

Community Benefit

1.
Q: If your project is successfully completed, what will its impact be on the Fedora community?
Ben Boeckel (mentor):
Hopefully it will make the mirrors more reliable (I know that I get 404s every now and then when the mirrors are in the middle of a sync). Also, it will decrease the time it takes updates to be pushed out to mirrors; currently it takes 15 minutes to do a simple check if there is anything to do. Mirrors will also be able to verify that they have correct information (hash checking is currently discouraged for Fedora right now). What users/developers will see is faster propagation of updates across servers. [And] sysadmins will have better performance since we don't thrash the disk cache when doing a check for updates (should also help with disk lifespan).
Matt Mooney (me):
The CHASM solution will provide a robust mirroring infrastructure that will overcome the flaws associated with the current method of mirroring. Each deficiency has been systematically analyzed so that none of the previous implementation problems within the old method will be repeated. The protocol is designed specifically for this purpose and should provide a modern solution to the problem.
2. If I were to get stuck and the mentors we not around, I would first ask the fedora-summer-coding mailing list or IRC, if that did not solve my problem, I would pose my question to a mailing list that is of the same domain as the question. Of course, this is only after I use all of my own resources to solve the problem, but I guess if I was stuck that would mean I already did.
3. I will ask the mentors to create a mailing list for the project so that any interested parties may subscribe.

Miscellanea

    • I am somewhat of a command line junkie so I do not foresee this as being an issue.
    • I have met both of the project mentors, Robert and Ben, through IRC, where we discussed the project in greater detail.
  1. X-Large
  2. One of my great learning experiences from my childhood was playing music. I started to play the piano around the age of 5 and continued for about 4 years (I did go on to play the drums in elementary school and one year in junior high). Playing the piano was something I really enjoyed and, I feel, benefited from throughout my scholastic career. To this day it is still one of my favorite instruments to listen to.
  3. Not really, but I do always find it interesting to find out a person's favorite open source project. I guess I will not say mine as it might start a flame war.