Программирование на Ruby - Новости

Генерация "внешних" URL в Rails-приложении

Все уже давно привыкли к удобству хелперов, которые позволяют генерировать URL различных ресурсов Rails-приложения.

Например:

# config/routes.rb
get '/patients/:id', to: 'patients#show', as: 'patient'

# дает нам хелпер
patient_path(@patient)   #=> /patients/17

О том как генерировать URL внешних ресурсов читайте в статье "Building external URLs for a Rails application".

Источник: rubyflow.ru

Бесплатный аккаунт от Semaphore CI

Semaphore CI предлагает бесплатный аккаунт для open source проектов, но кроме того, теперь можно иметь 100 бесплатных билдов в месяц для приватных репозиториев. Это отличная новость для тех, кто только начинает свой путь к звездам.

Читайте подробности в официальном пресс-релизе "Semaphore Gets a Free Plan For Private and Open Source Projects"

Источник: rubyflow.ru

Целостное окружение в тестах с FactoryGirl

Рано или поздно вы столкнетесь с целостностью смоделированных данных в тестах с помощью FactoryGirl. Моделирование окружения становится целым кошмаром в таком случае.

Вероятно, у вас уже есть эта проблема в тестах и вы даже не подозреваете этого. Предлагаю в своей статье осознать проблему до ее появления, чтобы избежать мучений в будущем. Если вы уже страдаете от создания окружения в тестах, не расстраивайтесь, т.к. после прочтения статьи вы сможете найти решение этой нелегкой задачи.

Источник: rubyflow.ru

Roda - новый веб-фреймворк на Ruby

Автором Roda является Джереми Эванс (Jeremy Evans), которого вы уже скорее всего знаете благодаря проекту Sequel.

Как заявляет Джереми, основная цель Roda - сделать веб-разработку проще.

Работа с Roda сильно напоминает работу с Sinatra, но это только внешнее сходство. Архитектура и внутренние принципы сильно отличаются.

Заинтригованы? ;) Тогда советую начать изучение Roda с вступления на официальном сайте - http://roda.jeremyevans.net/why.html

Источник: rubyflow.ru

VDS сервер 256 Mb RAM всего за 58 руб/месяц

Самые дешевые VDS/VPS-сервера в России и СНГ. Виртуализация - OpenVZ. Диски SATA + SSD-cache. Безлимитный канал 100 Mbit/sec без ограничений по трафику.

Для проектов на Руби, Рельсах, Синатре и прочих замечательных руби-фреймворках - самое оно!

Тарифы:

http://berivds.ru/tseny

Источник: rubyflow.ru

Ping Pong IT League 2014 в Казани

alt text

18 октября в Казани стартует первый “Осенний турнир по настольному теннису среди ИТ-компаний” в рамках Ping Pong IT League 2014.
За звание чемпиона сразятся ИТ-команды Казани и других городов Поволжья.

Организатором турнира выступит компания Provectus IT.
Для того, чтобы принять участие, необходимо собрать команду из трех человек основного состава, а так же одного запасного участника.
Если вы любите эту игру и считаете, что именно ваша компания достойна звания победителя, поспешите зарегистрировать свою команду.
Регистрация открыта до 1 октября.

Количество команд-участниц ограничено.

Всех с нетерпением ждем на первом осеннем турнире Ping Pong IT League 2014 в Казани!
Вас ожидают призы и много приятных сюрпризов от организаторов!
Вход для болельщиков свободный.
За дополнительной информацией обращайтесь:
Тел.: +7 (917) 864-12-11
E-mail: kazan.tennis@provectus-it.com
Skype: fuhuk_
Контактное лицо: Миргаязова Эльвира

Источник: rubyflow.ru

PStore

Вчера на встрече Ruby User Group Berlin Лукас Ридер (Lukas Rieder) выступил с замечательной речью о PStore.

PStore реализует механизм хранения данных в обычных файлах и имеет поддержку транзакций.

Еще одна приятная новость - PStore входит в состав стандартных библиотек Ruby.

Очень рекомендую посмотреть слайды презентации Лукаса - "PStore not dead", и его пример релизации JSON-хранилища на базе PStore https://gist.github.com/Overbryd/a39f2644808104024345.

Дополнительные ссылки:

Источник: rubyflow.ru

Как устроены таймауты в Ruby (MRI)

Интересное исследование на тему того, как устроены таймауты в MRI и как ими пользоваться.

Читайте все подробности в статье "Understanding Timeouts in Ruby (MRI)".

Источник: rubyflow.ru

Backup as a Service для Rails

Недавно, будучи озадаченным задачей настроить бекапы сразу на нескольких Rails-проектах, я был разочарован топорностью существующих решений. И как бывает это у программистов, мне было настолько лень заниматься настройкой, что я написал собственный сервис для облачного хранения бекапов с повышенной отказоустойчивостью, трёхминутной настройкой приложения, сжатием/шифрованием, поддержкой Capistrano из коробки.

А главное - каждому пользователю 100МБ хранилища бесплатно. Не стесняйтесь тестировать и делиться мнениями.

Источник: rubyflow.ru

Паттерн "Медиатор"

Брандур Лич (Brandur Leach), инженер из Heroku, в своем блоге детально описывает применение паттерна "Медиатор" ("Посредник").

Этот паттерн может отлично помочь, тем кто мучается с "толстыми" моделями и/или выполняет слишком много действий в методах контроллеров.

Читайте статью "The Mediator Pattern".

Источник: rubyflow.ru

Back-end Meetup в Казани

15 августа 2014 года в Казани пройдет встреча Back-End разработчиков.
Back-End Meetup – неформальное мероприятие. Мы планируем совмещать приятное с полезным – горячие холивары, холодное пиво и просто получать удовольствие от приятного времяпровождения в компании умных, интересных людей.

alt text

Приглашаем всем желающих выступить с мини-докладами на 10-15 минут. Для этого лишь необходимо указать свою тему и краткое описание в регистрационной форме.

Уже заявлены доклады:

  • Константин Макарычев (Provectus): «Sails.js на ноде»
  • Антон Тараев (Headmade): «ООП в Go»
  • Ясинский Николай (Exadel Inc.): «Laravel – PHP on Rails»
  • Лев Речник (HeadMade): «Erlang: могучий или ужасный?»
  • Данил Письменный (BrandyMint): "Как сойти с рельс и не сойти с ума"

Для участия в барных посиделках заполните небольшую регистрационную форму и приходите с хорошим настроением в navigator\cafe (всем участникам мероприятия скидка 30%)

Адрес места проведения: Россия, г.Казань, ул.Мусина 61в (navigator\campus)

Начало: 19:00

За дополнительной информацией обращайтесь:
Константин Макарычев (Provectus IT): +7 987 263 2641
До скорой встречи!

Источник: rubyflow.ru

Открыт набор на онлайн-курс "Профессиональная разработка на Ruby on Rails"

Открыт набор на курс "Профессиональная разработка на Ruby on Rails"

Курс предназначен для тех, кто уже знает основы Ruby on Rails и хочет стать уверенным разработчиком, найти работу в этой области или начать создавать свои проекты на этом фреймворке.

Цель курса - подготовить участников до такого уровня, когда их можно брать на работу в качестве junior-разработчиков на Ruby on Rails.

В предыдущих наборах некоторые участники смогли найти работу еще во время обучения, а основная часть - в течение месяца после окончания курса.

Во время курса будут групповые и индивидуальные занятия. Вы сможете пообщаться один на один с опытным разработчиком и задать ему все свои вопросы, а он в свою очередь, проведет code review и даст рекомендации по улучшению вашего кода, поможет с решением возникших проблем, подскажет какое решение лучше.

Курс очень интенсивный и насыщенный. Обучение происходит на практике, т.е. все участники разрабатывают реальное приложение и на этом отрабатывать такие навыки и знания, как:

TDD/BDD
Git flow
написание хорошего кода
разработка правильной архитектуры
Множество стандартных и не очень gem'ов
Background jobs
REST API
Настройка серверов и деплой приложения
и прочее..

После окончания курса, участники получают знания и навыки, нобходимые любому профессиональному RoR-разработчику, а также код проекта не Github, который можно показать работодателю.

Регистрация на курс здесь

Источник: rubyflow.ru

RailsClub 2014

Конференция RailsClub — крупнейшее ruby-событие года, уже несколько лет подряд собирающее вместе лучших ROR-разработчиков со всей России, именитых спикеров со всего мира и актуальные темы для обсуждения.

RailsClub 2014 состоится 27 сентября, в уютном зале DigitalOctober в Москве

В программе:

Аарон Паттерсон, член Ruby и Rails core team, топ 1 контрибьютор на сегодня, RubyHero 2010. Человек, который определяет развитие языка, и невероятно харизматичный спикер.

Не зря мы расписывали Аарону, как хорошо ему будет в Москве (посмотрите и вы). Тема выступления сейчас уточняется.

Божидар Батсов, CTO Tradeo, автор Rubocop и редактор Ruby и Rails style guides.

The Elements of Style in Ruby

Речь пойдет о том, что же такое стиль, чем хороший стиль отличается от плохого, как придерживаться единого стиля в коде. Как связаны стиль и язык и как эволюционируют стили в коммьюнити Ruby Style Guide.

Джонас Никлас, автор фреймворка для тестирования Capybara и популярных библиотек Pundit, Turnip и CarrierWave. Ruby Hero 2011

Concurrent systems in Ruby

Джонас расскажет, как Ruby меняется к лучшему в аспектах работы с concurrenсу — больным местом многих нагруженных проектов. Он продемонстрирует несколько разных вариантов, включая классический mutex/condition variable combo, Node-style evented IO, Clojure-style compare-and-set и Erlang-style actors. Покажет, как их можно использовать в Ruby и как Ruby дает более широкий выбор по сравнению с другими платформами.

Эрик Майклс-Обер, участник open-sourсe проектов RailsAdmin, Thor и Twitter gem. Ruby Hero 2014 и разработчик в SoundCloud, Берлин.

Writing Fast Ruby

Производительность — это чертовски важно. Пусть Ruby и не самый быстрый язык, но мы можем сделать многое, чтобы оптимизировать производительность своего кода. Эрик выдаст рецепты различных техник ускорения кода и более эффективной работы с памятью.

Сэнди Метц, автор "Practical Object-Oriented Design in Ruby", обладатель Ruby Hero Award 2013

All the Little Things

Между теорией ООП и практикой лежит большая пропасть. Многие приложения содержат огромные классы из длинных методов и неуклюжих условий. Их сложно понять, неудобно использовать повторно и очень дорого изменять. В этом выступлении Сэнди возьмет уродливый кусок кода, который содержит много условий, и перепишет его так, что получится всего несколько простых объектов. А слушатели познакомятся с понятной стратегией, которую каждый сможет использовать для улучшения своего кода.

Доклады будут читаться на английском, с качественным синхронным переводом на русский.

Русскоязычная программа сейчас в самом разгаре формирования. В течение следующих двух недель мы принимаем заявки от желающих поделиться опытом и выступить на одной сцене с нашими хэдлайнерами.
Кстати, мы решили разнообразить формат и помимо традиционных получасовых докладов предлагаем выступить в серии lightning talks - с пятиминутным техническим докладом, в котором можно поделиться методологической находкой, полезной тулзой или презентовать свой open-source проект. Пишите на elena@evrone.ru

Что кроме докладов:

  • Много профессионального общения.
  • Вкусная еда и отличный кофе.
  • Веселые движухи от спонсоров и организаторов в перерывах.
  • Зажигательное афтепати, на которой у вас будет возможность неформально пообщаться с участниками и спикерами.

Присоединяйтесь, не пожалеете!
Цена билета до 1 августа — 7500, успевайте купить билет.

Ваша компания пишет на Ruby и ищет уважения и славы среди лучших rails разработчиков? Поддержите проект!

Уже с нами:

Источник: rubyflow.ru

stack_rescue

stack_rescue - интересный гем, который позволяет искать проблему на stackoverflow.com

https://github.com/excid3/stack_rescue

alt text

Источник: rubyflow.ru

Релиз сервиса Teatro — автоматические стейджинги

Зарелизили совершенно новый вид сервиса https://teatro.io/ . Это аналог традиционных сервисов CI для прогона тестов для каждой ветки, только Teatro для каждой ветки создаёт независимый стейдж и таких стейджей может быть запущенно много для одного проекта параллельно. Так же создаётся стейдж для ветки master.

Источник: rubyflow.ru

Релиз faker_russian

Некоторое время назад на RubyFlow я анонсировал библиотеку validates_russian для проверки правильности вводимых специфических русских значений (ИНН, ОКПО, ОКАТО и т.д.)

Для продолжения популяризации ruby среди широких кругов IT-шников и удобства разработки коммерческих проектов я создал gem faker-russian, который генерирует русскоспецифические фэйковые данные (те же ИНН, ОКПО и т.д.). Большая просьба помочь с разработкой дальнейшего функционала библиотеки: не все генераторы ещё написаны. Моё видение их создания находится в CONTRIBUTING.md

Источник: rubyflow.ru

Вход для пользователей