<!DOCTYPE html>
<html lang="uk">
  <head>
    <meta charset="utf-8" />
    <meta name="description" content="Соціальний блог розробніків мовою Ruby та Ruby on Rails" />
    <meta name="keywords" content="Ruby,JRuby,Rails,Sinatra,Rails3,Authlogic" />
    <meta name="author" content="" />
    <link rel="shortcut icon" href="/favicon.ico" />
    <link rel="alternate" type="application/rss+xml" title="RubyFlow.org.UA" href="http://feeds.feedburner.com/rubyfloworgua" />
    <link href="/stylesheets/reset.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/application.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/960gs.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/form.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/icon.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/wmd.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/code.css?1383287162" media="screen" rel="stylesheet" type="text/css" />
    <meta name="csrf-param" content="authenticity_token"/>
<meta name="csrf-token" content="&#47;DskpX3Wvc+++RTBTAbkGK9ewx77IvNneLaTogZrr3g="/>
    <title>Коллективный блог сообщества разработчиков, использующих Ruby &mdash; RubyFlow.org.ua</title>
    <script type="text/javascript">
    function recordOutboundLink(link, category, action) {
      try {
        var myTracker=_gat._getTrackerByName();
        _gaq.push(['myTracker._trackEvent', ' + category + ', ' + action + ']);
        setTimeout('document.location = "' + link.href + '"', 100)
      }catch(err){}
    }
    </script>
  </head>
  <body>
    <section id="flash" class="flash" style="display:none;"></section>
    <header id="header" class="container_12 clearfix">
    <section class="logo grid_2">Ruby<span>Flow</span>.org.ua
    </section>
      <section class="menu grid_8">
        <nav>
          <ul>
            <li><a href="https://twitter.com/rubyfloworgua" class="twitter-follow-button" data-show-count="false">Читати @rubyfloworgua</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
            </li>
            <li><a href="http://www.rubyflow.org.ua/items/new">Додати статтю</a></li>
        </nav>
      </section>
      <section class="search form grid_2">
      </section>
      <section class="account">
        <a href="http://www.rubyflow.org.ua/sign_in">Вхід</a>
      </section>
    </header>
    <section id="content" class="content container_12 clearfix">
      
  <section class="day container_12 clearfix">
    <time datetime="2013-04-09" pubdate="pubdate" class="grid_2">
      <span class="date-day">09</span><span class="date-month">.04</span> <span class="date-year">2013</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/76">Decaf - Ruby в бравзері</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p><img src="http://trydecaf.org/decaf.svg" alt="alt text" /></p>

<p>Щоб там не говорили, а JavaScript досить таки недружня до програміста мова.</p>

<p>Всі надбудови які зараз для неї пишуться направлені на те, щоби таки зробити її більш-менш придатною для використання: ООП, наслідування, повторне використання коду.</p>

<p>Хочеться нарешті нормальнописати класи і звертатись до parent, а не використовувати різні компілятори(Coffe Script), що генерують купу коду, для того, щоб мовою можна було користуватись.</p>

<p>Будь-якій технології, щоб жити потрібно сферу використання, а також сильні союзники і грошова підтримка. JavaScript був створений дуже давно і судячи з його архітектури ближчий до читання машинами ніж людьми. Це мабуть єдина прототипна мова, яка тримається широкого вжитку тільки завдяки, що її досить важко буде виколупати з браузерів.</p>

<p>Її довготривала історія пояснюється лише тим, що для його заміни потрібно буде переписати купу коду, а неузгодженність в світі браузерів може подовжити цю агонію досить довго.</p>

<p>Але ось перша ластівка <a href="http://trydecaf.org/">Decaf</a> WebKit клон в який вмонтовано підтримку мови Ruby і воно тикаи дійсно працює. І це може стати реальною альтернативою для тих хто згоден трохи поступитись швидкістю виконання, за рахунок написання хорошого коду, який потім буде легко підтримувати.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2013-03-28" pubdate="pubdate" class="grid_2">
      <span class="date-day">28</span><span class="date-month">.03</span> <span class="date-year">2013</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/75">Ruby Meditation 2.0, Київ, 6 квітня</a><span>RubyMeditation</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Другий Ruby Meditation, відбудеться у Київі, 6-го квітня.</p>

<p>Запрошуємо усіх прійняти актівну участь у заході. У кожного під час роботи виникають думки або формується досвід яким корисно ділитися. Ruby Meditation найбільш комфортний захід для такого обміну. Заохочуються як скорочені повідомлення так і більш розгорнуті доповіді.</p>

<p>Ruby Meditation відбудеться за адресою “Дом Пашкова” вул Мельнікова, 83Д, 7 поверх, конференц-зала 1.</p>

<p>Студентам знижка 50% Доповідачам та участнікам круглого столу - безкоштовний вхід та подарунки.</p>

<p>Сайт заходу: <a href="http://rubymeditation2.eventbrite.com/">http://rubymeditation2.eventbrite.com/</a>
Про Ruby Meditation 1.0, Київ, 23 лютого: <a href="http://rubymeditation.eventbrite.com/">http://rubymeditation.eventbrite.com/</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-06-05" pubdate="pubdate" class="grid_2">
      <span class="date-day">05</span><span class="date-month">.06</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/74">iFunBox. Дістати фото з iPad, iPhone та iPod touch без синхронізації</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Як відомо Apple не схвалює вільного доступу до файлової системи вищезгаданих пристроїв. Тому зрозуміло, чому цієї програми нема в AppStore.</p>

<p>Але у випадку, коли з якихось причин просто хочете передати зроблені фото без синхронізації з вашим MacBook <a href="http://ifunboxmac.com/">iFunBox</a> може стати в нагоді.</p>

<p>Присутня, також <a href="http://www.i-funbox.com/">версія для Windows</a>. На цьому можливості програми не обмежені. Докладніше читайте на сайті.</p>

<p><img src="http://ifunboxmac.com/images/mainlogo2.png" alt="alt text" /></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-05-20" pubdate="pubdate" class="grid_2">
      <span class="date-day">20</span><span class="date-month">.05</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/73">API Driven Applications</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p><a href="https://speakerdeck.com/u/sutto/p/api-driven-applications">Слайди з досить цікавої доповіді  Darcy Laycock</a>, що висвітлює проблему та рішення щодо побудови зовнішніх API.</p>

<p>Розглядаються три бібліотеки <a href="https://github.com/intridea/grape">grape</a>, <a href="https://github.com/spastorino/rails-api">rails-api</a> та <a href="https://github.com/filtersquad/rocket_pants">rocket_pants</a>.</p>

<p>Дві останні є полегшеними версіями rails, у звязку з цим у мене виникають сумніви, щодо можливих проблем з несумісністю загальної частини, зважаючи на швидкий розвиток самого rails.</p>

      </article>
      <article>
        <header>
          <a href="/items/72">API Driven Applications</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>95<a href="https://speakerdeck.com/u/sutto/p/api-driven-applications">Слайди з досить цікавої доповіді  Darcy Laycock</a>95, що висвітлює проблему та рішення щодо побудови зовнішніх API.</p>

<p>Розглядаються три бібліотеки <a href="https://github.com/intridea/grape">grape</a>, <a href="https://github.com/spastorino/rails-api">rails-api</a> та <a href="https://github.com/filtersquad/rocket_pants">rocket_pants</a>.</p>

<p>Дві останні є полегшеними версіями rails, у звязку з цим у мене виникають сумніви, щодо можливих проблем з несумісністю загальної частини, зважаючи на швидкий розвиток самого rails.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-05-15" pubdate="pubdate" class="grid_2">
      <span class="date-day">15</span><span class="date-month">.05</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/71">Ruby on Rails. Індекс популярності.</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>На visual.ly опубліковано візуалізацію статистичних даних використання Ruby on Rails.</p>

<p><a href="http://visual.ly/ruby-rails-popularity-index-2012"><img src="https://img.skitch.com/20120515-q7a4fwsma47qkshgdaamg92y98.jpg" alt="alt text" /></a></p>

<p><a href="http://visual.ly/ruby-rails-popularity-index-2012">читати більше</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-05-07" pubdate="pubdate" class="grid_2">
      <span class="date-day">07</span><span class="date-month">.05</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/70">Rubyflow.org.ua. Мобільний інтрефейс.</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Сьогодні додав <a href="http://rubyflow.org.ua/m">мобільний інтрефейс</a>.</p>

<p>Поки що тільки для читання але це тільки початок.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-05-06" pubdate="pubdate" class="grid_2">
      <span class="date-day">06</span><span class="date-month">.05</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/69">RubyMotion. Розробка для iOS  на Ruby.</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p><a href="http://www.rubymotion.com/">RubyMotion</a> революційний набір програмних інтруметів для iOS.
Він дозволяє використовувати Ruby для розробки рідних для цієї операціної системи аплікацій та прискорює весь процес розробки вцілому.</p>

<p><img src="http://www.rubymotion.com/images/create-screenshot.png" alt="alt text" /></p>

<p>Для тих, хто бадає дізнатись більше, рекомендую переглянути <a href="http://goo.gl/6TBY8">це відео</a>.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-05-02" pubdate="pubdate" class="grid_2">
      <span class="date-day">02</span><span class="date-month">.05</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/68">Встановлення iconv на OSX Lion</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Rails 2.3.x потребує бібліотеку iconv для виконання деяких Rake завдань:</p>

<p>На OSx Lion, якщо ви використовуете rvm потрібно виконати наступні дії:</p>

<pre><code>rvm pkg install iconv 
rvm reinstall 1.8.7 --with-iconv-dir=$rvm_path/usr
gem install iconv -- --with-iconv-dir=$rvm_path/usr
</code></pre>

<p>і все буде працювати добре !</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-04-20" pubdate="pubdate" class="grid_2">
      <span class="date-day">20</span><span class="date-month">.04</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/67">Вийшов Ruby 1.9.3-p194 </a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Нововведень немає. Випрвлені деякі помилки та недолік безпеки повязаний з Rubygems. <a href="http://goo.gl/VVxit">Читати більше...</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-04-02" pubdate="pubdate" class="grid_2">
      <span class="date-day">02</span><span class="date-month">.04</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/66">Генератор гарних сайтів для ваших Github аплікацій</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Ви зробили новий гем але не маєте таланту оформлювача або дизанера?</p>

<p>Тоді Github заробить це для вас з допомогою нового генератора <a href="https://github.com/blog/1081-instantly-beautiful-project-pages">домашніх сторінок для ваших проектів</a>.</p>

<p><img src="https://github-images.s3.amazonaws.com/blog/2012/page-generator-button.png" alt="alt text" /></p>

<p><img src="https://github-images.s3.amazonaws.com/blog/2012/page-generator-picker.png" alt="alt text" /></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-03-25" pubdate="pubdate" class="grid_2">
      <span class="date-day">25</span><span class="date-month">.03</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/65">Вийшов Bundler 1.1</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Головна особливість цієї версії так, що тепер при інсталяції використовується не повна версія списку гемів, а тільки її зміни, що зкачується за rubygems.org</p>

<p>Тепер Bundler працює набагато швидше при оновленні та втсановленні гемів.</p>

<p>Новини очікуємо <a href="http://gembundler.com/v1.1/index.html">тут</a>.</p>

      </article>
      <article>
        <header>
          <a href="/items/64">Оформлення коду в стилі Github</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Відома соціальна мережа для розробників Gihub дилиться <a href="https://github.com/styleguide/">своїм надбанням</a> в галузі оформлення <a href="https://github.com/styleguide/css">CSS</a>, <a href="https://github.com/styleguide/javascript">JavaScript</a> та <a href="https://github.com/styleguide/ruby">Ruby</a> коду.</p>

<p><img src="https://img.skitch.com/20120325-kncuj5t3ypdqi5bcpng134a3cd.jpg" alt="alt text" /></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-03-11" pubdate="pubdate" class="grid_2">
      <span class="date-day">11</span><span class="date-month">.03</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/63">Перевірка орфографії у Vim</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Я використовую Vim як основне середовище для розробки на Ruby але досить часто треба писати листи або ж нотатки до блога.
Звісно хочеться писати їх в улюбленому редакторі і без помилок.</p>

<p>Vim має вмонтовану систему перевірки орфографії</p>

<p>Словники можна скачати за адресою <a href="ftp://ftp.vim.org/pub/vim/runtime/spell">ftp://ftp.vim.org/pub/vim/runtime/spell</a> .</p>

<p>Якщо ввести команду :set spell spelllang=uk, то словник буде стягнуто та розміщено в каталозі
~/.vim/spell . Зразу ж після цього слова з некоректним написанням для вибраної мови будуть підсвічені
червоним кольором фону і після натискання z= буде подано список варіантів виправлень.</p>

<p>По замовчуванню перевірка вимкнена.
Слова, що починають речення і не починаються з прописної літери, будуть підсвічені блакитним.
]s та [s ініціюють перехід до наступного та попереднього слова з помилкою відповідно.</p>

<p>zg додасть слово як перманентно-правильне для поточного словника, zG зробить те ж саме але тільки на час поточного сеансу.
Більш детально можна дізнатись з довідки :help spell</p>

<p><img src="https://img.skitch.com/20120311-tqcnaheqgfa356b3hbfn326fx1.jpg" alt="alt text" /></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-03-10" pubdate="pubdate" class="grid_2">
      <span class="date-day">10</span><span class="date-month">.03</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/62">Виявлено вразливість безпеки Github. Rails пішов &quot;паравозом&quot;. </a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>4 березня відбувася досить цікавий інцедент на GitHub.</p>

<p>Російський програмість Егор Хомяков знайшов вразливість у коді сервісу <a href="http://github.com">http://github.com</a> та <a href="http://goo.gl/H2FZ6">скористався нею</a></p>

<p>Адміністрація Github спочатку заблокувала акаунт Егора, але потім розблокувала, вибачилась і вжила заходів у вигляді ревізії публічних ключів асоційованих з акаунтами розробників.</p>

<p>Вразливість повя'язана з відомим фактом описаным в <a href="http://guides.rubyonrails.org/security.html#mass-assignment">Ruby on Rails security guide</a></p>

<p>ЗМІ як завше звалили все в одну купу, і мух і котлети:</p>

<pre><code>российский программист Егор Хомаков обнаружил уязвимость в
Ruby on Rails
</code></pre>

<p>згідно документації відповідальність за безпеку при використанні mass assignment цілком покладається на аплікацію.</p>

<p>Більш докладніше <a href="http://goo.gl/fuHwN">тут</a>.</p>

<p>UPD: <a href="http://help.github.com/responsible-disclosure/">Github Responsible Disclosure of Security Vulnerabilities</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-03-06" pubdate="pubdate" class="grid_2">
      <span class="date-day">06</span><span class="date-month">.03</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/61">Дружим Kaminari и WillPaginate</a><span>Vladimir Vinnikov</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Если вам, как и мне, повезло работать в проекте где используется kaminari, а какой то умный gem аля wice_grid требует will_paginate, то вы можете помирить их при необходимости переопределив метод пагинации для Kaminari. Добавте (создайте) в инициалайзер для kaminari</p>

<p>Kaminari.configure do |config|
  config.page_method_name = :paged
end</p>

<p>и используйте paged вместо page.</p>

<p>P.S. А по хорошему постарайтесь отказаться от одного из них)</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-03-01" pubdate="pubdate" class="grid_2">
      <span class="date-day">01</span><span class="date-month">.03</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/60">Вийшли Rails 3.2.2, 3.1.4 та 3.0.12</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Одразу три версії Rails 3.x було анонсовано до релізу.</p>

<p>В основному це виправлення, що стосуються безпеки на сумісності з Ruby 2.0.</p>

<p>Більш докладно можна почитати <a href="http://weblog.rubyonrails.org/2012/3/1/ann-rails-3-2-2-has-been-released">тут</a>, <a href="http://weblog.rubyonrails.org/2012/3/1/ann-rails-3-1-4-has-been-released">тут</a> та <a href="http://weblog.rubyonrails.org/2012/3/1/ann-rails-3-0-12-has-been-released">тут</a>.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-29" pubdate="pubdate" class="grid_2">
      <span class="date-day">29</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/59"> Smokie Free. Карта закладів для тих, хто не палить </a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Компанія Alterplay створила апликацію для  iPhone на яку нанесено заклади де повністю заборонено паління тютюну.</p>

<p>Аплікацію можна встановити з AppStore абсолютно безкоштовно.</p>

<p><img src="http://assets0.the-village.ru/assets/post-cover/05/79/112071/post-cover.90c6c7d6-e4aa-42c8-87dc-331041058357.jpg" alt="alt text" /></p>

<p>Особисто для мене було б непогано ше дізнатись де нема "живої" музики і перегляду футбольних матчів :-)</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-26" pubdate="pubdate" class="grid_2">
      <span class="date-day">26</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/58">Встановлення ffmpeg на OSX Lion через Homebrew</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Дуже зручний медійний конвертор ffmpeg не ставиться на Lion через Homebrew без танців з бубном ;-)</p>

<p>Але вихід все ж таки є</p>

<pre><code>brew install --use-clang --HEAD ffmpeg
</code></pre>

<p>навіщо ffmpeg ?</p>

<pre><code>ffmpeg -i input.mpg -s pal -r pal -aspect 16:9 -ar 48000 -ac 2 out16x9.dv
</code></pre>

<p>конвертує файл в форматі mpg в формат dv, який можна легко імпортувати в iMovie для подальшої обробки.</p>

<p>і ще <a href="http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs">кілька команд</a> для конвертації ваших даних в медійні формати для мобільних гаджетів.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-23" pubdate="pubdate" class="grid_2">
      <span class="date-day">23</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/57">Humongous - браузер для MongoDB</a><span>Evgeniy Solovyov</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Humongous - основанный на sinatra gem, который после установки и однострочной консольной команды запуска даст возможность локально просматривать содержимое Mongo в браузере.</p>

<p><a href="http://github.bagwanpankaj.com/humongous/">http://github.bagwanpankaj.com/humongous/</a></p>

      </article>
      <article>
        <header>
          <a href="/items/56">Выбросьте переменные эксземляра (@...) из своих спеков!</a><span>Evgeniy Solovyov</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>  В небольшой заметке <a href="http://reefpoints.dockyard.com/ruby/2012/02/15/get-those-instance-variables-out-of-my-specs.html%22%D1%82%D1%83%D1%82%22">тут</a> напоминается о существовании таких конструкций rspec как let! (вызывающийся для каждого теста в отличии от ленивого let) и subject(для задания тестируемого объекта, чтобы его постоянно не повторять).<br/>
Использование данных конструкций поможет сделать ваши тесты немного чище и читабельней.</p>

<p>Link: <a href="http://reefpoints.dockyard.com/ruby/2012/02/15/get-those-instance-variables-out-of-my-specs.html">http://reefpoints.dockyard.com/ruby/2012/02/15/get-those-instance-variables-out-of-my-specs.html</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-16" pubdate="pubdate" class="grid_2">
      <span class="date-day">16</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/55">Вийшов Ruby 1.9.3-p125 </a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Реліз містить виправлення модуля роботи з OpenSSH.</p>

<p>Подробиці по <a href="https://bugs.ruby-lang.org/projects/ruby-193/issues?set_filter=1&amp;status_id=5">тікета</a>х та <a href="http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_125/ChangeLog">змінах</a>.</p>

      </article>
      <article>
        <header>
          <a href="/items/54">MailCatcher.me - локальний smtp сервер з web інтерфейсом</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Доволі часто потрібно протестувати роботу сервісу який пов'язаний з відсиланням листів.</p>

<p><img src="https://img.skitch.com/20120216-8kjd3qfwu4169wy3xndwn542n5.jpg" alt="alt text" /></p>

<p>MailCatcher можна розглядати як такий собі спрощений варіант зовнішньої системи розсилки, але при цьому ви матимете ряд переваг, а саме:</p>

<ul>
<li>швидкість відсилики листів;</li>
<li>необхіднисть підключення до Internet тепер не є обовязковою;</li>
<li>значно прощується аутинтифікація на зовнішні сервіси відсилки;</li>
<li>знімаються обмеження на кількість надісланних листів;</li>
<li>підвищуеться ступінь захасту системи(вставляти дані реальних акаунтів тепер нема потреби)</li>
<li>ризик організувати спам підчас тестування з реальними данними зводиться до нуля</li>
</ul>


<p>Пропоную переглянути <a href="http://goo.gl/biJao">невеличкий скрінкаст</a> по встановленню та тестуванню цього сервіса.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-15" pubdate="pubdate" class="grid_2">
      <span class="date-day">15</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/53">Cane - статичний аналізатор коду для ruby 1.9.x</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Ще один інструмент для дослідження та статичного аналізу коду на Ruby.</p>

<p>Основна його цінність, як на мене, це можливість обрахунку цикломатичної складності коду для подальшого рефакторінгу та аналізу достаності покриття тестами.</p>

<p>Більш докладно можна почитати в README в <a href="https://github.com/square/cane">репозиторії проекту</a>.</p>

      </article>
      <article>
        <header>
          <a href="/items/52">Дизайн патерни - просто, як двері</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Саме під такою назвою вийшла книга львівського програміста Андрія Будая.</p>

<p><img src="http://designpatterns.andriybuday.com/_/rsrc/1329156240435/home/BookCover_240.png" alt="alt text" /></p>

<p>В книзі легкою та доступною мовою подано опис власного досвіду автора у використанні патернів дизайну програмного коду та містить авторські приклади написані мовою Java.</p>

<p>Книга написана українською мовою та розповсюджується безпоштовно згідно з ліцензією Creative Commons 3.0.</p>

<p>На мою думку, матеріал буде цікавий також розробникам мовою Ruby зважаючи на те, що патерни програмування не є залежними від самої мови на якій вони реалізовані.</p>

<p><a href="http://designpatterns.andriybuday.com/download">Скачати книгу</a> можна з <a href="http://designpatterns.andriybuday.com/">сайту автора</a> в фоматі zip та pdf.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-09" pubdate="pubdate" class="grid_2">
      <span class="date-day">09</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/51">Drag&amp;Drop одним пальцем в OSX Lion</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>OSX Show Leopard мав дуже приємну мені фічу, цінність якої я відчув тільки з переходом на Lion.</p>

<p>Мене досі дивує мотивації дизайнерів Apple згідно якої вони вирішили, що тягати вікна трьома пальцями буде зручніше ніж одним, але вдячний за те,  що лишили спосіб повернути попередню поведінку системи</p>

<p><img src="https://img.skitch.com/20120209-bi96mc9pw96mf2ht9a2k2ixb26.jpg" alt="alt text" /></p>

<p>хоч і запхали її в налаштування для людей з фізичними відхиленнями.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-02-07" pubdate="pubdate" class="grid_2">
      <span class="date-day">07</span><span class="date-month">.02</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/50">Встановлення Jenkins на OSX Lion</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>В <a href="http://lostechies.com/ryansvihla/2011/09/25/rail-3-1-ci-setup-with-jenkins-test-unit-simplecov-on-os-x-lion/">статті</a> докладно подано опис процесу встановлення сервера безперервної інтеграції Jenkins(форк Hudson) на операційну систему OSX Lion.</p>

<p>Детально описано налаштування взаємодії з RVM та SimpleCov.</p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2012-01-21" pubdate="pubdate" class="grid_2">
      <span class="date-day">21</span><span class="date-month">.01</span> <span class="date-year">2012</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/49">Пошук файлів у Vim</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Я досить давно користуюсь Vim і вважаю його одним з найкращих текcтових редакторів(але таємно мрію, щоб основною мовою написання plugins став Ruby).</p>

<p>Пропоную до огляду дуже цікавий і корисний, на мій погляд, плагін <a href="https://github.com/kien/ctrlp.vim/tree/extensions">CtrlP</a></p>

<ul>
<li>написаний повністю на VimL для MacVim 7.0, але так само добре працюе і в консольній версії;</li>
<li>повністю підтримує регулярні вирази підчас пошуку файлів;</li>
<li>вмотований пошук за перевагою в частоті використання (MRU);</li>
<li>автовизначення кореня проекту;</li>
<li>підтримує написання власних <a href="https://github.com/kien/ctrlp.vim/tree/extensions">розширень</a> для пошуку;</li>
</ul>


<p><img src="https://img.skitch.com/20120121-g8akxtgsm8qes36j5n4f1jwb53.png" alt="alt text" /></p>

<p>Використання досить просте: тиснете Ctr+P, вводите параметри пошуку.</p>

<p>Ctrl+f та Ctrl+b - рух до наступного та попереднього буферів відповідно.</p>

<p><a href="https://github.com/kien/ctrlp.vim">https://github.com/kien/ctrlp.vim</a> ----</p>

      </article>
      <article>
        <header>
          <a href="/items/48">Менеджер паролів на Ruby</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>З часом паролів стає стільки, що майже неможливо ними керувати. Листочки, файлики та записи на долонях,  звичайно, не вихід.</p>

<p>Досить цікаве <a href="https://github.com/janlelis/pws">рішення проблеми</a> написане на Ruby:</p>

<pre><code>gem install pws 
</code></pre>

<ul>
<li>зрерігає паролі у файлі на диску;</li>
<li>криптує файл з допомогою загального(master) паролю;</li>
<li>створено для повсякденного користування;</li>
<li>лише 234 рядки чистого Ruby коду;</li>
<li>протестовано 222 рядками коду на Cucumber.</li>
</ul>


<p><img src="http://rbjl.net/pws-example.png" alt="alt text" /></p>

<p><a href="http://rbjl.net/60-pws-the-ruby-powered-command-line-password-manager---">http://rbjl.net/60-pws-the-ruby-powered-command-line-password-manager---</a></p>

      </article>
    </section>
  </section>
  <section class="day container_12 clearfix">
    <time datetime="2011-10-26" pubdate="pubdate" class="grid_2">
      <span class="date-day">26</span><span class="date-month">.10</span> <span class="date-year">2011</span>
    </time>
    <section class="articles grid_8">
      <article>
        <header>
          <a href="/items/47">Nginx  на MacOS(редакція 2га)</a><span>Roman V. Babenko</span>
        </header>
        <aside>
          <ul>
            <li>
            </li>
          </ul>
        </aside>
        <p>Цікава <a href="http://trevorturk.com/2010/09/22/passenger-with-nginx-on-mac-os-x-2nd-edition-2/">стаття</a> <a href="http://trevorturk.com/">Trevor Turk</a> про те як налаштувати собі локальний web сервер <a href="http://www.nginx.net/">Nginx</a> та сервер аплікацій <a href="http://www.modrails.com/">Phusion Passenger</a> aka mod_rails.</p>

<p>Встановлення буде відбуватись через <a href="http://rvm.beginrescueend.com/">RVM</a> та <a href="http://github.com/mxcl/homebrew">Homebrew</a>.</p>

<p><a href="http://trevorturk.com/2010/09/22/passenger-with-nginx-on-mac-os-x-2nd-edition-2/">Читати далі ...</a></p>

      </article>
    </section>
  </section>
  <div class="pagination"><span class="previous_page disabled">&larr;</span> <em>1</em> <a rel="next" href="/items?page=2">2</a> <a href="/items?page=3">3</a> <a class="next_page" rel="next" href="/items?page=2">&rarr;</a></div>

    </section>
    <footer id="footer" class="container_12 clearfix">
      <section class="grid_2">
        &nbsp
        <p>Базується на коді <a href="https://github.com/soulim/rbflow">rbflow</a> </p>
<!--<a href="http://soulim.com">Alex Soulim</a>-->

      </section>
      <section class="grid_8">
        <nav>
          <ul>
            <!-- <li><a href="http://www.rubyflow.org.ua/pages/about">Про нас</a></li> -->
            <!-- li><a href="http://www.rubyflow.org.ua/pages/terms">Умови</a></li -->
            <!-- <li><a href="http://www.rubyflow.org.ua/pages/contacts">Контактна інформація</a></li> -->
          </ul>
        </nav>
      </section>
      <section class="grid_2">
        <a href="http://feeds.feedburner.com/rubyfloworgua">rss</a>        |
        <a href="http://twitter.com/rubyfloworgua">twitter</a>      </section>
    </footer>
    <script src="/javascripts/jquery.min.js?1383287162" type="text/javascript"></script>
<script src="/javascripts/rails.js?1383287162" type="text/javascript"></script>
<script src="/javascripts/jquery.flash.js?1383287162" type="text/javascript"></script>
<script src="/javascripts/highlight.pack.js?1383287162" type="text/javascript"></script>
<script src="/javascripts/application.js?1383287162" type="text/javascript"></script>
    <script type="text/javascript">
      $('pre').each(function(i, e) { hljs.highlightBlock(e, '    ')});
    </script>
    

      <script type="text/javascript">

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-2440215-7']);
    _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);
    })();

  </script>


  </body>
</html>
