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

RoHoster: Скоростной VDS/VPS-хостинг на SSD-дисках

Хостинг-провайдер RoHoster сдает в аренду отличные VDS-сервера на SSD-дисках. Твердотельные диски хорошо подходят для размещения высоконагруженных сайтов, сайтов с высокой посещаемостью, "тяжелых" баз данных.

Специально для читателей данного ресурса, используйте промо-код на скидку 50% на первый месяц использования VDS-сервера:

Промо-код: rohoster-rubyflow-09-2014

Если вы давно хотели попробовать SSD-диски в действии, то сейчас самое время для тестирования!

Внимание! Количество купонов ограничено, доступно всего 30 штук

Сайт проекта

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

RailsClub'Moscow 2014: Интервью с Божидаром Бацовым

Конференция RailsClub 2014 уже совсем близко! Команда организаторов предлагает вашему вниманию очередное интервью.

Божидар Бацов - автор Ruby coding style guide и Ruby on Rails style guide.

Над чем ты сейчас работаешь?

На работе я занимаюсь достаточно сложным социальным трейдинговым приложением. В свободное время в основном работаю над RuboCop и CIDER (Clojure IDE для Emacs). А еще у меня есть куча других проектов, если кому-то интересно, можете посмотреть на github.com/bbatsov. Последнее время я еще работаю над классной презентацией для RailsClub.ru :-)

Что является лучшей и худшей частью твоей работы?

Лучшие части:

  • Я технический директор :-)
  • Я работаю с кучей классных технологий (RoR 4.1, node.js, redis, puppet, react, iOS и т.д.).
  • У меня потрясающие коллеги.
  • Работаю над финансовым приложением, а я всегда интересовался финансами.

Худшие части:

  • Приходится иметь дело с допотопными сервисами, написанными кем-то другим.
  • Делать апдейты Rails.
  • Сталкиваться и разбираться с багами в исходниках Node.js.

Что ты считаешь своим главным достижением в жизни / карьере на данный момент?

Несколько лет назад окончание Технического университета Софии казалось мне огромным достижением :-)

Если серьезно, я по-настоящему горжусь всем, что сделал в Tradeo и во многих open source проектах за последние годы. Мне кажется, в нашей работе главное достижение - всегда последнее на этот момент. Что касается open source, пока мои главные достижения - RuboCop и CIDER.

На твой взгляд, в каком направлении будут развиваться Ruby и Ruby on Rails в ближайшие годы?

Я думаю, что Ruby должен освободиться от оков Rails и исследовать новые территории: мобильные приложения (RubyMotion довольно крут), десктоп приложения, системное администрирование и т.д. Хотя Ruby используется сейчас для разных интересных тем, для большинства людей Ruby все еще синоним Rails, а это не очень хорошо. Разнообразие двигает прогресс и инновации.

Что касается Rails, думаю, эра full-stack веб фрэймворков подходит к концу благодаря подъему мобильных и client-side приложений. Мне кажется, что Rails надо на каком-то этапе отказаться от уровня представления и пойти в сторону "rails-api" проектов.

В чём, на твой взгляд, самая важная проблема, которая стоит сейчас перед сообществом разработчиков Ruby и Ruby on Rails?

Ruby надо снова стать крутым. Когда Ruby стал популярным около десятилетия назад, он предлагал множество преимуществ над самыми актуальными тогда языками. Однако в последнее время кажется, что язык немного стагнирует, и все крутые ребята занимаются Clojure, Elixir, Haskell, Scala и так далее. Я жду, что Ruby 3.0 попробует ответить на это большим количеством новых возможностей (например, хорошей работой с concurrency).

Rails сталкивается с похожей проблемой: в мире, который быстро движется в сторону client-side и мобильных приложений ценность традиционных веб фрэймворков снижается. Люди все чаще предпочитают использовать в своих новых приложениях микросервисную архитектуру, а Rails для этого не особо подходит. Самая большая проблема, которую Rails должен решить сейчас, - сохранить актуальность.

Есть гем, на который ты мог бы показать пальцем и сказать: "Вот так нужно писать код"?

RuboCop :-) Другие гемы с отличным кодом, которые приходят мне на ум, - transpec, rspec, parser и sequel.

Является ли хороший стиль написания кода чем-то постоянным или он изменяется со временем? Если изменяется, то какие факторы влияют на эти изменения?

Язык и хорошие практики программирования развиваются вместе. Хотя правильные практики практически вне времени (очень сомнительно, что создание огромных сложных методов когда-нибудь будет считаться хорошим стилем), внедрение новых конкретных фич может привести к изменению представлений о том, что считается хорошим стилем (например, новый синтаксис хеш-литералов в Ruby 1.9, введение именованных аргументов в версии 2.0 и т.д.).

Ты читаешь какой-нибудь блог, посвященный Ruby/RoR?

Не слежу за каким-то определенным блогом. Обычно я читаю те посты о Ruby/Rails, которые попадают в Ruby Weekly. Еще я слушаю два отличных Ruby подкаста - Ruby 5 и Ruby Rogues.

Чем тебе нравится заниматься, когда ты не пишешь код?

Мне всегда нравилось пить пиво с друзьями и смотреть футбол, смотреть кино, телешоу и читать книги. Еще я заядлый геймер, и я немного играю на гитаре. Наверное, у меня есть и какое-то полезное для здоровья хобби, но прямо сейчас ничего такого не припомню :-)

Спасибо за интервью и увидимся в Москве!

Вы можете пообщаться с Божидаром лично - 27 сентября, в центре Digital October. Вся программа - на сайте конференции RailsClub 2014.

Регистрация и оплата участия - тут.

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

RailsClub'Moscow 2014. Интервью с Аароном Паттерсоном

RailsClub 2014 стартует уже через 19 дней! Организаторы мероприятия предлагают вашему вниманию серию интервью с докладчиками.

Первый разговор - с самым долгожданным гостем, Аароном Паттерсоном. Аарон член Ruby и Rails СoreTeam, Топ 1 контрибьютор Rails на сегодня и RubyHero 2010.

Над чем ты сейчас работаешь?

Прямо сейчас я работаю над несколькими вещами:

  • Ускоряю генерацию views (включая routing) в Rails
  • Ускоряю тесты в ActiveRecord, экспериментируя с параллельным выполнением
  • Работаю над Rack 2.0

Что является лучшей и худшей частью твоей работы?

Лучшая часть - помощь другим разработчикам и, конечно, удаление кода. Думаю, мое любимое занятие - удаление кода! Худшая - попытки разобраться, почему некоторый код такой, какой он есть. Работать над Rails иногда тяжело, потому что в некоторых местах код устарел, так что трудно отследить, откуда взялся какой-то кусок или почему определенный кусок кода именно такой.

Что ты считаешь своим главным достижением в жизни/карьере на данный момент?

Думаю, пока мое главное достижение - улучшения производительности, которых я добился в ActiveRecord (этот проект называется AdequateRecord). Я годами учился рефакторить код, чтобы в последствии у меня получилось сделать такие улучшения производительности. Приятное чувство, когда трудишься над чем-то так долго и, наконец, видишь результат. Еще я счастлив, что удалось улучшить производительность без необходимости изменять публичное API.

На твой взгляд, в каком направлении будут развиваться Ruby и Ruby on Rails в ближайшие годы?

Я надеюсь, что в Rails мы сможем улучшить работу HTTP в Ruby веб-серверах. Я хочу, чтобы стриминг лучше поддерживался, и потом мы бы использовали это как стартовую площадку для поддержки HTTP 2. Что касается Ruby, меня воодушевляют улучшения в сборщике мусора. Думаю, в долгосрочной перспективе будущее Ruby связано с добавлением конструкций для работы с concurrency, возможно, с встроенным actor pattern.

В чём, на твой взгляд, самая важная проблема, которая стоит сейчас перед сообществом разработчиков Ruby и Ruby on Rails?

В перспективе для Rails сообщества, думаю, будет очень важно поддерживать HTTP 2, и это будет непросто. У нас большое количество программ, которые зависят от HTTP 1.1, и я думаю, проапргрейдиться будет непростой задачей.

Есть гем, на который ты мог бы показать пальцем и сказать: "Вот так нужно писать код"?

Думаю, minitest - это хороший пример. Он небольшой и простой для понимания. Но я должен сказать, ни один гем не идеален. Везде есть свои проблемы, вы можете их просто пока не видеть!

Какие правила ты бы предложил установить для успешного развития проекта на Ruby с 250+ тыс. строк кода силами множества разработчиков с очень разным уровнем квалификации?

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

Есть ли хоть какой-то шанс, что в обозримом будущем MRI избавится от GIL?

Возможно, не в ближайшем будущем. Но я правда думаю, что это случится.

Ты читаешь какой-нибудь блог, посвященный Ruby/RoR?

Я обычно читаю ruby subreddit. Еще мне нравится слушать подкаст Giant Robots, хотя они совсем не часто говорят о гигантских роботах.

Чем тебе нравится заниматься, когда ты не пишешь код?

В основном готовкой и видеоиграми. Хотя больше готовкой. Прямо сейчас я собственноручно засаливаю бекон!

Спасибо за интервью и увидимся в Москве!

Все вопросы, которые не задали мы, вы сможете задать Аарону и другим нашим участникам лично - 27 сентября, в центре Digital October. Вся программа - на сайте конференции RailsClub 2014.

Регистрация и оплата участия - тут.

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

Web Expert Day

20 сентября 2014 года в Казани при организации Provectus IT, Inc. совместно с Институтом Вычислительной Математики и Информационных Технологий Казанского Федерального Университета пройдет очередной Expert Day, на этот раз посвященный web-разработке.

Наши спикеры:

  • Сергей Укустов (Provectus IT): "Несоциалочка на Рельсах"
  • Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
  • Николай Ясинский (weel.pro): "Современные технологии разработки: От сервера до страницы 404 "
  • Михаил Кольцов (Luxoft): "Разработка корпоративных веб-приложений на AngularJS, Grunt, Spring, Play! "
  • Николай Телепенин, ведущий архитектор "БАРС Груп": "Realtime Web: миф или реальность"
  • Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления проектов Planiro. Архитектура серверной и клиентской части”
  • Глеб Синявский, Team Leader в Racoons Group development company: "Бизнес-процессы для веб разработчика"

Если у вас есть интересная тема и желание поделиться своим докладом с аудиторией, укажите тему и краткое описание в регистрационной форме.

Участие бесплатное, регистрация обязательна!

Место проведения: КФУ (420008, Казань, ул. Кремлевская, 18)
Начало мероприятия: 12:00

За дополнительной информацией обращайтесь:

Татьяна Козовая, PR-менеджер в Provectus IT
+3 8096 237 06 46, Skype: tkozovaya
До встречи на Web Expert Day!

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

normalizr

Вышел в свет normalizr - библиотека для нормализации атрибутов. Сделана по мотивам популярного attribute_normalizer - имеет схожий api, но более легковесная и гибкая.

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

Генерация "внешних" 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

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

Новые пользователи