I have been accepted to work at Google on August 2nd, which will mean that my "pencils down" date will be moved up a week from August 9th, 2010. So after the 2nd, I will only be able to contribute as a "regular community contributor to an open source project", not a GSoC student or Google Employee. The Google Summer of Code coordinator, Carol Smith wanted me to be very clear that if this is an issue, you guys should feel free to let me know that it isn't acceptable and I will gladly withdraw my application.
I do not see this as a disadvantage, I believe this will be highly motivating to stay on task. While most students may think "I have all summer to work on this.." I will be constantly reminded that I have one fewer week than normal to deliver. If there are any questions, please feel free to contact me and we can find the answers. Thank you!
Your Name: Joe Smith
Email Address: firstname.lastname@example.org
IRC nickname: yasumoto
Launchpad ID: yasumoto7
Skype username: yasumoto
College-University: Chapman University (Orange, CA)
Major: Computer Science
LoCo Team Android Application
The Project Spec is on the wiki, and the initial proposal calls for three parts of the application. The first will be to allow users to get in touch with their local LoCo team, and the second tab displays news from Fridge and Planet. Lastly, we’ll have a tab that allows people to post on identi.ca/twitter to help with meetups and getting to know other Ubuntu users nearby.
If you would be willing and able to do other projects instead, which ones?
Why did you like this idea?
I would be so stoked to work on an Android LoCo Team App as my Summer of Code project. The idea came (as many do) from a conversation with Jono, who said that he'd love to have a way to get in touch with other nearby Ubuntu users, and harnassing GPS and an identi.ca or Twitter hashtag would be ideal. From there it's grown to contain a Local Team Search and a news aggregtor. I love the opportunity of mobile computing, and by extension, the idea of ubiquitous computing. Anyone that has used Ubuntu for any period of time, and gotten to know the community, realizes that having fun with technology is only half of the joy. The true power behind Ubuntu is being able to create friendships and relationships that help people grow and build on top of the accomplishments of each other. As smaller devices become more powerful and more people use smart phones, it is becoming easier to stay in touch with friends. I love to create technology that helps people accomplish great things, and this app is going to be a great step in that direction. It will help remove the barrier between the internet and real life, and allow people to have gatherings in person rather than just IRC or mailing lists.
Please describe a tentative project architecture or an approach to it:
- I believe that there are three pieces of the app that need to be developed, all of which can be done independently and implemented as a different tab in the same application.
The LoCo Team tab will need to gain integration with the LoCo Team Directory and/or Launchpad to provide the neccesary information. It will correlate the user's current location with his/her local team and display its information. The News tab will gather the RSS feed data from Fridge and Planet, then open each article to display it. This should be rather simple to implement, Lastly, the Local tab is probably the most difficult, yet coolest part. Upon opening the tab, it will display a map listing recent tweets/dents sent with a certain hashtag (perhaps #locoapp). Users will be able to log in to their accounts and post their own messages, as well as reply to others.
Why will your proposal benefit Ubuntu?
- I think that this will be of great value to the Ubuntu Community, there have been plenty of times that I've been with friends at a coffee shop and would have welcomed others to join in for questions or a discussion about Ubuntu. Having a way to stay connected with your community even when not in front of your computer is something that is important to me, and I believe this application will take a large step toward that.
I plan to run through 2 week sprints, which include a task overview session, coding, integration testing, and regression testing.
May 24th to June 4th
- The first two weeks will be spent running through advanced Android Development tutorials and documentation, becoming comfortable with the development paradism. It will also be important to spend time gathering feedback on the feature set and design, taking advantage of Planet, IRC, and mailing lists to get a handle on what the community wants from its Android app.
June 7th to June 11th
- This week will be spent getting an initial prototype developed, as well as making any changes to the design based upon feedback.
June 14th to June 25th
By this point, I expect to have the RSS feeds integrated into their tab, and have communicated with the LoCo Directory project to discuss any changes to their code or API I should use to gain access to the requisite information.
June 28th to July 9th
- This will be dedicated to the Team tab, and ensuring that it displays the appropriate information based upon current GPS coordinates.
July 12th (Midterm Week) to July 23rd
- I will be focused on the Social Media integration here, by this point we will have decided upon a good hashtag and the proper way to tag posts to show up in the application.
July 26th to July 30th
- This will be the last week before I start at Google, and I will use this time to ensure everything has been well documented, finish up any paperwork to close out the program, and create a marketing push to help it transfer to community ownership.
Please describe any previous Open Source development experience
I have Made contributions to Ubuntu, Gnome, and Mozilla. I have done packaging for Ubuntu, and have become very familiar with bzr and launchpad over the years. I have also made a contribution to Red Hat's Spacewalk server, which I use at my school's IS&T department to manage our DHCP servers.
Why are you interested in Open Source?
- I love the people and community involved in Open Source. It is based upon a meritocracy; people aren't judged based upon a strange set of criteria, what truly matters is who you are. The system where everyone works together to build something great is amazing, and I love that everyone fights to put in 110% knowing that each other person is as well. The goal of Open Source is allowing people to realize that "technology" and "computers" aren't some strange, scary fad, but are actually a way to become closer to other people and improve our way of life.
How long will the project take? When can you begin?
- I expect the project to take the entire time I am able to contribute, and I believe I have a bit of buffer room in case anything comes up. I have already had a few discussions about the feature set and have a Spec laid out. I have also been running through Android tutorials, so will be ready to hit the ground running.
How much time do you expect to dedicate to this project? (weekly)
- I expect to dedicate at least 40 hours per week to this project. My other alternative this summer is to work at a non-technical job full-time to support myself while still making some contributions to the community, so the opportunity to truly devote myself this summer is amazing. This has not been, and will not be, a job this summer, it is something I am clearly passionate about and love to do.
Where will you based during the summer?
- I will be at my home in Southern California.
Do you have any commitments for the summer? (holidays/work/summer courses)
- I do not have any commitments, I will be able to work on this all the way until August 2nd (and after as a community contributor)
Please designate a back up student (in case you need to withdraw your application)
- My friend Jess Bermudes, another Ubuntu California member, graduated from Chapman last year, and is proficient in Android app development. I am sure that he and other members of the community will step up in case I am unable to continue this program.
Have you ever participated in a previous GSoC? (describe your project)
I have not participated in GSoC before, which is why I am so excited to during my last year. I have previously worked full-time at my school's IS&T department, and have not had the time to dedicate to Summer of Code.
Have you applied for any other 2010 Summer of Code projects? If yes, which ones?
- I have not, I am unfortunately very busy this semester, and would rather go all-in on a very good proposal rather than spread myself out.
Why did you apply for the Google Summer of Code ?
- As many community contributors may say, I have always had to squeeze in my contributions to Open Source in between exams, projects, and work. The chance to relax, and just focus on Open Source would be quite welcome.
Why did you choose Ubuntu as a mentoring organisation?
I have been an active member of Ubuntu since 2007, and have been involved in almost all aspects of the Ubuntu community over the years, from bug triage, packaging, upstream contributions, several conference booths, and an Open Week Presentation. If you'd like to see the full list, please check out my wiki. After putting it off for a while, I recently applied for membership, which was surprisingly a lot of fun. I figure with the number of beers I've shared with Ubuntu community members, it's only natural that I choose to participate in Ubuntu
Why do you want to participate and why should Ubuntu choose you?
- I believe that I bring a lot of passion and experience to my work, and it is something that I am very proud of. When I set myself to a task, I truly dedicate myself to it, and being given the opportunity to work on something full-time for an extended period would be amazing. I have been very interested in helping out other College Students in their journey of discovering Open Source. I have given a talk at the Southern California Linux Expo regarding students and Open Source, and have always thought that Summer of Code was a great program for students. Once I graduate, I plan to become more involved in mentoring Summer of Code, and once I realized I might have a chance to become a student, I realized that this would be a great opportunity to better relate to future students.
With regard to hands-on development experience, I am an intern at Dreamworks Animation, where I've learned a lot about software best practices, so I'll be able to take what I've learned from work and apply it to the summer. I understand that there are many tradeoffs to any design, and it's difficult yet important to always remember how a user will actually use one's software. I am also a Student Network Technician at my school's IS&T department, where I've taken on several projects on my own from start-to-finish, the most recent having been an implementation of Red Hat's Spacewalk server for managing our Linux server rollout. It's been a lot of fun, and I've appreciated the opportunity to work on interesting projects during my time. I have worked full-time at IS&T during previous summers, which is why I have not applied to SoC before.