SummerOfCodeProposal lmg
Completed...
Contents
User Information
gna: lmg
wesnoth forums: lmg
irc: lgraham
preferred email: Please contact.
Basics
Introduction
Write a small introduction to yourself. )
I'm just finishing up my second year of software engineering. I have been a Linux user for two years, and I was looking into contributing to an open source project when I ran across Google Summer of Code. I thought this would be a great way for me to learn about contributing to open source projects.
Education
What are you studying, subject, level and school
In April 2009, I will have completed my second year of Software Engineering at the University of Calgary in Calgary, Alberta, Canada.
Why Google Summer of Code?
Why do you want to participate in summer of code?
I would like to participate in the summer of code to enhance my programming skills and apply the software design techniques I am learning in classes. I feel that participating in this program will enhance my educational experience and give me something practical to which I can relate when doing classwork. In addition to this, I use a lot of open source software at home, and I am interested in learning more about open source development.
Patches Submitted to Wesnoth
(If you have contributed any patches to Wesnoth, please list them below. You can also list patches that have been submitted but not committed yet and patches that have not been specifically written for Wesnoth. If you have gained commit access to our SVN (during the evaluation period or earlier) please state so.
None yet.
Experience
Previous Projects
What programs/software have you worked on before?
I have done both procedural and object oriented programming to learn the structure of the languages I have studied. Most of the programs I have worked on have been done to complete class requirements.
Team Software Development Experience
Have you developed software in a team environment before? (As opposed to hacking on something on your own)
I have done a significant amount of work developing with another person and some work in groups of less than 5 people, but I don't have experience developing with larger groups.
Previous Google Summer of Code Participation
Have you participated to the Google Summer of Code before? As a mentor or a student? In what project? Were you successful? If not, why?
I have never participated in Google Summer of Code.
Open Source
Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
I am not currently involved with any open source development projects.
Gaming Experience
Are you a gamer? What type of gamer are you?What type of games? What type of opponents do you prefer? Are you more interested in story or gameplay?Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
We do not plan to favor Wesnoth players as such, but some particular projects require a good feeling for the game which is hard to get without having played intensively.
I enjoy gaming, but can only do it on a casual basis. I like fantasy/scifi-based games with a good story and gameplay, and I believe both the story and gameplay are essential to making a great game. I don't have experience in playing against other players. I have played Wesnoth for only a few days in single player mode, but I look forward to learning more about Wesnoth and branching into the multiplayer mode. Most of the games I have played are single-player games, and I look forward to exploring the multiplayer side of things.
Communication Skills
English Fluency
Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
English is my first language.
Player Interaction
Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough
I think I will be good at interacting with other players. I was a forum moderator last summer, and I feel I am pretty well equipped to handle most things.
Advice and Criticism
Do you give constructive advice?Do you receive advice well? Are you good at sorting useful criticisms from useless ones?
I only give advice if I think it will be constructive. When someone gives me advice, I take it into consideration and try to use it if I can. I have done a lot of group work in which there are useful and useless criticisms, and I think I am fairly proficient at determining what is useful.
Project
Selection and Reasons for Choosing
Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on? Why did you choose this project?
Savegame Reorganization. For this particular project, I would like to focus on the software development process and seeing how it works in a real project. I chose this project because many of the software engineering concepts I am currently learning can be applied to this project (UML, software design process)
Estimated Timeline
Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".
I would like to explore the savegame code and come up with some UML use-case and sequence diagrams by the end of May. Following that, I would like to have the design process finished mid-May or closer to the end of May. Then, I will work on implementation. That way, if I do hit a brick wall along the way, there should be sufficient time to remedy any problems. I don't have any summer plans as yet.
Technical Details
Include as much technical detail about your implementation as you can
For the analysis stage, I will produce relevant UML diagrams including use-case and sequence diagrams. In the design stage, I will likely use component diagrams. I am fairly new with UML (I am currently learning about it one of my courses although it has not been the primary focus of the class), so I will likely have tons of questions about making my diagrams properly.
Expected Outcome
What do you expect to gain from this project? What would make you stay in the Wesnoth community after the conclusion of SOC?
I would like to gain a good understanding of how open source projects work and how to contribute in a meaningful way. I would stay in the Wesnoth community after the conclusion of SOC if I have good support from my mentor and the development community and I can use my skills to make Wesnoth better.
Practical Considerations
Tool and Languages
Are you familiar with any of the following tools or languages?
- Subversion (used for all commits)
- I don't know very much about subversion.
- C++ (language used for all the normal source code)
- I have been using C++ for almost a year (I have taken two courses using C++ as the programming language)
- Python (optional, mainly used for tools)
- I have never used Python
- build environments (eg cmake/autotools/scons)
- I have used makefile once or twice, but nothing else.
What programming languages are you fluent in?
C, C++, Java
Development Tools
Which tools do you normally use for development? Why do you use them?
vim - offers many features in a simple, easy to use command line text editor
Eclipse - it shows compilation errors in real time
junit - for unit testing of Java programs
javadoc - create nicely formatted inline documentation
Spoken Languages
What spoken languages are you fluent in?)
I am fluent in English and have limited knowledge of French.
Availability and Alternate Contact
At what hours are you awake and when will you be able to be in IRC (please specify in UTC) Would you mind talking with your mentor on telephone / internet phone? We would like to have a backup way for communications for the case that somehow emails and IRC do fail.
I am generally awake 1400 - 0400 UTC. I will be able to be in IRC between the hours of 2300 - 0400 UTC during the week although the actual hours may vary (I don't have summer plans yet). On weekends, I am awake 1500 - 0500 UTC and can be on IRC anytime. I don't mind talking with my mentor on the phone - either regular or internet phone is good for me.