Обновить
-0.2

Ruby on Rails *

Фреймворк, написанный на Ruby

Сначала показывать
Порог рейтинга
Уровень сложности

RailsClub'Moscow 2013. Интервью с Эриком Ходлом (Eric Hodel)

Время на прочтение5 мин
Количество просмотров2.9K
12-ая конференция Ruby-разработчиков RailsClub’Moscow 2013 уже не за горами. До конференции осталось чуть больше двух недель. Кстати, билеты по 6500 уже заканчиваются. Советуем не откладывать покупку билетов.

В ожидании RailsClub'a мы не устаём рассказывать вам о зарубежных гостях. Почитайте, например, интервью с Эрни Миллером или о том, что Джереми Эванс делает в церкви в свободное от работы время.

Сегодня мы познакомимся поближе с Эриком Ходлом, разработчиком AT&T и обладателем Ruby Hero Award 2012.

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

image

Когда и почему ты начал программировать?
Читать дальше →

Добавление водяного знака к изображениям в RefineryCMS

Время на прочтение2 мин
Количество просмотров3.6K
Довольно часто возникает задача поставить watermark на изображения на сайте. Обычно большинство разработчиков не видит проблему (многие PHP CMS это из коробки тянут), однако в мире Rails и движка RefineryCMS не все так гладко.
Refinery использует Dragonfly (специальный gem для работы с изображениями, основанный на Rack и обрабатывающий изображения «на лету») и здесь могут возникнуть некоторые трудности.

Под катом описано как сделать watermark на изображение используя наложение картинки с водяным знаком на основное изображение в RefineryCMS.
Читать дальше →

БЭМ on Rails

Время на прочтение5 мин
Количество просмотров15K


Здравствуй, <%= habrauser %>!

Я очень люблю фреймворк Ruby On Rails, он правда очень и очень крут. Он позволяет в кратчайшие сроки реализовать твои замыслы. Раньше я много писал на нем, но сегодня я front-end разработчик. Когда я узнал о методологии БЭМ, я был в полном восторге, потому что так или иначе ты сам приходишь к чему-то подобному. Хорошо, когда дзен-процесс сокращается в разы. О том, что такое БЭМ можно прочитать тут и тут. Недавно прошедший BEMup окончательно расставил все на свои места. Мне были просто необходимы инструменты для работы с БЭМ в рамках проектов на Ruby on Rails. Конкретных решений не существовало, а bem-tools не подходит по вполне понятным причинам, описанным ниже. Я решил написать bem-tools на Ruby.
Смотреть, что вышло

7 рефакторингов для больших ActiveRecord — моделей

Время на прочтение9 мин
Количество просмотров13K
От переводчика: предлагаю вашему вниманию вольный перевод статьи из блога Code Climate под названием 7 Patterns to Refactor Fat ActiveRecord Models.
Code Climate — мощное средство анализа качества кода и безопасности Ruby on Rails — приложений.

Введение


Когда разработчики начинают использовать Code Climate для улучшения качества их Rails-кода, им приходится избегать «распухания» кода их моделей, так как модели с большим количеством кода создают проблемы при сопровождении больших приложений. Инкапсуляция логики предметной области в моделях лучше, чем помещение этой логики в контроллеры, однако такие модели обычно нарушают Принцип единственной обязанности (Single Responsibility Principle). К примеру, если поместить в класс User все что относится к пользователю — это далеко не единственная обязанность.
Читать дальше →

RailsClub'Moscow 2013. Интервью с Джереми Эвансом (Jeremy Evans)

Время на прочтение5 мин
Количество просмотров3.1K
До старта 12-ой конференции Ruby-разработчиков RailsClub’Moscow 2013 осталось чуть меньше месяца (купить билет).

Продолжаем знакомить вас с гостями мероприятия. Недавно мы побеседовали с Эрни Миллером, теперь жертвой нашей любознательности стал Джереми Эванс — ведущий разработчик Sequel.

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

image

Когда и почему ты начал программировать?
Читать дальше →

RailsRumble 2013

Время на прочтение2 мин
Количество просмотров3.3K


19 октября стартует очередной RailsRumble – он-лайн конкурс по разработке Ruby приложений. Регистрация будет открыта с 7 по 13 октября. За двое суток предлагается с нуля сделать приложение на Rails (или любом другом Ruby фреймворке). К участию допускаются команды от 1 до 4 человек. На команду выдается 1 Github репозиторий, 1 VPS на Linode и за 48 часов нужно сделать полноценное приложение, которое будет оцениваться жюри из 65 человек. Ценными призами от более 20 спонсоров награждаются ТОП-10 команд, лучший одиночный участник и ТОП-1 команда в публичном голосовании.
Советы по участию в RailsRubmle под катом

RailsClub'Moscow 2013. Интервью с Эрни Миллером (Ernie Miller)

Время на прочтение4 мин
Количество просмотров5.8K
До старта 12-ой конференции Ruby-разработчиков RailsClub’Moscow 2013 осталось чуть меньше месяца (купить билет)

Ожидается множество именитых гостей: Эрни Миллер, Джереми Эванс, Эрик Ходл, Фредерик Чанг, Линда Лиукас, Оби Фернандес и не только. С некоторыми из них мы уже успели подружиться и побеседовать, а теперь рады познакомить и вас.

Начнём с интервью Ernie Miller, автора squeel, специалиста по ActiveRecord.

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

image

Когда и почему ты начал программировать?
Читать дальше →

RailsClub'Moscow 2013 (28 сентября). Новости конференции

Время на прочтение2 мин
Количество просмотров2.3K


RailsClub’Moscow 2013. Новости конференции.



Добрый день, друзья

Хотим поделиться с вами новостями о предстоящем событии RailsClub’Moscow 2013

Напоминаем, что конференция, посвященная Ruby/Ruby on Rails состоится 28 сентября 2013 в digitaloctober.ru (начало в 10:00). В Москву приедут настоящие ruby звезды, ruby герои, признанные мировым сообществом: Obie Fernandez (США), Linda Liukas (США), Ernie Miller (США), Frederick Cheung (Англия), Eric Hodel (США), Jeremy Evans (США)

До конференции RailsClub’Moscow 2013 остался один месяц, однако откладывать покупку билетов “на потом” — не советуем. Дешевые билеты уже кончились, поэтому советуем приобрести билет заранее тут.

Теперь к новостям

Определились еще два докладчика нашей конференции, ими стали:
Читать дальше →

Различные методы загрузки ассоциаций в Ruby on Rails

Время на прочтение3 мин
Количество просмотров42K
Rails предоставляют нам 4 различных способа загрузки ассоциаций: preload, eager_load, includes и joins. Рассмотрим каждый из них:

Preload


Этот метод загружает ассоциации в отдельном запросе:
User.preload(:posts).to_a

# =>
SELECT "users".* FROM "users"
SELECT "posts".* FROM "posts"  WHERE "posts"."user_id" IN (1)

Т.к. preload всегда создает два отдельных запроса, то мы не можем использовать таблицу posts в условии выборки:
User.preload(:posts).where("posts.desc='ruby is awesome'")

# =>
SQLite3::SQLException: no such column: posts.desc:
SELECT "users".* FROM "users"  WHERE (posts.desc='ruby is awesome')

А таблицу users – можем:
User.preload(:posts).where("users.name='Neeraj'")

# =>
SELECT "users".* FROM "users"  WHERE (users.name='Neeraj')
SELECT "posts".* FROM "posts"  WHERE "posts"."user_id" IN (3)

Читать дальше →

Web-Interface для Motion

Время на прочтение3 мин
Количество просмотров56K
После обновления видеосервера под debian, было принято решение переделать систему видеонаблюдения.
Motion было решено оставить, но возникла необходимость в более человеческом интерфейсе для просмотра архивных записей.
Очередные поиски в Интернет так и не дали никаких приемлемых результатов, в результате чего было принято решение о создании собственного продукта.
После небольших колебаний, выбор пал на Rails. Никакой религии, просто захотелось получше изучить этот фреймворк и замечательный язык программирования. В качестве СУБД используется PostgreSQL.
Результат работы под капотом…
Читать дальше →

RailsClub'Moscow 2013 – 28 сентября в Москве. Конференция ruby / ruby on rails разработчиков

Время на прочтение2 мин
Количество просмотров3.4K


RailsClub’Moscow 2013


28 сентября 2013 в Москве на территории центра Digital October состоится 12-ая конференция веб-разработчиков на языке Ruby и фреймворке Ruby On Rails – RailsClub’Moscow 2013.

RailsClub’Moscow 2013 соберет вместе ведущих российских и известных иностранных Ruby разработчиков, которые поделятся с участниками конференции своими знаниями и опытом.

На RailsClub 2013 будем обсуждать проектирование, разработку, тестирование, отладку, оптимизацию под большие нагрузки, масштабирование и эксплуатацию ruby on rails проектов.

Докладчики

В этом году в качестве докладчиков к нам приедут знаменитые ruby звезды:
Читать дальше →

Single sign-on на omniauth и rails

Время на прочтение10 мин
Количество просмотров19K

Аутентификация пользователей в экосистемах наподобие Google или Envato реализована в виде отдельных сервисов (accounts.google.com, account.envato.com), предоставляющих необходимые данные и токены сайтам-клиентам. В ходе разработки некоторых проектов на Ruby on Rails мне и пришлось столкнуться с подобной задачей. По-научному — single sign-on или технология единого входа.

Нужен был (1) общий сервис для всех сайтов экосистемы, с (2) преимущественно социальной авторизацией, в угоду входу по связке «логин+пароль».
Сервис, (3) аккумулирующий в себе данные из тех социальных сервисов, с помощью которых пользователь входит в систему, и (4) предоставляющий эти данные сайтам-клиентам.

Задача оказалась настолько же интересной, насколько и нестандартной. Началось все с полезной, но уже немного устаревшей статьи — автор предлагал использовать гем omniauth и кастомную стратегию на сайтах клиентах, а на сайте-провайдере — использовать тот же omniauth в связке с devise для аутентификации через соц. сервисы.

Devise в моем случае подходил мало (завязка на логине+пароле), поэтому предпочтение было полностью отдано omniauth. С этого и началось мое маленькое приключение, о ходе которого предлагаю вам ознакомиться в данной статье.
Читать дальше →

Стриминг в Rails 4

Время на прочтение6 мин
Количество просмотров19K


Что такое стриминг?


Стриминг крутился около Rails начиная с версии 3.2, но он был ограничен исключительно стримингом шаблонов. Rails 4 же вышел с более зрелым функционалом стриминга в реальном времени. По сути это значит что Rails сейчас способен нативно обрабатывать I/O объекты и посылать данные клиенту в риалтайме.

Streaming и Live — два отдельных модуля, реализованных внутри ActionController'а. Streaming включен по умолчанию, в то время как Live должен быть явно добавлен непосредственно в контроллере.

Основной api стриминга использует класс Fiber (доступен с версии ruby 1.9.2). Файберы предоставляют инструментарий для потоко-подобного параллелизма в ruby. Fiber дает возможность потокам приостанавливаться и возобновлять работу по желанию программиста, а не быть по сути упреждающими.
Читать дальше →

Ближайшие события

Девушка изучает веб-программирование: 180 сайтов за 180 дней

Время на прочтение2 мин
Количество просмотров302K
Чуть больше четырёх месяцев назад Дженнифер Девальт (Jennifer Dewalt) приняла важное решение — научиться программировать. Хотя у неё не было опыта в этом деле, она никогда не посещала технических спецкурсов в школе, а наоборот — увлекалась только искусствами, но девушка сразу же решительно взялась за дело.

Дженнифер установила правило, что каждый день будет делать по одному веб-сайту, без выходных. При этом каждый веб-сайт должен сопровождаться новой записью в блоге, а весь код выкладываться на Github. Сегодня наступил 115-й день её марафона.
Читать дальше →

Heroku и Россия

Время на прочтение2 мин
Количество просмотров17K
Миллион раз уже слышал о том, что делать проект на Heroku — признак слабого знания linux-систем и банальной лени. С одной стороны — есть в этом что-то такое, но с другой деплой приложений, в данном случае я говорю о Rails приложениях, одной строкой и отсутствие заморочек с настройкой машины — это шикарно. Так давайте поговорим о мифах против heroku, которые я слышал уже несколько сотен раз.
Читать дальше →

Проверьте на готовность ваш Gemfile к Rails 4

Время на прочтение1 мин
Количество просмотров9.5K
Rails 4 вышли две недели назад, а вы все еще сидите на третьих? Вас останавливает трудоемкий процесс проверки работоспособности всех подключенных гемов? Не беда! Буквально 10 дней назад стартовал веб-сервис по проверке совместимости гемов и Rails 4 от frodsan и Florent.
Читать дальше →

O Backbone.js очень просто и кратко для любителей MVC-фреймворков

Время на прочтение5 мин
Количество просмотров38K
Об использовании JavaScript-фреймворка Backbone.js написано много, но просто и кратко — мало. Я постараюсь исправить этот недостаток и рассказать разработчикам web-приложений максимально просто, доступно и кратко о том, зачем им может пригодится этот фреймворк и как, в общих чертах, он работает. Профессионалы и специалисты по Backbone.js: можете не тратить время, этот рассказ для новичков. Если быть честным, то для чтения этой заметки не обязательно быть Rails-developer'ом, надеюсь, статья пригодится всем, кто работает с любым из МVC-фреймворком.

Читать дальше →

Почему я снова комментирую код приложений на Ruby/Rails

Время на прочтение5 мин
Количество просмотров16K
Здравствуйте, я — разработчик программного обеспечения на Ruby / Rails и я комментирую свой (а с недавних пор ещё и чужой) код. Голос из зала, вероятно, крикнул бы «Привет, разработчик!»

Много лет назад мне казалось очевидным устоявшееся мнение профессионалов и гуру разработки, которое обычно выражается примерно так: «Если код требует комментария — это плохой код, его нужно переписать/отрефакторить/упростить/уменьшить». Т.е. привести его к виду, комментариев и пояснений не требующему. В целом, этот подход достаточно универсален и работает во многих случаях. Многие мои знакомые веб-разработчики никогда не комментируют свой код и считают это вполне нормальным явлением, даже если работают в команде. Вероятно, сказывается миф о простоте Ruby, такой простоте, которая делает код понятным даже постороннему. Однако, мой личный опыт и некоторые эпизоды командной разработки веб-приложений убедили меня в том, что существуют ситуации и причины уделять комментариям и документированию кода больше внимания и времени, чем обычно уделяет разработчик.
Читать дальше →

Интересные доклады по Ruby на DevConf::Ruby — 14 июня в Москве

Время на прочтение1 мин
Количество просмотров4.7K
image
Традиционно, RailsClub готовит интересную ruby секцию в рамках devconf.ru

Осталось меньше недели до старта, не пропусти тусовку — будет более 1000 веб-разработчиков

— Безопасный сайт на примере Rails
— Архитектурные практики
— Биллинг в SaaS-системах на Rails
— Спасение утопающих — покрываем тестами взрослый Ruby on Rails проект
— Рефакторинг Ruby кода.
— Domain Driven Design on Rails
— Быстрое тестирование Ruby on Rails
— Проектирование API
— Особенности совместной работы Ruby и Oracle
— Основы отладки Rails приложений
Читать дальше →

Правила для разработчиков от Sandi Metz

Время на прочтение3 мин
Количество просмотров12K
В январе этого года, Sandi Metz представила свои правила для разработчиков в эфире подкаста Ruby Rogues. Примерно в это же время, я и моя команда начали новый проект. Эта статья описывает тот опыт, что мы получили, применяя эти правила к своему новому проекту.

Правила


  1. Классы не могут содержать больше чем 100 строк кода.
  2. Методы не могут быть длиннее чем 5 строк кода.
  3. Нельзя передавать больше 4 параметров в метод. Значения хэша также считаются параметрами.
  4. Контроллеры могут инстанциировать только один объект. Следовательно, представление может знать только об одной инстанс переменной и должно только слать сообщения этому объекту (@object.collaborator.value не допустим).

Читать дальше →

Вклад авторов