Difference between revisions of "User:Vinipsmaker/GSoC13/Questionnaire"

From The Battle for Wesnoth Wiki
(1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?)
(5.1) Are you familiar with any of the following tools or languages?)
Line 138: Line 138:
 
* I'm familiar with '''cmake''' and I use it in some projects, but I never read a single line of code of '''scons'''.
 
* I'm familiar with '''cmake''' and I use it in some projects, but I never read a single line of code of '''scons'''.
 
* I'm familiar with '''Git''' (see my [https://github.com/vinipsmaker GitHub profile], for instance) version control system
 
* I'm familiar with '''Git''' (see my [https://github.com/vinipsmaker GitHub profile], for instance) version control system
* My experience with '''Lua''' and '''WML''' is near to zero, but I don't think this would be a problem. Learn a new language is easy. Learn a new programming paradigm is hard.
+
* The first time a took a look at '''WML''' was this week, but this format reuses several patterns found in languages that I'm used to, such as preprocessor-like features from C, variables and expressions ressembling a bit of bash, the overall structure being a combination of INI and XML.
 +
* My experience with '''Lua''' is near to zero, but I don't think this would be a problem. Learn a new language is easy. Learn a new programming paradigm is hard.
  
 
== 5.2) Which tools do you normally use for development? Why do you use them? ==
 
== 5.2) Which tools do you normally use for development? Why do you use them? ==

Revision as of 05:51, 1 May 2013

Contents

1) Basics

1.1) Write a small introduction to yourself.

I'm an ArchLinux user that likes C++. You can see my blog at wordpress. If you want to see all links that relates to me (github user, lastfm profile, ...), click here.

1.2) State your preferred email address.

vini.ipsmaker<at>gmail<dot>com

1.3) If you have chosen a nick for IRC and Wesnoth forums, what is it?

My IRC's nickname is vinipsmaker.

My forum's username is vinipsmaker.

1.4) Why do you want to participate in summer of code?

I love to develop and I think GSoC is an excellent initiative.

1.5) What are you studying, subject, level and school?

I'm majoring in computer science at Universidade Federal de Alagoas.

1.6) What country are you from, at what time are you most likely to be able to join IRC?

I'm from Brazil and I'm able to join IRC from 22:30 till 3:00 everyday, but I join IRC as soon as I connect to the internet and I'll probably be online from 17:00 till 4:00 (GMT time).

1.7) Do you have other commitments for the summer period ? Do you plan to take any vacations ? If yes, when.

I'll have 4h/day 3d/week classes.

2) Experience

2.1) What programs/software have you worked on before?

I worked on a lot of projects. Among them:

  • A very very simple enrollment system built on top of Node.js asynchronous web frameowork for JavaScript
  • A bomberman-like networked Qt-game (it lacks several things I'm planning to release in a refactored version)
  • I've worked on a private GStreamer plugin in C

Projects cited below aren't repeated here.

2.2) Have you developed software in a team environment before?

I worked on some team projects before. Among other projects, I worked on:

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?

I never participated on Google Summer of Code before.

2.4) Are you already involved with any open source development projects? If yes, please describe the project and the scope of your involvement.

I'm the lead developer of an asynchronous web framework for C++ built on top of Qt and I'm the brazilian's translation maintainer for the Enlightenment project.

2.5) Gaming experience - Are you a gamer?

Yes, I'm a gamer.

2.5.1) What type of gamer are you?

I'm the type of gamer that like games that:

  • Run on GNU/Linux
  • Console games (preferably portable)

2.5.2) What type of games?

I like strategy games (like Wesnoth), Action-RPG games (like The Legend of Zelda) and dumb games (like mines and gnujump).

2.5.3) What type of opponents do you prefer?

I like to play against AI or against my AFK friends.

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.

I finished some campaigns on single-player mode, but I avoid multiplayer-mode, because I always lose (shame on me).

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 repository (during the evaluation period or earlier) please state so.

I didn't send any patches to Wesnoth (yet!). I hope this will change soon.

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.

I write some english posts on my blog and you can see the Tufão documentation (both written by myself).

3.2) What spoken languages are you fluent in?

I can watch and understand videos about C++ (Bjarne Stroustroup, Herb Sutter, Andrei Alexandrescu, ...), but I never practice, so I must be terrible speaking.

I'm fluent in brazilian portuguese.

3.3) Are you good at interacting with other players? Our developer community is friendly, but the player community can be a bit rough.

Yes.

3.4) Do you give constructive advice?

Yes.

3.5) Do you receive advice well?

Yes.

3.6) Are you good at sorting useful criticisms from useless ones?

Usually not.

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

I tend to not wait for other people.

If I face a surprising situation where I have more than one choice and each choice have its drawbacks, I'll document the choices and send this documentation to the other developers as a starting pointing to choose the solution.

I like to allow my colleagues track my progress also.

4) Project

See my User:Vinipsmaker/GSoC13/Proposal.

5) Practical considerations

5.1) Are you familiar with any of the following tools or languages?

  • I'm familiar with the C++ programming language and the STL templates library. C++ is my programming language of choice for a long time already. I just need to master all the power of templates-machinery and I'll be happier yet.
  • I never used Boost, but I follow the Boost project and read the documentation of some pieces from time to time.
  • I used SDL long time ago in a small game for my first programming's classes. At the time, I didn't understand asynchronous/event-based-programming and other concepts very well and I was only an amateur at threading programming.
  • I love Python's expressiveness power, but I never read a full programming book about it, so I don't even know what I don't know about the language. You can see my last Python's project at googlecode.
  • I'm familiar with cmake and I use it in some projects, but I never read a single line of code of scons.
  • I'm familiar with Git (see my GitHub profile, for instance) version control system
  • The first time a took a look at WML was this week, but this format reuses several patterns found in languages that I'm used to, such as preprocessor-like features from C, variables and expressions ressembling a bit of bash, the overall structure being a combination of INI and XML.
  • My experience with Lua is near to zero, but I don't think this would be a problem. Learn a new language is easy. Learn a new programming paradigm is hard.

5.2) Which tools do you normally use for development? Why do you use them?

  • I use Emacs editor, because it's an advanced text editor with support for multiple languages. IDEs are usually much intrusive and I don't like intrusive tools, so I just use Emacs. You can see my Emacs config here.
  • LLVM/Clang compiler, because the colored output. But most of the time I'm using GCC.
  • CMake build system, because it's fast (compared to autotools, at least on my machine), it's easy and has a build's progress status.
  • git version control system, because has a lot of integrated features (branching easier and more powerful than in subversion, at least with the knowledge that I have).
  • Meld diff tool, because it has a nice GUI.
  • Doxygen for documentation, because it's the best.
  • C++' programming language, because of control and expressiveness power (not as much as Python, but still better than Java).
  • Any drop-down terminal (currently Terra) with good support for tabs.
  • Any rolling-release distro that do not separate packages in normal and “-dev”. Currently ArchLinux.

5.3) What programming languages are you fluent in?

I'm fluent in C, C++, JavaScript, Java and MongoDB.

5.4) Would you mind talking with your mentor on telephone / internet phone?

I have an skype account, but you can always reach me via email (I read it daily/hourly/minutely).

I can provide my phone number.