SummerOfCodeProposal Billynux
This page is related to Summer of Code 2010 |
See the list of Summer of Code 2010 Ideas |
This is a Summer of Code 2010 student page |
Contents
- 1 Description
- 2 IRC
- 3 Questionnaire
- 3.1 1) Basics
- 3.2 1.1) Write a small introduction to yourself.
- 3.3 1.2) State your preferred email address.
- 3.4 1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?
- 3.5 1.4) Why do you want to participate in summer of code?
- 3.6 1.5) What are you studying, subject, level and school?
- 3.7 1.6) What country are you from, at what time are you most likely to be able to join IRC?
- 3.8 1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
- 3.9 2) Experience
- 3.10 2.1) What programs/software have you worked on before?
- 3.11 2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
- 3.12 2.3) 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?
- 3.13 2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
- 3.14 2.5) Gaming experience - Are you a gamer?
- 3.15 2.5.1) What type of gamer are you?
- 3.16 2.5.2) What type of games?
- 3.17 2.5.3) What type of opponents do you prefer?
- 3.18 2.5.4) Are you more interested in story or gameplay?
- 3.19 2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
- 3.20 2.6) 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 GSoC. If you have gained commit access to our SVN (during the evaluation period or earlier) please state so.
- 3.21 3) Communication skills
- 3.22 3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
- 3.23 3.2) What spoken languages are you fluent in?
- 3.24 3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
- 3.25 3.4) Do you give constructive advice?
- 3.26 3.5) Do you receive advice well?
- 3.27 3.6) Are you good at sorting useful criticisms from useless ones?
- 3.28 3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want
- 3.29 4) Project
- 3.30 4.1) 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?
- 3.31 4.2) If you have invented your own project, please describe the project and the scope.
- 3.32 4.3) Why did you choose this project?
- 3.33 4.4) 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".
- 3.34 4.5) Include as much technical detail about your implementation as you can
- 3.35 4.6) What do you expect to gain from this project?
- 3.36 4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
- 3.37 5) Practical considerations
- 3.38 5.1) Are you familiar with any of the following tools or languages?
- 3.39 5.2) Which tools do you normally use for development? Why do you use them?
- 3.40 5.3) What programming languages are you fluent in?
- 3.41 5.5) 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. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!
Description
Billynux - Rewrite Wesnoth network stack using boost::asio
email : billybiset@gmail.com irc : billynux gna.org : billynux
Rewrite wesnoth network stack implementation using boost::asio.
IRC
billynux
Questionnaire
1) Basics
1.1) Write a small introduction to yourself.
My name is Guillermo Biset and I'm 25 years old. I live in Argentina and I work part time as a university teacher at UNRC. I've been coding since I was 11. Lately I finished my thesis (written in english) using C++, boost::asio and other libs (see http://fud.googlecode.com).
1.2) State your preferred email address.
billybiset@gmail.com
1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?
IRC and Wesnoth forums: billynux
1.4) Why do you want to participate in summer of code?
I use exclusively free software and would love to contribute to such a project, I just finished my Licenciatura thesis and I'm currently seeking open source projects to get involved in (besides the thesis).
1.5) What are you studying, subject, level and school?
I'm taking a post-graduate course in Category Theory here in the National University of Rio Cuarto while teaching first year students basic programming and Pascal.
1.6) What country are you from, at what time are you most likely to be able to join IRC?
I'm from Argentina (GMT -3). I don't have particular time restrictions besides my 6 hours/week dedicated to teaching (mon. 18-20, wed. 16-20, local time).
1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.
No, it will be winter here and I'm currently seeking a full-time or 6hrs/day project with some form of remuneration.
2) Experience
2.1) What programs/software have you worked on before?
- I wrote a C-- compiler using Lex/Yacc at school, I loved the project and did a 64/32 bit generation scheme with many optimizations and developed an automatic bash testing scheme that would translate the C-- code to C and compile that version with gcc and then compare the results of both binaries.
- I wrote a simple particle dynamics engine using Ruby (don't laugh) as a thought experiment. It turned out to be an introductory physics tutor called Phygaro. Originally it supported round particles in a 2d environment colliding with other particles or static polygons, users could draw the environment in a Gtk/cairo application and the run a simulation and plot results in gnuplot. I then rewrote the whole thing dropping my engine and using ODE. The design was very naive and I want to rewrite the whole thing using C++, ODE and a better design. See user "billynux94" on YouTube for some example videos.
- I developed a framework for work distribution that enables a user to write distributed applications without knowledge of parallel programming (aimed at scientist not familiar with advanced programming) called FuD. I worked on it throughout 2009 and now at least 15 people are involved in continuing the project. It uses a simple boost::asio communication layer to have prototyping capabilities. The site contains plenty documentation including UML diagrams, a ~100 pages long english thesis, paper and presentations (LaTeX).
- Also as part of my thesis I developed a protein-backbone clustering application using FuD that uses an algorithm similar to k-means and an optimal rotation+alignment algorithm to compare the 3d structures using RMSD. Code can be seen in it's repository.
- I contribute to MiLi, a minimalistic header-only C++ library collection. I developed an object serialization library there that can be used as a stream.
2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)
Yes, right now the work on FuD involves about 15 people and I'm actually running it. Without svn it couldn't be possible.
2.3) 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?
No.
2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.
Yes, I'm a collaborator at FuDePAN a Non-Profit organization researching in bioinformatics that only releases free software. There I developed FuD, MiLi and the clusterer. I run the FuD and clusterer projects and contribute to MiLi under the advice of Daniel Gutson, FuDePAN's director.
2.5) Gaming experience - Are you a gamer?
Yes, I play Urban Terror (a FPS) actively and I represent Argentina in the national team, although we haven't participated in international tournaments. I played many strategy-based games such as C&C Red Alert as a kid.
2.5.1) What type of gamer are you?
Tough question, what types are there? I play occasionally and prefer tournament engagements to random playing.
2.5.2) What type of games?
Right now only FPS games.
2.5.3) What type of opponents do you prefer?
Human.
2.5.4) Are you more interested in story or gameplay?
Gameplay.
2.5.5) Have you played Wesnoth? If so, tell us roughly for how long and whether you lean towards single player or multiplayer.
No. I intend to do so once my code is finished downloading and I compile it.
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.
2.6) 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 GSoC. If you have gained commit access to our SVN (during the evaluation period or earlier) please state so.
Nothing yet.
3) Communication skills
3.1) Though most of our developers are not native English speakers, English is the project's working language. Describe your fluency level in written English.
Excellent, I lived for almost a year in Montreal/Canada and New Orleans and have little accent or grammar problems. I even worked as a telemarketer in Montreal, not a nice job. I wrote my thesis and a couple of papers in english.
3.2) What spoken languages are you fluent in?
Spanish, English.
3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.
I believe so, I participate in the Urban Terror Argentina forums. I have no trouble listening to valid but ill-spoken criticism. I judge opinions on their content and not how they are expressed but I always try to express myself seriously, professionally and openly honest.
3.4) Do you give constructive advice?
I would like to think so. I teach first year university student on programming and pound them with all the tools necessary to develop quality code. The important part is teaching someone to place themselves on the other guys' shoes (e.g. the code's user).
3.5) Do you receive advice well?
Yes, again, I like to listen to the advice rather than how it is expressed. And I never believe that my stance can't be proven wrong.
3.6) Are you good at sorting useful criticisms from useless ones?
Yes, idem.
3.7) How autonomous are you when developing ? Would you rather discuss intensively changes and not start coding until you know what you want to do or would you rather code a proof of concept to "see how it turn out", taking the risk of having it thrown away if it doesn't match what the project want
There is a bit of a balance to it, neither extreme is good. You need to produce functioning code but you need a previous understanding of the current dynamics of a project. There must be a constant balance of the two activities, albeit depending on the current position, i.e. at first there is a lot of communication involved and as one learns its way around the code and the requirements, more independent work is carried out.
4) Project
4.1) 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?
Yes, the network stack rewrite using boost::asio.
4.2) If you have invented your own project, please describe the project and the scope.
4.3) Why did you choose this project?
I believe it to be an interesting project and one in which I have good knowledge of the necessary tools needed to implement it.
4.4) 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".
It is a difficult call right now and I don't want to go out on a limb. In the following days I will be examining the Wesnoth code to have a good estimation of the work that needs to be dome. At that time I'll come back and edit this wiki.
However, of the top of my head I sincerely believe it to be a 2 to 3 month project.
4.5) Include as much technical detail about your implementation as you can
Idem, I want to have a good idea of what needs to be dome from the inside. I'll edit this entry later.
4.6) What do you expect to gain from this project?
Experience and knowledge. A good ability to estimate my skills while working with timelines and good developers.
4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?
Not much, mainly the project developers' good will. I would be more than pleased to participate as a contributor. However, I really need a paid full time job and would love it to be in a free software environment. But, just like FuDePAN, if I like the project, I expect to keep contributing to it.
5) Practical considerations
5.1) Are you familiar with any of the following tools or languages?
* Subversion (used for all commits)
Yes. I use daily.
* C++ (language used for all the normal source code)
Yes.
* STL, Boost, Sdl (C++ libraries used by Wesnoth)
Yes, I only have a basic concept of SDL however.
* Python (optional, mainly used for tools)
I coded some python as a kid, but haven't done so in a while.
* build environments (eg cmake/autotools/scons)
Yes, I have trained in them but haven't applied that to my projects yet.
* WML (the wesnoth specific scenario language)
No.
* Lua (used in combination with WML to create scenarios)
No.
5.2) Which tools do you normally use for development? Why do you use them?
Any linux environment with a powerful editor (I use Kate) and a good drop-down console such as yakuake (I now use Guake).
5.3) What programming languages are you fluent in?
Fluent in C++, C, LaTeX, Pascal, Ruby, Eiffel and Haskell. Less fluent in Java and Prolog.
5.5) 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. If you are willing to do so, please do list a phone number (including international code) so that we are able to contact you. You should probably *only* add this number in the application for you submit to google since the info in the wiki is available in public. We will *not* make any use of your number unless some case of "there is no way to contact you" does arise!
No, no problems here. Please contact me by email and we can set up a call procedure via skype or phone, I prefer my home phone since I own an old bad-sound cell phone.