<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Статьи]]></title>
    <link>https://habr.com/ru/users/printercu/publications/articles/</link>
    <description><![CDATA[Хабр: статьи пользователя printercu]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Tue, 05 May 2026 05:25:32 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Раздаём картинки рельсами после отключения Google'ом svn репозиториев]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283550/</guid>
      <link>https://habr.com/ru/articles/283550/?utm_campaign=283550&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Видимо, на неделе гугл отключил svn репозитории code.google.com.<br/>
Если вы не подключали скрипты, раздаваемые из этих репозиториев, вы могли этого не заметить, как и я.<br/>
Меня удивил увеличившийся трафик в репозиторий <a href="https://github.com/printercu/google-maps-utility-library-v3-read-only">google-maps-utility-library-v3</a>, но сначала я не понял, почему это может быть. Позже я увидел, что пропали изображения иконок кластеров на карте. Дело в том, что путь до иконок захардкожен в MarkerClusterer и указывает на code.google.com.</p><br/>
<p>Как настроить sprockets раздавать эти картинки, читайте под катом.</p> <a href="https://habr.com/ru/articles/283550/?utm_campaign=283550&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 14 May 2016 09:50:14 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[rails]]></category><category><![CDATA[ruby]]></category><category><![CDATA[google maps]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Бот для Telegram. Rails way]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/279179/</guid>
      <link>https://habr.com/ru/articles/279179/?utm_campaign=279179&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Этот пост о библиотеке <a href="https://github.com/telegram-bot-rb/telegram-bot">telegram-bot</a> для написания ботов для Telegram. В числе основных целей при её создании были удобство разработки, отладки и тестирования ботов, сохранение интерфейсов минимальными, но с возможностью расширения, простота интеграции с Rails-приложением, и предоставление необходимых инструментов для написания бота. Вот что входит в состав:<br/>
<br/>
<ul>
<li>Легковесный клиент для API ботов.</li>
<li>Базовый класс для контроллера обновлений с парсером сообщений. Сделан на основе AbstractController из ActionDispatch, предоставляет колбэки, сессии, сохранение контекста сообщений и прочее.</li>
<li>Rack-middleware для продакшена, чтобы принимать update-хуки, и поллер с автоматической загрузкой обновленного кода для удобной разработки.</li>
<li>Rake таски, хэлперы для рельсовых маршрутов и тестов.</li>
</ul><br/>
Интересно? Для установки добавьте <code>telegram-bot</code> в <code>Gemfile</code>, подробности под катом.<br/>
 <a href="https://habr.com/ru/articles/279179/?utm_campaign=279179&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 14 Mar 2016 07:13:50 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category><category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category><category><![CDATA[telegram]]></category><category><![CDATA[bot]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Рецепты тестирования Ruby и Rails приложений]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/vk/articles/269723/</guid>
      <link>https://habr.com/ru/companies/vk/articles/269723/?utm_campaign=269723&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/6ba/386/d57/6ba386d5794b3b6ba6f689f0a59ce8e9.png" alt="image"/><br/>
<br/>
В этом посте я хотел бы рассказать о подходах, приемах и средствах подготовки тестов. Расскажу про то, как не писать лишнего, меньше дублировать код, писать тесты так, чтобы их было легко поддерживать, и как выигрывать в производительности в некоторых ситуациях.<br/>
<br/>
Кому это будет интересно?<br/>
<br/>
<ul>
<li>Если вы начали писать тесты недавно.</li>
<li>Если вы пишете тесты и считаете, что в них много копипасты, или можно значительно улучшить их.</li>
<li>Если вы пишете тесты изредка или не пишете совсем, так как вам не нравится или считаете, что это долго.</li>
<li>Если вы мастер в написании тестов. Возможно, вы узнаете некоторые тонкости или найдете несколько полезных мелочей.</li>
</ul><br/>
 <a href="https://habr.com/ru/articles/269723/?utm_campaign=269723&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 06 Nov 2015 08:03:14 GMT</pubDate>
      <dc:creator><![CDATA[printercu (VK)]]></dc:creator>
      <category><![CDATA[Блог компании VK]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[Тестирование веб-сервисов]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[ruby on rails]]></category><category><![CDATA[testing]]></category><category><![CDATA[rspec]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[RailsStuff — набор для разработки на рельсах]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/vk/articles/268359/</guid>
      <link>https://habr.com/ru/companies/vk/articles/268359/?utm_campaign=268359&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/3ce/2fe/a1e/3ce2fea1e154197aa7d9b1a252e890ca.png" alt="image"/><br/>
<br/>
Недавно мы опубликовали гем <a href="https://github.com/printercu/rails_stuff">RailsStuff</a>. Это коллекция небольших модулей и утилит для выполнения самых разных частых задач: от организации контроллеров и генерации уникальных случайных значений до парсера параметров и хэлперов переводов. В этом посте я расскажу про некоторые из них:<br/>
<br/>
<ul>
<li>ResourcesController — облегчённая и современная версия InheritedResources;</li>
<li>Трекер типов;</li>
<li>Генератор уникальных случайных значений;</li>
<li>Хэлперы переводов и основных ссылок.</li>
</ul> <a href="https://habr.com/ru/articles/268359/?utm_campaign=268359&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 07 Oct 2015 09:36:33 GMT</pubDate>
      <dc:creator><![CDATA[printercu (VK)]]></dc:creator>
      <category><![CDATA[Блог компании VK]]></category><category><![CDATA[Open source]]></category><category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[ruby on rails]]></category><category><![CDATA[gem]]></category><category><![CDATA[все подряд]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Elastics: простой ElasticSearch-клиент для Ruby со всем необходимым]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/242897/</guid>
      <link>https://habr.com/ru/articles/242897/?utm_campaign=242897&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Года полтора назад столкнулся с проблемой выбора клиента к ElasticSearch для node.js. Тогда нашлось несколько проектов, но все были либо слишком усложненные, либо написаны абы как. Хотя казалось: все что нужно — это обертка вокруг http запроса с JSON.encode/decode, обработкой ошибок и парой хэлперов. Тогда для ноды я быстро написал небольшой <a href="https://github.com/printercu/elastics">модуль</a>, который оказался очень удобным.<br/>
<br/>
Недавно надо было прикрутить ES к приложению на рельсах. Часть клиентов для Ruby уже давно не поддерживается, другие слишком усложнены. При этом многие клиенты не имеют механизма управления алиасами, хотя для ES это очень важный функционал.<br/>
<br/>
Я решил написать минималистичный гем, взяв за основу модуль для node.js и расширив его функционал так, чтобы были все самые необходимые инструменты для разработки, деплоя и управления. Вот что получилось.<br/>
 <a href="https://habr.com/ru/articles/242897/?utm_campaign=242897&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 11 Nov 2014 10:28:03 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[Ruby]]></category><category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[ruby]]></category><category><![CDATA[rails]]></category><category><![CDATA[elasticsearch]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Улучшенное наследование в CoffeeScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/190494/</guid>
      <link>https://habr.com/ru/articles/190494/?utm_campaign=190494&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[CoffeeScript принёс в JS неплохую абстракцию классов, основанную на прототипах.<br>
Реализовав известную модель наследования и дополнив её наследованием методов касса,<br>
он позволяет легко строить иерархии классов, даже не зная о цепочках прототипов.<br>
Но и эта модель может быть улучшена.<br> <a href="https://habr.com/ru/articles/190494/?utm_campaign=190494&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Sun, 18 Aug 2013 19:44:04 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[CoffeeScript]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Node.JS]]></category>
      <category><![CDATA[javascript]]></category><category><![CDATA[coffeescript]]></category><category><![CDATA[inheritance]]></category><category><![CDATA[наследование]]></category><category><![CDATA[node.js]]></category><category><![CDATA[ruby]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сериализация в php: serialize, json, bson]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/150629/</guid>
      <link>https://habr.com/ru/articles/150629/?utm_campaign=150629&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Выбрал функции сериализации для бд — bson. Быстрее serialize в &gt;1.5 раза, json — в 3. Да и результат меньше всех остальных.<br/>
Найти его можно в расширении для MongoDB.<br/>
Результаты далее.<br/>
 <a href="https://habr.com/ru/articles/150629/?utm_campaign=150629&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 31 Aug 2012 13:09:27 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[php]]></category><category><![CDATA[serialize]]></category><category><![CDATA[json]]></category><category><![CDATA[bson]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[MySQL репликация one-slave-multi-master]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/131111/</guid>
      <link>https://habr.com/ru/articles/131111/?utm_campaign=131111&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<h4>Предисловие.</h4><br>
Понадобилось сделать репликацию несколькими мастер-серверами с mysql, чтобы данные со всех них грузились на один слэйв-сервер. Готового решения стандартными средствами не нашлось. Но так как проблема оставалась актуальной, со временем подоспел немного усложненный, но работоспособный вариант c использованием средств самой mysql.<br> <a href="https://habr.com/ru/articles/131111/?utm_campaign=131111&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Mon, 24 Oct 2011 14:22:43 GMT</pubDate>
      <dc:creator><![CDATA[printercu]]></dc:creator>
      <category><![CDATA[MySQL]]></category><category><![CDATA[Распределённые системы]]></category>
      <category><![CDATA[mysql]]></category><category><![CDATA[mysqld_multi]]></category><category><![CDATA[federated]]></category><category><![CDATA[replication]]></category><category><![CDATA[multi-master replication]]></category><category><![CDATA[репликация]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
