<div class="gmail_quote"><p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana">"Support Erlang Language" By Vladimir Zaytsev, Xapian, 2011</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>About me</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica;min-height:14.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Name: Vladimir Zaytsev</span></p>
<p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">E-mail address: <a href="mailto:vladimir@zvm.me" target="_blank">vladimir@zvm.me</a></span></p>
<p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana;color:#0b00ae"><span>WWW: <a href="http://zvm.me/" target="_blank"><span style="text-decoration:underline;letter-spacing:0.0px">zvm.me/</span></a>, <a href="http://www.facebook.com/vladimir.zaytsev" target="_blank"><span style="text-decoration:underline;letter-spacing:0.0px">facebook.com/vladimir.zaytsev</span></a></span></p>
<p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Emergency contact phone number: +79028195844</span></p>
<p style="margin:0.0px 0.0px 12.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Short biography:</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:justify;font:12.0px Verdana"><span style="letter-spacing:0.0px">I was born in 5th Febrary, 1991 in Donetsk, USSR; now live in Khanty-Mansiysk, Russia. In 2008 finished Ugra Lyceum of Physics and Mathematics. Now study at the Ugra State University, Institute of Applied Mathematics, Computer Science and Management (GPA:5.0/5.0). I was participated in the 9th Estonian Summer School on Computer and Systems Science, August 2010; XLIX International Scientific Students Conference in Novosibirsk, April 2010. My career and research interests are included: software engineering, functional programming, information retrieval, machine learning and data mining.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:justify;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Eligibility</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I fulfil the eligibility requirements.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Background Information</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Have you taken part in GSoC and/or <a href="http://code.google.com/opensource/ghop/2007-8/" target="_blank"><span style="text-decoration:underline"> GHOP</span></a> and/or <a href="http://code.google.com/gci" target="_blank"><span style="text-decoration:underline"> GCI</span></a> before?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I have not take part in GSoC, GHOP, GCI before.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 13.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Please tell us about any previous experience you have with Xapian, or other systems for indexed text search.</span></li>
</ul>
<p style="margin:0.0px 0.0px 13.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I don’t have any practical experience with Xapian or another indexed search but I have some theoretical knowledge, I’ve read Manning’s “Introduction to Information Retrieval” and Segaran's “Collective Intelligence” and similar, so I would have chance to use that theory in practice.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Do you have previous experience with Free Software and Open Source other than Xapian?</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I have previous experience with such OpenSource software as Python, Erlang/OTP, Linux(Debian), GCC, PostgreSQL and so on.</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Do you have any other relevant prior experience?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I have similar experience from November 2009 to June 2010 I was working on the project of developing a facts extracting system (Erlang and Python) at the Ugra Research Institute of Information Technologies.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">What development platforms, tools and methods do you prefer to use?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I prefer to use:</span></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">OS: Mac OS X and Linux;</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Languages: Erlang, C++, Python;</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Environment: Emacs, Textmate, Eclipse, git, make, gdb, valgrind;</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I prefer to use a functional programming style where it is appropriate.</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Have you previously been responsible (as an employee/volunteer/student/etc) for a project of a similar size?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">No, I have not.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">What timezone will you be in during the coding period?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">GMT/UTC + 6:00</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Will your Summer of Code project be the main focus of your time during the program?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Yes it will.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 13.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">How many hours a week will you realistically be able to devote to your project?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I plan to invest 10-15 hours per week until 25th of April, 40 hours during the GSoC.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Are you applying for other projects in GSoC 2011? If so, with which organisations?</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Yes, I’m also applying for Shogun Toolbox. </span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Project</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Title: “Support Erlang Language”</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Summary: Add to Xapian bindings which allowed Xapian to be used from Erlang language.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">There are three reasons why I have chosen this project. Firstly, Erlang is gaining popularity language for developing distributed scalable web(and not only) applications where it is often needed fast search so it would be nice to have a comfortable support of Xapian. Secondly, I’m interested in information retrieval and similar areas so this project would be a good starting point for practice. In conclusion I am familiar with Erlang and enthusiastic about using my knowledge and skills to help OpenSource community and gain new experience. In addition I have my own Erlang-driven project where I plan to use Xapian.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b><br></b></span></p><p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Benefits</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Nowadays there are lots small and big companies(Amazon, Facebook, Mochimedia, JS-Kit, etc) which use Erlang and need to use search engines in their projects so I think some of them would be interested about use Xapian-Erlang interface.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Project Details</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Main concepts:</span></p>
<ul>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I plan to use Erlang <a href="http://www.erlang.org/doc/tutorial/nif.html" target="_blank"><span style="text-decoration:underline">NIF</span></a> mechanism, which will allow to run C++ code inside Erlang VM to minimize latency.</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">Of course I plan to use OTP primitives(firstly, gen_server and supervisors) which provide most useful behavior patterns to not invent the wheel.</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I’m familiar with various Erlang interfaces for accessing to some applications like a DBMS, format converters, web servers, ect; so I think it would be better to implement Xapian interface in similar Erlang-style way to be more compatible with some of them.</span></li>
<li style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">On the other hand I plan to take into account all features of Xapian to provide the most complete access to the library.</span></li>
</ul>
<p style="margin:0.0px 0.0px 0.0px 14.2px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana"><span style="letter-spacing:0.0px">I think it is important implement basic parts of interface first and make it less complex. In case not everything works out exactly as planned we will ensure at least operability of these parts.</span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:18.0px Helvetica"><span style="letter-spacing:0.0px"><b>Approximate Project Timeline</b></span></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Verdana;min-height:15.0px"><span style="letter-spacing:0.0px"></span><br></p>
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica;min-height:14.0px"><br></p>
<table cellspacing="0" cellpadding="0" style="background-color:#ffffff;border-collapse:collapse">
<tbody>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">before 30 April</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Read documentation and source code to familiarize myself with functionality, architecture and C++ API of the Xapian.</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">2 - 16 May</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Learn and understand another languages bindings and SWIG.</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">16 - 21 May</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Prepare environment to code</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">23 May - mid June</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Define and implement all the required Erlang modules.</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">mid-June - 26 June</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Improve speed and functionality, scrub code.</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">26 June - mid-July</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Integrate code into Xapian. Write tests, fix bugs.</span></p>
</td>
</tr>
<tr>
<td valign="middle" style="width:105.0px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;text-align:center;font:12.0px Helvetica"><span style="letter-spacing:0.0px">after mid-July</span></p>
</td>
<td valign="middle" style="width:367.8px;min-height:33.8px;border-style:solid;border-width:0.2px 0.2px 0.2px 0.2px;border-color:#d6d6d6 #d6d6d6 #d6d6d6 #d6d6d6;padding:1.0px 2.0px 1.0px 2.0px">
<p style="margin:0.0px 0.0px 0.0px 0.0px;font:12.0px Helvetica"><span style="letter-spacing:0.0px">Write documentation, tests and examples.</span></p>
</td>
</tr>
</tbody>
</table>
</div><br>