Архив по категории ‘книги’.

Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»

Рефакторинг с использованием шаблоновДочитал на днях сабжевую книжку. Вышла она еще в 2008 году, но мне она попалась только недавно. По идее, читать ее надо было бы после книги Фаулера «Рефакторинг. Улучшение существующего кода», на которую Кириевски постоянно ссылается, но до Фаулера я пока не добрался, хотя это и не особо затруднило чтение. Вторая книга, которую лучше всего прочитать заранее, это «Приемы объектно-ориентированного проектирования. Паттерны проектирования» банды четырех.

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

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

Читать далее ‘Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»’ »

Тоби Сегаран «Программируем коллективный разум»

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

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

Вот какие алгоритмы описываются в книге:

  • Коллаборативная фильтрация. Или, говоря человечески языком, алгоритмы, которые могут рекомендовать вам какие-то покупки, сайты или музыку в зависимости от оценок, которые вы поставили другим подобным вещам. По таким алгоритмам работает навязывание покупок в интернет-магазинах или подбор музыки на last.fm. В конце главы приводится пример, который будет рекомендовать вам ссылки из сервиса del.icio.us.
  • Алгоритмы группировки (кластеризации). Создаваемый пример анализирует RSS-каналы блогов и пытается их автоматически разделить на группы в виде дерева в зависимости от частоты слов, которые попадаются в блоге. Заодно Сегаран рассказывает как можно сделать так, чтобы названия блогов расположились на плоскости кучками в зависимости от их близости в плане рассматриваемых тем.
  • Отдельная глава посвящена построению поисковиков — созданию паука и, самое главное, рассматриваются алгоритмы ранжирования ссылок, в том числе и с учетом ссылок страниц друг на друга, создавая, таким образом, аналог Google PageRank. Еще интересно, что в этой же главе есть пример, где для выдачи наиболее релевантных ссылок используется нейронная сеть, которая обучается по мере того как пользователь щелкает на понравившиеся ему ссылки.

Читать далее ‘Тоби Сегаран «Программируем коллективный разум»’ »

Компьютерра закрывается. И про другие мертвые журналы

Компьютерра закрывается. И про другие мертвые журналы

Ну вот, под конец года список плохих новостей пополнился еще одним событием — закрывается журнал «Компьютерра», на следующей неделе должен выйти последний выпуск. Если честно, в последнее время я его читал не часто, последний купленный журнал был еще июньский, да и вообще я его почитывал не регулярно, но все-равно жалко. За последний год «Компьютерра» как-то сильно похудела, а теперь вот и такой ее не будет.

Сейчас полазил по разным сайтам, почитал разные мнения по этому поводу, все говорят, что журнал за последние годы (!) стал уже не тот. Ну не знаю, я всегда там находил что-нибудь интересное, правда, пропускал всякие обзоры телефонов и интервью с какими-то менеджерами. Некоторые ругают журнал за то, что там мало осталось тем, напрямую связанные с компами, но мне наоборот нравилось, что редакция не ограничивалась только железом и софтом, а были статьи лишь косвенно связанные с IT: про оружие, экологию, хотя выпуски, посвященные экономике я не переваривал.

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

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

А еще, помнится, из хороших журналов была «Подводная лодка», правда, я ее читал еще в конце 90-ых годов, позже она мне попадалась, но что-то совсем не понравилась. До сих пор где-то у меня лежит выпуск со статьей про то, что Win 98 провалилась по сравнению с Win 95 и про то, что пиратство — это нормально. И именно из этого журнала я узнал про MatLab, которым начал пользоваться только лет 5 назад (а потом его променял на Python :)).

Сейчас же из программерско-айтишных журналов остается читать только RSDN Magazine, но он выходит очень уж редко. Ладно, пусть выходит хотя бы так, чем вообще не выходит.

Про книгу «Django. Разработка веб-приложений на Python»

django Помните, недавно я писал о том, что выходит книга про веб-программирование на Python и Django? Так вот, я ее дочитал, оказалась очень хорошей книгой, очень она мне понравилась.

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

Особенно понравилась манера изложения. Авторы в каждой главе книги умудряются не только рассказать как работает Django, но и заодно сделать какое-то сравнительно полезное веб-приложение. Благодаря этому становится понятно и как работает Django, и как это можно использовать. При этом авторы не обращают особого внимания на оформление создаваемого сайта, поэтому приводимый код остается довольно коротким и наглядным.

Читать далее ‘Про книгу «Django. Разработка веб-приложений на Python»’ »

Выходит книга «Django. Разработка веб-приложений на Python»

djangoВот знаете, нравится мне сайт books.ru, они мне теперь присылают оповещения о новых книгах про Python (уж не помню что я там включал). Вот сегодня от них узнал, что выходит новая книга про веб-программирование с помощью Django. Самое интересное, что как раз недавно я его решил поковырять, а то уж больно интересно как это делать сайты на Python, а то от PHP меня как-то всегда воротило.

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

Не читая ее трудно сказать насколько она хорошая, но по содержанию вроде бы неплохая. По крайней мере есть и про использование баз данных, и про Ajax. Смущает, что она всего 456 страниц, есть у меня какое-то предубеждение к техническим книгам тоньше 500-600 страниц, но посмотрим. Здорово, что год издания книги в оригинале тоже 2009.

Но обложка, конечно, что-то с чем-то на Хабре уже развернулась целая дискуссия по поводу того что-то такого делает мужик со змеей. А книг по Python становится все больше и больше, что приятно.

Джеффри Фридл «Регулярные выражения»

regularТолько что дочитал книгу Джеффри Фридла «Регулярные выражения». Если говорить коротко, то издательство O’Reilly держит планку, книжка стоящая.

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

Вторая часть посвящена обсуждению обработки регулярных выражений. Здесь описывается работа трех типов механизмов регулярных выражений, которые встречаются: так называемые недетерминированный конечный автомат (НКА), детерминированный конечный автомат (ДКА) и POSIX НКА. В основном книга посвящена работе с НКА, который применяется в большинстве распространенных языках программирования (C#/VB.NET, Java, Perl и присутствует в PHP в виде функций preg).

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

В четвертой части подробно описываются возможности разных языков и сред (Perl, Java, .NET, PHP), касающихся работы с регулярными выражениями. На обложке еще упоминается Ruby, но в книге он затронут вскользь, но так же мельком проскакивает и Python с Tcl. Хотя я и не пишу на Perl’е (и надеюсь, что в ближайшее время не буду :)), но главу, посвященную только этому языку прочитал с удовольствием, интересно было узнать что в нем такого есть, чего нет в других языках.

Вообще автор симпатизирует Perl’у, поэтому большинство исходников написаны на нем, но это не страшно потому что, во-первых, в в книге есть раздел, посвященный описанию возможностей Perl’а, которые используются в книге. А, во-вторых, иногда исходник не так важен, как само регулярное выражение. Надо сказать, что автор постарался оформить текст книги так, чтобы даже монстроидальные регулярные выражения можно было бы удобно читать. Для этого он использует выделение части выражений или полужирным шрифтом, или подчеркиванием.

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

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

Выходит еще одна книжка по Python

python3Ура! Среди книжек по Python ожидается пополнение. Скоро должна выйти книга Программирование на Python 3. Подробное руководство, автор Саммерфилд М. Сначала у меня было скептическое отношение к книге, думал, что там будет обычное описание языка, но после просмотра оглавления понял, что ошибался. Эта книжка, похоже, ориентирована уже на практическое использование Python. По крайней мере меня там заинтересовали главы про работу с XML, включая DOM и SAX, работу с сетями, БД (SQL и DBM). Есть глава про процессы и потоки.

В общем, как выйдет, надо будет купить. Я от такой книжки не отказался бы и по Python 2.6, пока у меня переход на Python 3 не ожидается, хотя кто знает. А то, что книжек по Питону выходит все больше и больше, это радует.

Высоцкий в серии ЖЗЛ

vysockij_book_150Давно у меня лежала на КПК книжка Вл. Новикова про Высоцкого из серии ЖЗЛ, и вот, наконец, дошла очередь и до нее. Оказалось, что эта книга является хорошим примером того как тараканы в мозгах автора мешают написать хорошую книжку.

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

А вот что раздражает, так это то, что автора постоянно уносит на антисоветский оффтопик, особенно в первой половине книги. Иногда было такое ощущение, что книгу писала какая-нибудь Новодворская в штанах. У автора явно какие-то детские обиды на СССР (или даже не только на него), причем я понимаю, когда его ругают по делу, но когда что-то просто так все подряд поливают грязью только за то, что это «что-то» советское — это уже маразм. В книге от автора досталось, например, Олимпиаде 80-ого года. Здесь есть две фразы, полностью характеризующая аффтара, первая как раз и связана с Олимпиадой:

Читать далее ‘Высоцкий в серии ЖЗЛ’ »

Про книгу Мацкевича «Солдат империи» и про фильм по книге

Про книгу Мацкевича "Солдат империи" и про фильм по книге

Сижу на днях в кресле, играю на КПК в Worms, родители смотрят телек, начинается реклама какого-то документального фильма. У меня уже давно выработалась аллергия на фильмы, снятые на ОРТ (никак не привыкну, что это теперь просто первый канал) и РТР, да и тут судя по рекламе очередная страшилка на тему СССР vs. США. Но вдруг неожиданно в рекламе называют фамилию «Мацкевич» и начали говорить про систему защиты хвоста самолетов. Вот тут я уже заинтересовался, потому что буквально пару недель назад прочитал книгу того самого Мацкевича, которая называется «Солдат империи, или История о том, почему США не напали на СССР». Фильм, который называется «Как один лейтенант войну остановил», по телевизору я позевал, успел только на последние 10 минут, но потом скачал его с торрентов. Вот решил написать сразу и про книгу, и про фильм.

Читать далее ‘Про книгу Мацкевича «Солдат империи» и про фильм по книге’ »

Марк Лутц. Изучаем Python

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

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

Например, в главе, посвященной общей работе интерпретатора, начинается все с того, как вообще можно запускать скрипты (двойной клик, командная строка и т.п.), затем рассказывается о том как работает виртуальная машина Python, какие файлы и когда она создает, а затем рассказывается о разновидностях Python — CPython, IronPython, JPython, после чего коротко говорится о способах ускорения скриптов с помощью сторонних библиотек (Psyco, Shedskin C++) и кратко упоминает библиотеки для создания полноценных exe-шников (py2exe, PyInstaller и Freeze). В конце каждой главы находится раздел, где автор описывает возможные ошибки при использовании элементов языка, рассмотренные в текущей главе. Некоторые моменты Лутц повторяет по несколько раз для тупых в течение одной главы, но это не раздражает, а новичкам, думаю, это должно сильно облегчить понимание.

Благодаря такому подходу книгу будет интересно читать и тем, кто с Python уже знаком. Я, например, в книге выяснил для себя вопрос, который меня давно волновал: является ли класс list связанным списком. Оказалось, что нет, внутри языка это обычный массив, в некотором роде аналог std::vector из C++. За одно я узнал о существовании некоторых конструкций вроде «a < X < b«. Некоторые конструкции, которыми пользовался до этого, стали казаться более логичными, чем до прочтения книги. Да и вообще появилось ощущение, что все элементы языка выстроились в законченную мозаику.

Понравилось, что Лутц постоянно сравнивает элементы языка Python с похожими элементами других языков (в основном C). Кроме того автор постоянно делает сноски на возможности Python 2.6 и 3.0, которые еще только планировались, когда писалась книга, и в то же время он пишет в какой версии языка появилась та или иная фича.

Из недостатков могу назвать только цену книги. Я ее покупал на Савелке за 1100 рублей, а, как потом выяснилось, в Интернет-магазинах ее продают за 800 рублей. Я эту книгу покупал нам на кафедру, но теперь подумываю купить ее и себе домой. А может быть просто дождусь, когда ее выложат в инет 🙂

В общем, книга на твердую пятерку и на нее можно ставить штамп «маст рид». Теперь хотелось бы прочитать еще книгу того же Лутца «Programming Python», но, к сожалению, на русский ее не переводили, а дойдут ли руки до оригинала не знаю.

PS. Оказывается, «Programming Python» все-таки переводили на русский — http://www.ozon.ru/context/detail/id/1299270/. В электронном виде ее выложил Gluek у себя в блоге.