<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Blog / Andrey Popelo</title>
    <link>http://popelo.com/blog/</link>
    <description>Personal blog about programming, opensource and other stuff</description>
    <language>en-us</language>
    <pubDate>Wed, 22 Apr 2026 01:58:47 +0300</pubDate>
    <lastBuildDate>Wed, 22 Apr 2026 01:58:47 +0300</lastBuildDate>
    <generator>popelo.com</generator>
    <managingEditor>andrey@popelo.com (Andrey Popelo)</managingEditor>
    <webMaster>andrey@popelo.com (Andrey Popelo)</webMaster>

<item>
  <title>Ymacs for Gmail</title>
  <link>http://popelo.com/blog/2010-07-02-ymacs-for-gmail/</link>
  <description>
    <![CDATA[
<p>Recently I created
a <a href="http://en.wikipedia.org/wiki/Bookmarklet">bookmarklet</a>
which allows to replace standard text editor in Gmail
with <a href="http://www.ymacs.org/">Ymacs</a>&nbsp;&mdash; an
Emacs-like text editor that works in a browser.</p>

<p>With Ymacs your Gmail can look like this:</p>

<p><img src="/_images/blog/2010-07-02-ymacs-for-gmail/ymacs-for-gmail-screenshot.png"
        alt="Ymacs for Gmail screenshot" /></p>

<p>How to use it:</p>

<ol>
  <li>
      Drag <a href="javascript:(function(){function injectJavaScriptFile(a,b,c){var d=a.getElementsByTagName('head')[0];var e=a.createElement('script');e.src=b;var f=false;e.onload=e.onreadystatechange=function(){if(!f&&(!this.readyState||this.readyState=='loaded'||this.readyState=='complete')){f=true;if(c)c();e.onload=e.onreadystatechange=null;d.removeChild(e)}};d.appendChild(e)}function injectYmacsContainer(a){var b=document.createElement('div');b.id='ymacs_container';a.appendChild(b);var b=document.createElement('div');b.id='ymacs_loading';b.style.textAlign='center';b.style.padding='4em';b.appendChild(document.createTextNode('Loading Ymacs...'));a.appendChild(b)}frame=document.getElementById('canvas_frame').contentWindow;doc=frame.document;textareaContainer=doc.getElementsByClassName('At')[0];textarea=textareaContainer.getElementsByTagName('textarea')[0];textMenu=doc.getElementsByClassName('eJ')[0];frame.textareaContainer=textareaContainer;frame.textarea=textarea;frame.textMenu=textMenu;textarea.style.position='absolute';textarea.style.left='-3000px';textMenu.style.display='none';injectYmacsContainer(textareaContainer);injectJavaScriptFile(doc,'http://ymacs-for-gmail.googlecode.com/files/ymacs-for-gmail-0.1.js')})();" title="Ymacs for Gmail bookmarklet">this link</a> to your bookmarks and rename it to "Ymacs for Gmail".<br />
      or<br />
      Create a new bookmark and paste code from
      <a href="http://ymacs-for-gmail.googlecode.com/files/ymacs-for-gmail-bookmarklet-0.1.min.js">this
      file</a> to url field.</li>

  <li>Login to your Gmail account and start editing a new
  letter. Make sure to switch to "Plain Text" mode if you are in "Rich
  formatting" mode.</li>

  <li>Click on the bookmark</li>

  <li>Enjoy your new editor for Gmail</li>
</ol>

<p>Source code of a bookmarklet is available
on <a href="http://code.google.com/p/ymacs-for-gmail/">Google
code</a>.<br />

Ymacs editor was originally created
by <a href="http://mihai.bazon.net/">Mihai Bazon</a>, you can also
check out an <a href="http://www.ymacs.org/demo/">online Ymacs
demo</a>, which is also very cool.
</p>

    ]]>
  </description>
  <pubDate>Fri, 02 Jul 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Handmade garden bench</title>
  <link>http://popelo.com/blog/2010-06-18-handamde-garden-bench/</link>
  <description>
    <![CDATA[
<p>I like woodworking, it's my small hobby which helps to get rest
from brainwork. I always wanted to make a classic Oxford English bench
for my garden. Weeks of work on spare time and here is the final
result:</p>

<p><img src="/_images/blog/2010-06-18-handmade-garden-bench/handmade-garden-bench.jpg"
    alt="My garden bench" /></p>

<p>Originally it should be made from cedar, redwood, cypress or oak,
but I don't have these materials, so I made it from pine. It doesn't
look as good as cedar, but still is fine enough. If you also like
woodworking, you
can <a href="http://popelo.com/downloads/blog/2010-06-18-handamde-garden-bench/garden-bench-project-plan.pdf">download
a project plan (pdf)</a> and make a similar bench for yourself.</p>

    ]]>
  </description>
  <pubDate>Fri, 18 Jun 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Blog opened</title>
  <link>http://popelo.com/blog/2010-06-10-blog-opened/</link>
  <description>
    <![CDATA[
<p>I&nbsp;finally found enough time and passion to&nbsp;open this
blog. It&nbsp;already contains some articles, which&nbsp;I published
earlier in&nbsp;other places. I&nbsp;decided to&nbsp;move them here,
keeping original publication dates.</p>

<p>I&nbsp;plan to&nbsp;write articles about programming,
web-development, OpenSource and anything else&nbsp;I find interesting
to&nbsp;write about.</p>

<p>Blog engine is&nbsp;implemented in Python using
<a href="http://webpy.org">web.py</a>. As&nbsp;usual, it&nbsp;was
really fast, easy and fun to&nbsp;implement something with web.py,
I&nbsp;like this Python framework because it&nbsp;allows
to&nbsp;develop fast and keep things simple.</p>

<p>Cheers, <br /> Andrey</p>

    ]]>
  </description>
  <pubDate>Thu, 10 Jun 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Simple expression parser in Python</title>
  <link>http://popelo.com/blog/2010-05-31-simple-expression-parser-in-python/</link>
  <description>
    <![CDATA[

<p>Last year, while working on my Google summer of code project, I
had to implement a simple "search engine" which allows to search
for tasks in ToDo lists. To search for certain task(s) user can
input not only simple plain text queries, but also more complex
search expressions, e.g.:</p>

<pre><code class="no-highlight">list:Work AND due:today</code></pre>

<pre><code class="no-highlight">(list:Personal OR list:Work) AND due:tomorrow</code></pre>

<pre><code class="no-highlight">(tag:bananas OR tag:apples) AND priority:1 AND NOT list:Work</code></pre>

<p>And so on. Expressions can be of any complexity.</p>

<p>To parse these expressions a simple configurable parser was
implemented in Python. I decided to share the code and write a
small blog post about it, so maybe it could be helpful for
someone. I called it ExpressionParser, the source code is
<a href="http://github.com/apopelo/ExpressionParser">available at
github</a>.</p>



<p>Using this parser you can process input text and convert it to a
simple data structure. For example:</p>

<pre><code class="python">>>> query = "NOT list:Work AND due:today"
>>> result = parser.parse(query)
>>> print result
[
    {'type': 'propval', 'value': ('list', 'Work', 'NOT')},
    {'type': 'operator', 'value': 'AND'},
    {'type': 'propval', 'value': ('due', 'today', None)}
]</code></pre>

<p>A bit more complex example:</p>

<pre><code class="python">>>> query = "(list:Personal OR list:Work) AND NOT due:tomorrow"
>>> result = parser.parse(query)
>>> print result
[
    {'type': 'group', 'value': 
        [
            {'type': 'propval', 'value': ('list', 'Personal', None)}, 
            {'type': 'operator', 'value': 'OR'},
            {'type': 'propval', 'value': ('list', 'Work', None)}
        ]
    },
    {'type': 'operator', 'value': 'AND'},
    {'type': 'propval', 'value': ('due', 'tomorrow', 'NOT')}
]</code></pre>

<p>A syntax definition is required for the parser. You need to
subclass ExpressionParser and define the syntax like this:</p>

<pre><code class="python">class ExampleExpressionParser(ExpressionParser):
    # syntax definition for the parser
    # ! order is important
    syntax = [
                # group, eg: "(...)"
                { 'start': '\\s*\(',
                  'end': '\)\\s*',
                  'type': 'group'
                },

                # propval, eg: "hasNotes:true"
                # with optional NOT modifier
                { 'start': '\\s*([Nn][Oo][Tt])?\\s*([a-z][a-zA-Z]*): *("(.+?)"|[^ ()]+)\\s*',
                  'type': 'propval',
                  'create': lambda m: (m.group(2), m.group(4) or m.group(3), m.group(1))
                },

                # operator, eg: "AND", "OR"
                { 'start': '\\s*(?i)(AND|OR)\\s*', # case insensitive
                  'type': 'operator',
                  'create': lambda m: m.group(1)
                },

                # text
                # with optional NOT modifier
                # if nothing else matched - match all characters until special
                # character found
                { 'start': '\\s*([Nn][Oo][Tt])?\\s*([ ()]?[^ ()]*)',
                  'type': 'text',
                  'create': lambda m: (m.group(2), m.group(1))
                }
             ]</code></pre>

<p>Then you can use your parser by calling a parse() method:</p>

<pre><code class="python">parser = ExampleExpressionParser()
result = parser.parse(expr)</code></pre>

<p>For more details about using a parser and defining a syntax for it
see README file.</p>

<p>Thanks to <a href="http://www.snopek.tv/">David Snopek</a>, my
  mentor from GSoC 2008 for helping me to develop a similar parser which
  I used as a reference.</p>

    ]]>
  </description>
  <pubDate>Mon, 31 May 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Switched from Vim to Emacs</title>
  <link>http://popelo.com/blog/2010-05-28-switched-from-vim-to-emacs/</link>
  <description>
    <![CDATA[
<p>After 2&nbsp;years of&nbsp;being a&nbsp;Vim user&nbsp;I decided
to&nbsp;try Emacs. Not because&nbsp;I don&rsquo;t like Vim, just
because&nbsp;I like to&nbsp;try something new and believe
it&nbsp;helps me&nbsp;to&nbsp;grow as&nbsp;an&nbsp;engineer.</p>

<p>After a&nbsp;week of&nbsp;playing with Emacs so&nbsp;far&nbsp;I
must say that&nbsp;I like it. Although all these key combinations with
Ctrl and Meta keys are a bit uncomfortable to&nbsp;use after Vim,
it&nbsp;feels like a&nbsp;more integrated environment for programming,
writing text, manipulating files and lots of&nbsp;other things.</p>

<p>Also I&nbsp;need to&nbsp;point out
that <a href="http://peepcode.com/products/meet-emacs">Peepcode&rsquo;s
"Meet Emacs" screencast</a> helped me&nbsp;a&nbsp;lot
to&nbsp;learn quickly and painlessly start using Emacs.</p>

<p>If&nbsp;you are also planning to&nbsp;try Emacs I&nbsp;highly
suggest to&nbsp;use "Emacs starter kit"&nbsp;&mdash; it
is&nbsp;a&nbsp;set of&nbsp;configuration files which provide useful
customizations for fresh Emacs install, because default settings are
not always good for beginners. Getting Emacs starter kit
is&nbsp;easy:</p>

<pre><code class="bash">$ git clone http://github.com/technomancy/emacs-starter-kit.git ~/.emacs.d</code></pre>

    ]]>
  </description>
  <pubDate>Fri, 28 May 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Google Summer of Code 2010 — пора готовиться</title>
  <link>http://popelo.com/blog/2010-02-25-gsoc2010-its-time-to-prepare/</link>
  <description>
    <![CDATA[
<img src="/_images/blog/2010-02-25-gsoc2010-its-time-to-prepare/gsoc-logo-2010.jpg" alt="Google Summer of Code 2010 logo"/>

<p>Итак, скоро начнется прием заявок на&nbsp;участие в&nbsp;Google
Summer of&nbsp;Code 2010 (GSoC) от&nbsp;организаций
и&nbsp;студентов по&nbsp;всему миру.</p>

<p>Коротко о&nbsp;том, что такое GSoC и&nbsp;как принять в&nbsp;нем
участие,&mdash; в&nbsp;этой статье.</p>


<h3>Что такое Google Summer of&nbsp;Code?</h3>

<p>Это возможность для студентов работать над открытым проектом
в&nbsp;течение лета и&nbsp;получить за&nbsp;это $5000. GSoC
организовывается и&nbsp;финансируется компанией Google, в&nbsp;этом
году запланировано принять в&nbsp;программу до&nbsp;1000 студентов
со&nbsp;всего мира.</p>

<h3>Как все происходит?</h3>

<p>С&nbsp;8&nbsp;по&nbsp;12&nbsp;марта Google отберет список
OpenSource организаций, которые будут участвовать в&nbsp;этой
программе
(см. <a href="http://socghop.appspot.com/gsoc/program/accepted_orgs/google/gsoc2009">полный
список организаций, которые участвовали в&nbsp;прошлом
году</a>). Принимают участие все крупные и&nbsp;известные OpenSource
организации: Debian, Fedora Project, KDE, Django Software Foundation
и&nbsp;т.д., всего 150&nbsp;организаций.</p>

<p>Студенты могут писать код для одной из&nbsp;этих организаций
в&nbsp;течение лета и&nbsp;получать за&nbsp;это деньги. Чтобы принять
участие в&nbsp;программе, студент должен подать заявку в&nbsp;период
с&nbsp;29&nbsp;марта по&nbsp;9&nbsp;апреля. В&nbsp;заявке нужно
рассказать что вы&nbsp;собираетесь сделать в&nbsp;течение
3&nbsp;месяцев лета, какой у&nbsp;вас опыт и&nbsp;почему именно
вы&nbsp;подходите для этого, а&nbsp;не&nbsp;кто-то другой. Можно
подавать сразу несколько заявок в&nbsp;несколько организаций.</p>

<h3>Где брать идеи для проекта?</h3>

<p>Каждая организация предоставляет список идей для проектов над
которыми могут работать студенты, но&nbsp;вы&nbsp;всегда можете
предложить свою идею.</p>

<h3>Хочу участвовать. С чего мне начинать?</h3>

<ol>
  <li>
    <p>Внимательно читаете
    <a href="http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs">FAQ</a>
    на&nbsp;сайте GSoC, там есть ответы на&nbsp;все основные
    вопросы.</p>
  </li>

  <li>
    <p>Смотрите на&nbsp;список организаций с&nbsp;прошлого года
(список организаций этого года будет доступен после 12&nbsp;марта),
выбираете себе организацию, которая нравится.</p>
  </li>

  <li>
    <p>Смотрите на&nbsp;список идей проектов для этой организации,
    смотрите что писали для нее студенты в&nbsp;прошлом году.</p>
  </li>

  <li>
    <p>Начните изучать внутреннюю жизнь сообщества этой организации,
    подпишитесь на&nbsp;их&nbsp;список рассылки, зайдите в&nbsp;IRC,
    начните изучать исходники, исправьте пару багов,
    представьтесь&nbsp;&mdash; пусть вас заметят.</p>
  </li>

  <li>
    <p>Когда придет время&nbsp;&mdash; подайте заявку на&nbsp;участие
    на&nbsp;сайте GSoC, но&nbsp;предварительно обсудите
    с&nbsp;сообществом свою заявку, это сильно поможет
    ее&nbsp;доработать +вас заметят.</p>
  </li>
    
  <li>
    <p>Ждите результатов, решение, брать вас или нет, принимает сама
      OpenSource организация.</p>
  </li>
</ol>

<p>И&nbsp;если вас взяли&nbsp;&mdash; дальше начинается самое интересное.</p>

<p>Я&nbsp;участвовал в&nbsp;Google Summer of&nbsp;Code два года подряд
в&nbsp;<nobr>2008-ом</nobr> и&nbsp;<nobr>2009-ом &mdash;</nobr>
поверьте, опыт непередаваемый. Это не&nbsp;только возможность
заработать, но&nbsp;и&nbsp;возможность узнать много нового,
познакомится с&nbsp;интересными людьми и&nbsp;огромный плюс
к&nbsp;вашему резюме в&nbsp;будущем.</p>

<h3>Ссылки</h3>

<p><a href="http://socghop.appspot.com/">Официальный сайт GSoC</a></p>

<p><a href="http://gsoc.org.ua/">Неофициальный русскоязычный сайт</a>
(внимание, сайт устаревший, использовать только как дополнительный
источник)</p>

<p><a href="http://groups.google.com/group/google-summer-of-code-discuss">Список
рассылки Google Summer of Code discuss</a> (здесь появляются все
официальные обьявления, можно задавать вопросы, подпишитесь
обязательно)</p>

<p>Официальный IRC канал на Freenode&nbsp;&mdash; #gsoc</p>

<p>Любые вопросы о&nbsp;программе можете задавать в&nbsp;комментариях,
как бывший участник, могу дать много полезных советов.</p>

    ]]>
  </description>
  <pubDate>Thu, 25 Feb 2010 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Оформляем диплом в OpenOffice</title>
  <link>http://popelo.com/blog/2009-06-29-making-reports-in-openoffice/</link>
  <description>
    <![CDATA[

<p><img src="/_images/blog/2009-06-29-making-reports-in-openoffice/oo_logo.jpg"
    alt="Логотип OpenOffice" /></p>

<p>Решил написать о&nbsp;том как оформить диплом/курсовую
  в&nbsp;OpenOffice. Я&nbsp;пользуюсь OpenOffice для оформления
  всей документации уже больше года и&nbsp;мне нравится, нравится
  больше чем MS&nbsp;Office.</p>

<p>Думал о&nbsp;чем написать и&nbsp;в&nbsp;итоге придумал просто
  создать шаблон дипломной работы, чтобы каждый вживую мог
  посмотреть как оно делается и&nbsp;самое главное&nbsp;&mdash;
  теперь любой желающий может взять этот шаблон за основу своей
  дипломной/курсовой работы.</p>


<p>Просто откройте шаблон, заполните свое имя, имя руководителя
и&nbsp;пару других полей и&nbsp;дальше работайте только над
содержимым&nbsp;&mdash; все стили уже созданны в&nbsp;соответствии
с&nbsp;СОККР, все что можно было автоматизировать (как то&nbsp;
составление Содержания, Библиографии, количество
страниц/рисунков/таблиц в реферате) автоматизированно. Плюс
к&nbsp;каждому разделу я&nbsp;добавил примечания&nbsp;&mdash; это
выдержки из&nbsp;СОККР, чтобы сразу можно было видеть о чем надо
писать в&nbsp;том или ином разделе и&nbsp;как это должно
выглядеть.</p>

<p><img src="/_images/blog/2009-06-29-making-reports-in-openoffice/screen-diplom.png"
        alt="Скриншот шаблона дипломной работы" /></p>

<p>В&nbsp;шаблоне есть отдельный раздел &laquo;Примеры оформления
основных элементов документа&raquo;, где рассказывается
и&nbsp;показывается как оформляются иллюстрации, таблицы,
перечисления, поля и библиографические ссылки.</p>

<p>Писать о&nbsp;том как создать и&nbsp;применить стиль или выполнить
другие простые вещи думаю не&nbsp;стоит&nbsp;&mdash; никому оно
не&nbsp;надо, студенты люди грамотные и&nbsp;в&nbsp;таких вещах
с&nbsp;легкостью могут разобраться и&nbsp;сами.</p>

<p>Помните&nbsp;&mdash; этот шаблон не&nbsp;является образцом
оформления документации. Единственным документом, который описывает
правила офомления и&nbsp;структуру курсовых и&nbsp;квалификационных
работ является методичка &laquo;СОККР&raquo;.</p>

<p>Распечатать диплом можно элементарно в&nbsp;любом месте, сохранив
документ в&nbsp;формате pdf.</p>

<p>Брать OpenOffice (у кого нет) советую
от <a href="http://i-rs.ru/Skachat" title="Перейти на сайт 
Инфра-Ресурс">Инфра-Ресурс</a>&nbsp;&mdash; их сборка полностью
русифицированна и содержит все необходимые инструменты.</p>

<p>Этот шаблон еще не&nbsp;полностью закончен. В&nbsp;нем еще нету
спецификации, и&nbsp;приложений. Времени у&nbsp;меня на&nbsp;все сразу
нехватает, по&nbsp;этому доработки шаблона приветствуются. Если
вы&nbsp;добавите в&nbsp;него что-то от себя&nbsp;&mdash;
не&nbsp;поленитесь поделится наработками с&nbsp;остальными.</p>

<p>Хоть семестр уже закончился, сохраните себе этот шаблон
на&nbsp;потом или добавьте страницу в&nbsp;закладки. Я&nbsp;надеюсь,
что он&nbsp;поможет в конце-концов не&nbsp;парится с&nbsp;оформлением,
а&nbsp;заниматься только непосредственно содержимым работы.</p>

<p><a href="/trash/template-diplom.ott">Скачать шаблон дипломной работы для OpenOffice</a></p>

    ]]>
  </description>
  <pubDate>Mon, 29 Jun 2009 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Студенты и OpenSource</title>
  <link>http://popelo.com/blog/2009-06-06-students-and-the-opensource/</link>
  <description>
    <![CDATA[
<p><img src="/_images/blog/2009-06-06-students-and-the-opensource/opensource-logo.png" alt="OpenSource" /></p>

<p>Захотелось рассказать о&nbsp;том, что такое OpenSource, чем
участие в&nbsp;открытых проектах может быть полезно для студента
и&nbsp;что делать, если вам это интересно, но&nbsp;не&nbsp;знаете
с&nbsp;чего начать.</p>

<p>Долго рассказывать о&nbsp;том, что такое OpenSource, думаю
не&nbsp;стоит, почти все как минимум слышали
об&nbsp;открытом&nbsp;ПО и&nbsp;при желании всегда
можно <a href="http://en.wikipedia.org/wiki/Open_source_software">почитать
об&nbsp;этом в&nbsp;той&nbsp;же Википедии</a>.</p>

<h3>Зачем вам это надо?</h3>

<p>Студенту участие в&nbsp;OpenSource проектах поможет
развиваться, получая новые знания и&nbsp;решая реальные
проблемы. При этом вы познакомитесь с&nbsp;тем как ведутся
обсуждения над проектами в&nbsp;списках рассылки, которые часто
применяются и&nbsp;внутри обычных компаний, и почтовым
этикетом. Научитесь работать в&nbsp;команде и&nbsp;пользоваться
современными инструментами коллективной разработки. Сможете
завоевать авторитет и&nbsp;познакомится со&nbsp;многими
интересными&nbsp;и, возможно, известными людьми. И, наконец,
сможете добавить дополнительную строку в&nbsp;свое резюме, которая
очень не&nbsp;помешает студенту только окончившему ВУЗ.</p>


<p>OpenSource&nbsp;&mdash; это весело. В&nbsp;проектах участвуют много
умных и&nbsp;веселых людей, которые занимаются этим не&nbsp;потому что
кто-то заствляет, а потому что нравиться. В&nbsp;irc-чатах обсуждают
разные темы и&nbsp;не&nbsp;всегда они могут быть связаны
с&nbsp;проектом. Вот только что мне, например, пришло письмо
с&nbsp;темой &laquo;We&nbsp;are fa-mi-ly&raquo; с&nbsp;обсуждением
будущей встречи разработчиков с&nbsp;вечеринкой, напитками
и&nbsp;всеми вытекающими последствиями.</p>

<p>OpenSource&nbsp;&mdash; это не&nbsp;закрытый клуб для
избранных. Здесь всегда приветствуют новых участников. Проектов море
и&nbsp;каждый может найти&nbsp;то, что ему по&nbsp;душе.</p>

<p>Многие компании все активнее используют открытое&nbsp;ПО
и&nbsp;активно его поддерживают. Nokia выпускает устройства
с&nbsp;Linux на&nbsp;борту (дальше их будет еще больше)
и&nbsp;поддерживает несколько разных сообществ разработчиков, Яндекс
активно поддерживает Django и&nbsp;другие проекты, Google просто
основан на&nbsp;использовании открытого&nbsp;ПО, очень способствует
его развитию и&nbsp;распространяет многие свои разработки под открытой
лицензией. Почти все большие компании так или иначе с&nbsp;этим
связаны.</p>

<p>И&nbsp;в&nbsp;конце-концов, участвуя в&nbsp;OpenSource проектах
вы&nbsp;помогаете создавать программы, которые свободно могут
использовать люди со&nbsp;всего мира.</p>

<p>Работодатель берет только людей с&nbsp;опытом работы? Вот
он&nbsp;ваш опыт. Используйте возможность получить реальный опыт
работы прямо во время учебы.</p>

<h3>Язык</h3>

<p>Да, правда, общаться придется на&nbsp;английском. Но&nbsp;это
не&nbsp;значит что вы&nbsp;обязаны владеть им&nbsp;досконально. Нужно
уметь понимать что написано простым языком и&nbsp;суметь выразить свою
мысль. Если ошибаетесь&nbsp;&mdash; не страшно, смеятся или указывать
на&nbsp;ваши ошибки никто не&nbsp;будет.</p>

<p>Если думаете, что ваших знаний все&nbsp;же недостаточно,
то&nbsp;самое время начать их&nbsp;подтягивать, читать статьи
и&nbsp;техническую литературу на английском, ну&nbsp;или хотя&nbsp;бы
смотреть Саус Парк в&nbsp;оригинале.</p>

<h3>С чего начать</h3>

<ol>
    <li>
      <p>Сначала подумайте над тем, что вам интересно, что вы&nbsp;уже
      знаете и&nbsp;чему хотели&nbsp;бы научится.</p>

      <p>Например, я&nbsp;выбираю проекты, которые помогают научится
      чему-то новому. В&nbsp;прошлом году мне хотелось хорошо
      разобраться с JavaScript, а&nbsp;в&nbsp;этом&nbsp;&mdash;
      захотелось научиться писать на&nbsp;Python да еще и&nbsp;под
      мобильные платформы.</p>

      <p>Помните: здесь многое основанно на&nbsp;энтузиазме, поэтому
      вам должно нравиться&nbsp;то, чем вы&nbsp;занимаетесь.</p>
    </li>

    <li>
      <p>Отберите пару-тройку проектов, которые вам интересны.</p>

      <p>Здесь появляется вопрос&nbsp;&mdash; а&nbsp;где
      их&nbsp;искать? Есть большое количество разных
      проектов/организаций, есть из&nbsp;чего выбирать. Список
      проектов, которым нужна помощь можно посмотреть
      <a href="http://socghop.appspot.com/program/accepted_orgs/google/gsoc2009">на
      сайте того&nbsp;же Google Summer of&nbsp;Code</a>. Этот список
      хорош тем, что в&nbsp;нем есть описание каждой организации, чем
      она занимается и ссылки на&nbsp;список идей (&laquo;Ideas
      Page&raquo;)&nbsp;&mdash; каждая организация написала список
      того, что мог&nbsp;бы для них реализовать студент в течение
      лета.</p>

      <p>Пользуетесь Убунту и&nbsp;вам нехватает какой-то фишки?
      &mdash;&nbsp;Можете написать ее&nbsp;сами. Замучил какой-то баг
      в&nbsp;системе или программе?  &mdash;&nbsp;Разберитсь что там
      происходит и&nbsp;исправьте его. Помогите с локализацией
      какой-то программы, в&nbsp;конце-концов. Это не обязательно
      должно быть что-то грандиозное, люди все равно будут вам
      благодарны и&nbsp;вас заметят.</p>
    </li>

    <li>
      <p>Сходите на&nbsp;сайт проекта, посмотрите документацию, это
      поможет вам определится с&nbsp;проектом.</p>

      <p>Стоит оценить качество документации, достаточно&nbsp;ли ее,
      так как вам, возможно, с&nbsp;нуля придется разбираться в
      проекте. Почитайте какие средства разработки вам понадобятся для
      работы, насколько будет легко настроить рабочее окружение
      у&nbsp;себя локально.</p>
    </li>

    <li>
      <p>Установите все необходимые для работы программы, скачайте
      исходный код проекта из&nbsp;репозитория и&nbsp;попробуйте
      собрать/запустить его у&nbsp;себя.</p>

      <p>Посмотрите где хранится исходный текст проекта. Если еще не
      знаете точно что такое система контроля версий, какие они бывают
      и как ими пользоваться&nbsp;&mdash
      <a href="http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9">самое
      время узнать</a>.</p>

      <p>Подпишитесь на
      <a href="http://en.wikipedia.org/wiki/Electronic_mailing_list">список
      рассылки</a>, зайдите в
      <a href="http://ru.wikipedia.org/wiki/Irc">irc-чат</a>.</p>

      <p>Посмотрите, что народ сейчас обсуждает, чем сейчас
      интересуется сообщество. Можете представится, сказать, что есть
      желание участвовать&nbsp;&mdash; вам подскажут с&nbsp;чего
      начать.</p>
    </li>

    <li>
      <p>Исправьте какой-то баг для начала и&nbsp;отправьте патч.</p>

      <p>Это поможет хоть немного разобраться в&nbsp;исходном коде,
      после чего вы&nbsp;уже будете иметь представление как там все
      устроенно и сможете, при желании, что-то дописывать. Если еще
      не&nbsp;знаете точно что такое
      <a href="http://en.wikipedia.org/wiki/Bug-tracking_system">баг-трекер</a>
      или <a href="http://en.wikipedia.org/wiki/Patch_(Unix)">патч и
      как его создавать</a>&nbsp;&mdash; самое время узнать.</p>
    </li>

    <li>
      <p>Enjoy :)</p>
    </li>
</ol>

<h3>Например</h3>

<p>Есть такой проект&nbsp;&mdash; GNOME. Они создали отдельную страницу под
названием <a href="http://live.gnome.org/GnomeLove">GnomeLove</a>. Ее
цель&nbsp;&mdash; помочь людям, которые хотят чем-то помочь GNOME, но&nbsp;не&nbsp;знают с
чего начать. Есть даже
<a href="http://gnome.org.ru/wacko/Razrabotka/HowToStart/">отдельная
статья на&nbsp;русском языке</a>&nbsp;&mdash; зайдите, почитайте.</p>

<h3>В конце</h3>

<p>Никто не&nbsp;заставляет вас заниматься OpenSource-ом
вечно. В&nbsp;любой момент можно устроится на&nbsp;работу
в&nbsp;компанию. Но&nbsp;при этом у&nbsp;вас всегда будет что показать
в&nbsp;резюме и&nbsp;на&nbsp;собеседовании, у&nbsp;вас появятся новые
знакомые.</p>

<p>Если по&nbsp;каким-то причинам не&nbsp;хотите или не&nbsp;можете
участвовать в &laquo;каких-то там больших и&nbsp;страшных
проектах&raquo;, вот вам открытый проект, который только начинает
развиваться у&nbsp;нас в&nbsp;университете&nbsp;&mdash
<a href="http://pm.stu.cn.ua/projects/show/xsoc">XSoC</a>. В&nbsp;нем
используются Verilog, C, Asm, Linux. Если вам интересна тема
разработки встраиваемых систем, нравится писать на&nbsp;C, VHDL, Verilog
или крутить Linux&nbsp;&mdash; милости просим, все покажем и&nbsp;расскажем. Если
хотите принять в&nbsp;нем участие&nbsp;&mdash; сообщите мне или Алексею Владимировичу
Лукину&nbsp;&mdash; с&nbsp;радостью примем новых разработчиков. Можно и&nbsp;после
сессии.</p>

    ]]>
  </description>
  <pubDate>Sat, 06 Jun 2009 00:00:00 +0300</pubDate>
</item>
<item>
  <title>Конференция Mozilla Maemo Danish Weekend</title>
  <link>http://popelo.com/blog/2009-06-02-mozilla-maemo-danish-weekend/</link>
  <description>
    <![CDATA[
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/logo-mmdw.jpg"
    alt="Логотип Mozilla Maemo Danish Weekend" /></p>

<p>C 29 по 31 Мая мне посчастливилось побывать на конференции
Mozilla Maemo Danish Weekend в Копенгагене, Дания.</p>

<p>Хочу в&nbsp;двух словах рассказать о&nbsp;том что это было
  за&nbsp;мероприятие и&nbsp;показать другим студентам что все
  в&nbsp;их&nbsp;руках, добиться можно многого, было&nbsp;бы желание
  и&nbsp;что стоит участвовать Open Source&nbsp;&mdash; это очень
  полезно и&nbsp;весело.</p>


<p>Mozilla Maemo Danish Weekend&nbsp;&mdash; это конференция,
организованная двумя компаниями&nbsp;&mdash; Mozilla
и&nbsp;Nokia. Nokia уже не&nbsp;первый год занимается разработкой
платформы Maemo&nbsp;&mdash; это платформа, которая сейчас
используется в&nbsp;&laquo;интернет-таблетках&raquo; nokia n770, n800,
n810 и&nbsp;через полгода-год будет использоваться
и&nbsp;в&nbsp;топовых моделях мобильных телефонов от&nbsp;этой
компании. Mozilla в&nbsp;свою очередь в&nbsp;скором времени выпустит
релиз нового браузера для мобильных платформ, основанного на
Firefox&nbsp;3, под названием Fennec. Так как области пересекаются,
решили организовать совместную конференцию, куда позвали всех
разработчиков, которые вносят весомый вклад в&nbsp;эти проекты.</p>

<p>На&nbsp;конференцию попал очень просто&nbsp;&mdash; уже второй год
участвую в программе от&nbsp;Google под названием Google Summer
of&nbsp;Code. В&nbsp;этом году работаю над проектом под платформу
Maemo. Всем студентам, участвующим в&nbsp;GSoC и&nbsp;разрабатывающим
под Maemo или для Mozilla было предложено проспонсировать поездку
на&nbsp;конференцию, от&nbsp;чего я&nbsp;не&nbsp;отказался.</p>

<p>Главное впечатление от&nbsp;всего этого&nbsp;&mdash; ничего
подобного я&nbsp;в&nbsp;жизни не видел. Было очень интересно
познакомится с&nbsp;разработчиками со&nbsp;всего мира, пообсуждать
наши проекты, послушать презентации, поговорить о будущем мобильных
платформ.</p>

<p>Так как конференция проходила в&nbsp;здании IT&nbsp;University
of&nbsp;Copenhagen, мне удалось посмотреть на&nbsp;заграничный
универ. Должен сказать, я&nbsp;даже не&nbsp;думал что такое
бывает. В&nbsp;университете созданы все условия для студентов, только
учись. Начиная от&nbsp;потрясающей формы самого здания, внутренним
дизайном, цитатами известных людей на&nbsp;дверях аудиторий, весь
универ как&nbsp;бы пропитан духом информационных технологий и
заканчивая специализированными лабораториями (отдельная лаборатория
для разработки компьютерных игр, например), наличием разного
оборудования, столами для игры в&nbsp;футбол, настольный теннис,
Pacman и студенческого бара с&nbsp;без- и&nbsp;алкогольными
напитками. Иногда становилось немного обидно, что здесь у&nbsp;нас
нету таких возможностей, хотя есть много прекрасных преподавателей
и&nbsp;неглупых студентов.</p>

<p>Ниже немного фотографий с мероприятия.</p>

<p>Вход в университет.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/entrance.jpg"
alt="Вход в университет" /></p>

<p>Лекционная аудитория.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/lection.jpg"
alt="Лекционная аудитория" /></p>

<p>Раздача атрибутики.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/people-tshirts.jpg"
alt="Раздача атрибутики" /></p>

<p>Внутри универа (в воздухе висят просто балконы и аудитории для
проведения семинаров).</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/univer01.jpg"
alt="Внутри универа 1" /></p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/univer02.jpg"
alt="Внутри универа 2" /></p>

<p>Рабочий процесс. Одной из главных целей было доработать свои
проекты прямо там на месте.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/working-process.jpg"
alt="Рабочий процесс" /></p>

<p>Маркерные доски стоят по всему универу, студенты могут свободно их
использовать для обсуждения.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/mer.jpg"
alt="Маркерные доски" /></p>

<p>Футбол.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/football-table.jpg"
alt="Настольный футбол" /></p>

<p>Часть нашей команды разработчиков (слева направо): Эдуардо
(Бразилия), Андрей (Румыния), Лаури (Эстония) и Я.</p>
<p><img src="/_images/blog/2009-06-02-mozilla-maemo-danish-weekend/our-team.jpg"
alt="Наша команда" /></p>

<p>Было очень круто!</p>

<p>Студентам могу посоветовать&nbsp;&mdash; обязательно учите
английский, участвуйте в&nbsp;Open Source проектах,
не&nbsp;ограничивайте свой кругозор только простыми, часто
теоретическими проектами внутри университета, проявляйте
инициативу. Мне удалось пообщаться с&nbsp;большим количеством людей
из&nbsp;разных стран и&nbsp;могу сказать, что толковых людей немного
и&nbsp;они очень ценятся.</p>

    ]]>
  </description>
  <pubDate>Tue, 02 Jun 2009 00:00:00 +0300</pubDate>
</item>

  </channel>
</rss>
