Открыт набор на онлайн-курс "Профессиональная разработка на 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, который можно показать работодателю.

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

RailsClub 2014 Alex Soulim

Конференция 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 разработчиков? Поддержите проект!

Уже с нами:

Комментарии
Andrew

Имхуется мне, что Джонас Никлас это неправильное произношение, а нужно говорить Йонас Никлас.

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

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

Релиз faker_russianAlex Antonov

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

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

Комментарии
araslanov.e.i.

Что то я только не могу понять, для чего их Генерировать?

Ansible - как оркестровка для серверов с Ruby on Rails на бортуignasio

В этой статье мы поговорим о таком важном процессе, как подготовка сервера для размещения RoR приложения. Скорее всего, каждый веб-разработчик сталкивался с определенными трудностями развертывания среды для своего детища. И несмотря на то, что в арсенале имеется мощный инструмент capistrano, перед его использованием необходимо подготовить только, что проинсталлированную систему. Пусть подготовка и не является трудным процессом, но уж скучным точно. Также немаловажно учесть, что многие проекты могут иметь версионную зависимость определенного софта. Например, postgresql 8.4 или специально собранную версию ffmpeg 1.1.15 c libfaac 1.28. Кроме того, что определенные нюансы могут находится на десятках серверов, тяжело вести учет такого зоопарка.

На сегодняшний день, существует несколько инструментов способных облегчить жизнь системным администраторам. А именно chef, ansible, puppet, salt. Эти продукты активно применяются так называемыми DevOps-инженерами для автоматизации управления конфигурациями. Вообще идея конфигурирования системы в автоматическом или полуавтоматическом режиме, может существенно помочь в борьбе с нарастающей сложностью и надвигающемуся хаосу впринципе.

Как же ansible решает эту проблему?

В основе этого инструмента лежат, так называемые плейбуки – файлы в формате YAML, которые содержат перечень задач, которые необходимо выполнить на целевой системе. Декларативность и простота плейбуков, является одной из сильнейших сторон данного инструмента. Для перечня хостов на которых будут прогонятся плейбуки используется инвертарный файл вида:

[webservers] 
адрес хоста1
адрес хоста2
адрес хоста3

Ansible, считает группой все между квадратными скобками, у групп могут быть дочерние группы. При наличии у нас простейшего плейбука, запуск его выполнения будет таким:

ansible-playbook -i hosts playbook.yml

playbook.yml – плейбук с набором действий которые необходимо произвести

hosts – инвертарный файл содержащий перечнь хостов.

Для удобного тестирования плейбуков, удобно использовать виртуальные машины, особенно если управлять ими с помощью Vagrant, который в свою очередь имеет возможность использования Ansible в качестве provisioner`а.

Рассмотрим пример плейбука:

---
- hosts: webservers #Указываем группу хостов
  user: vagrant #пользователь под которым ansible будет логиниться
  sudo: yes
  vars_files:
    - vars/defaults.yml #Файл, содержащий переменные которые нам потребуются, например расположения директорий

  roles: # Блок ролей, у нас пока одна роль 
    - user

Здесь надо сказать отдельно про роли. В данном случае роль – это выделенная директория с перечнем задач(tasks) и набором шаблонов(templates). Это очень полезный прием, который позволяет разделять настройку на определенные этапы\части. В данном примере есть роль user, ответственная за создание\настройку пользователя.

Пользователь.

Все роли вынесены в отдельную директорию roles. В нашем примере роль user выглядит следующим образом:

roles/user – директория роли

roles/user/tasks – директория задач

roles/user/tasks/main.yml – точка входа в роль, здесь указываются какие файлы включены в роль. Для нас файл будет следующим:

- include: user.yml tags=user

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

roles/user/tasks/user.yml – файл содержащий перечень задач, выполняемых в рамках нашей роли.

roles/user/templates – директория содержащая конфигурационные файлы, сертификаты. Возможно использование шаблонизатора jinja2.

Рассмотри файл user.yml, так как именно он содержит непосредственные задания для выполнения:

---

  - name: create deploy user
    user: name=deploy comment="deploy user" generate_ssh_key=yes ssh_key_bits=2048 state=present password={{ password }} shell=/bin/bash

  - name: copy my ssh key to the user's .ssh directory
    action: template src=my_current_machine.pub dest={{home_dir}}/.ssh/authorized_keys mode=0700 owner={{deploy}} group={{deploy}}

  - name: copy known hosts to deploy user
    action: template src=known_hosts dest={{home_dir}}/.ssh/known_hosts owner={{deploy}} group={{deploy}}

  - name: copy deploy private key to VM
    action: template src=deploy_rsa dest={{home_dir}}/.ssh/deploy_rsa owner={{deploy}} group={{deploy}}

  - name: copy deploy public key to VM
    action: template src=deploy_rsa.pub dest={{home_dir}}/.ssh/deploy_rsa.pub owner={{deploy}} group={{deploy}} mode=0644

  - name: copy ssh_config github 
    action: template src=ssh_config dest={{home_dir}}/.ssh/config owner={{deploy}} group={{deploy}}

  - name: copy sudoers
    action: template src=sudoers dest=/etc/sudoers

Теперь по-порядку:

1). Создаем пользователя и назначаем ему пароль. Единственное, что нужно, так это описать переменную password в vars/defaults.yml. Значением этой переменной будет не сам пароль а лишь хеш, который легко создать с помощью команды:

python -c 'import crypt; print crypt.crypt("This is my Password", "$1$SomeSalt$")'

2). Копируем публичный ключ машины(здесь в зависимости от Ваших нужд) откуда запускаем наш плейбук в authorized_keys – это позволит нам заходить на целевую машину без пароля. переменная home_dir должна быть описана в vars/defaults.yml.

3). Копируем файл known_hosts который заранее содержит записи-“отпечатки” например гитхаба или битбакета.

4). Копируем ключи для нашего пользователя, чтобы он мог работать с гитхабом

5). Копируем ssh_config, опять же для работы с гитхабом с содержимым:

Hostname github.com
  IdentityFile /home/deploy/.ssh/deploy_rsa
  StrictHostKeyChecking no

6). Разрешаем sudo для нашего пользователя копированием файла sudoers где фигурирует строка:

deploy    ALL=(ALL:ALL) ALL

Проделанные шаги подготовят нашего пользователя для дальнейшей работы. Дальнейшая настройка веб-сервера и базы данных на странице: http://blog.rubyruby.ru/blog/2014/07/01/ansible_as_orchestration_for_ruby_on_rails/

Невероятный Chef: настройка сервера и деплой приложения в один кликKirill Shirinkin

В этой статье рассматривается необычный способ деплоить веб-приложения на Ruby on Rails: при помощи системы управления конфигурациями Chef. Пошаговое руководство, от установки и настройки Chef до деплоя полноценного Rails приложения на Digital Ocean в один клик.

Пресс-релиз: Итоги Svitla Ruby Conference 2014Alex Soulim

alt text

31 мая – 1 июня 2014 года прошла вторая киевская конференция о Ruby и Ruby on Rails – RubyC. Более 250 рубистов собрались послушать доклады лучших Ruby девелоперов из Украины, США, Бразилии, Испании, Великобритании, Германии и России. Организатор, компания Svitla Systems, выражает признательность всем участникам конференции, генеральному спонсору – компании SoftServe, Ruby-спонсорам: DataArt и Global Logic, а также всем медиа-партнерам, благодаря которым состоялось одно из самых ярких Ruby мероприятий в Украине.

Традиционно видео выступлений всех спикеров RubyC доступны на сайте конференции http://rubyc.eu/posts/14.

Как же проходила конференция RubyC-2014?

В первый день, после короткой регистрации и вкусного утреннего кофе RubyС началась с презентации Джереми Эванса и его доклада "Give-and-Go with PostgreSQL and Sequel". Джереми был одним из немногих, кто презентовался дважды. Слайды его второй презентации доступны на его сайте http://code.jeremyevans.net/

Одним из самых ярких и забавных спикеров однозначно стал британец Бен Ловелл. Его выступление “Building fast, testable and sane APIs with rails” точно стоит просмотреть.

Особенно приятно было увидеть презентации украинских рубистов, большинство которых, тем не менее, прозвучали на английском языке. Марат Каменщиков, представитель Svitla Systems презентовал тему "How we got max speed for JSON processing in a Rails API app", которая вызвала большое количество вопросов у слушателей. Евгений Пирогов и Богдан Гусев представили темы "Communication problems within complex projects: lessons learned from real life" и "How to create parsers in ruby. Rails Router as example".

Одно из самых необычных по своей сути выступлений однозначно принадлежит Кириллу Тимофееву из компании DataArt. Как и обещал Кирилл, ни один мозг не пострадал, но лямбда исчисления многим вскружили голову. Воспринимать такую сложную информацию рекомендуем только с комментариями.

Последний спикер первого дня – Хавьер Рамирес, несмотря на оригинальный испанский акцент, привлек всеобщее внимание. Даже Бен Ловелл отметил его выступление в Twitter. Смотрите видео презентацию на сайте www.rubyc.eu.

В перерывах между выступлениями спикеров и во время кофебрейков было очень весело. Массажисты из компании Relax office помогали расслабить мышцы шеи и взбодриться. Кроме того в распоряжении участников были игры и моментальные конкурсы от партнеров.

Второй день был более насыщен выступлениями иностранных гостей. Открывал Стив Клабник, один из самых известных девелоперов и core-committer’ов Ruby on Rails, частый участник мировых IT конференций. Будьте внимательны, читая презентацию Rust for Rubyists,  а лучше изучайте вместе с видео.

Узкая направленность темы Дэвида Хеннера была интересна не всем, но точно полезна тем, кто работает в направлении Ecommerce. Презентацию "Architecting Ecommerce Huge objects, how and when to refactor" почитать можно на SlideShare.

Спикер, приезда которого ожидали с особым нетерпением – Тимофей Цветков (Россия). Но все опасения были напрасны, Тимофей приехал и подарил один из самых увлекательных топиков в этом году. Его презентация доступна по ссылке http://www.slideshare.net/2kan/gc-in-ruby-rubyc-kiev-2014

Также хочется отметить Александра Оливера (Бразилия), впервые посетившему Украину, надеемся не в последний раз, и более опытного  Константина Теннхарда (Германия), которому выпала честь закрывать конференцию. Оба спикера были окружены вопросами к докладам даже во время вечеринки в боулинг клубе "Большевик". Закрытие продолжалось два часа, но казалось, промелькнуло за пару минут.

Благодарим всех за участие и поддержку. Увидимся в следующем году!

ActiveStoreAccessorSergey Pchelincev

С выходом Rails 3.2 ActiveRecord получил замечательную функциональность в виде ActiveRecord::Store. В Rails 4.0 была также добавлена поддержка hstore. Однако даже на данный момент(Rails 4.1.1) любой сериализированный атрибут хранит только string значение. С active_store_accessor появляется возможность задать сериализированный атрибут как число, дату или булевое значение.

Обзор значимых изменений в RSpec 3Alex Soulim

Выход RSpec 3 уже совсем близко :) На данный момент доступен первый релиз-кандидат (RSpec 3.0.0 RC1).

Проделана огроная работа и третья версия несет большое количество изменений и нововведений. Узнать о самых значительных из них можно в статье "Notable Changes in RSpec 3".