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

Big Data: Principles and best practices of scalable realtime data systems Big Data: Principles and best practices of scalable realtime data systems
Nathan Marz, James Warren

В книге вы найдете объяснение, что такое Lambda Architecture , и при помощи каких технологий эту Lambda Architecture можно построить.

Помимо прочего, вы узнаете о том, как использовать Thrift и библиотеку Pail, какие имеются тонкости при работе с HDFS (например, что могут появляться мистические ошибки, если просто писать туда много маленьких файлов), что есть такой как бы более удобный и высокоуровневый DSL для MapReduce под названием JCascalog и тупая как пробка база данных ElephantDB, что CAP теорему часто трактуют неправильно , а также, что есть такие штуки, как CRDT, Storm, Cassandra с ее библиотекой-клиентом Hector, и не только.

Как по мне, книга не то, чтобы прям вау-вау-вау. Особенно если участь, что Kappa Architecture с ее Samza и Kafka выглядит куда более интересно. Моя оценка — твердая четверка.

Elasticsearch Server: Second Edition Elasticsearch Server: Second Edition
Rafal Kuc, Marek Rogozinski

ElasticSearch — это такая распределенная хреновина для индексации документов и последующего полнотекстового поиска по ним. Сама находит новые ноды, шардится, реплицируется и так далее. Непосредственно для полнотекстового поиска используется Apache Lucene.

Вот представляете себе SQL? Там есть всякие SELECT, INSERT, UPDATE, DELETE, а также CREATE TABLE, CREATE INDEX и так далее. И это я еще не считаю WHERE условий, LIMIT, OFFSET, сортировок и прочего. В ElasticSearch можно делать все то же самое, только при помощи DSL на JSON. И вот этому программированию на JSON посвящено 90% книги, со всеми этими простынями на пол страницы, что curl’ом посылается, что откуда возвращается. Словно читаешь спецификацию по SQL. Читать такое очень грустно.

Еще я краем глаза посмотрел на книжку «Mastering ElasticSearch», но она написана в таком же сухом стиле. Дескать «вот есть несколько алгоритмов, определяющих похожесть текстов — TF/IDF, Okapi BM25, DFR и IB, каждый из них хорош в таком-то случае». Ну ОК. А потом начинается «чтобы их понять, вам нужно быть крутым математиком, поэтому здесь мы не будем ничего объяснять, но у алгоритмов есть такие-то параметры, у каждого свои, давайте их все перечислим». И идет сухое перечисление всех параметров в стиле «параметр k1 представляет собой float и означает сатурацию». Совершенно бесполезная для читателя информация. Все равно нужно втыкать в документацию, гуглить и так далее. Можно было с тем же успехом ни о чем из этого не писать.

В общем, «Elasticsearch Server» я прочитал с очень большим трудом, а книгу «Mastering ElasticSearch» и вовсе не осилил. Я пришел к выводу, что книги по ElasticSearch читать не следует. Лучше прочитайте пару туториалов и потом по мере необходимости обращайтесь к документации.

Cassandra: The Definitive Guide Cassandra: The Definitive Guide
Eben Hewitt

Книга очень странная и, вообще-то говоря, безнадежно устаревшая.

В книге повествование идет про Cassandra версий 0.6 и 0.7, а актуальные нынче версии — 2.0 и 2.1. Такая же фигня, если верить отзывам на Amazon’е, с книжкой «Cassandra: High Performance Cookbook». Помимо прочего, в книге нет ни слова о том, что в качестве значений могут использоваться различные коллекции. CQL тоже нефига не рассмотрен. Очень сильно удивили примеры кода на 10 страниц из разряда «как можно ходить в Cassandra напрямую безо всяких клиентов». Зачем такое вообще показывать и кому это может быть интересно?

В общем, с книгами по Cassandra все грустно. Читать никому не советую.

Play for Scala: Covers Play 2 Play for Scala: Covers Play 2
Peter Hilton, Erik Bakker, Francisco Canedo

Книга повествует о том, как начать писать сайтики на Play Framework 2, используя язык программирования Scala . Также существует аналогичная книга для программистов на Java.

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

Как это часто бывает в мире Scala, «Play for Scala» успела немного устареть. В частности, вместо утилиты play нынче следует использовать activator, а вместо Anorm и Squeryl теперь Typesafe рекомендует ORM Slick . Но в целом, книга все еще актуальная, лично я одобряю и рекомендую.

High Performance Browser Networking: What every web developer should know about networking and web performance High Performance Browser Networking: What every web developer should know about networking and web performance
Ilya Grigorik

Книга просто огонь!

Из нее вы узнаете, как на низком уровне работают TCP и UDP, как в разы сократить время, необходимое на TLS handshake, как оптимизировать свое приложение для работы в мобильных и WiFi сетях, не посадив при этом батарею смартфона за один час, как работают HTTP и вебсокеты, в чем заключается отличие HTTP 2.0 от SPDY, что такое WebRTC, и множество других интереснейший вещей.

А еще книгу можно прочитать бес-плат-но ! Моя оценка — 5 из 5.

Akka Scala Documentation Akka Scala Documentation
Typesafe Inc

Официальная документация по Akka .

Читается на удивление легко и приятно. Все просто, все понятно, примеров много, воды мало. Прочитав эти 400 страниц, вы получите полное представление о том, на что нынче вообще способна Akka и куда посмотреть, чтобы суметь воспользоваться этим на практике. Лично мне особенно ценным показалось описание того, как работает Akka Cluster.

Скачать эту документацию в PDF и прочих форматах можно отсюда . Есть версия как для программистов на Scala, так и для пользователей Java. Документация регулярно обновляется. Моя оценка — четверка с плюсом.

Apache Cassandra 2.1 Documentation Apache Cassandra 2.1 Documentation
DataStax

Разочаровавшись в книгах по Cassandra, я решил попробовать найти официальную документацию в формате PDF. И она нашлась.

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

Скачать это хозяйство в PDF можно отсюда . Моя оценка — четыре с небольшим минусом.

Scalatra in Action Scalatra in Action
Ivan Porto Carrero, Ross A. Baker, Dave Hrycyszyn, Stefan Ollinger, Jared Armstrong

Scalatra очень сильно напомнила мне Scotty из мира Haskell . Такой же легковесный фреймворк, специально для тех, кто находит Play Framework и иже с ним слишком неповоротливым и громоздким. Немного удивило, что Scalatra в первую очередь нацелен на создание war’ников и использование совместно с каким-нибудь application server’ом. Но это не обязательно, в книге можно найти инструкцию о том, как прикрутить к Скалатре Jetty и упаковать все это в standalone jar.

Вообще, книга всеобъемлющая. Тут вы найдете не только инструкции о том, как работать с куками и формами, но и, например, как использовать Scalatra в качестве интерфейса для приложения, которое все из себя работает на Akka. А еще мне понравилась глава о том, как можно автоматически генерировать документацию для API при помощи Swagger.

Впечатления от книги, а также от Scalatra, исключительно положительные. Пять из пяти, всем рекомендую.

Highload++, лучшие доклады 2013 Highload++, лучшие доклады 2013

Данная книга раздавалась всем участникам конференции Highload++ 2014. Многие почему-то ругают эту раздатку, а мне норм 🙂

Пожалуй, больше всего из докладов, приведенных в этой книге, мне понравился рассказ про Scala и Finagle за авторством Julio Capote. Недаром этот доклад идет в книге самым первым. Еще я нашел очень интересным доклад Константина Осипова, посвященный LSM-tree, LevelDB, TokuDB, BitCask и прочим алгоритмам хранения данных на диске.

С другой стороны, в этой книге, как и в аналогичной книге с докладами за 2010-2011 года , вы не найдете ничего такого, что нельзя найти в других источниках. Так что, не сильно расстраивайтесь, если у вас ее нет.

Stuff Goes Bad: Erlang in Anger Stuff Goes Bad: Erlang in Anger
Fred Hebert

Небольшая книжка от автора LYSE, отвечающая на вопрос «что делать, если в моем приложении на Erlang все пошло вкривь и вкось?»

Благодаря этой книге вы узнаете, как происходит управление памятью в Erlang, как подключиться к Erlang-ноде по SSH или при помощи именованных каналов (pipes), как бороться с переполнением очередей сообщений , а также как правильно анализировать crash dump’ы и пользоваться Recon (что не удивительно, так как Фред является его автором).

Мне лично книга понравилась. Если бы сейчас меня спросили, какие книги нужно прочитать, чтобы хорошо разбираться в Erlang, я бы ответил, что это второе изданием Армстронга, Erlang and OTP in Action и Erlang in Anger.

Кстати, книга бесплатная .

Предвидя традиционные вопросы в стиле «Откуда у тебя есть время, чтобы читать столько книг?», «А много ли материала реально усваивается?» или «Ты почему упражнения не прорешал, сука?!» хочу сразу дать ссылку на этот FAQ , в нем есть ответы на эти и многие другие вопросы.

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

Дополнение: Первая сотня прочитанных книг и журналов

EnglishRussianUkrainian