Skip to content
Browse files

absolutly new site!

  • Loading branch information...
1 parent 4ef483f commit dc3d3405ff99b9d97574a53cef1e275d277dd9ef Oleg Lebedev committed
View
283 2011/10/9/hello-rst-world/index.html
@@ -1,283 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Генератор статического блога | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
- <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
- <h1>Генератор статического блога</h1>
-
- <p class=date>написано в воскресенье, 9 октября 2011 г.
-
- <p>Это первая заметка в блоге. В ней я хочу поделиться опытом о том как можно генерировать полноценный блог из файлов <tt class="docutils literal">*.rst</tt> с соответствующей разметкой.</p>
-<div class="section" id="id2">
-<h2>Введение</h2>
-<p>Недавно возникла необходимость создать блог. Использовать какую то блог-платформу я не хотел, потому как не хотел зависеть от кого бы то нибыло. К счастью сегодня есть такой инструмент как <a class="reference external" href="http://disqus.com/">DISQUS</a>, который даже stand-alone блоги делает социальными. Писать в тематические колонки тоже не возникло желания, так как я планирую писать на разные темы. Поэтому передо мной встал выбор на чем сделать блог.</p>
-<p>Так как я большой любитель <a class="reference external" href="http://flask.pocoo.org">Flask</a>, я подумывал использовать его в качестве основы. Но есть проблемка - времени как всегда не много. А в случае с <a class="reference external" href="http://flask.pocoo.org">Flask</a> оно бы потребовалось, хотя бы на написаниние админстраторской части. Писать &quot;админку&quot; конкретно под эту задачу стало лень, писать автогенерируемую долго. Еще было бы здорово иметь такой блог, который не требователен к ресурсам. Так как сегодня нормальный shared-хостинг под Python еще не тоже самое что под PHP. А заводить <cite>VPS/VDS</cite> сервер как то расточительно. Здесь я и подумал о том чтоб использовать <cite>генератор статических сайтов</cite>.</p>
-<p>Бонусом будет возможность разместить блог на {{ <tt class="docutils literal">username</tt> }}.github.com.</p>
-</div>
-<div class="section" id="id4">
-<h2>Поиск</h2>
-<p>Так как я использую в работе Python, я искал в этом направлении.</p>
-<p><a class="reference external" href="https://github.com/SimonSapin/Frozen-Flask">Frozen-Flask</a> сразу неподошел, потому как этот пакет генерирует &quot;замороженную&quot; версию ресурса из существуюшиего динамического.</p>
-<p>Певрым я рассмотрел <a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/">pelican</a>. У проекта есть <a class="reference external" href="http://readthedocs.org/docs/pelican/en/2.7.2/">документация</a>. Его возможности:</p>
-<ul class="simple">
-<li>возможность использования <a class="reference external" href="http://disqus.com/">DISQUS</a> для комментариев</li>
-<li>поддержка тем(сделанных на шаблонизаторе <a class="reference external" href="http://jinja.pocoo.org/">Jinja2</a>)</li>
-<li>генератор PDF(опционально)</li>
-<li>тэги</li>
-<li>подсветка кода на основе <a class="reference external" href="http://pygments.org/">pygments</a></li>
-</ul>
-<p>Немного опробовал его. Вроде все хорошо. Немного начало смущать то, что библиотека поддерживает темы и излишне(IMHO) усложнена, потому как это странно для подобной задачи. Это ведь не <cite>CMS</cite>. Этот инструмент для людей, как минимум понимающих то, что именно они делают. И каков будет результат. Конечно же нельзя было остановиться на первом варианте, не проверив еще несколько.
-Иду дальше.</p>
-<p>Следующим я рассмотрел <a class="reference external" href="http://www.blogofile.com/">blogofile</a>. Довольно большая библиотека. Все таки люди, ищущие подобный инструмент стремятся к простоте использование и очевидности выгоды от этого. В данном случае простоты нет. Но тогда может быть возможностей намного больше чем у <a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/">pelican</a>? Возможности(дословно с сайта):</p>
-<ul class="simple">
-<li>это open-source</li>
-<li>быстрый</li>
-<li>нетребовательный к ресурсам</li>
-<li>современный</li>
-<li>категории и тэги</li>
-<li>интеграция коментов, обратной связи и соц. сетей</li>
-<li>rss, atom</li>
-<li>подсветка кода</li>
-<li>возможность создавать плагины</li>
-<li>безопастность(не исполняемый на сервере)</li>
-<li>offline(возможность запустить сервер локально)</li>
-<li>основанный на файлах</li>
-<li>возможность развертывания на Amazon S3 за дешево</li>
-<li>GIT интеграция</li>
-</ul>
-<p>Список внушительный. Но если начать разбираться, то станет понятно что эти возможности есть и у <a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/">pelican</a>,. И список этот высосан из пальца. Это все PR.</p>
-<p>На практике оказалось, очень сложная и непонятная библиотека. С ней тяжело работать, так как перечитать исходник быстро не получится. Это означает что нужно время для старта, а его нет. С ходу при любых действия получаешь <cite>Traceback</cite>. То ли версия обновилась, а документация нет, то ли еще какая то магия. Как бы то нибыло, идем дальше.</p>
-<p>Третьим мне попалась библиотечка <a class="reference external" href="https://github.com/mitsuhiko/rstblog">rstblog</a>, написаная Армином Ронахером. Очень легкая и понятная. Уже становится интересно. Возможности:</p>
-<ul class="simple">
-<li>тэги</li>
-<li>создание любых шаблонов</li>
-<li>atom</li>
-<li>подсветка кода на основе <a class="reference external" href="http://pygments.org/">pygments</a></li>
-<li>offline(возможность запустить сервер локально)</li>
-<li>основанный на файлах</li>
-</ul>
-<p>Здесь есть проблемка в том, что совершенно нет документации. Все остальное на высоте. Очень понятно и довольно просто. Исходный код и послужил документацией. Благо, его не много. Раз используем свои шаблоны, дизайн может быть любым. Значит можем подключать любые сервисы, то есть возможности библиотеки равные предыдущим. Звучит обнадеживающе. Я выбрал <a class="reference external" href="https://github.com/mitsuhiko/rstblog">rstblog</a> для своего блога.</p>
-<div class="note">
-<p class="first admonition-title">Note</p>
-<p class="last">Справедливости ради стоит отметить, что существует большое количество генераторов статических сайтов. И бОльшая часть из них в этой статье не рассматривается. Потому нельзя рассматривать эту статью как исследование.</p>
-</div>
-</div>
-<div class="section" id="id11">
-<h2>Быстрый старт</h2>
-<div class="section" id="id12">
-<h3>Конфигурация</h3>
-<p>Для безопастности и комфортной работы крайне желательно создать виртуальное окружение. Я буду использовать <a class="reference external" href="http://pypi.python.org/pypi/virtualenv">virtualenv</a>:</p>
-<div class="highlight"><pre>$ mkdir blog &amp;&amp; cd blog
-$ virtualenv .env
-$ . ./.env/bin/activate
-$ pip install git+https://github.com/mitsuhiko/rstblog.git#egg=rstblog # устанавливаю
-</pre></div>
-<p>Итак, папка для проекта готова. Конфигурация описывается в формате <a class="reference external" href="http://ru.wikipedia.org/wiki/YAML">YAML</a> в файле <tt class="docutils literal">./config.yml</tt>:</p>
-<div class="highlight"><pre><span class="l-Scalar-Plain">active_modules</span><span class="p-Indicator">:</span>
- <span class="l-Scalar-Plain">pygments</span>
- <span class="l-Scalar-Plain">tags</span>
- <span class="l-Scalar-Plain">blog</span>
-<span class="l-Scalar-Plain">author</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">Oleg Lebedev</span>
-<span class="l-Scalar-Plain">canonical_url</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">http://blog.olebedev.ru/</span>
-<span class="l-Scalar-Plain">locale</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">ru</span>
-<span class="l-Scalar-Plain">modules</span><span class="p-Indicator">:</span>
- <span class="l-Scalar-Plain">pygments</span><span class="p-Indicator">:</span>
- <span class="l-Scalar-Plain">style</span><span class="p-Indicator">:</span> <span class="l-Scalar-Plain">tango</span>
-</pre></div>
-<p>Теперь создадим папку <tt class="docutils literal">./_templates</tt>:</p>
-<div class="highlight"><pre>$ mkdir _templates
-</pre></div>
-<p>Здесь будут все шаблоны, необходимые для блога. Создадим базовый шаблон <tt class="docutils literal">./_templates/layout.html</tt>:</p>
-<div class="highlight"><pre><span class="cp">&lt;!doctype html&gt;</span>
-<span class="nt">&lt;html&gt;</span>
- <span class="nt">&lt;head&gt;</span>
- {% block htmlhead %}
- <span class="nt">&lt;title&gt;</span>{% block title %}Блог{% endblock %} | Олег Лебедев.<span class="nt">&lt;/title&gt;</span>
- <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;http://fonts.googleapis.com/css?family=Vollkorn&amp;subset=latin&quot;</span> <span class="na">rel=</span><span class="s">&quot;stylesheet&quot;</span> <span class="na">type=</span><span class="s">&quot;text/css&quot;</span><span class="nt">&gt;</span>
- <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">&quot;stylesheet&quot;</span> <span class="na">href=</span><span class="s">&quot;/static/style.css&quot;</span> <span class="na">type=</span><span class="s">&quot;text/css&quot;</span><span class="nt">&gt;</span>
- <span class="nt">&lt;link</span> <span class="na">href=</span><span class="s">&quot;/feed.atom&quot;</span> <span class="na">rel=</span><span class="s">&quot;alternate&quot;</span> <span class="na">title=</span><span class="s">&quot;Новые Записи В Блоге&quot;</span>
- <span class="na">type=</span><span class="s">&quot;application/atom+xml&quot;</span><span class="nt">&gt;</span>
- {%- for link in links %}
- <span class="nt">&lt;link</span> <span class="na">rel=</span><span class="s">&quot;{{ link.rel }}&quot;</span> <span class="na">href=</span><span class="s">&quot;{{ link.href }}&quot;</span> <span class="na">type=</span><span class="s">&quot;{{ link.type }}&quot;</span><span class="nt">&gt;</span>
- {%- endfor %}
- {% endblock %}
- <span class="nt">&lt;/head&gt;</span>
- <span class="nt">&lt;body&gt;</span>
- {%block body%}
- {%endblock%}
- <span class="nt">&lt;/body&gt;</span>
-<span class="nt">&lt;/html&gt;</span>
-</pre></div>
-</div>
-<div class="section" id="id13">
-<h3>Написание статьи</h3>
-<p>Теперь можно создать статью блога. Для этого потребуется создать в несколько папок и файл, с подобной структурой: <tt class="docutils literal"><span class="pre">./2011/10/9/hello-rst-world.rst</span></tt>, что соответствует <tt class="docutils literal"><span class="pre">./году/месяцу/дню/адресу-статьи</span></tt>.</p>
-<p>Файл <tt class="docutils literal"><span class="pre">./2011/10/9/hello-rst-world.rst</span></tt> может быть таким:</p>
-<div class="highlight"><pre>public: yes
-tags: [блог, Python]
-summary: Быстрый старт.
-
-<span class="gh">Генератор блога rstblog</span>
-<span class="gh">=======================</span>
-
-Это первая заметка в блоге.
-</pre></div>
-<p>Обратите внимание на то что в начале файла используется <a class="reference external" href="http://ru.wikipedia.org/wiki/YAML">YAML</a> конфигурация.</p>
-</div>
-<div class="section" id="id15">
-<h3>Запуск</h3>
-<p>Для облегчения работы можно создать <tt class="docutils literal">./Makefile</tt>:</p>
-<div class="highlight"><pre>all: clean build upload
-
-clean:
- rm -rf _build
-
-build:
- run-rstblog build
-
-serve:
- run-rstblog serve
-
-upload:
- scp -r _build/* www@olebedev.ru:~/olebedev.ru/public_html/_blog
-</pre></div>
-<p>После чего можно воспользоваться одной из созданных в <tt class="docutils literal">Makefile</tt> комманд:</p>
-<div class="highlight"><pre>$ make serve # собираем и запускаем
-</pre></div>
-<p>В корневой дериктории появится папка <tt class="docutils literal">./_build</tt>, она содержит все статические файлы блога. Теперь можно посмотреть блог по адресу: <a class="reference external" href="http://127.0.0.1:5000">127.0.0.1:5000</a>. И увидеть следующее:</p>
-<ul class="thumbnails">
-<li class="span3">
-<a href="/static/img/screen-1.png" class="thumbnail fancybox">
-<img src="/static/img/screen-1.png" alt="">
-</a>
-</ul></div>
-<div class="section" id="id17">
-<h3>Что дальше?</h3>
-<p>Для того чтоб подключить в блог любые файлы(<tt class="docutils literal">*.css</tt>, <tt class="docutils literal"><span class="pre">*.(png|jpg|gif)</span></tt>, etc.), нужно создать папку <tt class="docutils literal">./static</tt> и поместить все необходимые файлы в нее. После сборки эта папка окажется и в папке <tt class="docutils literal">./_build</tt> с готовым блогом. И настроить ссылки в шаблоне или в самом тексте.</p>
-<p>Создать отдельную страницу тоже очень просто. Нужно создать файл <tt class="docutils literal">./about.rst</tt>. после сборки будет доступен адрес <tt class="docutils literal">/about/</tt> либо <tt class="docutils literal">/about/index.html</tt>.</p>
-<p>Это все что нужно знать для создания статического блога при помощи <a class="reference external" href="https://github.com/mitsuhiko/rstblog">rstblog</a>.</p>
-</div>
-</div>
-
-
- <p class=tags>Эта запись отмечена тэгами
-
- <a href="/tags/Python/">Python</a> и
- <a href="/tags/%D0%B1%D0%BB%D0%BE%D0%B3/">блог</a>
-
- <div id="disqus_thread"></div>
-<script type="text/javascript">
- /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
- var disqus_shortname = 'olebedev'; // required: replace example with your forum shortname
- var disqus_identifier = 'hello-rst-world-identifer';
-
- /* * * DON'T EDIT BELOW THIS LINE * * */
- (function() {
- var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
- dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
- })();
-</script>
-<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
-<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
112 2011/10/index.html
@@ -1,112 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив за октября, 2011 | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1><a href="/archive/">Архив</a> за октября,
- <a href="/2011/">2011</a></h1>
-
- <ul class=blog-archive>
- <li><a href="/2011/10/9/hello-rst-world/">Генератор статического блога</a>, 9 октября 2011 г.
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
147 2011/12/1/first-ekb.py/index.html
@@ -1,147 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Начало положено | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
- <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
- <h1>Начало положено</h1>
-
- <p class=date>написано в четверг, 1 декабря 2011 г.
-
- <p>Когда я узнал что в Омске проводятся <a class="reference external" href="http://rupy.ru/">RuPyRu</a> (теперь margincon), я обзавидовался омичам, потому как у нас здесь в Екатеринбурге такого небыло никогда, но очень хотелось. Причин для подобных встреч существует не мало. Хотя бы потому что подобных встреч нет в целом по России. Ну и все нормальные питонисты спят и видят, когда же можно будет обменяться опытом, заглянуть в глаза всем тем, кто выбрал python в качестве основного языка, узнать последние новости с передовой и неформально пообщаться с людьми, которые разделяют твои взгляды. При том, чтоб никуда не нужно было ехать =)</p>
-<p>И вчера это случилось! Вчера прошла первая встреча питонистов Екатеринбурга <a class="reference external" href="https://twitter.com/#!/search?q=%23ekbpy">#ekbpy</a> в рамках &quot;Открытых семинаров&quot; по средам, которые организует компания <cite>it-people</cite>. Инициаторами встречи выступили <a class="reference external" href="http://twitter.com/apatrushev">Антон Патрушев</a>, <a class="reference external" href="http://twitter.com/ru_w31rd0">Илья Шабалин</a> и <a class="reference external" href="http://twitter.com/yurevich">Юрий Юревич</a>. Стоит отметить что <cite>it-people</cite> довольно часто устраивают очень хорошие и интересные семинары.</p>
-<p><a class="reference external" href="http://twitter.com/yurevich">Юрий Юревич</a> как всегда очень харизматично зачитал два доклада, первый в принципе про python и <tt class="docutils literal">import this</tt>, второй про python в недрах oDesk. Второй доклад был очень интересен, приятно то, что он упоминал <a class="reference external" href="http://flask.pocoo.org/">Flask</a> как альтернативу <a class="reference external" href="https://www.djangoproject.com/">Django</a>. Наконец его уже стали воспринимать всерьез.</p>
-<p><a class="reference external" href="http://twitter.com/apatrushev">Антон Патрушев</a> читал про python в Naumen, и каково это быть первопроходцами с python в enterprise. В целом он вздыхал с облегчением, потому что теперь не нужно самим писать xml-based MQ к примеру. А им приходилось, в далеком 2005 году.
-Рассказал что интересного было на PyCon.UA, какие новые веяния в python среде и так далее.</p>
-<p><a class="reference external" href="http://twitter.com/ru_w31rd0">Илья Шабалин</a> прочитал доклад с примерами сниппетов на python, java и php, для наглядности, чтоб убедить всех тех 2,5 человека, не вступивших в лагерь, которые осмелились присутствовать лично.</p>
-<p>В целом было много обсуждений <a class="reference external" href="http://twistedmatrix.com/trac/">Twisted</a>. И как правильно его готовить. Приятно удивило меня лично то, что есть люди в нашем городе пишущие на <a class="reference external" href="http://werkzeug.pocoo.org/">Werkzeug</a>.</p>
-<p>В целом пообщались очень весело.
-Из интересного: третья часть аудитории были господа Яндексоиды, которых, как правильно было подмечено, кажется бьют палками во время работы.</p>
-<div class="section" id="id4">
-<h2>итого</h2>
-<p>Главное что стоит отметить после этой встречи это то что были высказаны идеи на счет того что Россия тоже имеет право на Pycon. Был брошен клич на сборы всех кто как то готов поспособствовать организации подобных мероприятий в дальнейшем. По умолчанию согласными были назначены все присутствующие. Как понял я, <a class="reference external" href="http://twitter.com/yurevich">Юрий Юревич</a> и <a class="reference external" href="http://twitter.com/apatrushev">Антон Патрушев</a> решили объединить усилия и организовать что нибудь совместное, потому что одному Юревичу(в Омске) это давалось очень нелегко. Это и понятно.</p>
-<p>Ближайшая подобная встреча, но пока в небольшом ЕКБ формате, планируется в январе 2012 года.
-Следите за <a class="reference external" href="https://twitter.com/#!/search?q=%23ekbpy">#ekbpy</a>, и приходите!</p>
-</div>
-
-
- <p class=tags>Эта запись отмечена тэгами
-
- <a href="/tags/Python/">Python</a> и
- <a href="/tags/ekb.py/">ekb.py</a>
-
- <div id="disqus_thread"></div>
-<script type="text/javascript">
- /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
- var disqus_shortname = 'olebedev'; // required: replace example with your forum shortname
- var disqus_identifier = 'first-ekb.py-identifer';
-
- /* * * DON'T EDIT BELOW THIS LINE * * */
- (function() {
- var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
- dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
- })();
-</script>
-<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
-<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
112 2011/12/index.html
@@ -1,112 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив за декабря, 2011 | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1><a href="/archive/">Архив</a> за декабря,
- <a href="/2011/">2011</a></h1>
-
- <ul class=blog-archive>
- <li><a href="/2011/12/1/first-ekb.py/">Начало положено</a>, 1 декабря 2011 г.
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
114 2011/index.html
@@ -1,114 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив за 2011 | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1><a href="/archive/">Архив</a> за 2011</h1>
-
- <ul class=blog-archive>
- <li><a href="/2011/12/">декабря</a>
- — 1 статья
- <li><a href="/2011/10/">октября</a>
- — 1 статья
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
161 2012/02/12/one-more-ekbpy/index.html
@@ -1,161 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Случилось #ekb.py! | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
- <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
- <h1>Случилось #ekb.py!</h1>
-
- <p class=date>написано в воскресенье, 12 февраля 2012 г.
-
- <p>Не так давно, в конце прошлого года прошла первая пробная встреча pythоn-программистов в Екатеринбурге. Я сразу <a class="reference external" href="/2011/12/1/first-ekb.py/">написал</a> об этом событии. Эта встреча была пробной, людей было не много. В планах организаторов было сначала сделать просто ekb.py а потом и Pycon.RU! А это очень дерзкие и амбициозные планы. Подошло время подвести промежуточные результаты и определить тенденции.</p>
-<p>Честно говоря я не был уверен что все состоится. потому что в нашем городе не так уж много питонистов. Затея была рисковая. Еще за 10 дней до конференции, организатор <a class="reference external" href="http://twitter.com/gerasimovich_yu">Юлия Герасимович</a>, спрашивала меня иду ли я. Она говорила что билетов куплено очень мало...</p>
-<p>Но вопреки ожиданиям людей было больше чем рассчитывали! Приехала целая делегация из Казани. Было много студентов со специализированных факультетов. Приехал даже <a class="reference external" href="https://twitter.com/daevaorn">Александр Кошелев aka daevaorn</a>, сотрудник московского Яндекса, страстный python-программист и, как оказалось, просто хороший человек. Стоит сказать что присутствовал и <a class="reference external" href="https://github.com/kmike">Миша Коробов aka kmike</a>, ему удалось выбраться из своих музыкальных будней, прочитать один доклад и провести мастер класс.</p>
-<div class="section" id="id2">
-<h2>Общее впечатление</h2>
-<p>Думаю со мной согласятся все участники, это было очень хорошее и нужное мероприятие. Было на удивление дружелюбно и комфортно. Не смотря на то что мы в России и на Урале. Возможно это потому что python community небольшое и все стараются держаться поближе. Все было на достойном уровне, это заслуга <a class="reference external" href="http://twitter.com/gerasimovich_yu">Юлии Герасимович</a> и компании <cite>it-people</cite>. Конференция проходила в отеле <a class="reference external" href="http://www.novotel.com/gb/home/index.shtml">Novotel</a>, место хорошее, но без изысков. Все комфортно и удобно. Были организованы неплохие кофе-брейки с отличными бутербродами и круассанами. Пожалуй лучше даже чем у Яндекса, на субботнике, прошлым летом. Обед в ресторане отеля.</p>
-</div>
-<div class="section" id="work-flow">
-<h2>Work flow</h2>
-<p>Было организована работа докладов в два потока. Мне показалось это не очень удобным, потому что приходилось становиться перед выбором. Уровень докладов неплохой, но не могу сказать что все было очень свежо и интересно.</p>
-<p>Лично мне было интересно послушать доклады <a class="reference external" href="http://twitter.com/yurevich">Юрия Юревича</a> об опыте разработки API в общем и на примерах oDesk, <a class="reference external" href="https://github.com/kmike">Миши Коробова</a> о фичах <cite>py3k</cite> и <a class="reference external" href="https://twitter.com/romanimankulov">Романа Иманкулова</a>. Это был самый яркий и интересный доклад по такую простую и понятную вещь как <a class="reference external" href="http://celeryproject.org/">Celery</a>, асинхронная очередь задач. Было очень много юмора, интересное изложение, большое количество деталей, работа с консолькой прямо на докладе.</p>
-<p>Вдаваться в детали я не буду, кому интересно, смогут найти слайды докладов на сайте конференции. Правда слайдов Романа вы там не найдете, потому что их не было. Остальные доклады я не слышал, из за конфликта двух потоков.</p>
-</div>
-<div class="section" id="id7">
-<h2>Мастер-классы</h2>
-<p>Это было действительно интересно! Это новый опыт в проведении подобных мероприятий, как сказала <a class="reference external" href="http://twitter.com/gerasimovich_yu">Юлия Герасимович</a>. Было представлено 3 потока мастер-классов: для начинающих, их провели активисты из УрФУ, мастер класс по разгрузке фронт-энд приложения на <a class="reference external" href="https://www.djangoproject.com/">Django</a>, и сброс задач в асинхронную обработку и мастер-класс <a class="reference external" href="https://github.com/kmike">Миши Коробова</a> &quot;для идеалистов&quot;, портирование библиотеки <cite>pytils</cite> <a class="reference external" href="http://twitter.com/yurevich">Юрия Юревича</a> на <cite>py3k</cite>.</p>
-<p>Полноценно мне удалось поучаствовать в мастер-классе по обработке асинхронных задач. Организовал его <a class="reference external" href="https://twitter.com/romanimankulov">Роман Иманкулов</a>. Организовал очень вдумчиво и со всей ответственностью. Для каждого участника был заведен аккаунт с репозиторием <cite>GIT</cite> и развернутое стартовое приложение на <a class="reference external" href="https://www.djangoproject.com/">Django</a>. Необходимо было развернуть проект локально, для отладки. Внести изменения для обработки задачи приложения асинхронно. То что было создано рабочее окружение для каждого участника, сэкономило много времени всем. Нас избавили от рутинной работы. Этот факт позволил всем получить много положительных эмоций и решить интересную задачку.</p>
-<p>В мастер-классе <a class="reference external" href="https://github.com/kmike">Миши Коробова</a> мне поучаствовать не удалось, потому как в момент когда я подключился, упал интернет и не получалось клонировать <cite>репо</cite>...</p>
-</div>
-<div class="section" id="after">
-<h2>After</h2>
-<p>В завершении конференции было организовано &quot;афтепати&quot; в ближайшем ресторане. Было непринужденное общение с участниками и докладчиками конференции. Я ушел спустя час после начала. Так как были еще некоторые планы на вечер пятницы.</p>
-</div>
-<div class="section" id="id12">
-<h2>Итого</h2>
-<p>Из всего можно сделать выводы о том что, мероприятие удалось, мероприятие было необходимо. И наметилась отличная тенденция. Нужно продолжать.</p>
-<blockquote>
-Если есть что сказать, пишите комментарии, буду рад.
-Следуйте за мной на твиттерах и гитхабах, для того чтоб быть в курсе событий.</blockquote>
-</div>
-
-
- <p class=tags>Эта запись отмечена тэгами
-
- <a href="/tags/ekb.py/">ekb.py</a>
-
- <div id="disqus_thread"></div>
-<script type="text/javascript">
- /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
- var disqus_shortname = 'olebedev'; // required: replace example with your forum shortname
- var disqus_identifier = 'one-more-ekbpy-identifer';
-
- /* * * DON'T EDIT BELOW THIS LINE * * */
- (function() {
- var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
- dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
- })();
-</script>
-<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
-<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
112 2012/2/index.html
@@ -1,112 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив за февраля, 2012 | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1><a href="/archive/">Архив</a> за февраля,
- <a href="/2012/">2012</a></h1>
-
- <ul class=blog-archive>
- <li><a href="/2012/02/12/one-more-ekbpy/">Случилось #ekb.py!</a>, 12 февраля 2012 г.
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
112 2012/index.html
@@ -1,112 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив за 2012 | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1><a href="/archive/">Архив</a> за 2012</h1>
-
- <ul class=blog-archive>
- <li><a href="/2012/2/">февраля</a>
- — 1 статья
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
94 about-test/index.html
@@ -1,94 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <title>Обо мне | Олег Лебедев.</title>
- <link href='http://fonts.googleapis.com/css?family=Cuprum&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
-
- </head>
- <body>
- <div class=container>
- <div class=header>
- <a href="/about/">Олег Лебедев</a>.
- </div>
- <div class=navigation>
- <ul>
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">о</a>
- </ul>
- </div>
- <div class=body>
-
- <h1 class="title">Обо мне</h1>
-
-
-
- <p>Меня зовут Олег Лебедев. Я независимый разработчик, интересуюсщийся <a class="reference external" href="http://python.org">Python</a>,
-<a class="reference external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">JavaScript</a>, интерфейсами, дизайном, музыкой всем новым что меня окружает. Нахожусь в постоянном поиске.
-Живу в <a class="reference external" href="http://ru.wikipedia.org/wiki/Екатеринбург">Екатеринбурге</a>.</p>
-<p>Для связи со мной Вы всегда можете воспользоваться одним из следующих каналов:</p>
-<ul class="simple">
-<li><a class="reference external" href="mailto:forspam&#64;olebedev.ru">почта</a></li>
-<li><a class="reference external" href="skype:icq172133761?chat">skype</a></li>
-<li><a class="reference external" href="http://static.olebedev.ru/static/files/2011/10/10/Oleg_Lebedev.vcf">телефон</a></li>
-</ul>
-<p>Мой постоянный ник <tt class="docutils literal">olebedev</tt></p>
-<div class="section" id="id5">
-<h2>Что я делаю</h2>
-<p>Я занимаюсь разработкой сайтов и веб приложений.
-Я с огромным интересом и удовольствием занимаюсь этим!
-Так случилось, что эта сфера деятельности меня сильно захватывает,
-не дает спать по ночям, не оставляет в покое ни на минуту.
-Чтоб унять это беспокойство, я сутками изучаю новые технологии,
-ищу новейшие решения и механизмы, анализирую мнения и потребности пользователей.
-Если Вас интересует то, что я делаю, и Вы хотите обсудить это, <a class="reference external" href="mailto:forspam&#64;olebedev.ru">напишите</a> мне прямо сейчас!</p>
-<p>Сейчас я работаю над <a class="reference external" href="http://addqd.com">addqd.com</a>.</p>
-</div>
-<div class="section" id="id7">
-<h2>Об этом сайте</h2>
-<p>Здесь я пишу свои мысли на все интересующие меня темы.
-Этот сайт написан в разметке <a class="reference external" href="http://en.wikipedia.org/wiki/Restructured_text">rst</a>
-и собран с помощью небольшого <a class="reference external" href="https://github.com/mitsuhiko/rstblog">скрипта</a>.</p>
-</div>
-
-
-
-
- </div>
- <div class=footer>
- <p>&copy; 2011 Олег Лебедев.
-
- <p>
- Контакты: <a href="mailto:forspam@olebedev.ru">mail</a>,
- <a href="http://twitter.com/olebedev">twitter</a>.
- (<a href="/feed.atom" rel="alternate" title="Новые Записи В Блоге">feed</a>)
- </div>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
135 about/index.html
@@ -1,135 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Обо мне | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
- <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
- <h1 class="title">Обо мне</h1>
-
-
-
- <p>Меня зовут Олег Лебедев. Я независимый разработчик, интересуюсщийся <a class="reference external" href="http://python.org">Python</a>,
-<a class="reference external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">JavaScript</a>, интерфейсами, дизайном, музыкой всем новым что меня окружает.
-Живу в <a class="reference external" href="http://ru.wikipedia.org/wiki/Екатеринбург">Екатеринбурге</a>.</p>
-<p>Для связи со мной лучше пользоваться одним из следующих каналов:</p>
-<ul class="simple">
-<li><a class="reference external" href="mailto:forspam&#64;olebedev.ru">почта</a></li>
-<li><a class="reference external" href="skype:icq172133761?chat">skype</a></li>
-<li><a class="reference external" href="/static/Oleg_Lebedev.vcf">телефон</a></li>
-</ul>
-<p>Мой постоянный ник <tt class="docutils literal">olebedev</tt></p>
-<div class="section" id="id5">
-<h2>Что я делаю</h2>
-<p>Я занимаюсь разработкой сайтов и веб приложений.
-Если Вас это интересует то, что я делаю, <a class="reference external" href="mailto:forspam&#64;olebedev.ru">пишите</a> не откладывая.</p>
-<p>Сейчас я работаю над addqd.</p>
-</div>
-<div class="section" id="id7">
-<h2>Об этом сайте</h2>
-<p>Здесь я пишу свои мысли на все интересующие меня темы и делюсь опытом в витиеватых вопросах разработки.
-Этот сайт написан в разметке <a class="reference external" href="http://en.wikipedia.org/wiki/Restructured_text">rst</a>
-и собран с помощью небольшого <a class="reference external" href="https://github.com/mitsuhiko/rstblog">скрипта</a>.</p>
-</div>
-
-
-
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
122 archive/index.html
@@ -1,122 +0,0 @@
-<!doctype html>
-<html>
- <head>
- <meta charset=utf-8>
-
- <!-- Le fav and touch icons -->
- <link rel="shortcut icon" href="/static/ico/favicon.ico">
- <link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
- <link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
- <link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Архив | Олег Лебедев, всего понемногу.</title>
- <link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
- <script src="/static/jquery.js"></script>
- <link rel="stylesheet" href="/static/style.css" type="text/css">
- <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css" type="text/css">
- <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
- <script src="/static/fancybox/jquery.fancybox.pack.js"></script>
- <link rel="stylesheet" href="/static/fancybox/jquery.fancybox.css" />
- <script type="text/javascript">$(function(){ $(".fancybox").fancybox();});</script>
- <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
- <script type="text/javascript" src="/static/github-anywhere.js"></script>
- <script>
- GitHubAnywhere(function(G) {
- G.buttons();
- });
- </script>
-
-
- </head>
- <body>
- <div class="container">
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container" style="width: auto;">
- <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
- <div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
- </div><!-- /.nav-collapse -->
- </div>
- </div><!-- /navbar-inner -->
- </div>
-
-
- <div class=body>
-
-
- <h1>Архив</h1>
-
- <ul class=blog-archive>
- <li><a href="/2012/">2012</a>
- <ul>
- <li><a href="/2012/2/">февраля</a>
- — 1 статья
- </ul>
- <li><a href="/2011/">2011</a>
- <ul>
- <li><a href="/2011/12/">декабря</a>
- — 1 статья
- <li><a href="/2011/10/">октября</a>
- — 1 статья
- </ul>
- </ul>
-
- </div>
-
- <footer class="footer">
-
- <p class="pull-right">
- <a href="#">на верх</a>
- </p>
- <p>
- <ul class="quick-links">
- <li>&copy; 2012 Олег Лебедев</li>
- <li class="divider">&middot;</li>
- <li>Контакты: <a href="mailto:forspam@olebedev.ru">mail</a></li>
- <li class="divider">&middot;</li>
- <li><a href="http://feeds.feedburner.com/olebedev/dHWp" rel="alternate" title="Новые Записи В Блоге">feed</a></li>
- <li class="divider">&middot;</li>
- <li>
- <a href='http://github.com/olebedev' class='github-anywhere github-anywhere-user' data-user='olebedev'>Follow olebedev on GitHub</a>
- </li>
- <li class="divider">&middot;</li>
- <li class="follow-btn">
- <a href="https://twitter.com/olebedev" class="twitter-follow-button" data-width="145px" data-link-color="#0069D6" data-show-count="true">Follow @olebedev</a>
- </li>
-
- </ul>
- </p>
- </footer>
- </div>
-<script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-17284959-10']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- //email replace
- var s = document.getElementsByTagName('a');
- for (var i = 0; i < s.length; i++)
- { if (s[i].getAttribute("href") == "mailto:forspam@olebedev.ru")
- {
- s[i].setAttribute("href", ["mailto:mail", "olebedev.ru"].join('@')); // for spam crawlers
- // console.log('change');
- }
- }
-</script>
- </body>
-</html>
View
237 feed.atom
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<feed xmlns="http://www.w3.org/2005/Atom">
- <title type="text">Oleg Lebedev</title>
- <id>http://olebedev.github.com/feed.atom</id>
- <updated>2012-02-12T00:00:00Z</updated>
- <link href="http://olebedev.github.com/" />
- <link href="http://olebedev.github.com/feed.atom" rel="self" />
- <subtitle type="text">Oleg Lebedev</subtitle>
- <generator>Werkzeug</generator>
- <entry xml:base="http://olebedev.github.com/feed.atom">
- <title type="text">Случилось #ekb.py!</title>
- <id>http://olebedev.github.com/2012/02/12/one-more-ekbpy</id>
- <updated>2012-02-12T00:00:00Z</updated>
- <link href="http://olebedev.github.com/2012/02/12/one-more-ekbpy" />
- <author>
- <name>Oleg Lebedev</name>
- </author>
- <content type="html">&lt;p&gt;Не так давно, в конце прошлого года прошла первая пробная встреча pythоn-программистов в Екатеринбурге. Я сразу &lt;a class="reference external" href="/2011/12/1/first-ekb.py/"&gt;написал&lt;/a&gt; об этом событии. Эта встреча была пробной, людей было не много. В планах организаторов было сначала сделать просто ekb.py а потом и Pycon.RU! А это очень дерзкие и амбициозные планы. Подошло время подвести промежуточные результаты и определить тенденции.&lt;/p&gt;
-&lt;p&gt;Честно говоря я не был уверен что все состоится. потому что в нашем городе не так уж много питонистов. Затея была рисковая. Еще за 10 дней до конференции, организатор &lt;a class="reference external" href="http://twitter.com/gerasimovich_yu"&gt;Юлия Герасимович&lt;/a&gt;, спрашивала меня иду ли я. Она говорила что билетов куплено очень мало...&lt;/p&gt;
-&lt;p&gt;Но вопреки ожиданиям людей было больше чем рассчитывали! Приехала целая делегация из Казани. Было много студентов со специализированных факультетов. Приехал даже &lt;a class="reference external" href="https://twitter.com/daevaorn"&gt;Александр Кошелев aka daevaorn&lt;/a&gt;, сотрудник московского Яндекса, страстный python-программист и, как оказалось, просто хороший человек. Стоит сказать что присутствовал и &lt;a class="reference external" href="https://github.com/kmike"&gt;Миша Коробов aka kmike&lt;/a&gt;, ему удалось выбраться из своих музыкальных будней, прочитать один доклад и провести мастер класс.&lt;/p&gt;
-&lt;div class="section" id="id2"&gt;
-&lt;h2&gt;Общее впечатление&lt;/h2&gt;
-&lt;p&gt;Думаю со мной согласятся все участники, это было очень хорошее и нужное мероприятие. Было на удивление дружелюбно и комфортно. Не смотря на то что мы в России и на Урале. Возможно это потому что python community небольшое и все стараются держаться поближе. Все было на достойном уровне, это заслуга &lt;a class="reference external" href="http://twitter.com/gerasimovich_yu"&gt;Юлии Герасимович&lt;/a&gt; и компании &lt;cite&gt;it-people&lt;/cite&gt;. Конференция проходила в отеле &lt;a class="reference external" href="http://www.novotel.com/gb/home/index.shtml"&gt;Novotel&lt;/a&gt;, место хорошее, но без изысков. Все комфортно и удобно. Были организованы неплохие кофе-брейки с отличными бутербродами и круассанами. Пожалуй лучше даже чем у Яндекса, на субботнике, прошлым летом. Обед в ресторане отеля.&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="work-flow"&gt;
-&lt;h2&gt;Work flow&lt;/h2&gt;
-&lt;p&gt;Было организована работа докладов в два потока. Мне показалось это не очень удобным, потому что приходилось становиться перед выбором. Уровень докладов неплохой, но не могу сказать что все было очень свежо и интересно.&lt;/p&gt;
-&lt;p&gt;Лично мне было интересно послушать доклады &lt;a class="reference external" href="http://twitter.com/yurevich"&gt;Юрия Юревича&lt;/a&gt; об опыте разработки API в общем и на примерах oDesk, &lt;a class="reference external" href="https://github.com/kmike"&gt;Миши Коробова&lt;/a&gt; о фичах &lt;cite&gt;py3k&lt;/cite&gt; и &lt;a class="reference external" href="https://twitter.com/romanimankulov"&gt;Романа Иманкулова&lt;/a&gt;. Это был самый яркий и интересный доклад по такую простую и понятную вещь как &lt;a class="reference external" href="http://celeryproject.org/"&gt;Celery&lt;/a&gt;, асинхронная очередь задач. Было очень много юмора, интересное изложение, большое количество деталей, работа с консолькой прямо на докладе.&lt;/p&gt;
-&lt;p&gt;Вдаваться в детали я не буду, кому интересно, смогут найти слайды докладов на сайте конференции. Правда слайдов Романа вы там не найдете, потому что их не было. Остальные доклады я не слышал, из за конфликта двух потоков.&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id7"&gt;
-&lt;h2&gt;Мастер-классы&lt;/h2&gt;
-&lt;p&gt;Это было действительно интересно! Это новый опыт в проведении подобных мероприятий, как сказала &lt;a class="reference external" href="http://twitter.com/gerasimovich_yu"&gt;Юлия Герасимович&lt;/a&gt;. Было представлено 3 потока мастер-классов: для начинающих, их провели активисты из УрФУ, мастер класс по разгрузке фронт-энд приложения на &lt;a class="reference external" href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;, и сброс задач в асинхронную обработку и мастер-класс &lt;a class="reference external" href="https://github.com/kmike"&gt;Миши Коробова&lt;/a&gt; &amp;quot;для идеалистов&amp;quot;, портирование библиотеки &lt;cite&gt;pytils&lt;/cite&gt; &lt;a class="reference external" href="http://twitter.com/yurevich"&gt;Юрия Юревича&lt;/a&gt; на &lt;cite&gt;py3k&lt;/cite&gt;.&lt;/p&gt;
-&lt;p&gt;Полноценно мне удалось поучаствовать в мастер-классе по обработке асинхронных задач. Организовал его &lt;a class="reference external" href="https://twitter.com/romanimankulov"&gt;Роман Иманкулов&lt;/a&gt;. Организовал очень вдумчиво и со всей ответственностью. Для каждого участника был заведен аккаунт с репозиторием &lt;cite&gt;GIT&lt;/cite&gt; и развернутое стартовое приложение на &lt;a class="reference external" href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;. Необходимо было развернуть проект локально, для отладки. Внести изменения для обработки задачи приложения асинхронно. То что было создано рабочее окружение для каждого участника, сэкономило много времени всем. Нас избавили от рутинной работы. Этот факт позволил всем получить много положительных эмоций и решить интересную задачку.&lt;/p&gt;
-&lt;p&gt;В мастер-классе &lt;a class="reference external" href="https://github.com/kmike"&gt;Миши Коробова&lt;/a&gt; мне поучаствовать не удалось, потому как в момент когда я подключился, упал интернет и не получалось клонировать &lt;cite&gt;репо&lt;/cite&gt;...&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="after"&gt;
-&lt;h2&gt;After&lt;/h2&gt;
-&lt;p&gt;В завершении конференции было организовано &amp;quot;афтепати&amp;quot; в ближайшем ресторане. Было непринужденное общение с участниками и докладчиками конференции. Я ушел спустя час после начала. Так как были еще некоторые планы на вечер пятницы.&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id12"&gt;
-&lt;h2&gt;Итого&lt;/h2&gt;
-&lt;p&gt;Из всего можно сделать выводы о том что, мероприятие удалось, мероприятие было необходимо. И наметилась отличная тенденция. Нужно продолжать.&lt;/p&gt;
-&lt;blockquote&gt;
-Если есть что сказать, пишите комментарии, буду рад.
-Следуйте за мной на твиттерах и гитхабах, для того чтоб быть в курсе событий.&lt;/blockquote&gt;
-&lt;/div&gt;
-</content>
- </entry>
- <entry xml:base="http://olebedev.github.com/feed.atom">
- <title type="text">Начало положено</title>
- <id>http://olebedev.github.com/2011/12/1/first-ekb.py</id>
- <updated>2011-12-01T00:00:00Z</updated>
- <link href="http://olebedev.github.com/2011/12/1/first-ekb.py" />
- <author>
- <name>Oleg Lebedev</name>
- </author>
- <content type="html">&lt;p&gt;Когда я узнал что в Омске проводятся &lt;a class="reference external" href="http://rupy.ru/"&gt;RuPyRu&lt;/a&gt; (теперь margincon), я обзавидовался омичам, потому как у нас здесь в Екатеринбурге такого небыло никогда, но очень хотелось. Причин для подобных встреч существует не мало. Хотя бы потому что подобных встреч нет в целом по России. Ну и все нормальные питонисты спят и видят, когда же можно будет обменяться опытом, заглянуть в глаза всем тем, кто выбрал python в качестве основного языка, узнать последние новости с передовой и неформально пообщаться с людьми, которые разделяют твои взгляды. При том, чтоб никуда не нужно было ехать =)&lt;/p&gt;
-&lt;p&gt;И вчера это случилось! Вчера прошла первая встреча питонистов Екатеринбурга &lt;a class="reference external" href="https://twitter.com/#!/search?q=%23ekbpy"&gt;#ekbpy&lt;/a&gt; в рамках &amp;quot;Открытых семинаров&amp;quot; по средам, которые организует компания &lt;cite&gt;it-people&lt;/cite&gt;. Инициаторами встречи выступили &lt;a class="reference external" href="http://twitter.com/apatrushev"&gt;Антон Патрушев&lt;/a&gt;, &lt;a class="reference external" href="http://twitter.com/ru_w31rd0"&gt;Илья Шабалин&lt;/a&gt; и &lt;a class="reference external" href="http://twitter.com/yurevich"&gt;Юрий Юревич&lt;/a&gt;. Стоит отметить что &lt;cite&gt;it-people&lt;/cite&gt; довольно часто устраивают очень хорошие и интересные семинары.&lt;/p&gt;
-&lt;p&gt;&lt;a class="reference external" href="http://twitter.com/yurevich"&gt;Юрий Юревич&lt;/a&gt; как всегда очень харизматично зачитал два доклада, первый в принципе про python и &lt;tt class="docutils literal"&gt;import this&lt;/tt&gt;, второй про python в недрах oDesk. Второй доклад был очень интересен, приятно то, что он упоминал &lt;a class="reference external" href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt; как альтернативу &lt;a class="reference external" href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;. Наконец его уже стали воспринимать всерьез.&lt;/p&gt;
-&lt;p&gt;&lt;a class="reference external" href="http://twitter.com/apatrushev"&gt;Антон Патрушев&lt;/a&gt; читал про python в Naumen, и каково это быть первопроходцами с python в enterprise. В целом он вздыхал с облегчением, потому что теперь не нужно самим писать xml-based MQ к примеру. А им приходилось, в далеком 2005 году.
-Рассказал что интересного было на PyCon.UA, какие новые веяния в python среде и так далее.&lt;/p&gt;
-&lt;p&gt;&lt;a class="reference external" href="http://twitter.com/ru_w31rd0"&gt;Илья Шабалин&lt;/a&gt; прочитал доклад с примерами сниппетов на python, java и php, для наглядности, чтоб убедить всех тех 2,5 человека, не вступивших в лагерь, которые осмелились присутствовать лично.&lt;/p&gt;
-&lt;p&gt;В целом было много обсуждений &lt;a class="reference external" href="http://twistedmatrix.com/trac/"&gt;Twisted&lt;/a&gt;. И как правильно его готовить. Приятно удивило меня лично то, что есть люди в нашем городе пишущие на &lt;a class="reference external" href="http://werkzeug.pocoo.org/"&gt;Werkzeug&lt;/a&gt;.&lt;/p&gt;
-&lt;p&gt;В целом пообщались очень весело.
-Из интересного: третья часть аудитории были господа Яндексоиды, которых, как правильно было подмечено, кажется бьют палками во время работы.&lt;/p&gt;
-&lt;div class="section" id="id4"&gt;
-&lt;h2&gt;итого&lt;/h2&gt;
-&lt;p&gt;Главное что стоит отметить после этой встречи это то что были высказаны идеи на счет того что Россия тоже имеет право на Pycon. Был брошен клич на сборы всех кто как то готов поспособствовать организации подобных мероприятий в дальнейшем. По умолчанию согласными были назначены все присутствующие. Как понял я, &lt;a class="reference external" href="http://twitter.com/yurevich"&gt;Юрий Юревич&lt;/a&gt; и &lt;a class="reference external" href="http://twitter.com/apatrushev"&gt;Антон Патрушев&lt;/a&gt; решили объединить усилия и организовать что нибудь совместное, потому что одному Юревичу(в Омске) это давалось очень нелегко. Это и понятно.&lt;/p&gt;
-&lt;p&gt;Ближайшая подобная встреча, но пока в небольшом ЕКБ формате, планируется в январе 2012 года.
-Следите за &lt;a class="reference external" href="https://twitter.com/#!/search?q=%23ekbpy"&gt;#ekbpy&lt;/a&gt;, и приходите!&lt;/p&gt;
-&lt;/div&gt;
-</content>
- </entry>
- <entry xml:base="http://olebedev.github.com/feed.atom">
- <title type="text">Генератор статического блога</title>
- <id>http://olebedev.github.com/2011/10/9/hello-rst-world</id>
- <updated>2011-10-09T00:00:00Z</updated>
- <link href="http://olebedev.github.com/2011/10/9/hello-rst-world" />
- <author>
- <name>Oleg Lebedev</name>
- </author>
- <content type="html">&lt;p&gt;Это первая заметка в блоге. В ней я хочу поделиться опытом о том как можно генерировать полноценный блог из файлов &lt;tt class="docutils literal"&gt;*.rst&lt;/tt&gt; с соответствующей разметкой.&lt;/p&gt;
-&lt;div class="section" id="id2"&gt;
-&lt;h2&gt;Введение&lt;/h2&gt;
-&lt;p&gt;Недавно возникла необходимость создать блог. Использовать какую то блог-платформу я не хотел, потому как не хотел зависеть от кого бы то нибыло. К счастью сегодня есть такой инструмент как &lt;a class="reference external" href="http://disqus.com/"&gt;DISQUS&lt;/a&gt;, который даже stand-alone блоги делает социальными. Писать в тематические колонки тоже не возникло желания, так как я планирую писать на разные темы. Поэтому передо мной встал выбор на чем сделать блог.&lt;/p&gt;
-&lt;p&gt;Так как я большой любитель &lt;a class="reference external" href="http://flask.pocoo.org"&gt;Flask&lt;/a&gt;, я подумывал использовать его в качестве основы. Но есть проблемка - времени как всегда не много. А в случае с &lt;a class="reference external" href="http://flask.pocoo.org"&gt;Flask&lt;/a&gt; оно бы потребовалось, хотя бы на написаниние админстраторской части. Писать &amp;quot;админку&amp;quot; конкретно под эту задачу стало лень, писать автогенерируемую долго. Еще было бы здорово иметь такой блог, который не требователен к ресурсам. Так как сегодня нормальный shared-хостинг под Python еще не тоже самое что под PHP. А заводить &lt;cite&gt;VPS/VDS&lt;/cite&gt; сервер как то расточительно. Здесь я и подумал о том чтоб использовать &lt;cite&gt;генератор статических сайтов&lt;/cite&gt;.&lt;/p&gt;
-&lt;p&gt;Бонусом будет возможность разместить блог на {{ &lt;tt class="docutils literal"&gt;username&lt;/tt&gt; }}.github.com.&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id4"&gt;
-&lt;h2&gt;Поиск&lt;/h2&gt;
-&lt;p&gt;Так как я использую в работе Python, я искал в этом направлении.&lt;/p&gt;
-&lt;p&gt;&lt;a class="reference external" href="https://github.com/SimonSapin/Frozen-Flask"&gt;Frozen-Flask&lt;/a&gt; сразу неподошел, потому как этот пакет генерирует &amp;quot;замороженную&amp;quot; версию ресурса из существуюшиего динамического.&lt;/p&gt;
-&lt;p&gt;Певрым я рассмотрел &lt;a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/"&gt;pelican&lt;/a&gt;. У проекта есть &lt;a class="reference external" href="http://readthedocs.org/docs/pelican/en/2.7.2/"&gt;документация&lt;/a&gt;. Его возможности:&lt;/p&gt;
-&lt;ul class="simple"&gt;
-&lt;li&gt;возможность использования &lt;a class="reference external" href="http://disqus.com/"&gt;DISQUS&lt;/a&gt; для комментариев&lt;/li&gt;
-&lt;li&gt;поддержка тем(сделанных на шаблонизаторе &lt;a class="reference external" href="http://jinja.pocoo.org/"&gt;Jinja2&lt;/a&gt;)&lt;/li&gt;
-&lt;li&gt;генератор PDF(опционально)&lt;/li&gt;
-&lt;li&gt;тэги&lt;/li&gt;
-&lt;li&gt;подсветка кода на основе &lt;a class="reference external" href="http://pygments.org/"&gt;pygments&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Немного опробовал его. Вроде все хорошо. Немного начало смущать то, что библиотека поддерживает темы и излишне(IMHO) усложнена, потому как это странно для подобной задачи. Это ведь не &lt;cite&gt;CMS&lt;/cite&gt;. Этот инструмент для людей, как минимум понимающих то, что именно они делают. И каков будет результат. Конечно же нельзя было остановиться на первом варианте, не проверив еще несколько.
-Иду дальше.&lt;/p&gt;
-&lt;p&gt;Следующим я рассмотрел &lt;a class="reference external" href="http://www.blogofile.com/"&gt;blogofile&lt;/a&gt;. Довольно большая библиотека. Все таки люди, ищущие подобный инструмент стремятся к простоте использование и очевидности выгоды от этого. В данном случае простоты нет. Но тогда может быть возможностей намного больше чем у &lt;a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/"&gt;pelican&lt;/a&gt;? Возможности(дословно с сайта):&lt;/p&gt;
-&lt;ul class="simple"&gt;
-&lt;li&gt;это open-source&lt;/li&gt;
-&lt;li&gt;быстрый&lt;/li&gt;
-&lt;li&gt;нетребовательный к ресурсам&lt;/li&gt;
-&lt;li&gt;современный&lt;/li&gt;
-&lt;li&gt;категории и тэги&lt;/li&gt;
-&lt;li&gt;интеграция коментов, обратной связи и соц. сетей&lt;/li&gt;
-&lt;li&gt;rss, atom&lt;/li&gt;
-&lt;li&gt;подсветка кода&lt;/li&gt;
-&lt;li&gt;возможность создавать плагины&lt;/li&gt;
-&lt;li&gt;безопастность(не исполняемый на сервере)&lt;/li&gt;
-&lt;li&gt;offline(возможность запустить сервер локально)&lt;/li&gt;
-&lt;li&gt;основанный на файлах&lt;/li&gt;
-&lt;li&gt;возможность развертывания на Amazon S3 за дешево&lt;/li&gt;
-&lt;li&gt;GIT интеграция&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Список внушительный. Но если начать разбираться, то станет понятно что эти возможности есть и у &lt;a class="reference external" href="http://docs.notmyidea.org/alexis/pelican/"&gt;pelican&lt;/a&gt;,. И список этот высосан из пальца. Это все PR.&lt;/p&gt;
-&lt;p&gt;На практике оказалось, очень сложная и непонятная библиотека. С ней тяжело работать, так как перечитать исходник быстро не получится. Это означает что нужно время для старта, а его нет. С ходу при любых действия получаешь &lt;cite&gt;Traceback&lt;/cite&gt;. То ли версия обновилась, а документация нет, то ли еще какая то магия. Как бы то нибыло, идем дальше.&lt;/p&gt;
-&lt;p&gt;Третьим мне попалась библиотечка &lt;a class="reference external" href="https://github.com/mitsuhiko/rstblog"&gt;rstblog&lt;/a&gt;, написаная Армином Ронахером. Очень легкая и понятная. Уже становится интересно. Возможности:&lt;/p&gt;
-&lt;ul class="simple"&gt;
-&lt;li&gt;тэги&lt;/li&gt;
-&lt;li&gt;создание любых шаблонов&lt;/li&gt;
-&lt;li&gt;atom&lt;/li&gt;
-&lt;li&gt;подсветка кода на основе &lt;a class="reference external" href="http://pygments.org/"&gt;pygments&lt;/a&gt;&lt;/li&gt;
-&lt;li&gt;offline(возможность запустить сервер локально)&lt;/li&gt;
-&lt;li&gt;основанный на файлах&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Здесь есть проблемка в том, что совершенно нет документации. Все остальное на высоте. Очень понятно и довольно просто. Исходный код и послужил документацией. Благо, его не много. Раз используем свои шаблоны, дизайн может быть любым. Значит можем подключать любые сервисы, то есть возможности библиотеки равные предыдущим. Звучит обнадеживающе. Я выбрал &lt;a class="reference external" href="https://github.com/mitsuhiko/rstblog"&gt;rstblog&lt;/a&gt; для своего блога.&lt;/p&gt;
-&lt;div class="note"&gt;
-&lt;p class="first admonition-title"&gt;Note&lt;/p&gt;
-&lt;p class="last"&gt;Справедливости ради стоит отметить, что существует большое количество генераторов статических сайтов. И бОльшая часть из них в этой статье не рассматривается. Потому нельзя рассматривать эту статью как исследование.&lt;/p&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id11"&gt;
-&lt;h2&gt;Быстрый старт&lt;/h2&gt;
-&lt;div class="section" id="id12"&gt;
-&lt;h3&gt;Конфигурация&lt;/h3&gt;
-&lt;p&gt;Для безопастности и комфортной работы крайне желательно создать виртуальное окружение. Я буду использовать &lt;a class="reference external" href="http://pypi.python.org/pypi/virtualenv"&gt;virtualenv&lt;/a&gt;:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;$ mkdir blog &amp;amp;&amp;amp; cd blog
-$ virtualenv .env
-$ . ./.env/bin/activate
-$ pip install git+https://github.com/mitsuhiko/rstblog.git#egg=rstblog # устанавливаю
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Итак, папка для проекта готова. Конфигурация описывается в формате &lt;a class="reference external" href="http://ru.wikipedia.org/wiki/YAML"&gt;YAML&lt;/a&gt; в файле &lt;tt class="docutils literal"&gt;./config.yml&lt;/tt&gt;:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="l-Scalar-Plain"&gt;active_modules&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
- &lt;span class="l-Scalar-Plain"&gt;pygments&lt;/span&gt;
- &lt;span class="l-Scalar-Plain"&gt;tags&lt;/span&gt;
- &lt;span class="l-Scalar-Plain"&gt;blog&lt;/span&gt;
-&lt;span class="l-Scalar-Plain"&gt;author&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;Oleg Lebedev&lt;/span&gt;
-&lt;span class="l-Scalar-Plain"&gt;canonical_url&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;http://blog.olebedev.ru/&lt;/span&gt;
-&lt;span class="l-Scalar-Plain"&gt;locale&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;ru&lt;/span&gt;
-&lt;span class="l-Scalar-Plain"&gt;modules&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
- &lt;span class="l-Scalar-Plain"&gt;pygments&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt;
- &lt;span class="l-Scalar-Plain"&gt;style&lt;/span&gt;&lt;span class="p-Indicator"&gt;:&lt;/span&gt; &lt;span class="l-Scalar-Plain"&gt;tango&lt;/span&gt;
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Теперь создадим папку &lt;tt class="docutils literal"&gt;./_templates&lt;/tt&gt;:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;$ mkdir _templates
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Здесь будут все шаблоны, необходимые для блога. Создадим базовый шаблон &lt;tt class="docutils literal"&gt;./_templates/layout.html&lt;/tt&gt;:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
-&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
- &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
- {% block htmlhead %}
- &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;{% block title %}Блог{% endblock %} | Олег Лебедев.&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
- &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://fonts.googleapis.com/css?family=Vollkorn&amp;amp;subset=latin&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
- &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/static/style.css&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
- &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;/feed.atom&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;alternate&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Новые Записи В Блоге&amp;quot;&lt;/span&gt;
- &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;application/atom+xml&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
- {%- for link in links %}
- &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;{{ link.rel }}&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;{{ link.href }}&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;{{ link.type }}&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
- {%- endfor %}
- {% endblock %}
- &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
- &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
- {%block body%}
- {%endblock%}
- &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
-&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
-&lt;/pre&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id13"&gt;
-&lt;h3&gt;Написание статьи&lt;/h3&gt;
-&lt;p&gt;Теперь можно создать статью блога. Для этого потребуется создать в несколько папок и файл, с подобной структурой: &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;./2011/10/9/hello-rst-world.rst&lt;/span&gt;&lt;/tt&gt;, что соответствует &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;./году/месяцу/дню/адресу-статьи&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
-&lt;p&gt;Файл &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;./2011/10/9/hello-rst-world.rst&lt;/span&gt;&lt;/tt&gt; может быть таким:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;public: yes
-tags: [блог, Python]
-summary: Быстрый старт.
-
-&lt;span class="gh"&gt;Генератор блога rstblog&lt;/span&gt;
-&lt;span class="gh"&gt;=======================&lt;/span&gt;
-
-Это первая заметка в блоге.
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;Обратите внимание на то что в начале файла используется &lt;a class="reference external" href="http://ru.wikipedia.org/wiki/YAML"&gt;YAML&lt;/a&gt; конфигурация.&lt;/p&gt;
-&lt;/div&gt;
-&lt;div class="section" id="id15"&gt;
-&lt;h3&gt;Запуск&lt;/h3&gt;
-&lt;p&gt;Для облегчения работы можно создать &lt;tt class="docutils literal"&gt;./Makefile&lt;/tt&gt;:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;all: clean build upload
-
-clean:
- rm -rf _build
-
-build:
- run-rstblog build
-
-serve:
- run-rstblog serve
-
-upload:
- scp -r _build/* www@olebedev.ru:~/olebedev.ru/public_html/_blog
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;После чего можно воспользоваться одной из созданных в &lt;tt class="docutils literal"&gt;Makefile&lt;/tt&gt; комманд:&lt;/p&gt;
-&lt;div class="highlight"&gt;&lt;pre&gt;$ make serve # собираем и запускаем
-&lt;/pre&gt;&lt;/div&gt;
-&lt;p&gt;В корневой дериктории появится папка &lt;tt class="docutils literal"&gt;./_build&lt;/tt&gt;, она содержит все статические файлы блога. Теперь можно посмотреть блог по адресу: &lt;a class="reference external" href="http://127.0.0.1:5000"&gt;127.0.0.1:5000&lt;/a&gt;. И увидеть следующее:&lt;/p&gt;
-&lt;ul class="thumbnails"&gt;
-&lt;li class="span3"&gt;
-&lt;a href="/static/img/screen-1.png" class="thumbnail fancybox"&gt;
-&lt;img src="/static/img/screen-1.png" alt=""&gt;
-&lt;/a&gt;
-&lt;/ul&gt;&lt;/div&gt;
-&lt;div class="section" id="id17"&gt;
-&lt;h3&gt;Что дальше?&lt;/h3&gt;
-&lt;p&gt;Для того чтоб подключить в блог любые файлы(&lt;tt class="docutils literal"&gt;*.css&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;*.(png|jpg|gif)&lt;/span&gt;&lt;/tt&gt;, etc.), нужно создать папку &lt;tt class="docutils literal"&gt;./static&lt;/tt&gt; и поместить все необходимые файлы в нее. После сборки эта папка окажется и в папке &lt;tt class="docutils literal"&gt;./_build&lt;/tt&gt; с готовым блогом. И настроить ссылки в шаблоне или в самом тексте.&lt;/p&gt;
-&lt;p&gt;Создать отдельную страницу тоже очень просто. Нужно создать файл &lt;tt class="docutils literal"&gt;./about.rst&lt;/tt&gt;. после сборки будет доступен адрес &lt;tt class="docutils literal"&gt;/about/&lt;/tt&gt; либо &lt;tt class="docutils literal"&gt;/about/index.html&lt;/tt&gt;.&lt;/p&gt;
-&lt;p&gt;Это все что нужно знать для создания статического блога при помощи &lt;a class="reference external" href="https://github.com/mitsuhiko/rstblog"&gt;rstblog&lt;/a&gt;.&lt;/p&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-</content>
- </entry>
-</feed>
-
View
85 index.html
@@ -8,7 +8,7 @@
<link rel="apple-touch-icon" href="/static/ico/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="/static/ico/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="/static/ico/apple-touch-icon-114x114.png">
- <title>Блог | Олег Лебедев, всего понемногу.</title>
+ <title>Олег Лебедев, персональный сайт.</title>
<link href="/feed.atom" rel="alternate" title="Новые Записи В Блоге" type="application/atom+xml">
<script src="/static/jquery.js"></script>
<link rel="stylesheet" href="/static/style.css" type="text/css">
@@ -24,6 +24,7 @@
G.buttons();
});
</script>
+ <link rel="stylesheet" href="/static/_pygments.css" type="text/css">
</head>
@@ -37,14 +38,9 @@
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
- <a class="brand" href="/about/">Олег Лебедев, всего понемногу.</a>
+ <a class="brand" href="/">Олег Лебедев, персональный сайт.</a>
<div class="nav-collapse">
- <ul class="nav pull-right">
- <li><a href="/">блог</a>
- <li><a href="/archive/">архив</a>
- <li><a href="/tags/">тэги</a>
- <li><a href="/about/">обо мне</a>
- </ul>
+
</div><!-- /.nav-collapse -->
</div>
</div><!-- /navbar-inner -->
@@ -53,66 +49,35 @@
<div class=body>
- <div class=entry-overview>
- <div class=date>12.02.2012</div>
- <div class=detail>
- <h1><a href="/2012/02/12/one-more-ekbpy/">Случилось #ekb.py!</a></h1>
-
- <div class=summary><p>10 февраля 2012 года прошла конференция для python-программистов. Выскажу несколько мыслей по этому поводу.</p>
-</div>
-
- </div>
- <div class=comments>
- <a href="/2012/02/12/one-more-ekbpy/#disqus_thread" data-disqus-identifier="one-more-ekbpy-identifer">0 Comments</a>
- </div>
- </div>
- <div class=entry-overview>
- <div class=date>01.12.2011</div>
- <div class=detail>
- <h1><a href="/2011/12/1/first-ekb.py/">Начало положено</a></h1>
-
- <div class=summary><p>Вчера прошла перая встреча питонистов Екатеринбурга.</p>
+
+
+
+ <div class="section" id="id1">
+<h2>Обо мне</h2>
+<p>Меня зовут Олег Лебедев. Я интересуюсь разработкой ПО, интерфейсами, дизайном, музыкой, путешествиями в разные страны и конкретные места, людьми и всем новым что меня окружает.
+Живу в <a class="reference external" href="http://ru.wikipedia.org/wiki/Екатеринбург">Екатеринбурге</a>.</p>
+<p>Для связи со мной лучше пользоваться одним из следующих каналов:</p>