Как стать автором
Поиск
Написать публикацию
Обновить
6.6

Ruby *

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

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

Redfish в GAGAR>IN BMC

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

На сегодняшний день большинство крупных производителей серверного оборудования, таких как (DELL, IBM, HP) включают поддержку RedFish в прошивки для своих BMC контроллеров (Baseboard management controller) Разумеется, разрабатывая серверы GAGAR>IN, мы также добавили поддержку Redfish в наш BMC, который построен на базе открытого проекта OpenBMC. В этой статье расскажем, для чего мы используем RedFish и какие преимущества он нам даёт.

Читать далее

Генерация картинок в коде

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

Всем привет! В этой статье я расскажу про процесс автоматизации изображений в коде, написание гема и ускорение рутинных задач.

Читать далее

PGHero — дашборд для мониторинга БД PostgreSQL

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

Всем привет. Сегодня я бы хотел поделиться рецептом установки утилиты PGHero с подключением нескольких баз данных. PGHero — это простенькая утилита, написанная на Ruby, с минималистичным дашбордом для мониторинга производительности БД PostgreSQL.

Что может показать нам PGHero:

статистику по запросам: количество вызовов, среднее и суммарное время выполнения (с возможностью хранения истории);

активные в данный момент запросы;

информацию о таблицах: занимаемое на диске место, даты последних запусков VACUUM и ANALYSE;

информацию об индексах: занимаемое на диске место, наличие дублируемых/неиспользуемых индексов. Также может порекомендовать добавить индекс при наличии сложных запросов с Seq Scan;

статистику по открытым подключениям к БД;

вывод основных настроек БД, влияющих на производительность (shared_buffers, work_mem, maintenance_work_mem и т.д.)

Читать далее

Синхронизация баз данных между монолитом и микросервисами с помощью Kafka. Наше решение

Время на прочтение4 мин
Количество просмотров8.9K
В этой статье я расскажу про готовое решение для поддержки консистентности данных между растущей микросервисной и унаследованной архитектурой. Под катом код для репликации двух баз данных с проверкой синхронизации, который может пригодиться для решения аналогичных задач.


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

Запускаем скрипты Ruby из Go Lang

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

Для использования Ruby как скриптового языка, то есть как языка для встраивания, вроде lua, существует легковесная реализация Ruby под названием mruby https://en.wikipedia.org/wiki/Mruby

Для go удалось найти только одну стабильную библиотеку с биндингом к mruby. По умолчанию, она может собрать mruby версии 1.2.0 (2015 год выпуска), и можно попробовать сделать сборку вплоть до версии 1.4.1 (2018 год выпуска). Но актуальная версия mruby сейчас имеет версию 2.1.2 (2020 год). Есть форк с поддержкой версии mruby 2.1.0. Этот форк и будем использовать, что бы после небольших изменений получить в том числе версию 2.1.2.

Читать далее

Как перейти с secrets на credentials (Ruby on Rails)

Время на прочтение4 мин
Количество просмотров7.8K
Сredentials в версии Ruby on Rails 5.2.0 — новый золотой стандарт. Старые добрые, но небезопасные файлы .env уступают дорогу. В этой статье вы узнаете:

  • зачем и как перейти от secrets к credentials,
  • как использовать API-ключи в Ruby, YML и js.erb,
  • как раз и навсегда предоставить ключ каждому из команды.
Читать дальше →

Как добавить React-компонент в Active Admin

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

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

Мы в ДомКлик в таких случаях используем Vue.js и React, и под катом я расскажу, как именно можно внедрить React-компонент в Active Admin.

Читать далее

Метапрограммирование в реальной задаче

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

Всем привет! В этой статье хочу рассказать про метапрограммирование на примере реальной часто встречающейся проблемы.

Когда кто то говорит про метапрограммирование у олдскульного кодировщика случается приступ ярости)

И на это есть причины так и на большом проекте может показаться безумием использовать метапрограммирование, так как код становится очень сложным для чтения. А если в проект включится специалист со стороны, то он и подавно ничего не разберет в этом мета-коде.

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

Читать далее

Как я принёс Ruby в ДомКлик

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


В конце 2017 года я твёрдо решил, что хочу перейти на руководящую работу.

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

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

Масштабность и эффективность меня вдохновляли.

Скрипт на ruby, который с помощью яндекс-сервиса Yandex SpeechKit распознает текст в видео-файле (длинные аудио)

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

Начну с того, что я совсем недавно начала погружаться в IT в целом и Ruby в частности, и это задание мне выдали в качестве тестового для получения места на стажировке. Заранее скажу, что тут еще есть что приглаживать и улучшать, но в целом код работает.

Однако, возможно, мой опыт может быть для кого то полезен, так что представляю вашему вниманию подробное описание создания этого скрипта. ВАЖНО: Моя операционная система Fedora 32, так же я использую заранее установленный в систему bundler. Так что если вы тоже используете linux-подобные системы, читаем далее.

Суть задания: есть видеофайл в формате mp4 нужно написать скрипт на чистом ruby, который будет конвертировать этот файл в аудио, отправлять его в сервис яндекса Yandex SpeechKit и получив ответ, создавать текстовый файл.

Читать далее

Практическое применение алгоритма для представления Цекендорфа

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

Как то в прошлом я написал статью о рекурсивном алгоритме Цекендорфа и меня спросили, а где его можно практически применить.
Я подготовил статью где и описываю практическое применения этого алгоритма на примере Telegram бота написаного на Ruby и продуктов из холодильника.

Взглянуть

Пошаговый туториал по написанию Telegram бота на Ruby (native)

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

Приветики-омлетики, как-то недавно у меня появилась идея написать Telegram бота на Ruby на специфическую тематику, в двух словах этот бот должен был поднимать онлайн чатах по средством развлекательных событий которые этим же ботом вбрасывались в чат в рандомное время с рандомным контекстом.

И вот пока я занимался написанием этого бота то познакомился с библиотекой (gem) telegram-bot-ruby, научился её использовать вместе с gem 'sqlite3-ruby’ и кроме того проникся многими возможностями Telegram ботов чем и хочу поделится с уважаемыми читателями этого форума, внести вклад так сказать.

Много людей хочет писать Telegram боты, ведь это весело и просто.

На момент же написания своего бота я столкнулся с тем что сложно было найти хороший материал на тему Ruby бота для Telegram. Под хорошим я подразумеваю такой, где рассказывается про функционал изящные и красивый, такой, какой он есть в Telegram API.

Сразу кидаю ссылку на свой репозиторий по этому посту: here,
Ибо во время тестирования были баги, которые я мог сюда и не перенести, вдруг чего смотреть прямо в репозиторий :)

В следствии прочтения этого топика, я надеюсь читатель сможет улучшить своего уже написаного бота, или прямо сейчас скачать Ruby, Telegram и создать что-то новое и прекрасное. Ведь как уже было сказано в «Декларации Киберпространства» :

Читать далее

Опыт сопряжения Java, JavaScript, Ruby и Python в одном проекте посредством GraalVM

Время на прочтение18 мин
Количество просмотров8.3K
В прошлом месяце вышла стабильная LTS-версия многоязычной среды выполнения GraalVM 20.3.0 от корпорации Oracle и мне захотелось испробовать её для решения какой-нибудь интересной практической задачи. Для тех кто не в курсе, приведу краткое описание этой новой платформы. GraalVM позволяет использовать в едином окружении различные популярные языки программирования и обеспечивает их разностороннее взаимодействие в рамках некоторой общей среды выполнения.


Схематическое изображение архитектуры GraalVM из официальной документации.

Добавление новых языков в GraalVM осуществляется с помощью специального фреймворка Truffle, выполненного в виде библиотеки Java. Фреймворк предназначен для создания реализаций языков программирования в качестве интерпретаторов для самомодифицируемых абстрактных синтаксических деревьев (AST). При желании на его основе можно создать собственный язык, в официальных репозиториях GraalVM подробно рассмотрен пример реализации такого проекта под названием SimpleLanguage. Интерпретаторы, которые были написаны с использованием фреймворка Truffle, будут автоматически использовать GraalVM как JIT-компилятор непосредственно для самой реализации языка запускаемой на JVM-платформе и, соответственно, иметь возможность взаимодействия и двустороннего обмена данными в одном и том же пространстве памяти посредством специально разработанного протокола и программного интерфейса Polyglot API.

Платформа GraalVM вместе с исполняемой программой на смеси самых разных языков может быть представлена в виде автономного и самодостаточного исполняемого файла, либо работать поверх OpenJDK, Node.js или даже внутри Oracle Database.
Читать дальше →

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

RubyGems Digest 2020·10

Время на прочтение5 мин
Количество просмотров2.3K
Большая подборка информации о библиотеках языка Ruby за октябрь 2020 года. Новости, включая русскоязычные источники. А также полезные мнения и опыт разработки.


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

RubyGems Digest 2020·09

Время на прочтение5 мин
Количество просмотров2.1K
Большая подборка информации о библиотеках языка Ruby за сентябрь 2020 года. Новости, включая русскоязычные источники. А также полезные мнения и опыт разработки.


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

Почему в 2020 году мы по-прежнему выбираем Ruby?

Время на прочтение8 мин
Количество просмотров9.7K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Why is Ruby still our choice in 2020?» автора Vira Vashkovska.

Мы — опытная команда Ruby on Rails разработчиков. Некоторые из нас занимаются разработкой на Ruby уже многие годы и знают его как свои пять пальцев. Вот почему нам требуется много мужества чтобы признать, что Ruby сейчас не в лучшей форме.

Язык был очень популярен в 2013-2015 годах, но затем его популярность пошла на спад. Это особенно заметно, если мы сравним статистику Ruby и Ruby on Rails за 2020 года с прогрессом, достигнутым другими инструментами. Stack Overflow провел довольно тривиальное сравнение динамики роста Ruby и Node.js на основе количества заданных вопросов. Да, это не самый объективный показатель, но вы поняли…

image

Количество пользователей Ruby упало, но достаточно ли этого, чтобы объявить о смерти Ruby? На самом деле, нет. Если вы видели такие статьи, как «Ruby is Dead» или «Ruby is Irrelevant», приготовьтесь — ведь в какой-то момент каждый язык был объявлен мертвым. Возьмите Node.js — среда выполнения переживает хорошие времена — и все же люди спешат объявить о ее смерти.
Читать дальше →

Программирование только классами

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

image


В моем посте Implementing numbers in "pure" Ruby ("Разрабатываем числа на "чистом" Ruby") я обозначил рамки, которые разрешали использовал базовые вещи из Ruby вроде оператора равенства, true/false, nil, блоки и т.п.


Но что, если бы у нас вообще ничего не было? Даже базовых операторов вроде if и while? Приготовьтесь к порции чистого объектно-ориентированного безумия.

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

Ruby Digest 2020·08·2

Время на прочтение4 мин
Количество просмотров2K
Подборка информации о Ruby с 16 по 31 августа, включая русскоязычные источники: новости, конференции, новинки, медиа, статьи.



На сколько большие зарплаты у Ruby-разработчиков в России и где растет спрос на рубистов?

Юкихиро Мацумото, создатель Ruby, рассказывает о предстоящих нововведениях в Ruby 3.

Что дало обновление GitHub до Ruby 2.7? И каких улучшений ждать от Ruby 3?

Какие Js-библиотеки чаще используются с Ruby on Rails? Кому-нибудь пригодился StimulusJS? Много ли в rails-проектах легаси? Какие базы данных предпочитают rails-разработчики? На сколько обширно используют контейнеризацию? Много ли желающих продолжать использовать Ruby on Rails в 2020 году и готовы ли они рекомендовать его для начинающих разработчиков и для новых проектов? — результаты опроса Rails-сообщества.
Читать дальше →

Игра в Code Golf: сжатие кода и его сабмит на конкурс платформы AtCoder

Время на прочтение4 мин
Количество просмотров2.6K
Привет, Хабр! Представляю вашему вниманию перевод статьи "【コードゴルフ】コードをDeflate圧縮してAtCoderに提出する【圧縮ゴルフ】".

Вы когда-нибудь слышали о Code Golf? Это что-то вроде игры, где все стараются написать определенный код максимально маленьким количеством символов.

Одно из решений (171-байтный код), засабмиченных в контест на AtCoder*, подвергается широкой критике, поэтому я решил разобраться, в чем же там проблема.

(Прим. переводчика: AtCoder — платформа, где проводятся различные соревнования среди разработчиков. Судя по домену .jp, платформа — японская, но пользователи там со всего мира. Например, на момент перевода этой статьи в топе сайта есть 3 пользователя из России.)
Читать дальше →

Ruby Digest 2020·08·1

Время на прочтение7 мин
Количество просмотров3.1K
Большая подборка информации о Ruby, включая русскоязычные источники, с 1 по 15 августа:
новости, медиа, новинки, релизы, статьи, обучение.


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

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