ash’s blog / все про bookreview

“Programming Collective Intelligence”

Toby Segaran
Programming Collective Intelligence. Building Smart Web 2.0 Applications

August 2007, 360 pages


ISBN: 978-0-596-52932-1

This book is a collection of different methods of obtaining extra information from publicly available data. The author declares that Web 2.0 should not only be considered a vast container of user generated content. Web 2.0 term should be considered wider: all the content which is published by separate site owners is also a source of hidden information, which can be extracted by taking massive amounts of such pages. This second—and not well known—aspect is exploited by Google, for example, when it rates pages with the help of external links to each page.

First eleven chapters lead the reader from basic algorithms towards more difficult ones, and the last, 12th chapter, summarizes all the algorithms mentioned in the book. Appendixes cover maths used in the algorithms and contain the links to useful external libraries.

Description flows along with the programming code; author uses Python. I find this combination not too productive and convenient for the reader. It does not matter which programming language the reader prefers, they will definitely understand Python syntax and will be able to copy the logic in their own prefered language. The point is that when you need to learn (or refresh) the idea of an algorithm, you cannot do that without skipping the descriptions, which describe the code, not the algorithm. The structure of an algorithm is being expressed via the code, which adds lots of unnecessary details such as procedures of reading files and converting their content to a memory-located matrix. An intent to allow the reader with any level of knowing Python and any level of general programming skills leads to the need of avoiding SQL servers and using SQLite instead. That makes the dependence on code even deeper, and leads to less readable code as it has to include more instructions which—again—have no direct relation to the algorithm.

The presence of chapter 12 Algorithm Summary smoothes the sharp corners of previous code-extensive chapters. I would personally prefer more descriptive algorithms in the main chapters and the code in appendix.

Anyway, the book gives good introduction into modern techniques of data mining in the reality of modern internet, and is useful as both a guide for those who would like to expand their knowledge of how to deal with Web 2.0 data, and for those who wish to make their understanding of the topic wider.

I would recommend it to everyone who starts any web service or site which relate to processing of multiple data (both textual and numeric), and for those who are interested in modern methods of processing such data. It also helps to understand how popular online services—ranking, filtering, recommending, etc.—work.

4 stars. ★ ★ ★ ★

bookreview, book, web20 — 28 июля 2009

«XSLT. Сборник рецептов»

Сел Мангано
XSLT. Сборник рецептов

2008, 864 с.

М.: ДМК Пресс, СПб.: БХВ-Петербург

ISBN: 978-5-94074-419-1, 978-5-9775-0292-4

Перевод на русский язык второго издания XSLT Cookbook (ISBN 0-596-10974-7) издательства O'Reilly.

Название книги полностью соответствует содержанию. Эта книга — сборник рецептов по программированию на XSLT. Книга состоит из 16 глав, в которых описаны язык XPath, работа со строками, математические операции над числами, приемы обработки данных, содержащих дату и время, задачи обхода дерева и отбора элементов, возможности XSLT 2.0, преобразование XML в текст, XML, HTML и SVG, возможности генерации кода, выполнение запросов к наборам данных, а также рецепты применения в «вертикальных» приложениях, элементы расширений, тестирование, отладка и обобщенное функциональное программирование.

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

Автор предполагает, что читатель знаком с основами XSLT и XPath. Книга не является ни учебником, ни справочником по XSLT, однако если учесть, что до настоящего времени на русском языке издано три или четыре книги, которые уже исчезли из магазинов, книга Сэла Мангано может служить и справочником для тех, кто знаком с XSLT 1.0 и желает узнать о нововведениях в XSLT 2.0 и XPath 2.0.

В книге описано большое число задач, которые могут быть решены с привлечением других языков программирования. В частности, глава 5 Математические операции над числами содержит сложные примеры для эмулирования средствами XSLT математических функций, функций преобразования чисел в разные системы счисления, статистических вычислений и даже работы на уровне битов. Несмотря на то, что эти (и многие другие) задачи возможно решить, используя только XSLT, часто более оправданно (как с точки зрения эффективности разработки, так и скорости работы программ) целесообразно перенести логигу в приложение, созданное на традиционном языке программирования, поручив XSLT-процессору выполнение задач, связанных с преобразованием XML-структур, а не с вычислениями. Однако познакомиться с методами неординарного программирования на XSLT стоит любому разработчику, который использует XSLT в своей работе.

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

5 звезд. ★ ★ ★ ★ ★

bookreview, xslt, book — 26 июля 2009

“Making Things Happen”

Scott Berkun
Making Things Happen. Mastering Project Management

March 2008, 408 pages

O’Reilly. Series Theory In Practice

ISBN: 978-0-596-51771-7

This is one of the books in my home library which is relatively new (I've bought it at YAPC::Europe in August of 2008) and at the same time its cover is already curved and rumpled. I was reading the book in metro, planes, busses and home. Nice reading.

“Making Things Happen” is written by a man used to work at Microsoft and took part in projects including Internet Explorer. Not that this is the browser everyone is happy but noone can doubt that that is an example of a very complicated software project which needs hard manager work.

The book consists of three parts covering different areas of project management: Plans, Skills and Management itself. It is aimed for managers and leaders of any level. As it is stated in the Preface, the book is suited for experienced team leaders and managers, new team leaders and managers, individual programmers and testers, or other contributors to projects, and students of business management, product design, or software engineering. Not being all of those myself, I can assure that seems to be truth.

There exist many modern techniques of how to manage projects; each is widely explained in multiple books. “Making Things Happen” does not propose any brand new technique or hi-end of people management. It just explores the bits of project flow in natural language. Different chapters cover both methodological issues and relations between people. How-to receipts are intersected with thoughts of problems arising when you work with people. For example, there is a chapter How not to annoy people. Everyone knows that it is not possible to make everyone in the team happy and follow his proposals, but not every manager is able to cease tension.

Ideas are illustrated by hand-made-style sketches (I don’t think that was a good idea). Here is an example of the discussion of how to handle different opinions after the problem was defined. Usually after a team is faced any new task, many different suggestions appear, and the task of a manager is to minimize the possibility of breaking the deadline. Estimations never work for long periods, that is why the author offers to split even that process into parts with visible sub-deadlines. Simple, but illustrates how important sometimes it is to have rigid marks in the creative process—the process which involves human brain producing ideas, which are not the subject of maths when you are trying to prepare the specification before fixed date.

Chapters are accomplished by exercises. This is an example of such questions, found after the chapter of the same title as the book itself:

Have you ever worked for someone who kept changing her mind? What impact did this have on your ability to get things done? What about someone who never changed her mind?

Finally, I’d like to note that the author of this book really talks about how to complete things. How to cut off parts which are not necessary and how to drive your forces towards the result.

5 stars. ★ ★ ★ ★ ★

book, bookreview — 5 июня 2009