<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cornmander</id>
	<title>The Battle for Wesnoth Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wesnoth.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cornmander"/>
	<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/Special:Contributions/Cornmander"/>
	<updated>2026-05-05T21:13:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31942</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31942"/>
		<updated>2009-08-17T20:23:41Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
Frontend will be written in python with the turbogears application platform (for the nice templating language support). Databases for stats data and any user/configuration settings for the frontend will be in MySQL. Charting will be done using Google Charting API. &lt;br /&gt;
&lt;br /&gt;
Changes will be made to the wesnoth client so that it keeps an array or a map where a list of dead units is kept for each tile. This data will be sent along with stats so that killgraphs can be generated. A program will also be written to take wesnoth maps, generate PNG files of them (if there isn't already such functionality) and color in each tile according to how many units were killed on it. This will be generated nightly and used for the killgraphs.&lt;br /&gt;
&lt;br /&gt;
The stats interface will scale up to millions of rows by operating on a randomly taken subset of the data grabbed nightly. If the subset turns out not to have data for a particular set of filters, the interface will revert back to the bigger database.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
! PROGRESS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
| Completely rewrote the code for generating graph pages. Everything is driven by a database and new graphs take less than a minute to create. I still need to create a page for adding new graphs. &amp;lt;- (edit 8/17/09): still haven't thought of new pie/line/bar graphs, but I have two ideas for hexmaps (aka killmaps) that would be useful: most captured villages, most traveled tiles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
| Incomplete. Added a killmap statistics page but I haven't added any more pie charts or line graphs. Bar graphs are still unsupported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
| Not being done. This may be too performance-intensive to accomplish.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
| Still not done. A discussion that came up on IRC was to allow developers to set a wml variable designating their campaign as beta - not to be tracked. This should get rid of some outrageous values (-9000 gold at start turn, for example). A statistical approach to getting rid of outliers still needs to be created, however.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
| Done. I created a script that generates subset tables of 10k, 100k, and 1000k rows. I wrote a wrapper around my SQL queries that tries these tables first and checks the size of the result (using a library of evaluators). If the result is too small, it queries the next largest size table. Queries take less than a second on average. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
| Done. Added the code to the wesnoth client to send gzipped maps and kill event data. Also added code for a '--screenshot' parameter that allows a server without X11 to generate map screenshots using the wesnoth client. I implemented an extremely tiny WML parser to parse upload logs on my server, wrote a script to generate google maps tilesets from map screenshots (generated on server), and wrote a frontend that has filterable killmaps.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
| Done. It was pretty simple - I just named my div tags according to the wesnoth.org site and imported the stylesheet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
| Not done. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| Not done.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Partially complete. MP logging is enabled for AI vs AI matches but the log format doesn't have particularly useful stats. I still need to add more log data so that useful graphs can be made (faction win percentage, average end turn).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
| Done. This is the database driven graph stuff.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Future work that I will do on this project will be focused on improving statistical/graphical analysis of AI vs. AI games. &lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31941</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31941"/>
		<updated>2009-08-17T20:20:33Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
Frontend will be written in python with the turbogears application platform (for the nice templating language support). Databases for stats data and any user/configuration settings for the frontend will be in MySQL. Charting will be done using Google Charting API. &lt;br /&gt;
&lt;br /&gt;
Changes will be made to the wesnoth client so that it keeps an array or a map where a list of dead units is kept for each tile. This data will be sent along with stats so that killgraphs can be generated. A program will also be written to take wesnoth maps, generate PNG files of them (if there isn't already such functionality) and color in each tile according to how many units were killed on it. This will be generated nightly and used for the killgraphs.&lt;br /&gt;
&lt;br /&gt;
The stats interface will scale up to millions of rows by operating on a randomly taken subset of the data grabbed nightly. If the subset turns out not to have data for a particular set of filters, the interface will revert back to the bigger database.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
! PROGRESS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
| Completely rewrote the code for generating graph pages. Everything is driven by a database and new graphs take less than a minute to create. I still need to create a page for adding new graphs. &amp;lt;- (edit 8/17/09): still haven't thought of new pie/line/bar graphs, but I have two ideas for hexmaps (aka killmaps) that would be useful: most captured villages, most traveled tiles.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
| Added date range selection to all the charts. The table in the database with the unit information still isn't being used. Adding new graphs is quick and easy right now, but only piecharts and linegraphs are supported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
| Not being done. This may be too performance-intensive to accomplish.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
| Still not done. A discussion that came up on IRC was to allow developers to set a wml variable designating their campaign as beta - not to be tracked. This should get rid of some outrageous values (-9000 gold at start turn, for example). A statistical approach to getting rid of outliers still needs to be created, however.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
| Done. I created a script that generates subset tables of 10k, 100k, and 1000k rows. I wrote a wrapper around my SQL queries that tries these tables first and checks the size of the result (using a library of evaluators). If the result is too small, it queries the next largest size table. Queries take less than a second on average. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
| Done. Added the code to the wesnoth client to send gzipped maps and kill event data. Also added code for a '--screenshot' parameter that allows a server without X11 to generate map screenshots using the wesnoth client. I implemented an extremely tiny WML parser to parse upload logs on my server, wrote a script to generate google maps tilesets from map screenshots (generated on server), and wrote a frontend that has filterable killmaps.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
| Done. It was pretty simple - I just named my div tags according to the wesnoth.org site and imported the stylesheet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
| Not done. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| Not done.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Partially complete. MP logging is enabled for AI vs AI matches but the log format doesn't have particularly useful stats. I still need to add more log data so that useful graphs can be made (faction win percentage, average end turn).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
| Done. This is the database driven graph stuff.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31010</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31010"/>
		<updated>2009-07-03T16:31:51Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
Frontend will be written in python with the turbogears application platform (for the nice templating language support). Databases for stats data and any user/configuration settings for the frontend will be in MySQL. Charting will be done using Google Charting API. &lt;br /&gt;
&lt;br /&gt;
Changes will be made to the wesnoth client so that it keeps an array or a map where a list of dead units is kept for each tile. This data will be sent along with stats so that killgraphs can be generated. A program will also be written to take wesnoth maps, generate PNG files of them (if there isn't already such functionality) and color in each tile according to how many units were killed on it. This will be generated nightly and used for the killgraphs.&lt;br /&gt;
&lt;br /&gt;
The stats interface will scale up to millions of rows by operating on a randomly taken subset of the data grabbed nightly. If the subset turns out not to have data for a particular set of filters, the interface will revert back to the bigger database.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
! PROGRESS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
| Completely rewrote the code for generating graph pages. Everything is driven by a database and new graphs take less than a minute to create. I still need to create a page for adding new graphs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
| Added date range selection to all the charts. The table in the database with the unit information still isn't being used. Adding new graphs is quick and easy right now, but only piecharts and linegraphs are supported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
| Not being done. This may be too performance-intensive to accomplish.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
| Not implemented yet. I need to think about how to do this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
| Done. I created a script that generates subset tables of 10k, 100k, and 1000k rows. I wrote a wrapper around my SQL queries that tries these tables first and checks the size of the result (using a library of evaluators). If the result is too small, it queries the next largest size table. Queries take less than a second on average. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
| Not done yet. I will start on this after I finish linegraphs, the addview page, and login support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
| Not done yet. All the site functionality should be laid down before I start skinning it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
| Not done yet. The login support needs to be done first. crab has a sql database with his AI results that I am going to integrate into my database when I get a chance - this will give me an opportunity to test out this feature.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Get the same data on scenario completion, platform breakdown, win/loss/quit information from MP matches.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
| Done. This is the database driven graph stuff.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31009</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=31009"/>
		<updated>2009-07-03T16:30:06Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
Frontend will be written in python with the turbogears application platform (for the nice templating language support). Databases for stats data and any user/configuration settings for the frontend will be in MySQL. Charting will be done using Google Charting API. &lt;br /&gt;
&lt;br /&gt;
Changes will be made to the wesnoth client so that it keeps an array or a map where a list of dead units is kept for each tile. This data will be sent along with stats so that killgraphs can be generated. A program will also be written to take wesnoth maps, generate PNG files of them (if there isn't already such functionality) and color in each tile according to how many units were killed on it. This will be generated nightly and used for the killgraphs.&lt;br /&gt;
&lt;br /&gt;
The stats interface will scale up to millions of rows by operating on a randomly taken subset of the data grabbed nightly. If the subset turns out not to have data for a particular set of filters, the interface will revert back to the bigger database.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
! PROGRESS&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
| Completely rewrote the code for generating graph pages. Everything is driven by a database and new graphs take less than a minute to create. I still need to create a page for adding new graphs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
| Added date range selection to all the charts. The table in the database with the unit information still isn't being used. Adding new graphs is quick and easy right now, but only piecharts and linegraphs are supported.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
| Not being done. This may be too performance-intensive to accomplish.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
| Not implemented yet. I need to think about how to do this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
| Done. I created a script that generates subset tables of 10k, 100k, and 1000k rows. I wrote a wrapper around my SQL queries that tries these tables first and checks the size of the result (using a library of evaluators). If the result is too small, it queries the next largest size table. Queries take less than a second on average. &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
| Not done yet. I will start on this after I finish linegraphs, the addview page, and login support.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
| Not done yet. All the site functionality should be laid down before I start skinning it.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Get the same data on scenario completion, platform breakdown, win/loss/quit information from MP matches.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
| Done. This is the database driven graph stuff.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30200</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30200"/>
		<updated>2009-04-16T22:56:17Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Technical Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
Frontend will be written in python with the turbogears application platform (for the nice templating language support). Databases for stats data and any user/configuration settings for the frontend will be in MySQL. Charting will be done using Google Charting API. &lt;br /&gt;
&lt;br /&gt;
Changes will be made to the wesnoth client so that it keeps an array or a map where a list of dead units is kept for each tile. This data will be sent along with stats so that killgraphs can be generated. A program will also be written to take wesnoth maps, generate PNG files of them (if there isn't already such functionality) and color in each tile according to how many units were killed on it. This will be generated nightly and used for the killgraphs.&lt;br /&gt;
&lt;br /&gt;
The stats interface will scale up to millions of rows by operating on a randomly taken subset of the data grabbed nightly. If the subset turns out not to have data for a particular set of filters, the interface will revert back to the bigger database.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Get the same data on scenario completion, platform breakdown, win/loss/quit information from MP matches.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30199</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30199"/>
		<updated>2009-04-16T22:50:59Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Get MP data&lt;br /&gt;
| Get the same data on scenario completion, platform breakdown, win/loss/quit information from MP matches.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| GUI or scripting interface for hooking in new stat pages&lt;br /&gt;
| Create an interface for looking at new stats. User will have a choice of several graph types and what data sets to use for x and y axes.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30198</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30198"/>
		<updated>2009-04-16T22:47:03Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:9090&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown in addition to improving the things currently in the prototype. Add date ranges to all the charts on the site.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Remove outlier data&lt;br /&gt;
| Give statistics for the median 80%, leaving out the outlying 10% below and 10% above.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add scalability&lt;br /&gt;
| Make the statistics presentation scalable to the millions of rows currently on stats.wesnoth.org. I plan to do this by creating a 10k random-row table subset of the data in a nightly cronjob and using this by default for all queries. If a query gives under CONSTANT_NUMBER results, the site will use the main database instead.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Kill maps&lt;br /&gt;
| Create a section of stats that gives a breakdown by tile on a scenario of the units killed on that tile. The presentation will be a jscript-enhanced map where a user can hover over a tile and see a percentage breakdown of the units killed on that tile. In addition to website coding, significant changes must be made to stat collection.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| CSS and Design&lt;br /&gt;
| Integrate the look of the stats page with the rest of wesnoth.org . Make the website user-friendly&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Email subscription to charts&lt;br /&gt;
| Create a login system so that users can subscribe to particular charts, and receive daily emails for comparison. This will be useful for basic AI regression testing, ex: run 10 different campaigns with an AI during a particular day and compare with the charts of the previous day&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:green&amp;quot;&amp;gt;GOOD&amp;lt;/p&amp;gt;&lt;br /&gt;
| Geographic data&lt;br /&gt;
| The server already gets data on user IPs by accepting logs from them. Create a display page where a map is shown colored in according to how many users play from each country.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30181</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30181"/>
		<updated>2009-04-14T15:33:00Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:909&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30180</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=30180"/>
		<updated>2009-04-14T15:31:51Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
== Goals ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! ID&lt;br /&gt;
! PRIORITY&lt;br /&gt;
! SUBPROJECT&lt;br /&gt;
! RESULT&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Basic stats.wesnoth.org website&lt;br /&gt;
| Create a better formatted version of my prototype at http://cornmander.com:909&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Add new stat windows to the website&lt;br /&gt;
| Created a recruited units window, a dead units window, and a unit by level breakdown&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;p style=&amp;quot;color:red&amp;quot;&amp;gt;MUST&amp;lt;/p&amp;gt;&lt;br /&gt;
| Improve filter behavior&lt;br /&gt;
| Make the filters automatically remove choices with 0 entries based on currently selected filters&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I will either be available during the entire day of 9 PM EST (1:00 UTC) to 10 PM EST (21:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29930</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29930"/>
		<updated>2009-04-05T15:35:24Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). During the summer, depending on whether or not I get a job, I will either be available during the entire day of 9 PM EST (1:00 UTC) to 5 PM EST (21:00 UTC) or still only from 6 PM EST (22:00 UTC) to 3 AM EST (7:00 UTC). I expect to put in full work days of 8 hours on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29764</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29764"/>
		<updated>2009-04-03T10:01:11Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Preferred Opponents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to the face of a human opponent.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29763</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29763"/>
		<updated>2009-04-03T10:00:11Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Technical Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29762</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29762"/>
		<updated>2009-04-03T09:59:58Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Technical Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via the Cheetah python template language).&lt;br /&gt;
&lt;br /&gt;
* Both the frontend which will generate the website and the backend which will manage the data will be coded in Python, which I have substantial experience with and coded part of my previous instrumentation website in. The graphing library will be of the following or a combination: RRDTool, gnu plot, matplotlib, Google Graphing API. RRDTool and matplotlib are convenient because they both have python binds. RRDTool also has extremely nice looking graphics by default.&lt;br /&gt;
&lt;br /&gt;
* Improvements will be done to the clientside Wesnoth code, particularly in upload_logs.cpp . I want to implement multiplayer statistics gathering, which will be sent exactly the same way as the current stats are - logged into a file and sent via HTTP at client exit.&lt;br /&gt;
&lt;br /&gt;
* Creating a kill graph to show where most units die on a map involves making or using a tool that generates thumbnails of maps and collecting data on kill locations. This data will be uploaded by the host of a multiplayer match as a special case of the regular logs. It can be uploaded for singleplayer campaigns as part of the existing logs. &lt;br /&gt;
&lt;br /&gt;
* Mailing reports will be handled by a cronjob. I plan on having this project be run on a Linux, Apache, MmySQL, Python stack.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29761</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29761"/>
		<updated>2009-04-03T09:52:48Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29760</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29760"/>
		<updated>2009-04-03T09:51:12Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you.&lt;br /&gt;
* Approval waiting period&lt;br /&gt;
** I will continue to make improvements to my prototype.&lt;br /&gt;
* April 20th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
** Bug squashing and feature requests. The project will hopefully be accessible to content creators at this point, replacing the original stats.wesnoth.org. I will focus on bug squashing and feature requests. &lt;br /&gt;
** A cool idea would to be to log the geographic location of players and then display it using the Google Maps API. This will help those doing localization to figure out what languages should get the most priority.&lt;br /&gt;
* July 1st - July 20th&lt;br /&gt;
** Add a graph to show how many users are on the wesnoth server at a particular hour. This should be easy to do.&lt;br /&gt;
** Collect data for a map about the deaths in the map. This will help content creators figure out where the most activity is during gameplay - particularly useful for MP gameplay. It will be something along these lines: http://www.steampowered.com/status/tf2/tf2_stats.php - scroll to the bottom. http://www.steampowered.com/status/tf2/death_maps/cp_dustbowl_deaths.jpg . I may start working on this during June if I am ahead of schedule. &lt;br /&gt;
* July 20th - End&lt;br /&gt;
** Bug squashing, documentation. I want to get this shipped/stable by the end of GSoC.&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29759</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29759"/>
		<updated>2009-04-03T09:40:25Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Familiarity with Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you. &lt;br /&gt;
* April 10th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux with GNU make. However, I have used MSVS before but I am not familiar with their solution files. I have a pretty good idea of how to use SCons now.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29758</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29758"/>
		<updated>2009-04-03T09:37:07Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''April 4th - April 10th'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + a graphing library. The library I have in mind is RRDTool but the google graphing API and matplotlib are both possible choices. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you. &lt;br /&gt;
* April 10th - April 30th&lt;br /&gt;
** Create the fully functional stats website, where users will select campaigns and have filters (operating system, difficulty level) to generate graphs. Performance of the website won't be considered yet, so all the graphs will be generated on demand from the huge statistics data set.&lt;br /&gt;
** Implement multiplayer statistics reporting. Change the upload source code (currently upload_logs.cpp) so that statistics on multiplayer games such as play time, average game size, and most played race are reported. &lt;br /&gt;
* May 1st - May 15th&lt;br /&gt;
** Add support for the newly reported multiplayer stats to the website. &lt;br /&gt;
** Optimize the stats webpage. This may mean generating graphs in a cronjob nightly and then displaying them statically during the day, or it may mean that the most accessed stats are put into a smaller SQL table for faster parsing.&lt;br /&gt;
* May 15th - June 5th&lt;br /&gt;
** Make the website spiffy. The website should be themed in the same style as the rest of the Wesnoth website. Add CSS to the site and make it look like it wasn't made in 1997.&lt;br /&gt;
** Allow developers to login in to the site and 'subscribe' to various kinds of reports. This will let campaign developers follow the stats of their campaign and do regression testing as they role out new changes and see how it affects gameplay. They will get nightly or weekly emails that will contain links to the reports they subscribed to.&lt;br /&gt;
* June 5th - June 30th&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux. However, I have used MSVS before.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29755</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29755"/>
		<updated>2009-04-03T09:21:15Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
https://gna.org/patch/?1153&lt;br /&gt;
https://gna.org/patch/?1149&lt;br /&gt;
&lt;br /&gt;
1 or 2 more patches to come related to bug  #13094.&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''March 27 - March 31'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + rrdtool. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you. &lt;br /&gt;
** Get end user suggestions for improvements and feature requests.&lt;br /&gt;
* April 1st - ?&lt;br /&gt;
** TBD&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux. However, I have used MSVS before.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29315</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29315"/>
		<updated>2009-03-26T07:34:26Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Experience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
'''None to date'''&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java servlet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''March 27 - March 31'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + rrdtool. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you. &lt;br /&gt;
** Get end user suggestions for improvements and feature requests.&lt;br /&gt;
* April 1st - ?&lt;br /&gt;
** TBD&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux. However, I have used MSVS before.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29314</id>
		<title>SummerOfCodeProposal corn</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeProposal_corn&amp;diff=29314"/>
		<updated>2009-03-26T07:33:27Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: New page: == Introduction ==  Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org.   === Preferred Email === cornmander@cornmander.com   === Nicknames === *IRC - corn *Wes...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Hi, I am Greg Shikhman and I'd like to work on and improving stats.wesnoth.org. &lt;br /&gt;
&lt;br /&gt;
=== Preferred Email ===&lt;br /&gt;
cornmander@cornmander.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Nicknames ===&lt;br /&gt;
*IRC - corn&lt;br /&gt;
*Wesnoth Forums - cornmander&lt;br /&gt;
&lt;br /&gt;
=== Why I want to participate ===&lt;br /&gt;
Working on Wesnoth for GSoC would be my first experience working on an large and public open source project. GSoC is a structured way (similar to an internship at a company) for me to get into the development of this project. &lt;br /&gt;
&lt;br /&gt;
=== Studies ===&lt;br /&gt;
I am a high school senior who will be attending an accredited university this fall. This section will be more definite when I decide where I want to go :)&lt;br /&gt;
&lt;br /&gt;
=== Patches ===&lt;br /&gt;
'''None to date'''&lt;br /&gt;
&lt;br /&gt;
== Experience ==&lt;br /&gt;
&lt;br /&gt;
Last summer I had a full time summer internship at Morgan Stanley, the financial company. My primary accomplishment was the creation and maintenance of a statistics interface for their networking hardware. I created a system of scripts that handled statistics acquisition, and I wrote a java applet that showed these statistics, with nice looking graphs via RRDTool. The tool was put into production shortly after my intership ended.&lt;br /&gt;
&lt;br /&gt;
A smaller task that I also handled was the creation of a real-time packet rewrite/editing script on the network hardware, to support and upgrade legacy software.&lt;br /&gt;
&lt;br /&gt;
Reference is available on request.&lt;br /&gt;
&lt;br /&gt;
As part of a class, I have also created a real time rasterizer, with model loading, animation, and texture mapping. A scripting language for inputting animation sequences was also developed as part of the project. Source code, along with instructions for compiling are available at http://cornmander.com/dragonballx.tar.gz .&lt;br /&gt;
&lt;br /&gt;
I also run my own server at http://cornmander.com . It is a colocated Gentoo Linux box. I have working sysadmin experience.&lt;br /&gt;
&lt;br /&gt;
=== Programs / Software ===&lt;br /&gt;
&lt;br /&gt;
* python&lt;br /&gt;
* LaTeX&lt;br /&gt;
* GNU make&lt;br /&gt;
* gdb&lt;br /&gt;
* vi(m)&lt;br /&gt;
* linux&lt;br /&gt;
* subversion&lt;br /&gt;
* gcc&lt;br /&gt;
* grep, sed, awk, other standard shell hacker tools :)&lt;br /&gt;
* bison, flex&lt;br /&gt;
* libraries: opengl, sdl, opencv &lt;br /&gt;
* languages: c, python, php, java, latex, html, tcl&lt;br /&gt;
&lt;br /&gt;
=== Team Environment Experience ===&lt;br /&gt;
&lt;br /&gt;
My rasterizer was created as part of a team project. I managed and handed out tasks to my teammates, and tried to &lt;br /&gt;
keep them updating their TODOs.&lt;br /&gt;
&lt;br /&gt;
My internship at Morgan Stanley was done under the supervision of my manager. Although I was working on my project alone, I took suggestions and feature requests from the end users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Open Source ===&lt;br /&gt;
&lt;br /&gt;
==== Involvement ====&lt;br /&gt;
I've reported bugs to the Gentoo Linux project, and I am credited for reporting a minor security bug: http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2007-08/msg00364.html .&lt;br /&gt;
&lt;br /&gt;
I follow the development of ioquake and mplayer, but I haven't had a chance to contribute to either project. I may try to enter the ffmpeg (an integral part of mplayer) GSoC process next year.&lt;br /&gt;
&lt;br /&gt;
=== Gaming Experience ===&lt;br /&gt;
I have been a PC gamer since late elementary school. I am a hardcore gamer primarily interested in FPS games - this is what sparked my interest in working on cutting edge graphics tech like rasterization. My current addiction is TF2. I also appreciate RPG games. I played Wesnoth for a few weeks with my friends after the Wesnoth 1.5 release, and I will start playing again now. &lt;br /&gt;
&lt;br /&gt;
==== What type of Gamer ====&lt;br /&gt;
I used to play video games for a few hours per week, but school has cut it down to 2-4 per week. Nevertheless, I'd categorise myself as a hardcore gamer.&lt;br /&gt;
&lt;br /&gt;
==== Preferred Opponents ====&lt;br /&gt;
I like playing versus friends, or at the very least versus people. AI isn't good enough to adapt and get better as you play, and there is always the joy of rubbing in your victory to their face.&lt;br /&gt;
&lt;br /&gt;
==== Story or Gameplay? ====&lt;br /&gt;
Gameplay is king. I am used to playing multiplayer games, and the game mechanics are much more important than plot are backstory. Nevertheless, I do enjoy reading a good story or being a part of it in a single player campaign. Co-op support is an interesting idea. &lt;br /&gt;
&lt;br /&gt;
==== Have I played Wesnoth ====&lt;br /&gt;
I played 1.5 multiplayer for a few weeks, and played through the Heir to the Throne campaign. &lt;br /&gt;
&lt;br /&gt;
=== Communications ===&lt;br /&gt;
&lt;br /&gt;
==== English ====&lt;br /&gt;
I am a native english speaker, and I am extremely fluent in Russian as well, although I can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Player Interaction ====&lt;br /&gt;
I ignore trolls, and I haven't been involved in player communities for a while. I lurk on forums, but I talk on IRC.&lt;br /&gt;
&lt;br /&gt;
==== Constructive Advice ====&lt;br /&gt;
I take criticism well, but sometimes I am impatient when I don't see the point to a suggestion/requirement. &lt;br /&gt;
&lt;br /&gt;
==== Receive Advice? ====&lt;br /&gt;
My priority is getting the job done. I don't take criticism personally.&lt;br /&gt;
&lt;br /&gt;
==== Sorting out Criticism ====&lt;br /&gt;
The people I work with are typically more experienced and smarter than I am. Although I have the urge to question a suggestion, I'll never dismiss a suggestion without giving it some consideration.&lt;br /&gt;
&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
==== Which Project ====&lt;br /&gt;
I want to improve the stats server.&lt;br /&gt;
&lt;br /&gt;
==== Why ====&lt;br /&gt;
I have existing experience with displaying stats, and the freedom of tools and programming languages should make it easy for me to hit the ground running.&lt;br /&gt;
&lt;br /&gt;
==== Timeline ====&lt;br /&gt;
* '''March 27 - March 31'''&lt;br /&gt;
** Replicate the existing functionality of stats.pl with a homemade solution written in python + rrdtool. This will form the basis for future work.&lt;br /&gt;
** Talk to my (potential) mentor about the improvements possible to the project. I plan on creating something akin to a report generator, where you can specify fields to compare and graph and it will generate a page for you. &lt;br /&gt;
** Get end user suggestions for improvements and feature requests.&lt;br /&gt;
* April 1st - ?&lt;br /&gt;
** TBD&lt;br /&gt;
&lt;br /&gt;
==== Technical Details ====&lt;br /&gt;
* The project will be split up into two seperate chunks: data acquisition and data presentation. Acquisition will be the parsing/representation of the upload logs into a useful format for my program. Presentation is the combination of report generation and the html interface (implemented via a template language).&lt;br /&gt;
&lt;br /&gt;
The internal representation of data will probably be a MySQL database. This will get more specific once detailed project outlines are created and performance considerations are done.&lt;br /&gt;
&lt;br /&gt;
==== What I expect to get from this Project ====&lt;br /&gt;
I want to have done a substantial open source contribution. This project will be my first coordinated team effort and hopefully help me get started on other OSS projects. It will also expose me to the process of maintaining a large, polished product. &lt;br /&gt;
&lt;br /&gt;
==== Would I stay with Wesnoth after GSoC? ====&lt;br /&gt;
I would maintain my code for Wesnoth. I think that I will continue to contribute code in unrelated areas to the project after I am done the project as well. &lt;br /&gt;
&lt;br /&gt;
=== Practical considerations ===&lt;br /&gt;
&lt;br /&gt;
==== Familiarity with Tools ====&lt;br /&gt;
* Subversion - I know how to use svn, and I run it on my own server as well.&lt;br /&gt;
* C++ - I know C and Java very well, but I don't know C++. I think I can learn it over the course of a week or two, however.&lt;br /&gt;
* Python - I know python very well.&lt;br /&gt;
* Build Environments - My development environment is linux. However, I have used MSVS before.&lt;br /&gt;
&lt;br /&gt;
==== Development Tools ====&lt;br /&gt;
I use vi, xterm, svn, and GDB. I dislike working in IDEs because of the overhead and effort of getting your project set up properly in them.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Programming Languages ====&lt;br /&gt;
* Java&lt;br /&gt;
* C&lt;br /&gt;
* Python&lt;br /&gt;
* PHP&lt;br /&gt;
&lt;br /&gt;
I also know LaTeX and HTML, markup languages.&lt;br /&gt;
&lt;br /&gt;
==== Fluent Spoken Languages ====&lt;br /&gt;
I am a native english speaker. I also am fluent in Russian, but can't read or write it.&lt;br /&gt;
&lt;br /&gt;
==== Hours of Availability ====&lt;br /&gt;
Until the end of June, I am available from 6 PM EST to 3 AM EST. During the summer, depending on whether or not I get a job, I will either be available during the entire day or still only from 6 PM EST to 3 AM EST. I expect to put in full work days on this project.&lt;br /&gt;
&lt;br /&gt;
==== Phone / Internet Phone Conversations ====&lt;br /&gt;
I would prefer written electronic communication like IRC or email, but I am OK with talking over the phone. It's a bit frustrating to explain your code over the phone, however.&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=29264</id>
		<title>SummerOfCodeIdeas</title>
		<link rel="alternate" type="text/html" href="https://wiki.wesnoth.org/index.php?title=SummerOfCodeIdeas&amp;diff=29264"/>
		<updated>2009-03-25T04:29:37Z</updated>

		<summary type="html">&lt;p&gt;Cornmander: /* Implement campaign statistics reports on stats.wesnoth.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a compilation of ideas from ML. Needs to be refined (more detailed description, deliverables, workload estimation?):&lt;br /&gt;
&lt;br /&gt;
== I want to be one of your Google Summer of Code students, what should I do... ==&lt;br /&gt;
&lt;br /&gt;
Here is a quick list of things to do to get you started&lt;br /&gt;
* Create an account on gna.org&lt;br /&gt;
* Create an account on the wesnoth forum, and tell an admin on the IRC channel to mark is as a GSoC Student account (Admins are boucman, Ivanovic, mordante, Shadow_Master, Sirp and Turuk)&lt;br /&gt;
* Join the irc channel (#wesnoth-dev on irc.freenode.net) and introduce yourself. We will not give formal interviews, but we will clearly favor people we have learned to know during the selection process (basically communication via IRC is mandatory for our project! it is the main way of &amp;quot;every day communication&amp;quot; for Wesnoth. For the same reason, it's also a good idea to regularly read the [http://wesnoth.debian.net/?C=M;O=A IRC logs].).&lt;br /&gt;
&lt;br /&gt;
* Start a wiki page about your idea, add a link on the bottom of this page and add this information on it:&lt;br /&gt;
** List your account names (gna, forum, irc nick) so that we can recognize you&lt;br /&gt;
** Fill the questionnaire on this page: [[SoC_Information_for_Google#Does_your_organization_have_an_application_template_you_would_like_to_see_students_use.3F_If_so.2C_please_provide_it_now.| List of questions to answer]]&lt;br /&gt;
** Detail your idea as much as possible, look at other students pages, and please give milestones and studies you've done&lt;br /&gt;
** Add a link to the page at the bottom of this page&lt;br /&gt;
&lt;br /&gt;
* Though not mandatory, it is highly advisable to go to the [[EasyCoding]] and [[NotSoEasyCoding]] pages and implement one of these ideas (or any idea of similar scope) so we have an idea how you work. Be sure to use your gna account when submitting these patches so we know who it is coming from. You can also implement some features from our feature request database at gna. When you implement something, also list it on your own page with a reference to the patch.&lt;br /&gt;
&lt;br /&gt;
* For working on Wesnoth you have to be able to compile trunk. To do so you should have a look at the [[WesnothSVN|page about svn]] and afterwards [[CompilingWesnoth|compile Wesnoth svn]].&lt;br /&gt;
&lt;br /&gt;
* Once you have everything done here and think your idea is okay, go to [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants page at google] to submit your application. You have to submit it before '''Date to be supplied later''' or you have no chance to get in!&lt;br /&gt;
&lt;br /&gt;
== List of Ideas for the Project (Suggestions from the wesnoth developers) ==&lt;br /&gt;
&lt;br /&gt;
Here is only a short description of possible Ideas we have, each has a page of its own with a more detailed version on it.&lt;br /&gt;
&lt;br /&gt;
=== Optimize implementation of WML for memory usage ===&lt;br /&gt;
&lt;br /&gt;
Based on this idea: [http://dave.wesnoth.org/?p=9] optimize WML to minimize its memory usage. High memory usage has been a problem for Wesnoth, and this project will aim to reduce it.&lt;br /&gt;
&lt;br /&gt;
=== Implement campaign statistics reports on stats.wesnoth.org ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has an infrastructure which records details of campaigns that players play into a centralized MySQL database. However, we only have rudimentary reports based on this MySQL database available at this time, at [http://stats.wesnoth.org].&lt;br /&gt;
&lt;br /&gt;
This project would involve writing a stats reporting web site which would take the data from the MySQL database and produce reports in chart and table form. Campaign designers would be able to use these reports to gather feedback on their campaigns and get ideas for improvements.&lt;br /&gt;
&lt;br /&gt;
A student could largely make their choice of infrastructure for creating the Website -- whether they prefer Python, Perl, Ruby, PHP, etc. This is a great opportunity for someone who doesn't want to dive into hardcore C++ to make a valuable contribution to Wesnoth.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Stats Server]] - Full Version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Extending the Multiplayer server ===&lt;br /&gt;
&lt;br /&gt;
Our multiplayer community is generally strong and healthy, but we believe its growth is limited by some problems in the interface of the multiplayer lobby.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Multiplayer server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Addon server ===&lt;br /&gt;
Wesnoth has an addon server which offers users to upload user &lt;br /&gt;
made content (UMC). This allows all other users of Wesnoth&lt;br /&gt;
to easily download and install this content. The server was &lt;br /&gt;
originally written for user-made campaigns but contains a lot&lt;br /&gt;
more types of addons nowadays. Both the server side and the &lt;br /&gt;
client side need to be improved.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Addon Server]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== WML validation schemes ===&lt;br /&gt;
Wesnoth uses WML as basic data structure. Over the years&lt;br /&gt;
this language has evolved and got more complex. At the&lt;br /&gt;
moment the WML is validated at runtime and in case of a&lt;br /&gt;
problem the engine stops. With schemes these problems can&lt;br /&gt;
be validated when loading the WML, making it easier to find&lt;br /&gt;
problems before running into them.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Schemes]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Write a primitive library for Formula AI ===&lt;br /&gt;
&lt;br /&gt;
Wesnoth has always had a simple C++ based AI. David (our lead developer) has been working on a simple language to write AI in Wesnoth: [[FormulaAI]]&lt;br /&gt;
&lt;br /&gt;
The Wesnoth AI is used as an opponent in most campaigns, and as such is an important piece of code for the Wesnoth project. Unfortunately, because the skills required to understand and modify it are rather arcane, it is also one of the most neglected parts of the Wesnoth code. This is a place where a lot of research and useful work could be done. But keep in mind that [[WhyWritingAWesnothAIIsHard|writing an AI for Wesnoth is difficult]].&lt;br /&gt;
&lt;br /&gt;
Writing a whole AI is so complicated that we believe it can't be done in a single Summer of code. All proposals should keep that in mind and try to identify an interesting subset that would be workable in the limited time of a summer of code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas FormulaAI]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
=== Savegame reorganization ===&lt;br /&gt;
The savegame formats of Wesnoth for single player campaigns&lt;br /&gt;
and multiplayer differ from each other. And they are processed&lt;br /&gt;
differently as well. Now there is an additional request coming&lt;br /&gt;
up: Multiplayer campaigns. The task will be to unify the savegames&lt;br /&gt;
for all types of scenarios in order to provide a maintainable code&lt;br /&gt;
again.&lt;br /&gt;
&lt;br /&gt;
[[SoC Ideas Savegame]] - Full version of the idea, with detailed information&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other possible ideas to be fleshed out ===&lt;br /&gt;
A MapGenerator rewrite - better scalable for outdoor maps, plus the possibility to define areas (similar to the caverns in the cave generator) etc.&lt;br /&gt;
&lt;br /&gt;
=== Make your own ideas ===&lt;br /&gt;
If you have your own idea the best thing is to join IRC wesnoth-dev at irc.freenode.net and discuss the idea with the developers there. If the developers think your idea is interesting and like the feature you can start to turn it into a full proposal. Once done discuss it again on IRC so the developers can accept your idea.&lt;br /&gt;
&lt;br /&gt;
== Information about our Project ==&lt;br /&gt;
The information we provided google with about our project can be looked up at the site [[SoC Information for Google]].&lt;br /&gt;
&lt;br /&gt;
Also see the [[DeveloperResources]] link (from the [[Project]] page).&lt;br /&gt;
&lt;br /&gt;
== People to bug on IRC ==&lt;br /&gt;
We have prepared a list of people with their &amp;quot;area of competence&amp;quot;. This is to give you an idea on which areas those people can be of help for you. Of course you should always just ask in the IRC chan, but those are the most likely ones to answer questions in the respective area. And here is the list:&lt;br /&gt;
&lt;br /&gt;
[[SoC People to bug on IRC]]&lt;br /&gt;
&lt;br /&gt;
== GSoC Student pages ==&lt;br /&gt;
&lt;br /&gt;
Please add a link to your wiki page below&lt;br /&gt;
&lt;br /&gt;
==== Implement Statistics ====&lt;br /&gt;
[[SummerOfCodeProposal_csaunders | csaunders - SoC Proposal - Stats Server]]&lt;br /&gt;
&lt;br /&gt;
==== AI ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Velory| Velory - SoC Proposal]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_AI_Improvement_Crab| Crab - SoC Proposal - AI Improvement]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Sparksteel | Sparksteel - Improving the AI engine design]]&lt;br /&gt;
&lt;br /&gt;
==== Savegame reorganization ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Euschn | Euschn - Savegame reorganization]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_lmg| lmg - Savegame reorganization]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_grantwu| grantwu - Savegame reorganization]]&lt;br /&gt;
&lt;br /&gt;
==== Extending the Multiplayer server ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_rubend | rubend - Extending the Multiplayer server]]&lt;br /&gt;
&lt;br /&gt;
==== Addon server ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Ryochan7| Ryochan7 - Addon server]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_iyonius| iyonius - Addon server]]&lt;br /&gt;
&lt;br /&gt;
==== Optimize implementation of WML for memory usage ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_res| res -  Optimize implementation of WML for memory usage ]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_jdmunro| jdmunro -  Optimize implementation of WML for memory usage ]]&lt;br /&gt;
&lt;br /&gt;
==== Implement campaign statistics reports on stats.wesnoth.org ====&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Elbin| Elbin - New campaign statistics page]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_Munk| Munk - New campaign stats page]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_carlestyle| carlestyle - New campaign stats page]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_nerwa| NeRwa - New campaign stats page]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_mrfinch| mrfinch - New Campaign Statistics Page]]&lt;br /&gt;
&lt;br /&gt;
[[SummerOfCodeProposal_corn| corn - New Campaign Statistics Page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Summer of Code|*]]&lt;/div&gt;</summary>
		<author><name>Cornmander</name></author>
		
	</entry>
</feed>