Обновить
0

Ruby on Rails *

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

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

Обзор 7 онлайн-сервисов для локализации ПО

Время на прочтение18 мин
Количество просмотров30K
Наверное каждый продукт, интерфейс которого имеет более одного языка, сталкивался с проблемой организации процесса локализации.

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

В данном обзоре я опишу свои впечатления от тестирования 7 онлайн-сервисов для локализации ПО и сравню их по основным показателям (см. таблицу в конце статьи).
Читать дальше →

Обзор Komodo Edit и Komodo IDE 8

Время на прочтение4 мин
Количество просмотров68K
Привет. На хабре много обзоров различных сред разработки, но совсем мало информации про Komodo Edit и Komodo IDE.
Я пользуюсь Komodo с 2010 года и за это время вышло несколько мажорных релизов и хочу с вами поделиться кратким обзором основных возможностей.



Komodo Edit — это кросс-платформенный текстовый редактор, который построен на движке Mozilla, поддерживает большое количество языков. Проект является полностью открытым и распространяется под лицензией MPL (Mozilla Public License). Разработка проекта ведется на GitHub.
Как и у всех, есть авто-дополнение со справочной информацией, поддержка плагинов, макросы, сниппеты.
Главная фича, которая мне понравилась, это удаленное редактирование кода, подобно Sublime если прикрутить к нему плагины для работы по SFTP. В восьмой версии также появился визуальный скроллинг, аналогично тому, который есть в Sublime.

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

Как мы боролись с проблемами производительности в «Redmine». Кто виноват и как помочь?

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

Конечно, статья не совсем верно названа. В чистом Redmine особо больших проблем с производительностью нет. Но мы, в процессе разработки большого количества плагинов, эти проблемы с легкостью вносили.

Поэтому, статья расскажет о том, как разобраться в чем причина медленной работы той или иной функции плагина Redmine и какие инструменты могут помочь в этом. Многие советы, естественно, могут касаться не только самого Redmine, но и Rails-приложений в целом.

Симптом у проблем с производительностью всегда один – это разгневанный пользователь, кричащий, клянущий твое ПО и возможно тебя лично.
Читать дальше →

Как мы увеличили скорость генерации JSON в 6000 раз

Время на прочтение2 мин
Количество просмотров15K
Краткий обзор способов формирования JSON

На сегодняшний день в Rails имеются следующие способы сериализации объектов в JSON:
  1. Вызов to_json() напрямую.
  2. RABL
  3. Active model serializers
  4. JBuilder

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

DevConf::Ruby — 14 июня — программа сформирована

Время на прочтение1 мин
Количество просмотров3.2K
14 июня (суббота) 2014 — пройдет крупнейшая конференция по Ruby, PHP, Python,JavaScript, Android

62 доклада от авторов языков, баз данных и экспертов в WEB-разработке!

Впервые в России нам удалось собрать авторов MySQL, PostgreSQL, Percona Server, Sphinx, Tarantool в отдельном потоке DevConf::Storage — по сути это отдельная конференция по современным БД.

Поток Ruby насыщен актуальными темами, который обязан знать каждый Ruby-разработчик

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

Матрица компетенций Ruby on Rails разработчика

Время на прочтение4 мин
Количество просмотров9.3K
Как начинающему Rails разработчику понять, в какую сторону копать, чтобы как можно быстрее стать опытным программистом? Понятно, что нужно работать, работать и еще раз работать. Но кроме этого важен горизонт, который даст понять, в какую же сторону нужно идти по дороге к званию профессионала.

Два месяца назад мы запустили оффлайн&онлайн курсы в Харькове по Ruby on Rails для начинающих RubyBursa. Из особенностей — половина занятий было в учебном классе, половина в формате вебинара. Мы поставили жесткие условия выполнения домашних заданий и за первое невыполнение участники получали желтую карточку, за второе — красное и выбывали с курсов. Такие «драконовские методы» позволили 35 из 40 участников дойти до конца со 100% выполнением всех домашних задач.

Некоторые ученики в процессе учебы интересовались: «а что же дальше?». Наш преподаватель Оксана специально в виде ответа на этот вопрос подготовила пробную версию матрицы компетенции Ruby разработчика. Не претендуем на академичность и понимаем возможную спорность предложенной схемы.

Определите сколько баллов у вас есть суммарно по всем направлениям и подведите итог в конце статьи:
Читать дальше →

Huginn: агенты в стиле Yahoo Pipes и IFTTT на своём сервере

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


Huginn — система программирования агентов и выполнения разнообразных задач в онлайне, сделанная по образцу Yahoo Pipes и IFTTT, но только для установки на собственный сервер. В Huginn мы сами контролируем собственные данные и не зависим от ограничений третьей стороны.
Читать дальше →

Вышел релиз Rails 4.1. Некоторые тонкости переезда

Время на прочтение3 мин
Количество просмотров17K
image
8 апреля в официальном блоге Ruby on Rails появилось сообщение об официальном выходе Rails 4.1. Весь функционал уместился в 5200 коммитов.

На хабре уже был обзор бета версии. Также можно почитать Release notes и A Guide for Upgrading Ruby on Rails.

В статье я бы хотел остановиться на некоторых тонкостях и деталях того, что под капотом.
Читать дальше →

Node.js vs Ruby on Rails

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

Node.js vs Ruby on Rails


В отличие от большинства разработчиков, я начинал с баловства с Node.js, и уже после погрузился в Ruby on Rails с помощью восхитительного курса Rails for Zombies и, затем, учебника по Ruby on Rails от Michael Hartl.
Все, что написано далее, есть ненаучное сравнение Node.js и Ruby on Rails.
Читать дальше →

Запуск tmux-окна, адаптированного для удобной работы с Ruby on Rails

Время на прочтение4 мин
Количество просмотров13K
Добрый день. С недавних пор стал изучать Ruby on Rails. До этого год программировал на c# (asp.net). Переход на руби означал также переход на Ubuntu и тесное взаимодействие с терминалом. Руби изучаю по данному онлайн-учебнику: railstutorial.ru. На борту имею Ubuntu 13.04.

Работа с RoR бод Ubuntu подразумевает много терминальных окон. В одном rails сервер, в другом Guard со Spork, в третьем Ruby-консоль и пр. В интернете наткнулся на программу под названием tmux. Не вдаваясь в подробности скажу, что она позволяем в одном терминальном окне работать с несколькими консолями (да простят меня линуксоиды за терминологию).
Читать дальше →

Devise: вход и регистрация в модальных окнах

Время на прочтение6 мин
Количество просмотров17K
На проекте необходимо было сделать логин через модальные окна и «обычные» страницы для разных типов устройств. После поиска понял, что зачастую описывается не совсем то, что нужно. Так здесь просто помещают форму в модальное окно (фактически пользуясь страницей из wiki devise), а тут (вход и регистрация) переопределяют методы в контроллерах devise так, что они постоянно отдают только json и для «немодального» поведения нужно будет писать много условий с проверкой формата запроса. Поэтому я решил поэкспериментировать в новом приложении и написать поддержку 2 форматов с минимальным количеством переопределения и грязных хаков.
Читать дальше →

Rails 4 Engines. Разработка gem'а через mountable engine — читаем логи сервера

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

Так уж случилось, что возникло непреодолимое желание написать свой Rails gem. Во-первых, академический интерес — такого еще не делал, во-вторых, назрела проблема, решение которой важно лично для меня и которое хотелось бы использовать в нескольких своих проектах.

На Хабре уже были статьи про создание gem'ов (раз два три)

Но на их основе создать полноценный gem нельзя — они сильно устарели и, как правило, представляют собой перевод скупой официальной документации. А главное, они в большей части описывают создание Readme и License файлов, а собственно функционал gem'a сводится к Hello World.

Проблема


Не знаю, как у кого, а вот у меня регулярно бывает ситуация — прикрутил новую фичу локально, проверил, вроде работает. Запускаешь cap deploy, смотришь на сервер, а там
«Sorry, but something went wrong.
If you are the application owner check the logs for more information.»

Ну а дальше — ssh к серверу, cd к папке приложения и раскопка логов. Что бы ни говорили поклонники vim и emacs, но пытаться найти что-то в логе с их помощью — то еще занятие. Проще уж запустить tailf и пытаться найти руками. Есть еще rmate, но у меня он как-то не прижился.

Идея


Написать gem, который будет выводить результаты команды tail в браузер по заданному пути. Желательно, чтобы была возможность смотреть все .log файлы в папке log/
Читать дальше →

Пишем документацию для Ruby on Rails проектов с помощью YARD

Время на прочтение4 мин
Количество просмотров9K
imageДобрый день, хабражители! Обнаружил, что на сайте нет статьи о том, как можно организовать процесс создания документации для Ruby on Rails проектов. Исправим эту проблему.

В статье будет рассказано, как с помощью гема YARDможно написать грамотную документацию к рельс проектам и автоматически сгенерировать документ, где эта документация будет представлена в презентативном виде. Пример документации можно посмотреть в коде сайта ВалиИзРашки.
Читать дальше →

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

Использование Redis EXPIRE для отслеживания онлайн-аудитории в Rails

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

Кому


  • Тем кто на Ruby on Rails
  • Кто желает знать кто из пользователей онлайн, но ещё не задумывался как
  • Для кого не проблема использовать Redis (по причине хостинга например)


    Решение вопроса в сети пользователь или нет — это наверное как правило установка временной метки при обращении пользователя к приложению, а при необходимости узнать его (пользователя) текущий статус — сверка с этой временной меткой. Какой подход выбрать — решать Вам, но тот подход который предлагаю я — прост и не использует SQL базу данных, вместо этого используется Redis и одна из его встроенных возможностей — время жизни ключа (expire).

Подробности

Rails 4. Гибкая разработка веб-приложений

Время на прочтение3 мин
Количество просмотров24K
Перед вами новое издание бестселлера «Agile web development with Rails», написанного Сэмом Руби — руководителем Apache Software Foundation и разработчиком формата Atom, Дэйвом Томасом — автором книги «Programming Ruby» и Дэвидом Хэнссоном — создателем технологии Rails. Rails представляет собой среду, облегчающую разработку, развертывание и обслуживание веб-приложений. За время, прошедшее с момента ее первого релиза, Rails прошла путь от малоизвестной технологии до феномена мирового масштаба и стала именно той средой, которую выбирают, чтобы создавать так называемые «приложения Web 2.0». Эта книга, уже давно ставшая настольной по изучению Ruby on Rails, предназначена для всех программистов, собирающихся создавать и развертывать современные веб-приложения. Из первой части книги вы получите начальное представление о языке Ruby и общие сведения о самой среде Rails. Далее на примере создания интернет-магазина вы изучите концепции, положенные в основу Rails. В третьей части рассматривается вся экосистема Rails: ее функции, возможности и дополнительные модули. Обновленное издание книги описывает работу с Rails поколения 4 и Ruby 1.9 и 2.0.

image

Книга на сайте издательства ПИТЕР

Оглавление
Отрывок

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

Data URI изображения вместо спрайтов в Ruby on Rails

Время на прочтение2 мин
Количество просмотров5.3K
dataURI-image

Кому?

  • Тем кто на Ruby on Rails.
  • Кто не использует спрайты изображений, но собирается на них переходить — и при этом считает это «замором и гимором».
  • Кто не собирается поддерживать IE6-7 (и 8) или знает все их прелести (да это легко поправить — но реально давайте уже их похороним).

Не освещено

  • Правильность написания «data URI» vs «data URL»
  • Тесты производительности — да здесь только теория

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

Как отправлять push уведомления из Вашего Rails приложения

Время на прочтение3 мин
Количество просмотров16K
Один из наиболее популярных способов связи мобильного приложения с сервером — отправка push уведомлений пользователю. Если Вы уже сталкивались с реализацией push уведомлений, то для Вас открытия Америки не произойдет, однако, новичкам в данной теме приходиться туго — это связанно с огромной путаницей в информации (от переводчика: действительно довольно много противоречивой, а зачастую и вовсе бесполезной информации). Именно эта путаница стала причиной написания данной статьи для WellWithMe, где я опишу разработку серверной части push уведомлений.

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

Хелпер авторизации Devise для использования с Capybara

Время на прочтение1 мин
Количество просмотров2.8K
При тестировании js интерфейса иногда возникает необходимость авторизации, ниже опишу очень простое и удобное решение.

Создаем файл spec/support/request_helpers.rb со следующим содержимым:

require 'spec_helper'
include Warden::Test::Helpers
 
module RequestHelper
 
  def create_current_user
    user = FactoryGirl.create :user
    login_as user, scope: :user
    user
  end
 
end

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

Deploy приложения на RoR 4 с помощью Capistrano 3

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

Представьте: Вы — веб-разработчик, который только недавно освоил Ruby on Rails. И тут Ваш первый проект подходит к стадии, когда его нужно выложить в интернет.
Вы, конечно, можете залить его на Heroku, но тамошние цены немного кусаются. Остается только купить VPS, настроить его и выложить проект туда.
«Что может быть проще? Найду какой-нибудь гайд, да следаю всё по нему» — подумаете Вы. Вот только гайдов, которые не просто выкладывают команды, но и объясняющие, что эти команды делают, — единицы, да и те используют уже устаревшую вторую версию Capistrano.

Поэтому я решил написать свой гайд, в котором постараюсь подробно рассмотреть:
  • Первичную настройку сервера
  • Установку и настройку nginx (с модулем PageSpeed), postgresql, redis
  • Установку rvm, rails
  • Настройку гема foreman для управления процессами Вашего приложения
  • Настройку сервера Unicorn
  • Настройку гема Capistrano (v3.1) для автоматизации деплоя


Я надеюсь, что этот гайд будет полезен не только новичкам, но и разработчикам со стажем.

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

Rails: ajax-валидация в стиле DRY

Время на прочтение8 мин
Количество просмотров12K
Когда я только начинал задумываться о том, чтобы приобщиться к миру веб-разработки, и выбирал язык, с которого начну, одна из википедий мне напела, что в основе философии Rails лежат 2 принципа: Convention over configuration (CoC) и Don’t Repeat Yourself (DRY). Что касается первого — я тогда вобще не понял о чём речь, а вот второй понял, принял и ожидал, что в недрах этого замечательного фреймворка, я отыщу нативный инструмент, позволяющий мне один раз написать правила валидации для атрибутов модели, и потом использовать эти правила как для front, так и для back проверок.
Читать дальше →

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