Рубрика «ruby on rails» - 9

image

Если вы очарованы языком Elixir, то приходите 16 марта в 19:00 на Мансарду Rambler&Co. Мы поговорим про Elixir, Phoenix Framework, Erlang OTP и докажем превосходство наших buzzwords над любыми другими.
Читать полностью »

Ruby — замечательный язык со множеством интересных деталей, которые вы могли раньше и не видеть.
В этом посте я собрал несколько таких деталей в список.

1. Heredoc + Метод

Если у вас есть какие-то текстовые данные, которые вы хотите встроить в программу, вы можете использовать “heredoc”. В результате вы получите строку, например так:

input = <<-IN
ULL
RRDDD
LURDL
IN

Но дополнительно к этому можно использовать пост-процессинг, например разделить текст по словам. Ruby позволяет делать такое:

input = <<-IN.split
ULL
RRDDD
LURDL
IN

А ещё в Ruby 2.3 появился «волнистый» heredoc <<~. Он удаляет все пробелы, использованные для отступов, распространённую проблему использования heredoc для текста.

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

image

Про Hanami уже писали на Хабре, и у команды есть, чем нас обрадовать:

Заморозка фич, логгер уровня проекта, автоматическое логгирование запросов HTTP, запросы SQL и миграции. Минорные исправления ошибок.

Релиз v1.0.0.beta1 замораживает разработку нового функционала Hanami для 1.0, вместе с тем добавляет пару новых функций и немного исправлений.

С этого момента Hanami API's будет оставаться стабильным вплоть до версии 2.0.

Стабильный релиз (v1.0.0) ожидается между концом марта и началом апреля 2017, что совпадает по времени с традицией любования цветущей Сакурой (Hanami) в Японии. Читать полностью »

Хакатоны бывают разные. И, прежде чем вы назовёте меня Капитаном Очевидность, позвольте разобрать их на части, чтобы объяснить ту мутацию, которую мы сконструировали для мероприятия 18 февраля.

Как мы секвенировали хакатоны или «чем тяжелее работа – тем легче на неё устроиться» - 1
Читать полностью »

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

Подобные задания становятся УБИЙЦАМИ мотивации №1.

Лично я не хочу, чтобы мои ученики теряли мотивацию и сдавались на полпути. Поэтому я создал этот километровый список из 27 забавных идей для приложений, которые вы можете создать, пока обучаетесь использовать React на пару с Ruby on Rails.

Не убивайте свою мотивацию: осваивайте Ruby on Rails на интересных примерах - 1
Читать полностью »

В предыдущей части я рассказал про контроллеры и роутинг. Теперь поговорим про формы. Довольно часто требуется реализовать формы, которым не соответствует ни одна модель. Или добавить валидацию, которая имеет смысл только в конкретном бизнес-процессе.

Я расскажу про 2 типа форм: form-objects и types.

Объкты-формы используются для обработи и валидации пользовательского ввода, когда данные нужны для какого-либо операции. Например, вход пользователя в систему или фильтрация данных.

Types используются, если нужно расширить поведение модели. Например, в вашем проекте пользователи могут регистрироваться как через vkontakte, так и через обычную форму. Заполнение email обязательно для обычных пользователей, а для vk пользователей — нет. Такое поведение легко решается с помощью types.

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

Мы собрали форк MySQL от Facebook с движком RocksDB вместо InnoDB и потестировали его с реальными приложениями: Drupal, WordPress, Redmine.

Это офигенная штука. При низкой нагрузке выигрыш маленький, десятки процентов. Зато при высокой нагрузке выигрыш в разы. Когда RocksDB добавят в стабильный релиз в MariaDB, я уверен, что в течение полугода половина народа перейдет с InnoDB на RocksDB. Особенно, небольшие сайты на cloud/VPS и выделенных серверах.

Что такого хорошего в MyRocks? Линейная запись вместо случайной и снижение числа дисковых операций вообще. То есть транзакции базы данных порождают меньше дисковых операций, меньше занимают очередь диска, и пишутся намного быстрее.

Я собрал в статью результаты тестирования реальных сценариев Redmine, добавил анализ результатов и выводы. Redmine на MySQL с RocksDB оказался быстрее, чем с InnoDB — от 20% при минимальной нагрузке до 3 раз при максимальной. Позже подготовлю материалы по Drupal и другим PHP-приложениям.

Вы сможете проверить работу MyRocks и самостоятельно — в конце статьи есть ссылки на инсталляторы и виртуальные машины с LAMP/LEMP/Ruby стеками, собранные с MyRocks вместо MySQL.

Redmine на MySQL с RocksDB быстрее, чем с InnoDB, от 20% до 3 раз - 1

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

Это будет история об открытом ПО, доверии и ответственности.

Задача и её решение

Как-то раз мне понадобилось добавить в своё приложение на Ruby симметричное шифрование. Алгоритм AES показался мне хорошим выбором и я решил найти библиотеку шифрования с поддержкой этого алгоритма. Поскольку я писал на Ruby, то сделал то же самое, что сделал бы на моём месте практически каждый программист на Ruby — пошел в Google и написал запрос «ruby gem aes». Конечно же, Google первой строкой предложил мне gem, называющийся (вот неожиданность!) — «aes». Он был очень прост в использовании:

require 'aes'

message = "Super secret message"
key = "password"

encrypted = AES.encrypt(message, key)    # RZhMg/RzyTXK4QKOJDhGJg==$BYAvRONIsfKjX+uYiZ8TCsW7C2Ug9fH7cfRG9mbvx9o=
decrypted = AES.decrypt(encrypted, key)  # Super secret message

Если вы при расшифровке использовали неверный пароль, gem выбрасывал ошибку:

decrypted = AES.decrypt(encrypted, "Some other password") #=> aes.rb:76:in `final': bad decrypt (OpenSSL::Cipher::CipherError)

Ну, отлично. Что же могло пойти не так?
Читать полностью »

Создание движка для блога с помощью Phoenix и Elixir - Часть 7. Добавляем комментарии - Новогодний анонс в заключении - 1

От переводчика: «Elixir и Phoenix — прекрасный пример того, куда движется современная веб-разработка. Уже сейчас эти инструменты предоставляют качественный доступ к технологиям реального времени для веб-приложений. Сайты с повышенной интерактивностью, многопользовательские браузерные игры, микросервисы — те направления, в которых данные технологии сослужат хорошую службу. Далее представлен перевод серии из 11 статей, подробно описывающих аспекты разработки на фреймворке Феникс казалось бы такой тривиальной вещи, как блоговый движок. Но не спешите кукситься, будет действительно интересно, особенно если статьи побудят вас обратить внимание на Эликсир либо стать его последователями.

В этой части мы подготовим фундамент для комментариев, чтобы затем оживить их с помощью каналов Phoenix.
Читать полностью »

image

Всем привет! Эта статья о том как связать клиентское приложение Angular2 с Rails 5 сервером используя Websocket.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js