Уже не вспомнить как, но однажды я наткнулся на тикет в багтрекере Ruby с обсуждением класса SecureRandom из стандартной библиотеки. Я так увлекся, что провел весь вечер за чтением этого длиннющего треда. Он полон эмоций, страстей, презрения, упреков и негодования. Рекомендую как-нибудь тоже полистать на досуге. В то же время в нем затронули вопрос алгоритмов криптографии и их поддержки в операционных системах. И я не смог удержаться и не описать кратко ход событий.
Refinements были добавлены в Ruby 2.0 в далеком 2013 году и должны были помочь улучшить модульность кода и сделать расширения классов и модулей более безопасными. Refinements позволяют задавать область видимости для monkey-patch, делать его локальным и скрывать для остального приложения. Это в первую очередь важно для разработчиков библиотек и позволяет избежать конфликтов между их monkey-patch‘ами.
Bullet это Ruby-гем для детектирования проблемы N+1 SELECT запросов к базе данных. В данный момент поддерживаются Active Record и Mongoid ORM’ы. Bullet весьма популярен и это фактически безальтернативное решение для Rails веб-приложения.
Книга попала в TODO список еще очень-очень давно по рекомендации коллег - я предполагал, что наконец узнаю как делать все правильно. Мои ожидания были очень высокие и в конце концов не оправдались.
Как очевидно из названия, книга посвящена обработке данных в самом широком смысле. Ее автор, Martin Kleppmann, является специалистом в области распределенных систем и имеет непосредственное отношение к разработке проектов Apache Avro и Apache Samza. Книга опубликована совсем недавно - в 2017-м году и имеет высокий рейтинг на amazon.com - 4.8.