Difference between revisions of "User:Zaroth"

From The Battle for Wesnoth Wiki
Line 69: Line 69:
  
 
'''3.2) What spoken languages are you fluent in?'''
 
'''3.2) What spoken languages are you fluent in?'''
 +
 
In order from most to least fluent:
 
In order from most to least fluent:
 
* Polish (mother tongue)
 
* Polish (mother tongue)

Revision as of 10:26, 23 March 2011


This page is related to Summer of Code 2011
See the list of Summer of Code 2011 Ideas



This is a Summer of Code 2011 student page
Project: SoC_Ideas_Simple_Content_Manager



Description

Zaroth - Simple Content Manager

I plan on writing a Qt (preferably PyQt) tool used to simplify and provide a layer of abstraction for common VCSes, as described here: SoC Ideas Simple Content Manager

Description of my proposal on how to tackle this project can be found here: Zaroth Simple Content Manager

IRC

zaroth

Questionnaire

1) Basics

1.1) Write a small introduction to yourself.

1.2) State your preferred email address.

lukasz.dobrogowski(at)nospamthanks_gmail.com

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

Zaroth

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

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

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

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


2) Experience

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

2.2) Have you developed software in a team environment before? (As opposed to hacking on something on your own)

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?

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

2.5) Gaming experience - Are you a gamer?

2.5.1) What type of gamer are you?

2.5.2) What type of games?

2.5.3) What type of opponents do you prefer?

2.5.4) Are you more interested in story or 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.

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.

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.

As it can hopefully be seen in this proposal, I have no problems with written English. If needed, I can prove this with a CPE, but I think that level of formality is not necessary here.

3.2) What spoken languages are you fluent in?

In order from most to least fluent:

  • Polish (mother tongue)
  • English (proficient)
  • German (communicative)
  • Russian (I'm not very good at Russian itself yet, but thanks to Polish-Russian likeliness I can easily communicate with Russians by adding a Polish word when I'm missing a Russian one)

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 have no problems with player interaction, I always try to be as understanding of the other side and amicable as possible. However, I do like fantasy-themed non-vulgar trash talking when playing Wesnoth games (as in "get back to your stinky caves, you puny mushroom-eaters (dwarves)"), , it adds a bit spice to the game for me - but I stop it as soon as I see that the other player is not interested / offended / not getting along with that.

3.4) Do you give constructive advice?

I always try to give reasons when writing critique - and improvement ideas as well, if I have any. If that is also what you understand by "constructive advice", we can agree that I always try to give constructive advice, can't we?

3.5) Do you receive advice well?

TODOIt depends of the definition of "receiving advice well".

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

At areas that I'm at least a bit proficient in (e.g. coding), sure. But as far as e.g. art goes, I couldn't tell pillow shading from banding ;-)

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?

It heavily depends on my "gut feeling" at the moment. If I feel that, based on my current knowledge, there is a clear way how to solve a problem, I won't wait until my teammate/mentor/boss appears and comments on it before starting implementing it. If it's not the case, I heavily prefer to have my ideas thoroughly discussed - nobody likes when his work is thrown away.

However, regardless of whether I implement my own or previously discussed ideas, I always prefer to communicate what I'm doing right now to my teammates to prefer doubling our work / reinventing the wheel.

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?

I chose SoC Ideas Simple Content Manager. Description of my proposal on how to tackle this project can be found here: Zaroth Simple Content Manager

4.2) If you have invented your own project, please describe the project and the scope.

Not invented, but description can be found here: Zaroth Simple Content Manager

4.3) Why did you choose this project?

It provides me with an opportunity to do some UI designing, on which I have previously read a lot on Joel Spolsky's blog and have been fascinated quite by. I expect testing usability (as in watching how average Joe uses it and stumbles - in this case my roommate using Mac probably).

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".

I would like to be able to start and finish coding a little earlier, due to the heavy-exam time on my university in August. However, to compensate that, I will be able to easily devote a lot of time (and love) to the project during May, June, and first half of July. By the end of 3rd week of July I'd like to have all the planned functionality coded and (mostly) tested. So during the second half of July the only thing left is detailed testing, bugfixing and preparing for my exams.

4.5) Include as much technical detail about your implementation as you can

Zaroth Simple Content Manager

4.6) What do you expect to gain from this project?

Certainly more experience in using Qt toolbox and designing intuitive UIs will come useful in later programming career, especially since Qt is on LGPL now and is becoming all-popular. Bonus points if I get the pleasure to code it in Python, which is always a nice experience.

I also want to use this opportunity and at least try test-driven development approach. I have no prior experience in writing unit tests (I have only read about it so far), so I may fail or not have enough time for that.

Last, but definitely not least is a lot of first-rate contact with experienced developers - I hope to pick up a lot of good programming practices from that! For example, since I am currently learning design patterns through the "Gang of four" book it would be also nice to put this in practice and make my approach to programming more organized. I surely hope there'll be some design patterns experts in Wesnoth developer community to consult about that. :-)

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

A better question is what would make me not stay! I am already an eager, even if not very successful, ladder player and I keep meeting friendly and interesting people in Wesnoth community - on the game server, forum and IRC. I see no reasons not to stay so far...

5) Practical considerations

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

  • Subversion (used for all commits) - sure, however after I managed to wrap my head around thinking in Git, SVN looks a bit basic
  • C++ (language used for all the normal source code) - yes, it was my first programming language and so far most heavily used by me
  • STL, Boost, Sdl (C++ libraries used by Wesnoth) - STL - good knowledge, Boost, SDL - little knowledge, enough to find what I need and read more on it to get started quickly
  • Python (optional, mainly used for tools) - after writing my last tool in PyQt I can say my skill's more than basic, it's average, but not yet very pythonic and proficient
  • build environments (eg cmake/scons) - CMake - basic, scons - just enough to build something with scons :-))
  • WML (the wesnoth specific scenario language) - basic
  • Lua (used in combination with WML to create scenarios) - none at all yet, but willing to learn and thanks to an add-on by Aethaeryn it will probably go fast.

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

For quick and dirty editing I use vim. For bigger projects I use Eclipse (java), KDevelop (my newly found love as C++ IDE) or Kate (Python, I may switch to KDevelop). Tools I use regardless of project are:

  • ack (irreplaceable for me, I love to use it for orientation in bigger projects)
  • Git (after the steep learning curve of DCVS, it's really nice and powerful)
  • Redmine (I would get lost in my personal projects without this)
  • Google (90 % of my questions are answered there)
  • IRC (remaining 10 % of my coding problems can be usually quickly solved by friendly people from relevant Freenode channel)

5.3) What programming languages are you fluent in?

C/C++ (fluent), Python, Java, Matlab (averagely fluent)

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

I have no problem with that, but Skype is probably cheaper, unless my mentor is from Germany :-)