Sunday, July 22, 2018

Джордж Мартин "Игра престолов"

Я долго не решался читать "Игру престолов". Серия получила популярность, в том числе, за неожиданные сюжетные повороты, а они мне уже были известны, спасибо сериалу. Кроме того, я слышал много критики в адрес Мартина как писателя и может быть, где-то внутри, боялся что впечатление от великолепного сериала будет испорчено (как будто оно и так не было испорчено последним сезоном!). Однако, кроме сюжета в сериале была масса других великолепных моментов, поэтому, не убоявшись писательского мастерства Мартина, я все же взялся за "Игру престолов". И не пожалел. И вот почему.

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

Битвы в "Игре престолов" интересны не только тактическими маневрами, а тем, что в них участвуют люди. Каждая схватка - это схватка полководца с полководцем, человека с человеком. Каждый из них - отдельная личность и выстраивает тактику в соответствии со своим характера. Полководцы учитывают личности противника и планируют сражения взяв это во внимание. Тайвин Ланнистер  всегда стоит в резерве и вступает в битву в решающий момент, Джейме Ланнистер всегда идет в атаку, Русе Болтон хитрый и осторожный. 

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

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

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

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

Мартин проделал огромную работу создав обстановку в которую хочется верить и персонажей которым хочется сопереживать, а также закрученный сюжет полный интриг и неожиданностей. Казалось бы - формула успеха! За что же его критиукуют?

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

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



Friday, June 8, 2018

Анджей Сапковский "Меч предназначения"

"Меч предназначения" - вторая книга из цикла о ведьмаке и она мне понравилась намного меньше чем первая. Но начнем с хорошего.

"Меч предназначения" - это отличное фентези приключение. Образы яркие, ситуации как будто фильм проигрываются перед глазами. Два предложения и вот ты уже среди гор разговариваешь с золотым драконом, или сражаешься с ордой монстров ночью под мостом. Я ценю это в книгах - когда ты с головой ныряешь во что-то захватывающее и интересное, когда ты в реальности, в вагоне метро, испытываешь те же чувства и эмоции, что и герои. Именно поэтому я люблю фентези - эти книги воплощают мою мечту попасть в мир с героями и магией.

Что же не так с "Мечом предназначения"? Во-первых язык. То ли дело в том, что первую книгу я читал на английском и просто не мог заметить там явных огрехов, то ли в переводчике (хотя я читал, что перевод Евгения Вайсброта лучший из всех), то ли сам Сапковский так пишет, а может быть все вместе, но язык мне показался очень топорным. Где-то он слишком простой, где-то излишне вычурный, где-то видно что автор натужно старается передать какую-то мысль, но эффект такой же как если бы всех этих прилагательных и причастных оборотов не было. Это сильно ломало мне опыт. Как будто в какой-то момент замечательный складный фильм останавливается и начинается излишняя драма, когда неумелый актер кричит плохо заученные слова вроде "Брось меня, Базовски!"

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

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

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

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

Однако кредит доверия выданый "Последним желанием" на "Мече предназначения" не иссяк. Я попробую почитать и следующие книги серии, надеюсь что с ними все будет уже получше.

Friday, April 20, 2018

Роберту Иерузалимски "Программирование на языке Lua. Третье издание"

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

Как я уже написал, Lua - динамически типизированный язык и, возможно, для того времени когда создавалась первая версия это казалось хорошей идеей. В современных реалиях, к сожалению, динамизм приносит больше проблем, чем пользы и даже автор явно указывает на это в книге. Я не изучал вопрос, но возможно к Lua уже есть расширения для статической типизации, типа Type Script для Javascript, даже если так, программисту стоит несколько раз подумать прежде чем добавлять в рантайм языка, парадигма которого минимализм, библиотеку для синтаксического сахара. 

У Lua и Javascript есть много общих моментов и, в принципе, понимая как работает Javascript, проблем с Lua возникнуть не должно. Представления объектов как ассоциативных массивов, области видимости переменных (по умолчанию в Lua все переменные глобальные), замыкания - все это работает очень похожим образом. Чисто теоретически, Lua можно использовать как формат описания данных, заменяя тем самым JSON, и выигрывая по скорости чтения и интерпретации данных (естественно, с запущенным интерпретатором).

Lua довольно гибкий язык и с этой гибкостью следует быть очень осторожным. Например, все функции в Lua анонимные, а если у функции есть название, то это всего лишь переменная, ссылающаяся на анонимную функцию. Что это значит? Что стоит вам переприсвоить переменную, как вы тут же навсегда потеряете свою функцию. И, несмотря на то, что в своем коде ты сам себе злобный буратино, полная мутабельность данных превращает всю ситуацию в поле из граблей. Полная мутабельность данных означает что даже библиотеку, написанную на Lua можно изменить (если программист не предпринял дополнительных мер для запрета мутабельности) и переприсвоить функции из библиотеки любое значение которое захочет пользователь. То есть ваша библиотека вместо функции может попытаться вызвать численное значение, потому что пользователь решил переприсвоить переменную, содержащую функцию. Взрыв мозга.

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

Память в Lua контроллируется сборщиком мусора. До Lua 5.0 сборщик мусора был stop-the-world, в следующих версиях при каждом выделении памяти интерпретатор выполняет какое-то количество шагов сборщика мусора, таким образом достигается псевдо параллельность и ускоряется работа программы. Есть возможность контроллировать количество шагов сборщика мусора, отключать его и включать снова как из С так и из Lua. Любые объекты для которых память выделялась в ручную из С также должны быть собраны вручную, так как сборщик мусора о них ничего не знает.

API совместимости с С с одной стороны очень низкоуровневое, с другой максимально легковесное. Работа осуществляется через стек, на стек кладутся значения аргументов функций, со стека также забирается результат. Существуют функции позволяющие менять стек, манипулировать значениями не снимая их со стека (например конкатенировать строки). Между различными модулями используется общий реестр, хранящий глобальные значения, а также можно использовать значения upvalue, которые представляют собой замыкания, но для С функций.

"Программирование на языке Lua" считается библией языка - той книгой, которую стоит давать каждому, кто собирается использовать Lua. Тот факт что она состоит всего из 300 с лишним страниц, говорит о его размерах и о количестве знаний требующихся для его понимания. Однако компактность и легкость языка делает его сложным для разработки, в том плане, что нужно быть постоянно внимательным и следить за всем, что ты пишешь, так как ни одна IDE не может понять в динамических языках что на самом деле имел в виду программист.

Со своими целями Lua справляется очень хорошо. Писать небольшой скрипт для склейки блоков написанных на С должно быть быстро и эффективно, но писать на нем какой-то более масштабный проект кажется не лучшей затеей.

Friday, March 16, 2018

Дэниэл Киз "Множественные умы Билли Миллигана"

Я взялся за эту книгу, потому что диссоциация личности кажется мне довольно интересной темой, а история Билли Миллигана, пожалуй, одна из самых ярких в практике лечения этого растройства. Я ожидал прочитать объяснение механизмов возникновения множественных личностей, историю болезни и мнения экспертов. Получил я, однако, совершенно другое: биографию больного и описания тяжелых моральных дилемм, цена которых жизни и психика людей. 

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

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

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

Я подозревал, что в государственных психиатрических клиниках США, также как и в моей родной стране не происходит ничего хорошего. Насколько мне известно, Киз выпустил еще одну книгу, конкретно про то как Миллигану жилось в клиниках строгого режима. Книга была запрещена в США за критику медицины, однако была выпущена во многих других странах. Думаю стоит почитать и ее, но с доброй долей скептицизма, с которой стоит читать и "Множественные умы Билли Миллигана".

Saturday, March 3, 2018

Jesse Schell "The Art of Game Design: A Book of Lenses"

This book is a collection of useful questions that help you to understand how to make a game better on each step of the development process from idea generation to final release. Something like Bible for a game designer.

The main idea of the book is that game designers don't create games - they create experiences. A good game should generate right emotions in a player and help the player to feel himself in the skin of someone else (like the king or military general, or coffee shop owner etc). People like games when they feel immersion and this is the main goal of a designer to create this feeling. The game is a mere instrument to achieve the main goal - create an experience. You can create an experience in different ways, not only by the game but with book or movie and even within a game genre experience can be created by sports game or board game or video game. The game designer should understand what will serve him best to deliver right feeling to the player and chose the right genre to work in.

One of the most useful skills of the game designer is listening. It is helpful on every step - from idea generation to understand the team. For me, the most insightful thing was that listening to yourself during different experiences is the key point for idea generation. Many genres of art have their own ways to deliver an experience and something you like and something you don't. If you understand what do you particularly like in one thing and don't like in another it will help you to understand more about how to deliver an experience you want to a player. Or even more: what experience you want to deliver to a player.

"The Art of game design" is the book about games, and more specifically video games (however many advice are applicable in other arts as well), so it covers all aspects of game development. It destructures the games to four main parts - Mechanics, Aesthetics, Story, and Technology. Usually, by making decisions on each of these four parts you form a game that delivers an experience you want. 

Another good advice from the book is that process of development should be iterative. You always have to start with the simplest thing, then ask yourself questions about problems you see and then constantly improve your game by answering these questions and always checking - does the game deliver an experience you want, or not.

Other advice in the book is about very concrete things that I think it doesn't make sense to retell it here. I will definitely reread certain chapters of the book if I'll finally decide to build my game.

Saturday, December 30, 2017

Chuck Palahniuk "Choke"

I had experienced so many emotions during reading this book. At first, I didn't like, then I tried to convince myself that the novel is not good, but it became harder and harder because I started to understand what is it about. And in the end, I closed with a thought "Yes, I like it!".

First thing I love about "Choke" is narration. Palahniuk gives you short chunks of the story without time connection but intentionally to let you understand the next chunk. Every chapter reveals you more and more puzzle details that in the end form you a whole picture. Every chapter you think that you understood, and then, the next chapter gives you something that let you see the story from a new angle.

I have so many posts blaming different books for a lot of redundant information. "Choke" is just perfect in this sense. Despite it contains a lot of sex scenes, each one reveals some very important information about the main hero and shows why he decided to do the next action. You literally cannot remove any scene without losing the sense of the story. It was quite an interesting trick from the author, by the way, to show how sexaholic thinks through the process of sex.

"Choke" is a short novel but deep at the same time. It is built around one strong idea and every sentence serves to explain it. And the text still doesn't feel dry instead it is very light and artistic. 

Images and symbols are bright. Some of them are quite stereotypical but they still have some zest, that makes the narration interesting. I love the idea of a colonial museum where the main hero works, showing his ignorance and comfort zone, and I love the idea of Dr. Paige Marshall showing literally the hero's future. 

All scenes are made the way to expose the culmination. One small detail, even one exact word turns all the picture that you saw before upside down and it strengthens a lot an effect of culmination. This is really a perfect work of the writer, he did it like a director who shots a movie, but without a movie.

I said a lot about how the book is written instead what is inside because I don't think it is worth to retell the plot - it is much better to read it yourself (it isn't long). The main idea is simple - if life is terrible it is you who you need to blame. You should find a reason and no matter how difficult is it you should get rid of the source of your problems. And then you should decide who you really want to be and build your life as you want. Any crisis has a source and any crisis can be overcome by removing the source. 

If we talk about a modern fiction I think this book is definitely worth to read. 

Tuesday, December 19, 2017

Joseph Campbell "The Hero with a Thousand Faces"

Every time someone notes that he has already heard/seen/read the same story somewhere else, usually he hears an answer “Of course, there is even a book that says that all stories are actually the same and has the same structure!” People usually mean “The Hero with a Thousand Faces” and it seems that they have no idea what are they talking about.

“The Hero with a Thousand Faces” is a work of comparative mythology. Indeed it introduces the term “monomyth” to define the common structure of legends in different cultures. However, at the end of the book, Campbell says that all myths are different. Despite some of them have something in common, some of them share common archetypes, the proportion of equal things is not large.

This book is not giving a skeleton of every myth in a world. Instead, it investigates what different myths have in common and why people who were in thousands of kilometres from each other, without any way to communicate, with contradicting moral foundations still tell stories about same things, with same archetypes.

No matter how different people are, they are still humans. They have same nature and same structure of brains. Apparently, Campbell thinks that it is a reason why myths of different cultures have something in common. He tries to explain plots, archetypes, characters with Freud’s theory of the unconscious. 

However this suggestion makes a lot of sense, and some things really have an obvious connection with Freud’s theory, I could not understand a majority of parallels. Some proofs were not enough for me, others were far-fetched. Sometimes the author doesn’t even try to prove his point of view, he just gives tons of myths fragments and then states the proposition without even explaining it.

And about the myths fragments — the book consists, I guess, by 80% of myths fragments. And I’m not overestimating: the author makes a statement, then adds two or three different myths passages. Passages are very long and take few pages each with verbose dialogs full of redundant phrases (like one phrase repeated three times), synonym, and multiple sentences that describe the same thing. It makes the reading process much more difficult. For effective prove, it would be enough a short retelling and a reference to the original myth. 

Author’s language is very complicated. I reread each paragraph at least five times and sometimes didn’t understand the main thought. And it seems the problem is not in my knowledge of English, because my friend, who read it at the same time but in Russian always complained me that he doesn’t understand half of a book. I think though it can be because of the age of a book. Nowadays literature adapted to the weak attention of a reader and talks with him very gently. Whereas books of start and middle of the twentieth century are very tough. 

The end of “The Hero with a Thousand Faces” is about modern myth. Campbell says that nowadays when there is no unknown land and science is on top of everything the modern hero goes not to the world of dead or to the mountain of gods, but inside himself. The biggest mystery now is the man himself and the one who is able to descend to his unconscious and meet the inner’s god blessing will be the hero and the savior.