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

10 ноября 2014

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

Big Data: Principles and best practices of scalable realtime data systemsBig 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 EditionElasticsearch 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 GuideCassandra: 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 2Play 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 performanceHigh 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 DocumentationAkka Scala Documentation
Typesafe Inc

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

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

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

Apache Cassandra 2.1 DocumentationApache Cassandra 2.1 Documentation
DataStax

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

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

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

Scalatra in ActionScalatra 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++, лучшие доклады 2013Highload++, лучшие доклады 2013

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

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

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

Stuff Goes Bad: Erlang in AngerStuff 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, в нем есть ответы на эти и многие другие вопросы.

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

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

Метки: .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.