Обновить
2.1

Ruby *

Динамический высокоуровневый язык программирования

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

Изучаем алгоритм работы регулярных выражений в Ruby

Время на прочтение9 мин
Охват и читатели17K

Согласно Википедии, Oniguruma означает «колесница дьявола» в переводе с японского.

Мы все знакомы с регулярными выражениями. Они являются «швейцарским армейским ножом разработчика». Что бы вы ни искали, какой бы текст ни разбирали, вы всегда можете сделать это используя регулярные выражения. На самом деле, вероятно, вы начали использовать их гораздо раньше, чем стали использовать Ruby — они уже давно включены в большинство популярных языков программирования: Perl, JavaScript, PHP, Java и прочие. Ruby появился в середине 1990-х годов, тогда как регулярные выражения еще в 1960-х, то есть почти на 30 лет раньше!

Но как на самом деле работают регулярные выражения?
Читать дальше →

Как работает GIL в Ruby. Часть 3. Делает ли GIL ваш код потоко-безопасным?

Время на прочтение9 мин
Охват и читатели5.4K


Переводы предыдущих двух частей:
Первая часть
Вторая часть

Это статья Jesse Storimer. Он выступает на семинаре Unix fu, онлайн классе для Ruby-разработчиков, которые хотят научиться удивительным хакам в Ruby и повысить свой уровень в разработке серверного стека. Количество участников ограничено, так что поторопитесь, пока есть свободные места. Так же, он является автором книг «Работа с Unix процессами», «Работа с TCP сокетами» и «Работа с потоками в Ruby».

В Ruby-сообществе существуют некоторые заблуждения относительно GIL в MRI-реализации интерпретатора. Если вы хотите узнать ответ на главный вопрос этой статьи, без ее прочтения, то вот он: GIL не делает ваш код на Ruby потоко-безопасным.

Но вы не должны принимать мои слова на веру.
Читать дальше →

Вёрстка по БЭМу в Ruby on Rails

Время на прочтение7 мин
Охват и читатели12K

Введение


В этой статье я хотел бы рассказать о технике вёрстки по БЭМу в рельсовых проектах. Я ещё не видел подобных руководств(кроме, может быть, этого, но оно мало подходит в качестве руководства и о нём ещё расскажу дальше), поэтому решил написать эту статью. Кроме того, я создал гем, который упростит интеграцию БЭМ и рельс, о нём и как его использовать я тоже напишу дальше.
Читать дальше →

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

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

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

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

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

Простые тесты на ruby для web

Время на прочтение6 мин
Охват и читатели7.7K
Для изучения ruby был выбран учебный проект в котором простая задача, написания тестов для web. Ввиду отсутствия знаний и опыта было решено использовать упрощенный фреймворк sinatra.
Читать дальше →

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

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

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

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

Установка последних RedMine + Apache + nginx

Время на прочтение26 мин
Охват и читатели50K
Redmine logo

Приведу кратко основное по RedMine:
  • ведение нескольких проектов;
  • система отслеживания ошибок;
  • диаграммы Ганта;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с системами управления версиями (SVN, Git, Mercurial);


Мне очень Важно было установить свежие версии всех модулей, почерпнул много источников, но практически все с недоделками, и очень таки неудобная конфигурация у них получалась.
Вот и пришлось самому сделать универсальную конфигурацию, которая может работать под любой из основных Веб-серверов.
Читать дальше →

Интеграция Ruby в Nginx

Время на прочтение6 мин
Охват и читатели14K


Уже достаточно давно существует всем известная связка Nginx + Lua, в том числе здесь был ряд статей. Но время не стоит на месте. Примерно год назад появилась первая версия модуля, интегрирующего Ruby в Nginx.
Читать дальше →

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

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

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

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

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

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

Опыт offline/online курсов Ruby on Rails c обязательными ДЗ

Время на прочтение6 мин
Охват и читатели20K
Как сделать так, чтобы студенты на курсах программирования не только присутствовали, но чтобы и получали реальные результаты в процессе и на выходе?

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


В Харькове, да и вообще в наших краях, увы мало рубистов даже для нашей небольшой Ruby on Rails компании из 20 человек. Многие компании открывают бесплатные курсы, после чего отбирают себе лучших выпускников. К сожалению, солидная часть отобранных студентов очень быстро начинают игнорировать не только домашние задания, но и вообще сами занятия. Поэтому важно получить изначально мотивированных кандидатов в разработчики на Ruby on Rails. Ничто так не мотивирует и не подтверждает готовность учиться, как участие, оплаченное своими кровными.
Читать дальше →

Ruby 2.1 в деталях (Часть 3)

Время на прочтение10 мин
Охват и читатели9.4K

Метод #singleton_class? для Module/Class

В классы Module и Class был добавлен метод #singleton_class?, который, как и следовало ожидать, возвращает, является ли получатель мета-классом (singleton)

class Example
  singleton_class?     #=> false
  class << self
    singleton_class?   #=> true
  end
end

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

Ruby 2.1 в деталях (Часть 2)

Время на прочтение12 мин
Охват и читатели12K

Refinements

Уточнения (refinements) больше не являются экспериментальной фичей и не выводят ворнинг, а также в их реализацию добавилось несколько деталей, делающих их использование более удобным.

Теперь к методу #using для активации уточнений на уровне файла добавился метод Module#using для активации в пределах модуля. Однако использование уточнений по-прежнему ограничено лексической областью видимости, т.е. они не будут активны при повторном открытии модуля.
Читать дальше →

Ruby 2.1 в деталях (Часть 1)

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

Ruby 2.1, последняя значимая версия Ruby (на момент написания поста), была выпущена в Рождество 2013, спустя всего лишь 10 месяцев после выхода 2.0.0. Она вышла с целым рядом изменений и улучшений, и данный пост в деталях описывает эти новшества.
Читать дальше →

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Когда гаснет звезда: интервью с Джимом Вейрихом

Время на прочтение10 мин
Охват и читатели13K
От переводчика: Джим Вейрих — легендарная личность в Ruby-сообществе. К сожалению, он, как и все мы, смертен. Не так давно он покинул нас. Этот перевод — дань уважения к этому человеку, который немного изменил мир.

Я наслышан о Джиме достаточно давно: ведь он — автор утилиты rake, ставшей фактически стандартом де-факто среди рубистов. К моей большой удаче, я был в числе слушателей его выступления на GoRuCo 2012, на котором было рассказано о продвинутых возможностях rake. Помню, как меня поразила та ловкость и легкость, с которой Джим говорил на сложные темы. Позже, в том же году на конференции RubyConf я наблюдал еще одно его замечательное выступление, в котором объяснялись некоторые базовые принципы Лямбда-исчисления. Джим не только доступно объяснил эту не самую простую тему, но также не потерял своих слушателей по дороге.

Думаю, теперь вы понимаете, почему я был так рад взять у Джима это интервью, ведь это уникальная возможность узнать о нем чуточку больше и чему-то научиться. Нам также удалось побеседовать о начале его пути в мире разработке, о его первых шагах в Руби, о функциональном программировании, модели потоков в Руби и даже о его фреймворке для тестов: RSpec-Given). Так что открывайте это интервью, не поленитесь узнать об одном из самых передовых и харизматичных разработчиков!


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

Простой мониторинг нагрузки на сервер в реальном времени с веб-интерфейсом

Время на прочтение2 мин
Охват и читатели82K
Сегодня существует довольно много профессиональных инструментов для мониторинга состояния серверов с обилием настроек, плагинов, поддержкой сразу множества машин и т.д., это известные Nagios, Zabbix, Munin, Cacti и многие другие.


Но в этом посте речь пойдет об очень маленьком и простом, но от этого не менее полезном инструменте: инструменте для мониторинга Scout Realtime. Этот написанный на Ruby open source проект позиционируется разработчиками как современная замена консольной утилите top с выводом статистики использования диска, памяти, сети, CPU и запущенных процессов. Все это отображается в реальном времени с плавными графиками. Во время диагностики работы сервера, иногда полезно пару минут понаблюдать за показателями, и проследить их изменение во времени (в отличие от гирлянды мерцающих чисел в терминале, отображающих данные исключительно на текущий момент).
Читать дальше →

Открытые классы в ruby, заметки для питонистов

Время на прочтение2 мин
Охват и читатели6K
По своему опыту знаю, что открытые классы в ruby раздражают и вызывают непонимание в среде питонистов. Ну в самом деле, что за странность открыть класс String и переопределить там size?
Читать дальше →

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