Difference between revisions of "SummerOfCodeProposal lmg"

From The Battle for Wesnoth Wiki
(Estimated Timeline)
(Technical Details)
Line 74: Line 74:
 
===Technical Details===
 
===Technical Details===
 
''Include as much technical detail about your implementation as you can''<br>
 
''Include as much technical detail about your implementation as you can''<br>
<technical details>
+
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===
 
===Expected Outcome===

Revision as of 19:13, 3 April 2009

In progress...

User Information

gna: lmg
wesnoth forums: lmg
irc: lgraham
preferred email:

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)
  • 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 Pythong
  • build environments (eg cmake/autotools/scons)

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.