Please use this template as a guide for information you send in any project application. Unless specifically stated otherwise, all information we request is required. Ensuring that your application is properly and fully filled saves us all time, so please be thorough and accurate!
## Personal Information
### Contact Information
- Name and Email: Your full name and a valid email address. This will serve as our initial primary method of communication, so please make sure it is correct!
- Chat and Instant Messaging: Real-time chat is free (or at least inexpensive) and is a great way to stay in touch with mentors and others throughout the course of the summer. For example: "dhobsd on AIM; evildho on IRC (freenode, efnet)." We require at least one of these, and strongly encourage participation in our IRC channel, #plan9-gsoc on irc.freenode.net.
- Phone number: We'll only use this after exhausting all other means of contact (and once before accepting students, to verify it). Please enter a full international phone number.
### Educational Information
- Institution: What college or university are you attending?
- Location: Where will you be working from? Some of our mentors prefer to work with students in nearby time zones.
### Biographical information
- Bio, Resumé, or C.V: Help us get to know you better. Tell us about your skills, experience, and interest.
- Code Samples: Summer of Code projects tend to be very code-focused, and we'd like to see some pointers to code you've written, either from your own projects or projects you've contributed to. We're especially interested in things which help us see why you're a good match for the particular project you're applying for.
- Interest in Plan 9: Plan 9 has lots of great ideas, but they're different from what you find in other environments; we want to make sure you're not coming in expecting Unix. We'd like to know what it is about Plan 9 (or related technologies) that you find intriguing; have you used them before? Which ones (Plan 9, Inferno, v9fs, etc)? Have you read the papers?
### Code Challenge
We want to be sure you understand the basics of Plan 9 concepts and coding. Please take a look at one (or more) of the following options and submit your solution along with your application. If you need any clarification, or have any general questions on any of these topics, please feel free to get in touch either via the #plan9 or #plan9-gsoc channels on Freenode, or via the plan9-gsoc mailing list at http://groups.google.com/group/plan9-gsoc.
- Port SoftFloat/TestFloat (http://www.jhauser.us/arithmetic/SoftFloat.html); please include manual pages as appropriate.
- Investigate, identify, and fix issues with 4096-bit SSH keys in native sshserve.
- I think http://9fans.net/archive/2005/12/221 means that the longjmp() and waserror() documentation should be patched
- The example code on the tlssrv(8) man page is dangerously wrong: tcp!*!xxx allows anybody on your network to hijack your tunnel. Fix this appropriately.
- srvssh posts a mode-666 entry into /srv. Fix this to use saner permissions.
- vncv has some possible issues with ^Z. Identify and address.
- Wiki bug (via http access): creating a page with a name containing an underscore interacts "poorly" with the "map spaces to underscores" name mangling.
- Create a simple 9P server to address a small, novel task of your choosing.
## Project Information
### Project Overview
Tell us about the specific project you'd like to work on. If you've picked something from our ideas page, please make the title match what's on that page. Regardless, you should be able to describe the project in your own words (even if it's just to show us you understand what an existing idea is looking for). Especially if your proposal is your own idea, be sure to include enough detail so that we understand your idea.
Do *not* copy / paste an idea from the ideas page verbatim.
### Schedule / Timeline
Part of effective engineering is being able to break a project down into component parts and evaluate those. Do so: tell us what the component parts of your project are and build a schedule for them.
We'd like you to break down your project into weekly milestones. This will allow you to get a great feel for the work required for your project, and will give everyone involved a schedule to help guide project planning along the way. It will also help us evaluate the scope and complexity of your project, as well as how well-formed your idea is.
Summer of Code is a significant commitment. If selected, you'll be undertaking a project designed to fill the summer. Please tell us about any other commitments you have during the summer. How many hours per week are you prepared to dedicate to this? Will you be taking courses, as well? Working? Any vacation time planned? This should already be included in your proposed schedule above, but call out any vacation, late start or other such exceptional issues explicitly here.
### Mentor communication
Summer of Code is a mentoring arrangement, and communication with your mentor is key. What frequency of communication would you expect? Are you prepared to provide progress updates at least a few times a week? How are you most comfortable communicating (email, blog, IRC, so on)? While our mentors are making a commitment to give you time and attention over the summer, "stuff happens"; what would you do if your mentor disappeared for a week during the summer?
### Optional: Suggested Mentor
If you've spoken to someone in our community about this project, and they've agreed to mentor you for the summer, list them here. This is optional, but is particularly valuable if you're proposing a project not on our list. If it is on our ideas list, we can mostly figure this out.