Google Summer of Code 2009 Guidelines (2009/04/23)
If you are not a participant in the 2009 Google Summer of Code program, you can safely skip to the next section; there’s not much interesting stuff for you here.
Otherwise, welcome, and congratulations on making it into the Plan 9 program for the 2009 GSoC. We received over 50 applications and were only able to accept 7 of them. If you have not done so yet, take a moment to send your mentor(s) an email, introducing yourself. These are the people who will be guiding you through the next few months, so it’s good to have an open communications channel.
We are expecting students to embrace all means of communication during this period, and as such, we’ve created several means by which you can get in touch with us:
Via your blog. You will be provided with access to blog about your SoC program progress via cat-v.org. Status reports should be posted here first.
Via the Plan 9 GSoC mailing list. Communicate with students, mentors, and others interested in the Plan 9 GSoC program at: http://groups.google.com/group/plan9-gsoc. Your status reports should be submitted publically, here. This will work well since they should be well-formatted text, using markdown.
Via IRC. Many mentors and students are available for real-time discussion at #plan9-gsoc on irc.freenode.net. We expect you to be online on IRC while you are working on your project. This will allow us to help you very quickly with simple questions, and reduce overall load for all mentors. (In addition to this, the ability to have real-time discussions about your project is fun, and brings together a sense of community).
Private communication via email is discouraged. Unless you’ve got something that is embarassing / private that is holding you back, we’d prefer that you default to the public communication media above.
Progress reports must be entered into your blog weekly. Your blog will be formatted in markdown, so these blog posts should be well-formatted text, and perfect for emailing to the plan9-gsoc list as well. After these reports, you and your mentor must convene to discuss them and any outstanding issues. These reports should detail where you are with your project, where you expect to be by the next week, and any blocking issues you are facing (especially if they may place a delay on your project).
This weekly status update is the minimal requirement – you may of course contact your mentor or blog or email more than once per week, should you feel the need. The mentors and the community at large are there to help you through your project for the summer, so don’t be ashamed to ask questions!
The day to update your blog is Monday between 12:00 and 18:00UTC.
Community Bonding Period (20 April - 23 May)
During the community bonding period, we will be expecting you either to be completing tasks assigned by your mentor to familiarize yourself with the environment in which you will be working, or doing preliminary work on your project (if you are already very familiar with Plan 9). This preliminary work would include design and architectural decisions. During this period, you should be discussing any questions you have about Plan 9 or your project with your mentor. Additionally, you should be actively discussing the architecture of your project with your mentor.
During this time, you will also be set up with access to a version control repository and blog. Unless your project requires otherwise, we encourage you to perform your developmental tasks on an actual Plan 9 system or virtual machine. Examples of exempt requirements are development in Inferno, or working on components for other operating systems (e.g. Glendix, vx32/9vx for Windows). IMPORTANT: All source code must be kept in this public repository, and all development for your project should be committed to the repository as it is available. No excuses.
Interim Period (24 May - 6 July)
Weekly status updates should be sent to your mentor(s). As specified above, these reports should contain your progress for the week, and where you expect to be by the next week. If you have any questions, pose them here. If you are falling behind schedule, let your mentor know what issues you are experiencing, and try to work out a way to catch up.
Midterm Period (6 July to 13 July)
Mentors and students should work together to determine specifics on their mid-term evaluations. We expect development to continue through this phase, and a weekly report will be expected here, too.
Interim Period (13 July - 10 August)
This period of development follows the 24 May - 6 July Interim Period schedule as far as expected work and communication.
Pencils Down Period (10 August - 17 August)
Remove bugs, clean code, discuss the project with your mentor. You should not plan to be using this time for your project, though it is not expressly forbidden. At the end of this period, you’ll be asked to take a survey about the experience, to provide the mentors feedback with how you felt about the project, any problems you had, and to provide suggestions for smoother sailing in the years to come.
If you have questions about your project, don’t hesitate to get in touch with your mentor(s). If you are unable to get in touch with your mentor(s) over an extended period of time (four or five days; no longer than a week), or are unable to reach them in an urgent situation, get in touch with Anthony Sorace, the project administrator (anothy_x on IRC, firstname.lastname@example.org via email) or any other mentor who is immediately available.
Working With Plan 9
Plan 9 is not like any other modern operating system you have used. Learning how to use a different operating system is not too different from learning a new skill or language, and the same amount of perseverence and patience is required. The best thing to do before diving into Plan 9 is to accept that you will be learning new things (and not just re-learning things you already knew).
Installing Plan 9
Our hardware support is somewhat lacking. We run on many modern machines, but we do not have drivers for some of the ‘‘newest and coolest’’ devices. The best way to run Plan 9 when learning is by installing it in a virtual machine. The installation process itself is not complicated, but does take quite some time. For this reason, we are providing a new, preinstalled qemu disk image. While Plan 9 does come pre-installed on this machine, there are still plenty of useful administration tasks to learn, all of which will help familiarize you with the system.
The disk image is available at http://126.96.36.199/~dho/plan9-qemu.qcow.bz2. To boot Plan 9 in qemu, simply run: qemu -hda plan9-qemu.qcow -boot c -std-vga.
To become familiar with the Plan 9 operating system, you should install the qemu image and begin becoming acquainted with the system. A good first project to undertake is to configure your qemu VM to be a standalone CPU server. Instructions for configuring Plan 9 as a CPU server are available at http://www.plan9.bell-labs.com/wiki/plan9/configuring_a_standalone_cpu_server/index.html.
Plan 9 Resources
- The Wiki: http://www.plan9.bell-labs.com/wiki/plan9/
- Sources: http://plan9.bell-labs.com/sources/
- 9fans: http://mail.9fans.net/listinfo/9fans
- Plan 9 papers and documents: http://doc.cat-v.org/plan_9/
- Inferno papers and documents: http://doc.cat-v.org/inferno/
- Man pages: http://man.cat-v.org/
Working With Inferno
Inferno is an operating system designed to function well for implementing distributed systems. Mechiel Lukkien has created a wonderful introductory guide for Inferno at http://www.xs4all.nl/~mechiel/inferno/getting-started.html.
2009 GSoC Update: Accepted Projects (2009/04/20)
Google has officially released the list of accepted candidates per organization. We were lucky enough to receive all 7 slots we asked for. It was a difficult choice; we had many good proposals, several for the same project, and it wasn’t terribly easy for us to pick from them. (Maybe we will get more in the future!)
The list of accepted projects for 2009’s Google Summer of Code program (in no particular order):
- Iruatã Martins dos Santos Souza: Sending 9load to /dev/null. Your mentor is Ron Minnich.
- Alex Shinn: Scheme for Plan 9. Your mentor is Charles Forsyth.
- Priyanka Sharma: Glendix: Implement Per Process Namespaces. Your mentor is Anant Narayanan.
- Gabriel Díaz Lopez de la Llave: Mailer (upas) Replacement or Upgrades. Your mentor is Erik Quanstrom.
- André Günther: Port vx32 and 9vx to Windows. Your mentor is Russ Cox.
- Manuel Franceschini: Firewalling / Packet Filtering in Plan 9. Your mentor is Devon H. O'Dell.
- Manzurjon Mukhitdinov: GitFS. Your mentor is Roman Shaposhnik.
Congratulations again to everyone who was accepted. You should contact your mentor as soon as possible to get acquainted. I will be sending a mailing out in the next couple of days detailing some of our expectations for this year’s program, as well as containing some first step-style exercises to get you acquainted with Plan 9.
To those of you who were not accepted into this year’s program: we’re sorry that you didn’t make it, and believe me, some of the picking and choosing was very, very difficult. We’d still love to have you as active members of our project. We’re still around on 9fans, here at cat-v.org, and on #plan9 on Freenode.
Thanks again to all applicants and mentors!
2009 GSoC Update (2009/03/25)
Plan 9 in the 2009 GSoC
Firstly, I’d like to thank Anthony Sorace for investing the time and energy required to get Plan 9 into the Summer of Code program for 2009. His application was a success and we’ll be working hard this year to make the 2009 Summer of Code program a huge success for Plan 9.
If (by some stretch) you are a capable Plan 9 developer who is not yet aware of that, we can always use more mentors. Get in touch with Anthony via the plan9-gsoc mailing list.
If you’re a student, we’ve got a plethora of great projects for you – check out http://gsoc.cat-v.org/ideas/ for these. As usual, we’re always willing to hear your ideas, make suggestions, and help you with your proposal. Outside of the plan9-gsoc mailing list, many of us are also on IRC: #plan9-gsoc and #plan9 on irc.freenode.net.
I wish to extend a warm welcome to all interested participants, a huge thanks to everyone who is helping out with the program as an administrator or mentor, and hope that we can get a bunch of cool stuff done this summer.
Post-mid-term changes (2007/08/02)
First of all, I want to thank all the students and mentors who have worked hard to make this GSoC successful.
The mid-term evaluations are over, and there are both good and bad news and some important changes on how we are going to work from now on.
The good news: some projects have made amazing progress and are well underway to archive their main goals, congratulations to everyone who got this far.
The bad news: many projects are way behind schedule, and what is worse, due to lack of open communication it is impossible to estimate what their exact status is and what changes need to be made to bring them back on track.
During the first half of GSoC everyone got a free hand to organize their projects in any way they wanted, no requirements were made and there was no control of how projects were going.
It was probably naive to assume things would work out fine this way, but it probably was a lesson we needed to learn.
Starting next week every project should at least follow this basic requirements:
Students should post to their blog or in this list at least twice a week with project status updates, including a short summary of what progress has been made and what is next and any problems or issues holding things back.
All source code should be publicly available, ideally in a mercurial repository in the http://gsoc.cat-v.org/hg/ site.
All student-mentor communication should occur in public channels, either irc or public mailing lists. If currently no appropriate communication channels for the project exist, a new one should be created (either by creating a new irc channel in freenode or new mailing list in google-groups)
Mentors should post at least once a week with a short update on how they think the project is progressing.
If either mentors or students have trouble reaching each other at any point, the plan9-gsoc list or irc channels should be notified immediately of the situation.
Every project should keep a short list of major goals, and update it with which ones have been accomplished already and which are still pending.
If at any point the project is behind schedule, a plan to get it back on schedule should be created and published.
Both students and mentors should subscribe to plan9-gsoc to make announcements like this possible (I have added everyone now, so nobody should need to do anything for this)
If for any reason someone can’t comply with one of this requirements, we will be very understanding, but we need to know why.
Lets hope this improves how things work in the second half of the summer and ensures that all projects are successful.
Best wishes to everyone
the Plan 9 GSoC admin.
Fixed RSS feeds (2007/06/19)
RSS feeds were broken for a while, they should be working properly again, sorry for the inconvenience.
First general IRC meeting (2007/06/14)
I hope that all your projects are going well. Given that all projects should be underway by now, and that almost all participants got accounts at http://gsoc.cat-v.org now it is a good time to get together in irc and see what everyone is up to and discuss any issues anyone might have.
Two irc meetings per week are planned, so don’t worry too much if you can’t attend one of them. The first one will be tomorrow at 22:00 UTC. The location as usual is #plan9-gsoc in irc.freenode.org (and don’t forget that you probably can hold of someone there any time of the day or night if you have any questions or problems.)
New website code and rss feeds (2007/06/04)
There have also been some minor improvements, like automatic blog setup for user and project blog directories and other minor fixes.
Dave Eckhardt proposed that we have a table of projects that tracks the last commit and last blog post for each project, a prototype of this can be found in /projects/table.
Enjoy and please report any issues or suggestions in #plan9.