Showing posts with label book-review. Show all posts
Showing posts with label book-review. Show all posts

Wednesday, March 11, 2009

Anathem: Bunjo and proton decay

From Neal Stephenson's Anathem:
Bunjo was a Millenarian math built around an empty salt mine two miles underground. Its fraas and suurs worked in shifts, sitting in total darkness waiting to see flashes of light from a vast array of crystalline particle detectors. Every thousand years they published their results. During the First Millennium they were pretty sure they had seen flashes on three separate occasions, but since then they had come up empty.

Compare this to the following paragraph from Lee Smolin's book "The Trouble with Physics" that tells the story of failed attempt to detect proton decay - the effect that, if observed, would confirm a wonderful physical theory known as SU(5):

... all you had to do was surround the tank with detectors and wait. Funds were raised, and huge tanks were built in mines deep underground. The result were impatiently awaited.

Alter some twenty-five years, we are still waiting. No protons have decayed.

Add to it that Stephenson specifically lists Smolin's book among the sources for Anathem at his Acknowledgements page, while Stephenson's praise for the book is printed on its back cover, and it's easy to imagine that the former quote is a joke at the expense of the latter.

Saturday, February 14, 2009

Anathem: Iconographies

Having finished Neal Stephenson's Anathem I feel like making a few notes.

First and foremost, it's a great book.

For the rest of this post I'll try to decipher some of the iconographies from the book.

  • Temnestrian Iconography:
    It depicts us as clowns... But… clowns with a sinister aspect. [...] [Originates from] The Cloud-weaver, a satirical play by the Ethran playwright Temnestra that mocks Thelenes by name and that was used as evidence in his trial.
    This is a reference to The Clouds, a satirical play by the Athenian playwrite Aristophanes that mocked Socrates and contributed to the latter's trial. That Thelenes is Arbre's Socrates is evident from many other references.
  • Doxan Iconography:
    [Originates from] A Praxic Age moving picture serial. An adventure drama about a military spaceship sent to a remote part of the galaxy to prevent hostile aliens from establishing hegemony, and marooned when their hyperdrive is damaged in an ambush. The captain of the ship was passionate, a hothead. His second-in-command was Dox, a theorician, brilliant, but unemotional and cold.
    This must be obvious to the American audience, but took me a while to figure out. The moving picture serial is Star Trek, the ship is USS Enterprise, the passionate captain is Kirk, the unemotional and cold theorician is Spock.
  • Yorran Iconography. This one is from "an illustrated book", but "later they made moving pictures of it":
    Yorr is identified as a theorician, but if you see how he actually spends his time, he’s really more of a praxic. He has turned green from working with chemicals, and he has a tentacle sprouting from the back of his skull. Always wears a white laboratory smock. Criminally insane. Always has a scheme to take over the world.
    Must be another American pop culture reference. I am not sure, but thinking of Lex Luthor, the arch-enemy of Superman.
  • Muncostran Iconography:
    Eccentric, lovable, disheveled theorician, absent-minded, means well
    Saunt Muncoster is Arbre's Einstein, as evidenced by this depiction, as well as the more direct reference in Glossary: "A theor of the late Praxic Age, responsible for crucial advances in what is called, on Earth, general relativity".

Saturday, December 27, 2008

Обзоры книг

Решил поместить здесь несколько мини-обзоров книг по программированию, которые я написал ранее для корпоративного сайта.

С. Макконнелл, "Совершенный код"

Книга посвящена конструированию, т.е. собственно написанию кода. Прекрасный свод советов и правил по написанию "совершенного" кода. Для начинающего программиста незаменимый учебник, но и самому опытному программисту будет полезна для систематизации знаний.

Мартин Фаулер. Архитектура корпоративных программных приложений

Основательный труд по систематизации типовых решений (patterns) для проектирования корпоративных приложений. Автор рассматривает общие проблемы, т.е. на что вообще нужно обращать внимание при разработке архитектуры, и затем предлагает серию типовых решений для каждой проблемы. Книга полезна и как введение в область проектирования корпоративных приложений, и как справочник. К сожалению, автор в основном рассматривает Web-based приложения, и вопросы, типичные для приложений с "толстым клиентом", не рассматривает.

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

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

Gamma, Helm, Johnson, Vlissides. Design Patterns

Классическая книга по Design Patterns, известная также как "Gang of Four". Написана в академической манере, подробно и основательно. В книге три основных части. В первой части объясняется, что такое Design Patterns и для чего они нужны. Во второй части на примере проектированя текстового редактора объясняется как Design Patterns возникают в реальной жизни. Третья часть представляет собой каталог 23-х базовых Design Patterns общего назначения. Описание каждого объясняет, откуда этот pattern взялся, когда его следует применять, как реализовывать, для пояснения используются диаграммы и примеры кода. Книгу можно использовать и как учебник, и как справочное пособие.

По-моему, эту книгу обязан прочитать каждый программист, который имеет дело с объектно-ориентированными языками.

Гради Буч и др. Объектно-ориентированный анализ и проектирование с примерами приложений

Книга считается классическим трудом по объектно-ориентированному анализу и проектированию. Тем не менее, меня разочаровала. Книга состоит из трех частей: Концепции, Метод и Приложения. Первая часть содержит глубокий разбор основных концепций объектно-ориентированного анализа и проектирования: абстрация, объектная модель, классы, иерархия и т.п. Не совсем понятно, на кого ориентировано это изложение. Опытный программист уже знаком с этими концепциями, а начинающему будет сложно их понять из-за весьма тяжелого научного стиля изложения. Скорее всего, авторы ориентируются на тех, кто занимается computer science именно как science.

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

Третья часть, Приложения, описывает применение описанных ранее подходов для проектирования нескольких приложений. Эта часть наиболее интересна. Рассматриваются следующие системы:

  • Система спутниковой навигации. Проделывается очень высокоуровневое проектирование систем
  • Система контроля движения поездов. Рассматривается выработка требований
  • Криптоаналитическая система. Рассматривается более детальное проектирование. Интересно с точки зрения ознакомления с системами искусственного интеллекта
  • Система сбора данных с метеостанции. Рассматриваются вопросы embedded систем
  • Web-система планирования отпусков. Рассматриваются вопросы web-систем.

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

Fritz Onion. Essential ASP.NET with Examples in C#

Книга последовательно и доходчиво объясняет принципы технологии ASP.NET. Мне понравилась тем, что описывает архитектуру и "как это работает внутри". Освещаются такие темы как веб-формы, конфигурация (web.config), диагностика и обработка ошибок, валидация, data binding, custom controls, кеширование, state management и безопасность.

Для понимания книги нужно знать немного C#, предварительных знаний по .NET не требуется.

К сожалению, книга посвящена ASP.NET версии 1.1, а в 2.0 уже много поменялось. Также хочу отметить, что прочтя эту книгу уже понимаешь, как работает ASP.NET, но еще не можешь писать ASP.NET-сайты сам; для этого нужно еще прочесть какую-нибудь более практическую книгу, например "ASP.NET 2.0 Website Programming" (см. ниже).

Marco Bellinaso. ASP.NET 2.0 Website Programming: Problem - Design - Solution

Книга по программированию на ASP.NET 2.0, построенная на примерах. Автор описывает создание веб-сайта для вымышленного пивного кабака (!), последовательно добавляя к нему функциональность, т.о. демонстрируя возможности ASP.NET 2.0 и как их использовать.

Помимо прочего демонстрируется использование master pages, membership (системы пользователей/групп и их прав), создание новостей, статей, опросов, email-рассылки, форумов, электронного магазина, персонализация и локализация. В завершение обсуждается deployment сайтов на ASP.NET 2.0.

Для понимания книги необходимо уметь читать код на C# и иметь базовое представление о ASP.NET.

Wednesday, April 23, 2008

Фред Брукс. "Мифический человеко-месяц"

Одна из первых книг по управлению программными проектами, ставшая классической. Книга написана в 1975г. по материалам работы автора над созданием операционной системы OS/360 в IBM в 1965-68гг. Казалось бы, за столько лет индустрия программирования так изменилась, что книга должна была безнадежно устареть. Ничего подобного - устарели только технические моменты, которые не играют в книге важной роли (смешно выглядят советы использовать PL/I и фразы типа "Нередко можно встретить человека, выражающего ужас по поводу того, что в машине, имеющей 2 Мбайт памяти, под операционную систему может быть отведено 400 Кбайт"). Основные идеи книги по-прежнему актуальны - и знаменитый закон Брукса "Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше", и "планируйте на выброс" и "эффект второй системы" и т.п.

В 1995-м году вышло юбилейное издание книги, включившее в себя, помимо оригинала, статью автора "No Silver Bullet" 1986г., где он утверждает, что не существует волшебной технологии, способной поднять производительность труда программиста на порядок, разбор критики этой статьи, и новый взгляд на идеи "Мифического человеко-месяца" 20 лет спустя.

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

HTML-вариант книги можно найти здесь. Текст взят с lib.ru и снабжен более-менее приличным форматированием. Также исправлены наиболее вопиющие опечатки и дефекты перевода. Форматирование максимально адаптировано для чтения в программе Books для iPhone, но будет нормально смотреться в любом средстве просмотра HTML (в т.ч. в любом браузере).