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

23 октября 2013

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

Разработка веб-приложений с помощью Haskell и YesodРазработка веб-приложений на Haskell и Yesod
Michael Snoyman

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

Yesod — это веб-фреймворк, активно «паразитирующий» на сильных сторонах языка Haskell, таких, как строгая статическая типизация, всякая монадическая магия, различные расширения GHC, в том числе Template Haskell, и так далее. В Yesod есть типобезопасные URL, формы и шаблоны, Persistent, представляющий собой что-то вроде легковесного ORM с поддержкой PostgreSQL, MySQL, SQLite и MongoDB. Также Yesod поддерживает кукисы, загрузку файлов, локализацию, подсайты, защиту от CSRF, оптимизацию CSS и JavaScript, стриминг больших файлов, авторизацию/аутентификацию, в том числе OAuth, OpenID и BrowserID. Да, кстати, в Persistent есть пул соединений и миграции.

Из других интересных особенностей Yesod хотелось бы отметить поддержку автоматической фоновой перекомпиляции кода во время разработки, а также возможность писать GUI-приложения, представляющие собой сайты, работающие либо в WebKit, либо в браузере по умолчанию. Само собой разумеется, поскольку это Haskell, Yesod существенно быстрее Mojolicious, Django, Rails и многих других популярных веб-фреймворков.

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

OpenGL --- руководство по программированию, 4-е изданиеOpenGL — руководство по программированию, 4-е издание
М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер

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

Книга сильно устарела. Издание на русском вышло в 2006-м году, а оригинал, наверное, еще за пару лет до этого. Повествование ведется в контексте OpenGL версии 1.4, в то время, как последней на данный момент версией является 4.4. С другой стороны, возможности OpenGL последних версий поддерживаются не всеми видюхами. Например, в моем довольно современном ноутике используется графическая карта Intel HD Graphics 4000, совместимая с OpenGL до версии 3.1 включительно.

Думается, что для введения в основы OpenGL книга вполне пригодна. Тут описываются рисование примитивов, работа с камерой, цветом, освещением, текстурами. Также рассказывается, например, как сделать объекты прозрачными, сгладить их границы и нарисовать туман. Следует учесть, что, возможно, это наиболее актуальная книга по OpenGL на русском языке из существующих. Что немаловажно, поскольку материал довольно сложен для восприятия. Из более свежих книг существует только второе издание «Введение в OpenGL» 2011-го года, но единственный отзыв к ней на ozon.ru не вдохновляют на покупку.

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

Практика функционального программирования, выпуск 4Практика функционального программирования, выпуск 4

Продолжаю потихоньку осиливать ПФП.

В этом выпуске из всех статей мне больше всего запомнилась Clojure, или «Вы все еще используете Java? Тогда мы идем к вам!» за авторством Алекса Отта (обновленная версия статьи доступна здесь). Также мне понравилась статья Романа Душкина Мономорфизм, полиморфизм и экзистенциальные типы, главным образом, из-за экзистенциальных типов.

Но, честно говоря, четвертый выпуск в целом показался мне скучноватым.

Графика трехмерной компьютерной игры на основе OpenGLГрафика трехмерной компьютерной игры на основе OpenGL
А. В. Боресков

Поискав по книжным полкам, я нашел у себя еще одну некогда купленную, но так и не прочитанную книгу об OpenGL.

Книга представляет собой описание в стиле литературного программирования устройства Quake-подобной игры. Довольно интересно было вспомнить основы линала и почитать про алгоритмы определения видимости объектов на сцене. Глава об основах OpenGL оказалась краткой, но весьма информативной. Помимо прочего, тут есть про работу с различными форматами текстур (bmp, jpg, png и другими), а также трехмерных моделей (ase, md2, md3).

Весь исходный код к книге можно найти на сайте автора. Кстати, сайт этот, как я понимаю, широко известен в узких кругах. Там можно найти интересные статьи, подборки ссылок, а также ленту новостей. Рекомендую ознакомиться.

Автор обещал продолжение книги, но, насколько я могу судить, не сложилось. Очень, очень жаль.

Real World OCamlReal World OCaml
Yaron Minsky, Anil Madhavapeddy, Jason Hickey

Да, на сайте O’Reilly уже можно купить электронную версию этой книги.

В целом, данная книга мне абсолютно не понравилась. Примерно половина посвящена синтаксису OCaml, а еще половина — всякой рутине, типа как пропарсить аргументы командной строки, как посчитать md5 и так далее. Я лично очень надеялся почитать про Lwt и Ocsigen, ну или хотя бы встретить упоминание батареек и генераторов списков, но ничего из этого в книге нет.

Однако запомнилась глава про устройство сборщика мусора в OCaml. Если вы работаете над собственным функциональным языком программирования, обязательно ознакомьтесь.

Искусственный интеллект. Современный подходИскусственный интеллект. Современный подход
Стюарт Рассел, Питер Норвиг

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

Помимо матанов и алгоритмов, книга содержит интересные философские рассуждения и описание любопытнейших исторических фактов. Книга написана весьма доступно, по крайней мере, насколько доступно вообще может быть написана книга на такую непростую тему. Всячески рекомендую к прочтению!

Компьютерные вирусы и антивирусы. Взгляд программистаКомпьютерные вирусы и антивирусы. Взгляд программиста
К. Е. Климентьев a.k.a Drmad/FM

И вправду книга о компьютерных вирусах, без обмана. Никаких инструкций по установке антивируса или написанию троянов на Delphi. Только код на ассемблере и Си, способы распространения, скрытия в системе, а также алгоритмы мутации. Вся история развития компьютерных вирусов, начиная с первых boot-вирусов под MS-DOS, заканчивая свежайшими сетевыми червями 2011-2012 года. Также в книге описываются различные экзотические вирусы, например, bat-вирусы и файловые вирусы под FreeBSD. В последней главе приводятся математические модели распространения сетевых червей, а также алгоритмы распознавания вирусов.

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

Тираж книги — всего 200 экземпляров, так что, если хотите ее купить, торопитесь.

Практика функционального программирования, выпуск 5Практика функционального программирования, выпуск 5

В этом выпуске мне очень понравился обзор языка F#. Выглядит годно-годно. Мне прям захотелось поставить Microsoft Visual Studio и попробовать.

Также понравилась статья Романа Душкина про алгоритм Хиндли-Милнера с примером его реализации на Haskell для типизированных лямбда-исчислений. Весьма доступно и достаточно кратко. Люблю такие статьи. По-любому нужно срочно идти придумывать свой функциональный язык программирования со строгой статической типизацией!

Riak HandbookRiak Handbook
Mathias Meyer

Наиболее исчерпывающая книга по Riak из всех мне известных. Содержит, сейчас упадете, целых 166 страниц! Помимо традиционного рассказа про Riak KV в книге довольного подробно описаны MapReduce и Riak Search, приводится много примеров как с curl’ом, так и на Node.js.

Может настораживать, что книга повествует про Riak 1.1, а актуальной на момент написания этих строк версией является 1.4. Я не поленился почитать release notes к Riak версий 1.2, 1.3 и 1.4. В книге упоминается бэкенд Innostore, который был выпилен в Riak 1.2. Немного изменились аргументы у утилиты riak-admin. Через Protobuf теперь можно ходить не только в Riak KV. В Riak 1.3 появился механизм active anti-entropy. Также в Riak было внесено множество других изменений (работа с syslog, переход на lager 2.0, улучшена поддержка IPv6, …) и исправлена куча багов. Как мне кажется, книга пока что не слишком сильно устарела.

24 days of Hackage24 days of Hackage
Oliver Charles

Продолжаю жестко читерить :) На этот раз я собрал книжку в формате PDF на основе серии постов в блоге Oliver Charles. Получилась скорее небольшая брошюрка, чем книжка, но зато очень интересная брошюрка!

В ней вы найдете описание 22-х интересных библиотек на языке Haskell. Некоторые из них я нашел занятными, а некоторые просто взорвали мне мозг. Вот вы, например, знали, что в Hasekll можно сделать такое, написав всего лишь пару строк? Я лично не знал.

Собранный мной PDF можно скачать здесь.

А какие интересные книги вы прочитали в последнее время?

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

Метки: .


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