From Fedora Project Wiki

No edit summary
m (internal link cleaning)
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{admon/important|Proposal deadline is passed. This page is locked.|Do not change any details on this page.  If must change something, talk with the project mentor first.}}
== About you ==
== About you ==


Line 7: Line 8:
== About your project ==
== About your project ==


# What is the name of your project? Cryptographic-Hash-Algorithm-Secured Mirroring solution (C.H.A.S.M.)<br>
What is the name of your project? Cryptographic-Hash-Algorithm-Secured Mirroring solution (C.H.A.S.M.)
# Does your project come from an idea on the [[Summer Coding 2010 ideas]] page?  https://fedoraproject.org/wiki/Summer_Coding_2010_proposal_-_CHASM
 
# CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution, is a project that is to help alleviate a lot of the pains that mirrors have in organizing and verifying their content. The project can be thought of as a stateful rsync daemon in some respects, and solves a problem that kernel.org and a number of other large mirroring infrastructures have been looking into for several years now. This is ultimately a project that will be used by a greater portion of the larger mirroring infrastructures and as such has a lot of need for high performance and good design.<br>This is a project to help get CHASM to a usable and production quality state, it is currently in the middle of a rewrite into C++ for performance reasons and there are still several aspects that may need to be flushed out.
Does your project come from an idea on the [[Summer Coding 2010 ideas]] page?  [[Summer_Coding_2010_ideas_-_CHASM]]
# What is the timeline for development of your project? The Fedora Summer Coding work period is 11 weeks long, May 24 - August 9; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 5-12); the last steps always take longer than you think, and we will consider canceling projects that are not mostly working by then.
 
#* If your project development progresses differently so there is not 90% functionality by the mid-term, you '''must''' be in regular contact with your mentor about this. Your mentor must not be surprised about the state of your project when the mid-term comes.
CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution, is a project that is to help alleviate a lot of the pains that mirrors have in organizing and verifying their content. The project can be thought of as a stateful rsync daemon in some respects, and solves a problem that kernel.org and a number of other large mirroring infrastructures have been looking into for several years now. This is ultimately a project that will be used by a greater portion of the larger mirroring infrastructures and as such has a lot of need for high performance and good design.<br>This is a project to help get CHASM to a usable and production quality state, it is currently in the middle of a rewrite into C++ for performance reasons and there are still several aspects that may need to be flushed out.
#* If you are not progressed this far in mid-term, you must have a plan with your mentor to fix the situation.
 
# Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.
What is the timeline for development of your project?
Timeline for project
(Currently very rough and subject to change)
 
Week 1 - starting June 1:
        Planing peer-to-peer network protocol
 
Week 2 - starting June 7:
        Implementing peer-to-peer network protocol
 
Week 3 - starting June 14:
        Implementing peer-to-peer network protocol
 
Week 4 - starting June 21:
        Implementing peer-to-peer network protocol
 
Week 5 - starting June 28:
        Implementing peer-to-peer network protocol
        Unix domain sockets
 
Week 6 - starting July 5:
        Unix domain sockets
 
Week 7 - starting July 12:
        Unix domain sockets
 
Week 8 - starting July 19:
        System Run-Through
 
Week 9 - starting July 26:
        Final System Run-Through
 
Week 10 - starting August 2:
        Documentation and Spare time for any delays
 
My main programming languages are C, C++ and Java. Although I don't have tones experience in Systems Development (as I specialize in A.I.), here are some projects iv created that are relevant to Systems Development.
 
In C I have created an instant text messaging program that uses multi-packet peer-to-peer relay across a LAN only using the old RS232 COM port. The program used the "super-loop" structure to allow non-blocking I/O from the multiple COM ports and user input.<br>The second most relevant project I have created would be a secure peer-to-peer data transfer system entirely out of ASM86(intel x86 assembly). The program used Substitution Encryption followed by an XOR Cypher Key witch was then followed by Bit Rotation Encryption(I know that's a bit over the top but it was fun to do).
 
Im a very fast learner and if need be I will spend many hours a day learning anything im behind on.


== You and the community ==
== You and the community ==


# If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.
If your project is successfully completed, what will its impact be on the Fedora community?
# What will you do if you get stuck on your project and your mentor isn't around?
 
# In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?  
"It will make the mirrors more reliable (i know that i get 404's every now and then when the mirrors are in the middle of a sync). 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. What users/developers will see is faster propagation of updates across servers, sysadmins will have better performance since we dont thrash the disk cache when doing a check for updates." - Mathstuf
 
 
What will you do if you get stuck on your project and your mentor isn't around?
 
This is not likely as the project has two mentors, however, if this were the case, I would use any and all resources available to me. Things like the fedora community or the mass of information known as the internet :)
 
 
In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?
 
Twitter and more Blogging


== Miscellaneous ==
== Miscellaneous ==
# We want to make sure that you are prepared before the project starts
# We want to make sure that you are prepared before the project starts
#* Can you set up an appropriate development environment?
#* Can you set up an appropriate development environment? yes
#* Have you met your proposed mentor and members of the associated community?
#* Have you met your proposed mentor and members of the associated community? yes
# What is your t-shirt size?
# What is your t-shirt size?
# Describe a great learning experience you had as a child.
UK Large
# Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?


<!-- Delete this paragraph and the following one when preparing your application. -->Note: you will post this application on the wiki in the category [[:Category:Summer Coding 2010 applications]]. We encourage you to browse this category and comment on the talk page of other applications. Also, others' comments and your responses on the talk page of your own application are viewed favorably, and, while we don't like repetitive spam, we welcome honest questions and discussion of your project idea on the mailing list and/or IRC.
<!-- Delete this paragraph and the following one when preparing your application. -->Note: you will post this application on the wiki in the category [[:Category:Summer Coding 2010 applications]]. We encourage you to browse this category and comment on the talk page of other applications. Also, others' comments and your responses on the talk page of your own application are viewed favorably, and, while we don't like repetitive spam, we welcome honest questions and discussion of your project idea on the mailing list and/or IRC.

Latest revision as of 09:12, 18 September 2016

Proposal deadline is passed. This page is locked.
Do not change any details on this page. If must change something, talk with the project mentor first.

About you

  1. My name is Gregory Meyers
  2. My email address is gregory01.meyers@gmail.com
  3. My wiki username is Crimsonshadow
  4. My IRC nickname is Gregory1
  5. My primary language English
  6. I live in England. Although my schedule changes from time to time, I prefer to work late evening onwards(6+) as i have no problems with working late into the night.
  7. I have not participated in an open-source project before, although I enjoy creating something new while gaining knowledge and experience. I hope I can learn while contributing to something good.

About your project

What is the name of your project? Cryptographic-Hash-Algorithm-Secured Mirroring solution (C.H.A.S.M.)

Does your project come from an idea on the Summer Coding 2010 ideas page? Summer_Coding_2010_ideas_-_CHASM

CHASM, the Cryptographic-Hash-Algorithm-Secured Mirroring solution, is a project that is to help alleviate a lot of the pains that mirrors have in organizing and verifying their content. The project can be thought of as a stateful rsync daemon in some respects, and solves a problem that kernel.org and a number of other large mirroring infrastructures have been looking into for several years now. This is ultimately a project that will be used by a greater portion of the larger mirroring infrastructures and as such has a lot of need for high performance and good design.
This is a project to help get CHASM to a usable and production quality state, it is currently in the middle of a rewrite into C++ for performance reasons and there are still several aspects that may need to be flushed out.

What is the timeline for development of your project? Timeline for project (Currently very rough and subject to change)

Week 1 - starting June 1:

        Planing peer-to-peer network protocol

Week 2 - starting June 7:

        Implementing peer-to-peer network protocol

Week 3 - starting June 14:

        Implementing peer-to-peer network protocol

Week 4 - starting June 21:

        Implementing peer-to-peer network protocol

Week 5 - starting June 28:

        Implementing peer-to-peer network protocol
        Unix domain sockets

Week 6 - starting July 5:

        Unix domain sockets

Week 7 - starting July 12:

        Unix domain sockets

Week 8 - starting July 19:

        System Run-Through

Week 9 - starting July 26:

        Final System Run-Through

Week 10 - starting August 2:

        Documentation and Spare time for any delays

My main programming languages are C, C++ and Java. Although I don't have tones experience in Systems Development (as I specialize in A.I.), here are some projects iv created that are relevant to Systems Development.

In C I have created an instant text messaging program that uses multi-packet peer-to-peer relay across a LAN only using the old RS232 COM port. The program used the "super-loop" structure to allow non-blocking I/O from the multiple COM ports and user input.
The second most relevant project I have created would be a secure peer-to-peer data transfer system entirely out of ASM86(intel x86 assembly). The program used Substitution Encryption followed by an XOR Cypher Key witch was then followed by Bit Rotation Encryption(I know that's a bit over the top but it was fun to do).

Im a very fast learner and if need be I will spend many hours a day learning anything im behind on.

You and the community

If your project is successfully completed, what will its impact be on the Fedora community?

"It will make the mirrors more reliable (i know that i get 404's every now and then when the mirrors are in the middle of a sync). 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. What users/developers will see is faster propagation of updates across servers, sysadmins will have better performance since we dont thrash the disk cache when doing a check for updates." - Mathstuf


What will you do if you get stuck on your project and your mentor isn't around?

This is not likely as the project has two mentors, however, if this were the case, I would use any and all resources available to me. Things like the fedora community or the mass of information known as the internet :)


In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?

Twitter and more Blogging

Miscellaneous

  1. We want to make sure that you are prepared before the project starts
    • Can you set up an appropriate development environment? yes
    • Have you met your proposed mentor and members of the associated community? yes
  2. What is your t-shirt size?

UK Large

Note: you will post this application on the wiki in the category Category:Summer Coding 2010 applications. We encourage you to browse this category and comment on the talk page of other applications. Also, others' comments and your responses on the talk page of your own application are viewed favorably, and, while we don't like repetitive spam, we welcome honest questions and discussion of your project idea on the mailing list and/or IRC.

The NeL project has some good general recommendations for writing proposals. We encourage Summer Coding code to include tests.

Comments

Use the Talk:Summer Coding 2010 student proposal application to actually make comment, which then appear here on the main proposal page. You can use this link to make a new comment].

plus talk