Книга Дэвида Кана «Взломщики кодов»

book_codebrakersПосле «Книги шифров» Саймона Сингха решил прочитать решил прочитать другую книгу на тему истории криптографии и криптоанализа, а именно книгу Дэвида Кана «Взломщики кодов». Тем более, что Сингх в своей «Книге шифров» очень лестно отзывался о «Взломщиках».

У этой книги есть один неприятный момент, связанный с переводом ее на русский язык. Дело в том, что первый вариант книги был выпущен в далеком 1967 году, и оригинальное название было «The Codebreakers: The Story of Secret Writing». Разумеется, за 40 с лишним лет криптография и криптоанализ шагнули далеко вперед, стали открытыми секретные в то время документы, появились новые алгоритмы шифрования и обмена ключами, появились электронные подписи и все такое прочее. Поэтому Кан в 1996 году переиздал своих «взломщиков кодов», второе издание книги вышло с названием «The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet». Кроме того, что в новом издании были исправлены ошибки, которых, как говорят, было достаточное количество в первой книге, второе издание стало заметно толще (1200 страниц против 430).

И вот в 2000 году выходит русский перевод… первого издания. Такая вот подстава, поэтому, когда читал эту книгу, то все-таки понимал, что книга уже устарела, а факты, касающиеся второй половины XX века нельзя считать достоверными. Но, тем не менее, книга оказалась все-равно интересной.

Читать далее ‘Книга Дэвида Кана «Взломщики кодов»’ »

Саймон Сингх. «Книга Шифров»

book_codeНедавно попалась мне книга Саймона Сингха (сайт автора) «Книга Шифров». Эту книгу нельзя рассматривать как учебник по криптографии, потому что здесь нет досконального математического описания алгоритмов шифрации и методов криптоанализа (взломов шифров). Эта книга в первую очередь по истории развития криптографии и криптоанализа. Но несмотря на это, попавшие в книгу алгоритмы шифрования описаны очень подробно на пальцах, причем иногда кажется, что слишком подробно, повторяя одну и ту же идею разными словами, приводя разные примеры. Так что, «Книгу шифров» могут читать все, даже те (особенно те), кто далек и от математики, криптографии и, касательно последних глав, IT.

В книге последовательно показано развитие способов шифрования, начиная с простейших одноалфавитных шифров замены, которые были использованы еще Юлия Цезаря (от чего один из шифров одноалфавитной замены получил его имя). После этого описана суть частотного криптоанализа для взлома такого шифра, то есть определение соответствия букв алфавита открытого текста и шифроалфавита благодаря тому, что разные буквы в незашифрованном тексте имеют разную частоту появлению. Этот способ криптоанализа был открыт арабами.

После этого рассказывается о многоалфавитном шифре, который известен как шифр Вижинера, и который двести с лишним лет считался невзламываемым. Рассказывается о том, как через 200 лет независимо друг от друга Чарльз Бэббидж и Фридрих Касиски нашли способ взломать этот шифр.

Много места в книге уделено «Энигме», шифровальной машине, которая использовалась немцами, начиная с 20-ых годов прошлого века и до конца Второй мировой войны. В книге подробно описано, как был взломан шифр «Энигмы» сначала поляком Марианом Реевским, а затем во время войны его дело продолжил Алан Тьюринг, работая в Блечли.

Читать далее ‘Саймон Сингх. «Книга Шифров»’ »

Книга «Пионеры программирования»

book_pionerНедавно прочитал книгу «Пионеры программирования» Федерико Бьянкуцци и Шейна Уордена. Книга довольно необычная по своей сути – это просто сборник интервью, взятый у авторов различных языков программирования. Здесь собраны интервью, взятые у 27 человек, имеющих непосредственное отношение к созданию 17 языков программирования:

  • C++ (Бьёрн Страуструп);
  • Python (Гвидо ван Россум);
  • APL (Эдин Д. Фалкофф);
  • Forth (Чак Мур);
  • Basic (Томас Курц);
  • AWK (Ал Ахо, Брайан Керниган, Питер Вайнбергер);
  • Lua (Роберто Иерусалимский и Луис Энрике де Фигейреду);
  • Haskell (Пол Худак, Джон Хьюз, Саймон Пейтон-Джонс и Филип Уодлер);
  • ML (Робин Милнер);
  • SQL (Дональд Чемберлен, который теперь работает над XQuery);
  • Objective-С (Том Лав, Брэд Кокс);
  • Java (Джеймс Гослинг);
  • C# (Андерс Хейлсберг);
  • UML (Айвар Якобсон, Джеймс Рамбо, Гради Буч);
  • Perl (Ларри Уолл);
  • PostScript (Джон Уорнок и Чарльз Гешке);
  • Eiffel (Бертран Мейер).

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

Читать далее ‘Книга «Пионеры программирования»’ »

Книга Р. С. Мартина и М. Мартина «Принципы, паттерны и методики гибкой разработки на языке C#»

Agile_C#_cover.inddНа днях дочитал книгу двух Мартинов (Роберта и Мики) «Принципы, паттерны и методики гибкой разработки на языке C#». Очень стоящая книга, охватывающая все этапы проектирования софта. Несмотря на то, что в названии фигурирует C#, и все примеры действительно написаны на нем, книгу можно (нужно) читать всем, кто занимается программированием и проектированием. К языку C# описание никак не привязано. Более того, в книге открытым текстом сказано, что изначально некоторые примеры были написаны на C++ или Java, а затем для книги переписаны на C#.

В книге описываются все этапы проектирования с учетом того, как эти этапы выполняются при так называемой «гибкой разработке». Честно говоря, я не очень глубоко разбирался в идеологии экстремального программирования (XP), но описываемая в книге гибкая разработка очень ее напоминает (и авторы ссылаются на XP): здесь и парное программирование, когда за одной клавиатурой сидят двое (у нас было такое в школе, когда не хватало на всех компьютеров 🙂 ), и программирование через тесты (сначала пишутся тесты, потом под них пишется код), и частый выпуск промежуточных работающих версий программы, и утверждение о том, что лучшая документация — это код.

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

В книгу включена одна интересная глава, которая в оригинале была оформлена в виде статьи. Эта глава описывает процесс проектирования и кодирования (эти два процесса перемешаны) программы для подсчета очков при игре в боулинг. Эту главу нужно обязательно показывать тем, кто хочет понять что из себя представляет проектирование софта, а особенно стоит показать начальству, чтобы оно прониклось как происходит рождение программы, и что написание программы — это не просто кодирование в императивном стиле (a la Pascal, Fortran и т.п.).

Читать далее ‘Книга Р. С. Мартина и М. Мартина «Принципы, паттерны и методики гибкой разработки на языке C#»’ »

Книга Янга и Саймона «iКона. Стив Джобс»

iКонаПосле просмотра фильма «Пираты кремниевой долины» мне посоветовали почитать книгу Янга и Саймона «iКона. Стив Джобс». Книга оказалась хорошим дополнением и к фильму, и к книге Хакеры. Герои компьютерной революции. В «iКоне» описана биография Стива Джобса, начиная с детства и примерно до 2005 года, то есть до того момента, когда компания Apple выпустила свой плеер iPod, и он успел получить популярность, но до того момента, когда вышел iPhone.

Биография составлена очень добротно, что подтверждается и ссылками и на литературу, и на рассказы конкретных людей в конце книги. По стилю изложения iКону можно разделить на две части. Первая половина по стилю похожа на тех же «Хакеров» (на эту книгу, кстати, авторы тоже ссылаются), но с учетом того, что главным «описуемым» здесь является именно Джобс. Некоторые данные о других людях, с кем Джобсу приходилось сталкиваться по жизни тоже имеются (Стив Возняк, Лукас, директоры Disney и т.п.), но их биографии представлены только в том количестве, чтобы была понятна общая обстановка в той или иной компании.

Сам Джобс описан не особо приятным человеком, хотя авторы и старались сгладить общее отрицательное впечатление, особенно в конце, когда после второго прихода в Apple Джобс якобы изменился в лучшую сторону. Вообще по описанию Джобс до его изгнания из Apple видится каким-то зазнавшимся парнем с не самыми высокими моральными качествами, который «зазвездел». Он вроде бы и хочет сделать как лучше, но в результате от его действий получается как всегда. Но самое удивительное, что иногда действия Джобса все-таки приводили в положительным результатам вопреки всякой логике. Да и подчиненным, работающим с Джобсом, не позавидуешь.

Затем идет описание образования компании Pixar и ее покупки Джобсом у Лукаса. Ближе к концу книги iКона становится более скучной, из-за того, что описание происходящих событий начинает напоминать чтение аналитических статей и информации из журналов, куда информация поступает строго дозированно. В этом, правда, авторов трудно обвинять, потому что Apple к тому времени стала довольно закрытой компанией, в которой работникам запретили общаться с журналистами без «надсмоторщика».

Читать далее ‘Книга Янга и Саймона «iКона. Стив Джобс»’ »

Стивен Леви. «Хакеры. Герои компьютерной революции»

hackers

Про существование этой книги я узнал в ЖЖ от [ljuser]gremlinable[/ljuser] из комментариев к записи про книгу Линуса Торвальдса. Знаете, давно я не получал такого удовольствия от чтения околокомпьютерных книг, причем «Хакеры», пожалуй, самая грустная IT-книга, которая мне попадалась. С легкой руки журналистов и телевизионщиков сейчас слово «хакер» стали применять к любому моральному уроду, который скачал генератор вирусов. А вот судя по книге, это слово появилось в конце 50-ых, начале 60-ых годов прошлого века в жаргоне программистов, работающих в Массачусетском Технологическом Институте (МТИ, MIT) и обозначало людей, которые досконально знали работу вычислительных машин того времени (назвать их словом «компьютер» у меня не повернутся пальцы). Даже не просто досконально знали, но и буквально фанатели от работы за терминалом.

Эта книга охватывает четыре десятилетия: с конца 50-ых по начало 80-ых годов и начинается с описания клуба технического моделирования железной дороги в том самом МТИ, а первые компьютеры (надо же, повернулись 🙂 ), которые упоминаются — IBM 704 и TX-0 (картинка), потом появились PDP-1 и PDP-6. В книге довольно здорово показано развитие и компьютеров и хакеров в первоначальном смысле этого слова, в основном развитие показано через биографии хакеров.

Книга разделена на три части и посвящена трем поколениям хакеров: первая часть посвящена 50-60-ым годам и хакерам из лаборатории искуственного интеллекта в МТИ, показаны их повадки и среда обитания :).

Читать далее ‘Стивен Леви. «Хакеры. Герои компьютерной революции»’ »

Книга Торвальдса и Даймонда «Just for Fun. Рассказ нечаянного революционера»

just_for_funВот, знаете, люблю я почитать книги в стиле ЖЗЛ. Причем, обычно начинаю читать подобные книги не из-за самой биографии пациента описываемого человека (личная жизнь его меня вообще не интересует), сколько узнать про положение дел в той области, в которой он работает (или работал).

Книгу «Just for Fun. Рассказ нечаянного революционера» я начал читать с той же целью — узнать историю развития Linux’а. Кроме этого, в книге Линус вспоминает свои первые компьютеры, спор с Таненбаумом по поводу того, что лучше микроядро или монолитное, встречи с другими людьми, известными среди компьютерщиков, разумеется, описывает свою биографию, к счастью, не особо подробно в плане личной жизни, больше про учебу и программирование. Одна глава посвящена взглядам Линуса на копирайт, надо сказать, вполне здравое отношение, без фанатизма как у Столлмана.

Книга написана двумя авторами — самим Торвальдсом и его другом-журналистом Даймондом, который и предложил написать эту книгу. Техническое развитие Linux’а достаточно подробно описано для его первых версий (точнее 0.01-ых), а потом уже пошли общие слова о количестве пользователей и т.п. Все-таки книга явно нацелена не только на программистов, потому что авторы не делают особый упор на техническую сторону развития операционки, а для нетехнарей даже советуют пропустить самую интересную, на мой взгляд, главу, где описываются особенности процессоров в первых компьютерах Торвальдса.

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

По поводу фамилий в книге есть одна непонятная вещь. Джобс (который Стив) регулярно обзывается «Джобе», а Торвальдсы — «Торвалъдсы». Я так и не понял, то ли это распознавание текста так хромает (с другими словами проблем не заметил), толи это какой-то жаргон.

Филип Болл «Критическая масса»

Филип Болл. Критическая массаМесяц назад в поисках чего бы почитать интересного наткнулся на книгу Филипа Болла (Philip Ball) «Критическая масса». Почитав отзывы на нее в интернете, заинтересовался и заказал ее в одном интернет-магазине.

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

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

Понравилось, как автор постепенно и очень аккуратно в течение нескольких глав рассказывал историю развития физики и социологии, постепенно сводя их все ближе и ближе. Болл начал с рассказа о политической теории Томаса Гоббса аж XVII века. Для тех, кто, как и я, из институтского курса философии помнит только то, что философы — это такие люди, которые простые вещи объясняют сложными словами, напомню, что Гоббс написал книгу «Левиафан», в которой попытался вывести политику на уровень науки.

Автор описывает общую историческую ситуацию, которая сложилась к тому моменту, когда был написан «Левиафан». История и, особенно, философия никогда не были моили любимыми предметами, но после первых глав «Критической массы» многие школьные и институтские факты (уже порядком позабытые) по этим предметам выстроились в более ясную картину.

Читать далее ‘Филип Болл «Критическая масса»’ »

Головатый, Каплан-Мосс. «Django. Подробное руководство»

Django. Подробное руководствоНедавно вышла новая книга про Django — фреймворк для веб-приложений -, которая называется «Django. Подробное руководство». Это уже вторая книга про Django на русском языке, про первую я уже писал.

«Django. Подробное руководство» написана двумя авторами самого фреймворка (А. Головатый и Д. Каплан-Мосс), так что эту книгу можно считать источником из первых рук. Если прошлогодняя книга (авторы Дж. Форсье, П. Биссекс и У. Чан) это скорее руководство для ознакомления с Django, то новая книга описывает возможности фреймворка намного подробнее. Авторы во введении признались, что их цель — сделать читателей экспертами по Django.

Перед чтением этой книги уже желательно знать Python. Если у Форсье и др. была глава, посвященная основным конструкциям языка, то здесь отдельно про сам Python ничего не написано, что, на мой взгляд, правильно. Авторы, правда, в первых главах кратенько (одно-два предложения) описывают, что делают некоторые конструкции языка, когда те встречаются в коде программы, но это все не серьезно.

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

Первая часть раскрывает все то, что написано в книге Форсье и co. Дело в том, что предыдущая книга содержала в себе много больших законченных примеров, а в этой книге все примеры написаны как можно более сжато (максимум полстраницы), чтобы показать какую-то отдельную деталь Django, многостраничных приложений здесь нет.

Читать далее ‘Головатый, Каплан-Мосс. «Django. Подробное руководство»’ »

Алекс Макки. «Введение в .NET 4.0 и Visual Studio 2010 для профессионалов»

Макки. Введение в .NET 4.0В апреле Microsoft выпустил 4-ю версию .NET Framework. Полистав обзоры новых возможностей в интернете, решил, что пора переходить на эту новую версию (сейчас использую .NET 2.0), а для этого желательно что-нибудь поподробнее почитать про новый Framework. Неожиданно попалась книжка А. Макки «Введение в .NET 4.0 и Visual Studio 2010 для профессионалов», в которой как раз и описываются изменения, произошедшие в .NET 4.0. Вчера дочитал эту книжку и могу сказать, что она ужасна, но давайте все по порядку.

В принципе, в книге описывается все то, что я от нее ожидал — только изменения в .NET 4 без описания языка C#, а то попадалась одна книжка, где на обложке красуется C# 2010, но 90% содержание там — обучение языку C#. В этой книге все нормально, считается, что сам язык и основные библиотеки вы уже знаете на уровне .NET 3.5, и по сути автор предлагает развернутый changelog.

Начинается книга с обзора новых возможностей среды Visual Studio 2010, где автор пробегается но основным новым фичам. Такой беглый обзор раздражает, потому что представление об одной возможности еще не успевает сложиться, а автор уже переключается на другую. Правда, автор еще во введении предупреждает, что он не собирается описывать каждое нововведение очень уж подробно, а жаль, я, конечно, не ждал от него уровня Рихтера, но хотелось бы что-то похожее. Кстати, Рихтер уже написал новое издание книги CLR VIA C#, где описаны возможности .NET 4.0, когда она выйдет на русском языке неизвестно, но на английском ее уже можно скачать.

Читать далее ‘Алекс Макки. «Введение в .NET 4.0 и Visual Studio 2010 для профессионалов»’ »