Этот пост в основном о веб-аналитике: о том, как корректно определять источники посетителей вашего сайта, и о моём модуле для Ruby on Rails, который помогает в этом нелёгком деле. В конце есть небольшая часть, на которую я попрошу обратить внимание участников Rails сообщества: она обо мне и Rails. Но давайте по порядку.
Читать полностью »
Рубрика «ruby on rails» - 24
Модуль определения источников посетителей сайта для Ruby on Rails
2014-01-04 в 10:18, admin, рубрики: ruby on rails, веб-аналитика, метки: ruby on rails, веб-аналитикаАутентификация в Rails-приложениях с помощью Devise. Часть 1: базовая настройка
2014-01-04 в 0:02, admin, рубрики: devise, ruby, ruby on rails, аутентификация пользователей, метки: devise, аутентификация пользователейПредлагаю вашему вниманию один из лучших, на мой взгляд, гемов для аутентификации в rails-приложениях. К сожалению, русскоязычной информации по данному гему очень мало, в том числе и на хабре, поэтому хочу осветить данную тему. Статья, в первую очередь, рассчитана на новичков и представляет из себя подробный туториал по настройке аутентификации на основе упомянутого гема. В первой части я освещу шаги по базовой настройке. Далее подробнее о геме.
Devise — это ruby-гем, предоставляющий возможности для аутентификации в rails-приложениях. Devise работает в связке с гемом Warden, который в свою очередь предоставляет сам механизм для аутентификации в rack-базированных ruby-приложениях. Основные особенности Devise описаны ниже:
- основан на Rack;
- является законченным MVC-решением, основанным на Rails;
- разрешает вход в систему по нескольким моделям одновременно;
- основан на модульности: использует только то, что вам действительно необходимо.
Итак, приступим к установке и настройке Devise для вашего rails-приложения. Дальнейший процесс для удобочитаемости будет разбит на отдельные шаги.
Читать полностью »
Вышел Ruby 2.1
2013-12-26 в 6:15, admin, рубрики: ruby, ruby on rails, Программирование, метки: ruby, Программирование
Спецификации Ruby обновились до версии 2.1.0. В новой версии языка программирования сделано несколько эволюционных изменений. В неофициальных бенчмарках на Rails версия 2.1 показывает результат примерно на 20% выше, чем 2.0, которая, в свою очередь, на 60-70% быстрее 1.9.3.
Вкратце, самые важные из них:
- VM (кэширование методов)
- новый сборщик мусора RGenGC (см. презентацию ko1 на RubyKaigi и на RubyConf 2013)
- изменения в синтаксисе
- новая запись дробей с использованием двух слэшей ("//") между числителем и знаменателей, см. #8430
- новые суффиксы i, r и ri для записи комплексных и рациональных чисел.
- определение функции def теперь возвращает символ её названия вместо nil, см. #3753
Не так давно, 18 декабря, состоялся релиз очередной версии Rails. Забавно, что существует пост, датированный 17-м декабря, и ссылающийся на статью из будущего. Из очередных полезностей новой версии:
- Ускорение загрузки с помощью Spring
- Единое место для хранения разнообразных ключей API, секретов и прочего: config/secrets.yml
- Предпросмотр email'ов: Action Mailer Previews
- Удобная генерация различного контента в зависимости от конкретного request с помощью Action Pack Variants
- Добавление enum-атрибутов в Active Record
Как оптимизировать процессы Unicorn в Ruby on Rails приложении
2013-12-20 в 15:56, admin, рубрики: garbage collector, ruby, ruby on rails, unicorn, unicorn-worker-killer 
Если вы являетесь rails-разработчиком, то вы наверняка слышали про Unicorn, http-сервер, способный одновременно обрабатывать множество запросов.
Для обеспечения параллельности Unicorn использует создание множества процессов. Т.к. созданные (форкнутые) процессы являются копиями друг друга, это значит, что rails-приложение должно быть потокобезопасным.
Это здорово, т.к. нам тяжело быть уверенными, что наш код является потокобезопасным. Если мы не можем быть уверены в этом, то ни о параллельных веб-серверах, таких как Puma, ни даже об альтернативных реализациях Ruby, реализующих параллелизм, таких как JRuby и Rubinius, не может быть и речи.
Поэтому Unicorn предоставляет нашим rails-приложениям параллельность даже если они не потокобезопасны. Однако, это требует определенной платы. Rails-приложения, запускаемые на Unicorn’е требуют гораздо больше памяти. Не обращая никакого внимания на потребление памяти вашим приложением, вы можете в итоге обнаружить, что ваш облачный сервер перегружен.
В этой статье мы рассмотрим несколько способов использования параллельности Unicorn'а, при этом контролируя количество потребляемой памяти.
Читать полностью »
Ruby on Rails и Nginx: эффективно отдаем большие файлы
2013-12-17 в 14:57, admin, рубрики: nginx, ruby on rails, метки: nginx, ruby on railsВ этом посте я расскажу, как правильно настроить Nginx для максимально эффективной отдачи больших файлов из вашего rails приложения. К своему удивлению, на русском языке я такой информации не нашел. Есть статьи про использование X-Accel-Redirect совместно с php, а вот чтобы про рельсы да на родном языке что-то не густо… Вобщем, постараюсь восполнить этот пробел.
Задача
Итак, исходные данные следующие:
- мы используем Ruby on Rails, запросы пользователей проходят через Nginx;
- нам нужно отдавать большие файлы;
- файлы должны быть недоступны для прямого скачивания, решение об отдаче файла принимает rails приложение.
Почему Meteor погубит Ruby on Rails
2013-12-06 в 10:31, admin, рубрики: javascript, Meteorjs, ruby on rails, Веб-разработка 
От переводчика: перевожу не ради холивара, сам RoR не знаю, но чувствую исходящее от специалистов по RoR положительное к нему отношение, мельком видел красоту и самого языка и фреймворка, но здесь не об этом. Цель перевода еще раз обратить внимание на Meteor, который развивается семимильными шагами — в начале 2014 ждем релиз 1.0. В англоязычном Интернете все кипит, а у нас тишина — лишь несколько статей.
Почему Meteor?
Помню как начинал заниматься Rails в 2004 году — это было «волшебное время» — и, конечно, я помню, что меня по крайней мере раз в неделю спрашивали, почему же стоит использовать rails. Я всегда отвечал одинаково: разработчикам нравится этот фреймворк, потому что он позволяет делать работу быстро и с удовольствием. К этому моменту я чуть больше месяца вплотную проработал с Meteor и готов ответить на вопрос: «Почему Meteor?» — который мне тоже часто стали задавать.
Читать полностью »
Сезон обновлений в JetBrains: RubyMine 6.0
2013-11-29 в 13:31, admin, рубрики: ruby, ruby on rails, rubymine, zeus, Блог компании JetBrains, метки: ruby, ruby on rails, rubymine, zeus 
Мы выпустили RubyMine 6 — новую версию нашей профессиональной интегрированной среды разработки для Ruby и Rails. В 6-й версии добавлена долгожданная поддержка работы с несколькими проектами, для ускорения работы переписан парсер Ruby, которому заодно добавили поддержку Ruby 2.1-preview1. IDE стала значительно производительнее, а поддержку Ruby 2.1-preview2 мы планируем сделать в RubyMine 6.0.1.
Rails переадресация старых url
2013-11-25 в 12:32, admin, рубрики: ruby, ruby on rails, метки: ruby on rails Здесь опишу как я боролся с переездом страниц на новые url.
Эта заметка рассчитана на новичков в Ruby On Rails.
Изначально имею свой проект на Ruby on Rails, структура url в нем выглядит следующим образом: /locale/group/product
пример: /ru/bar-code-scanners/datalogic-magelan-1100i
group и product это permalink — строка по которой осуществляется поиск в DB, в место id.
Проблема в том, что пользователи которые добавляют контент на сайт иногда допускают ошибки в permalink.
Вот пример: /ru/bar-code-scanners/datalogic-magelan-1100i
Ошибка в том, что магелан пишется с двумя ll — magellan.
Но товар был добавлен относительно давно и страница уже проиндексирована поисковиками, по этому стоит задача исправить permalink и настроить пере адресацию на новый URL.
Читать полностью »
Обучение онлайн
2013-11-21 в 9:18, admin, рубрики: ruby, ruby on rails, tutorials, метки: ruby, ruby on rails, tutorials Для изучающих Ruby / Rails, будет полезно ознакомиться с подборкой бесплатных онлайн курсов, туториалов и интерактивных занятий, посвященным языку программирования Ruby и фреймворку Ruby on Rails.

Читать полностью »
