Ruby-Дайджест за две недели (1 фев — 14 фев)

Для новичков и стажеров была представлена подборка интересного обучающего материала и литературы.
А уже состоявшимся разработчикам можно почитать новости из сферы и узнать о обновлениях гемов.

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

Для новичков и стажеров была представлена подборка интересного обучающего материала и литературы.
А уже состоявшимся разработчикам можно почитать новости из сферы и узнать о обновлениях гемов.

Привет! Меня зовут Наталья. В Каруне я пишу в команде высоконагруженные сервисы на Elixir.
Это третья компания, в которой я работаю на Elixir. До этого я писала на Ruby. Если посмотреть свежее исследование Хабр Карьеры по зарплатам, можно увидеть — зарплаты рубистов растут, а Elixir там нет. Более того, есть истории о том, как люди возвращались с Elixir обратно на Ruby. Я считаю, что на это сильно влияет вход в язык. Elixir классный, но в первые месяцы знакомства с ним мне самой так не казалось. Настолько классный, что я не хочу назад. В этой статье я расскажу про трудности перевода перехода.

Новый формат дайджеста.
- WebPacker в скором времене перестанет поддерживать Ruby.
- В ближайшем будущем C Ruby может содержать в себе код Rust. Matz одобрил.
- Spree Commerce получил релиз 4.4. Система электронной коммерции Rails с открытым исходным кодом.
- Sidekiq исполнилось 10 лет. Рассказ автора.
- Обновления гемов.
- Поиск работы Ruby-разработчиком.

Как и почему рутинное обновление Руби гемов менее чем за 1 час создало 475 новых подписок на общую сумму $73.271 долларов.

В этом дайджесте:
Обновление популярных гемов.
Сборник гайдов и статей (RU/ENG) #3.
Подборка полезных гемов #5.
Интересные open-source проекты на GitHub #4.
Интересный видео/аудио контент, связанный с Ruby.
Где искать работу Ruby-разработчику?
Рабочая/Учебная атмосфера от RubyDigest.
В данной статье я покажу как N1Loader сделает вашу жизнь легче!
Каждый разработчик рано или поздно сталкивается с проблемой N+1. ActiveRecord (Rails default ORM) поддерживает подгрузку ассоциаций с помощью includes для обхода N+1.
К сожалению, зачастую, не все данные, что нам нужны можно задекларировать в виде стандартных ассоциаций. Рассмотрим несколько примеров.

В этом дайджесте:
• Обновление популярных гемов.
• Сборник гайдов и статей (RU/ENG) #2.
• Подборка полезных гемов #4.
• Интересный видео/аудио контент, связанный с Ruby.
• Подборка ruby-сообществ для совместного изучения/общения.
• Новые вакансии на рынке труда.

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

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

В этом дайджесте:
Обновление популярных гемов.
Сборник гайдов и статей (RU/ENG) #1.
Интересные open-source проекты на GitHub #3.
Подборка полезных гемов #3.
Интересный видео/аудио контент, связанный с Ruby.

В этом дайджесте:
• Обновление популярных гемов.
• Статистика по гемам за год.
• Интересные open-source проекты на GitHub #2.
• Подборка полезных гемов #2.
• Интересный контент, связанный с Ruby.
• Рейтинги языка за 2021 год.

В этом дайджесте:
• Обновление популярных гемов.
• Митапы, где засветился Ruby.
• Интересные open-source проекты на GitHub.
• Ruby 3.1.0
• Подборка полезных гемов.
• Интересный контент, связанный с Ruby.

В этом дайджесте:
• Обновление популярных и не очень, гемов
• Седьмые рельсы?
• Конференции/Митапы
• "From Node to Ruby on Rails" - Откровение матерого JS разработчика-стартапера после открытия Ruby on Rails

Привет! Публикуем полезные материалы по Ruby с нашего митапа. Из видео узнаете:
— Как СберМаркет решает проблему нехватки Ruby-специалистов.
— Как на Ruby реализовать модель, сопоставимую по возможностям целому компьютеру.
— Плюсы и минусы новой серии библиотек smart-rb и уже известной в Ruby-коммьюнити dry-rb.
А еще бонус: мы приглашали Стеллу Миранду, старшего разработчика в Shopify и организатора RubyConfCo и сообщества Rails Girls Vancouver. Она ответила на вопросы о RoR, работе в Shopify, карьерном росте ruby-разработчиков и развитии лидерских качеств, а также о том, как устроены сообщества в Колумбии и Канаде.
Для удобства везде проставили таймкоды, залетайте на нужные темы!

Многие из тех, кто прочитает эту статью, уже давно "вошли в IT", а кто-то даже уже успел покинуть наши ряды. Но будут и те, кто только думает о том, чтобы начать свой путь. И я хочу поделиться своим опытом, так как помню, как сложно делать первые шаги и вообще решить, с чего начинать. Особенно потому, насколько недавно это было.
Как сейчас помню, понедельник 25е октября, я заступаю на дежурство по проду и с самого утра мне прилетает задача: сегодня в ночь с 24 на 25 ноября, наблюдалась проблема с недоступностью приложения. Глянув сентри я увидел кучу ошибок от базы со statement timeout, а так же непонятные ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found С мыслью "база не отвечала, проблема не на нашей стороне" я спокойно отдал задачу на разбирательство админам, а сам параллельно глянул графики, может там был всплеск каких-нибудь джобок или запросов, но ничего криминального в графане небыло: тяжеловесных джобок в 12 не запускается, а те, что запускаются отработали очень быстро.

Максимально переложив ответственность за онлайн своего приложения, ты сможешь сфокусироваться на других задачах, думать больше о новых фичах и новых приложениях. Ведь попробуй просто представить себе, как ты с утречка начинаешь поднимать 20 ботов на своём бедном Lenovo в надежде, что сегодня ни свет, ни интернет не выключится? Представил? А теперь представь если 20 ботов висят на сервере и ты с утра заходишь, смотришь какой у них статус с помощью удобного дашборда. Так и 21е приложение не за горами будет :)
Понимаю, всё звучит так классно, но ты возразишь, а деньги на сервер зачем выбрасывать? Тебе кажется, что твой бот только тебе и интересен, зачем же тратиться. А если я скажу что есть сервис, бесплатный, качественный, функциональный, который в начале кажется сложным, но как всё сложное, его нужно лишь понять и станет простым и отличным помощником.
Выглядит как промо за 50$, но на самом деле я был поражен лишь тем фактом, что если зайти на цены, то там есть раздел Hobby. Это на моей памяти первый случай, когда сервис есть в бесплатном виде, чтобы поддерживать начинания разработчиков, и потом, когда идея окажется работоспособной, тут же можно понемногу увеличивать возможности своего сервиса. Только за это уже можно читать дальше, разве нет?

“Твою ж мать, какая же это хтонь!”. Примерно так можно было охарактеризовать все наши инфраструктурные скрипты до недавнего времени. Нужно было что-то менять, и мы сделали это.
Меня зовут Павел Стрельченко, я – Android-разработчик компании hh. Я расскажу вам как эволюционировали наши CI скрипты на протяжении трех лет, с какими проблемами мы сталкивались, как анализировали их и пытались изменить, а также что вообще делали и к чему в итоге пришли.
Это текстовая расшифровка выпуска нашего влога, поэтому если вам удобнее смотреть, а не читать, добро пожаловать на наш Youtube-канал. В статью получилось добавить множество дополнительных ссылок, так что можно почитать ещё и их.
В прошлой статье я разбирался с тем как работает GIL, а сегодня меня захватила идея узнать насколько дорого обходится этот GIL для кода, который исполняется у нас на бэкенде. Для этого я решил пропатчить MRI и добавить пару переменных, в которые буду засекать сколько времени поток реально выполнял код, а сколько ничего не делал и ждал пока ему удастся завладеть локом.

Во время разработки своего приложения в качестве проекта внутри компании, поступил запрос на постройку графика по некоторой выборке данных, чтобы по команде Slash Command происходила постройка графика и его публикация в чат.
Первым делом я обратился к уже существующим решениям, графики через API Google, готовые гемы для Ruby. Основной минус в том, что не было возможности убрать или добавить легенду в том формате, который мне нужен, сложно кастомизировать внешний вид этих графиков и, к примеру, нет возможностей строить график по значению timestamp, а выводить уже значения в формате DateTime.
Имея на вооружении тот метод, который освещает эта статья, любой сможет строить какую угодно страницу полностью на сервере, получать фото этой страницы и использовать её в коде. В будущем можно приспособить этот подход для, например, для предпоказа тем на своем движке, генерации каких-то изображений с подвязкой к внешнему API и заключении всего в html документ. В целом, применений реально много, собственно поэтому и решил поделится solution'ом.
Поэтому предлагаю вам скорее ознакомится с материалом, мы научимся сначала делать график с использованием своего js скрипта, а потом поймём как его рендерить в коде.
Представляю содержание.