Если вы очарованы языком Elixir, то приходите 16 марта в 19:00 на Мансарду Rambler&Co. Мы поговорим про Elixir, Phoenix Framework, Erlang OTP и докажем превосходство наших buzzwords над любыми другими.
Читать полностью »
Рубрика «ruby» - 11
Анонс RamblerElixir #2
2017-03-01 в 14:13, admin, рубрики: Elixir, Elixir/Phoenix, erlang, Erlang/OTP, phoenix, ruby, ruby on rails15 странностей в Ruby, о которых вам стоит знать
2017-02-24 в 10:29, admin, рубрики: ruby, ruby on railsRuby — замечательный язык со множеством интересных деталей, которые вы могли раньше и не видеть.
В этом посте я собрал несколько таких деталей в список.
1. Heredoc + Метод
Если у вас есть какие-то текстовые данные, которые вы хотите встроить в программу, вы можете использовать “heredoc”. В результате вы получите строку, например так:
input = <<-IN
ULL
RRDDD
LURDL
IN
Но дополнительно к этому можно использовать пост-процессинг, например разделить текст по словам. Ruby позволяет делать такое:
input = <<-IN.split
ULL
RRDDD
LURDL
IN
А ещё в Ruby 2.3 появился «волнистый» heredoc <<~. Он удаляет все пробелы, использованные для отступов, распространённую проблему использования heredoc для текста.
Вышла Hanami v1.0.0.beta1
2017-02-16 в 4:29, admin, рубрики: framework, hanami, release candidate, ruby, ruby on rails, Разработка веб-сайтов, метки: hanami
Про Hanami уже писали на Хабре, и у команды есть, чем нас обрадовать:
Заморозка фич, логгер уровня проекта, автоматическое логгирование запросов HTTP, запросы SQL и миграции. Минорные исправления ошибок.
Релиз v1.0.0.beta1
замораживает разработку нового функционала Hanami для 1.0, вместе с тем добавляет пару новых функций и немного исправлений.
С этого момента Hanami API's будет оставаться стабильным вплоть до версии 2.0.
Стабильный релиз (v1.0.0
) ожидается между концом марта и началом апреля 2017, что совпадает по времени с традицией любования цветущей Сакурой (Hanami) в Японии. Читать полностью »
Как мы секвенировали хакатоны или «чем тяжелее работа – тем легче на неё устроиться»
2017-02-14 в 6:53, admin, рубрики: chief, chief architect, CrossOver, java, job, jobs, jobseeker, ruby, ruby on rails, Блог компании Crossover, Разработка под Java ME, соревнования по программированию, хакатон, ХакатоныХакатоны бывают разные. И, прежде чем вы назовёте меня Капитаном Очевидность, позвольте разобрать их на части, чтобы объяснить ту мутацию, которую мы сконструировали для мероприятия 18 февраля.
Не убивайте свою мотивацию: осваивайте Ruby on Rails на интересных примерах
2017-02-07 в 10:48, admin, рубрики: backend, React, react.js, ReactJS, ruby, ruby on rails, Блог компании Everyday Tools, бэкэнд, рейлс, руби, фронтенд, фронтэндВсе же помнят, как это бывает: учишься ты чему-то новому, но вдруг раз и приуныл. А все почему? Потому что разработка типовых приложений при обучении скучна до зубовного скрежета.
Подобные задания становятся УБИЙЦАМИ мотивации №1.
Лично я не хочу, чтобы мои ученики теряли мотивацию и сдавались на полпути. Поэтому я создал этот километровый список из 27 забавных идей для приложений, которые вы можете создать, пока обучаетесь использовать React на пару с Ruby on Rails.
Управление сложностью в проектах на ruby on rails. Часть 3
2017-02-02 в 11:41, admin, рубрики: forms, ruby, ruby on railsВ предыдущей части я рассказал про контроллеры и роутинг. Теперь поговорим про формы. Довольно часто требуется реализовать формы, которым не соответствует ни одна модель. Или добавить валидацию, которая имеет смысл только в конкретном бизнес-процессе.
Я расскажу про 2 типа форм: form-objects и types.
Объкты-формы используются для обработи и валидации пользовательского ввода, когда данные нужны для какого-либо операции. Например, вход пользователя в систему или фильтрация данных.
Types используются, если нужно расширить поведение модели. Например, в вашем проекте пользователи могут регистрироваться как через vkontakte, так и через обычную форму. Заполнение email обязательно для обычных пользователей, а для vk пользователей — нет. Такое поведение легко решается с помощью types.
Брошюра об Ecto – интерфейсе для работы с базами данных на Elixir
2017-01-25 в 3:22, admin, рубрики: active_record, ecto, Elixir, Elixir/Phoenix, phoenix, rails, ruby, sql
Вступление
Ecto написанный на Elixir DSL для коммуникации с базами данных. Ecto это не ORM. Почему? Да, потому что Elixir не объектно-ориентированный язык, вот и Ecto не может быть Object-Relational Mapping (объектно-реляционным отображением). Ecto — это абстракция над базами данных состоящая из нескольких больших модулей, которые позволяют создавать миграции, объявлять модели (схемы), добавлять и обновлять данные, а также посылать к ним запросы.
Если вы знакомы с Rails, то для вас самой близкой аналогией, конечно же, будет его ORM ActiveRecord. Но эти две системы не являются копиями друг друга, и хороши в использовании в рамках своих базовых языков. На данный момент актуальная версия Ecto 2, она совместима с PostgreSQL и MySQL. Более ранняя версия дополнительно имеет совместимость с MSSQL, SQLite3 и MongoDB. Независимо от того, какая используется СУБД, формат функций Ecto будет всегда одинаковый. Также Ecto идёт из коробки с Phoenix и является хорошим стандартным решением.
Если надумаете расширить брошюру, то милости прошу присоединиться к развитию данного репозитория https://github.com/wunsh/ecto-book-ru
Новшества Ecto 2.X
Простая и ужасающая история о шифровании
2017-01-13 в 14:25, admin, рубрики: aes, gem, ruby, ruby on rails, информационная безопасностьЭто будет история об открытом ПО, доверии и ответственности.
Задача и её решение
Как-то раз мне понадобилось добавить в своё приложение на 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)
Ну, отлично. Что же могло пойти не так?
Читать полностью »
Это копипаст с небольшими правками из моего блога, который я использую для сохранения информации, потенциально полезной для меня, но которую обычно забываю. Посчитал, что инфа может показаться кому-нибудь интересной.
Intro
Относительно недавно искал способ в одну строчку запустить веб-сервер в текущей директории.
На просторах Stack Overflow нашел примерно такую команду:
ruby -run -e httpd -- -p 9090 [DIR]
Что же это за загадочная опция -run
и почему ее нет в мануале?
Использование send для удобства, от безысходности и ради развлечения
2016-12-27 в 8:57, admin, рубрики: ❨╯°□°❩╯︵┻━┻, ruby, send, ненормальное программирование, Программирование, Разработка веб-сайтов
Один из методов библиотеки Sidekiq. Объяснение смайла
send в Ruby вызывает методы объектов по имени. Вот очевидный способ применения:
# До: явно используем присваивание. Неудобно, если полей много или они определяются в рантайме.
user.name = "Иван"
user.age = 29
# После: передаём имя атрибута параметром. Решает проблемы первого способа.
def set(field, value)
send("#{field}=", value)
end
user.set(:name, "Иван")
user.set(:age, 29)
А ещё вы наверняка видели такие строки:
after_create :send_email
Да-да, коллбэки в рельсах внутри реализованы тоже с помощью send.