суббота, 15 июля 2023 г.

Сборка UnrealEng для мака с процессором Apple Silicon


Юрий «yurembo» Язев

Unreal Engine пятой версии и выше компилируется в macOS на процессоре Apple Silicon прямо «из коробки», потому что изначально имеет их поддержку. В то же время версия 4.х движка специально под них не затачивалась и, следовательно, не обязана собираться в таком случае без танцев с бубном.

На новом проекте мне надо было скомпилировать UE 4.27.2 на маке с процессором M1, являющимся участником линейки Apple Silicon. Я скачал исходники движка из нужной ветки GitHub’а — UE 4.27-plus. Следуя описанию установки из официальной документации, я скачал дополнительный бинарный контент путем выполнения скрипта Setup.command. После этого с помощью скрипта GenerateProjectFiles.command создал файлы решения для компиляции компонентов движка.

Затем посредством созданного файла решения UE4.xcworkspace я запустил Xcode и загрузил в него компоненты движка. Следуя все той же документации, в первую очередь компилирую проект ShaderCompileWorker. Через небольшой промежуток времени сталкиваюсь с ошибками линковки. Из чего следует, что товарищ ShaderCompileWorker не построился, а без него движок работать не будет.

рис. 1. Ошибки построения проекта ShaderCompileWorker в Xcode

На самом деле для компиляции ShaderCompileWorker есть специальный скрипт. В терминале переходим в каталог /UnrealEngine-4.27-plus/Engine/Build/BatchFiles/Mac и выполняем скрипт build.sh сначала с параметром -clean, чтобы очистить папку от результатов прошлой компиляции. Дополнительно между именем скрипта и параметром надо добавить целевую платформу компиляции, в нашем случае: Mac Development. В итоге, с учетом всех нюансов, получаем следующую команду:

./Build.sh ShaderCompileWorker Mac Development -clean
рис. 2. Терминал: очистка каталога

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

рис. 3. Терминал: результат компиляции

Теперь можно снова открыть Xcode, выбрать проект UE4 и построить движок. У меня компиляция движка длилась 5,5 часов. UnrealEng на любой платформе долго строится — слишком большой проект. После этого движок будет готов к работе. 

среда, 28 июня 2023 г.

Bookwalker


Юрий «yurembo» Язев


Как песок сквозь пальцы уходят последние минуты моей полугодовой подписки Xbox Game Pass. Я листаю страницы подписочного сервиса в поисках игры, на которую мне еще хватит времени. Чтобы только посмотреть, поскольку для глубокого знакомства его точно не хватит.

Мой выбор падает на только что вышедшую игру от инди-издателя tinyBuild — «The Bookwalker: Thief of Tales». Быстро скачиваю ее на консоль, размер игры не превышает четырех гигабайт. Разработкой игры занимается московская инди-студия Do My Best.
 
По сюжету мы играем за писателя, способного путешествовать по литературным произведениям, извлекать из них фантастические сущности в реальность. Также наш писатель может взять из реального мира вещь, и использовать ее в процессе повествования. Этот процесс по извлечению фантастических вещей из книг поставлен на поток, и у писателя есть заказчики. Задумка классная! Свежая идея. Давненько ничего такого не придумывалось, не изобреталось.

После запуска игра предоставляет нам для управления героя с видом от первого лица:


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

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


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

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

Между тем, я с интересом прошел задание книги — выполнил первый заказ: раздобыл оживляющий раствор. Но потом у меня закончился Game Pass.

суббота, 17 июня 2023 г.

Xbox Games Showcase 2023

Размышления о космической экспансии


Юрий «yurembo» Язев


В рамках Summer Game Fest 2023 было много игровых презентаций, где показали огромное количество самых разных видеоигр, ждущих своего выхода в ближайшие год-два. Как кульминацией среди всего этого стала презентация от Microsoft — Xbox Games Showcase. На мой взгляд, она получилась на голову выше всех предшественников, в том числе презентации от PlayStation. Причина этого в том, что игры, показанные на презентации Xbox, превосходят всё, что было показано ранее. Всего было показано 22 игры. Благодаря Xbox Game Pass, я с удовольствием поиграю в каждую из них. Однако из всего этого списка с большим энтузиазмом я ожидаю две игры: Starfield и Hellblade II. Первую, потому что она про космос, вторую, потому что первая её часть мне очень понравилась.

Из аппаратных средств была представлена обновленная Xbox Series S. В ней новые только два компонента — это цвет — на этот раз черный и увеличенный SSD — 1 TB. В остальном изменения не были объявлены, значит, их нет. С одной стороны это радует. Как владелец первой ревизии, теперь я могу быть уверенным, что в ближайшее время игроделы будут оптимизировать игры под младшую версию консоли, так как с легкой подачи Microsoft, она получила официальное продолжение своей жизни. С другой стороны это означает, что в графическом плане игры не будут совершенствоваться, тем самым в развитии они будут топтаться на месте.


Я обожаю фантастику про будущее, а, если это фантастика, в том числе, про космос, мой интерес возрастает двукратно. Любопытно, насколько разработчики углубились в современные исследования, чтобы правильно отобразить картину космоса и предложить сбалансированную фантастику, поскольку многие события, происходящие в космической фантастике, не могут иметь место в реальности. Тем не менее, я не требую предельной точности в тех случаях, где реальная физика влечет ухудшение опыта от игры. Например, я не настаиваю на том, чтобы убрать звуки от взрывов, которые в космосе отсутствуют, или огненные эффекты от тех же взрывов, которых тоже нет в космосе, в виду отсутствия кислорода. Без этих составляющих игры однозначно не станут лучше!

Но заезженные варианты стремительного перемещения в пространстве давно пора изменить. Скорость света – не такая уж быстрая в галактических масштабах. Но двигаясь на ее пределе, не трудно ненароком налететь на какой-нибудь космический объект. Этот эффект сполна рассматривается в книгах «Дюна» Френка Герберта и его последователях: Брайана Герберта (старший сын Френка) и Кевина Андерсена (соавтор). Или мгновенная остановка звездолета после светоскоростного ускорения. Ведь в космосе нет атмосферы, а значит, чтобы остановить корабль нужно приложить ровно такую же мощность, как для его ускорения. Сюда же можно отнести необоснованные варп-прыжки. Как это происходит, где находится звездолет во время варп-движения? Этот момент надо пояснить и сделать из него игровую механику.


Интересно будет посмотреть, как эти и многие другие события обыграны в Starfield

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

Но перейдем к другой игре из моего списка ожидания — Hellblade II. Самая примечательная вещь первой части, на мой взгляд, — это боевка, действия персонажей во время боя. Бои в игре чаще всего сводятся к поединку между управляемым игроком персонажем и противником ИИ. Сами персонажи в игре очень колоритны, выглядят натурально, несмотря на свою потустороннюю природу. В моменты нанесения ударов во время схватки съемка замедляется, что позволяет ощутить их силу, увидеть проворность героев. 

Скриншот из первой части

Скриншот из первой части

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

Захват движений для первой части


Захват движений для первой части

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

Захват движений для второй части




пятница, 16 июня 2023 г.

Tunic

Юрий "yurembo" Язев

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


Игра затянула меня настолько, что незаметно для самого себя, я прошел её до конца, затратив более 18-ти часов. В итоге я не нашел только 8 страниц путеводителя по игровой вселенной. Да-да, игроку не дается полный путеводитель в начале игры, его надо собирать по мере прохождения, тем самым вникая в сюжет постепенно. Я не скажу, что оббежал все локации и открыл все секреты, потому что игра в прямом смысле кишит ими.


Поиграв в Tunic несколько часов после установки, я на некоторое время отложил игру, совершенно не вдупляя, что делать дальше и куда идти, так как игра целенаправленно не указывала мне на это, не вела меня за ручку. 


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


Сейчас, после прохождения Tunic, самое время сыграть в Death’s Door — другую изометрическую метроидванию похожую на Tunic. Кстати, Death’s Door вышла раньше, чем Tunic. Я даже купил первую в Steam до введения санкций, но играть в нее я буду на Xbox, потому что она есть в Game Pass, равно как и Tunic.

вторник, 6 июня 2023 г.

Apple WWDC’23


Юрий «yurembo» Язев


Добавлю от себя пару слов о прошедшей ежегодной презентации Apple для разработчиков, о том, чем она стала интересна лично для меня.


Началась презентация с представления новых маков. Мое внимание захватили сверх-производительные монстры mac Studio и mac Pro. Первый - это увеличенный в высоту mac mini, а второй — образно говоря, PC системный блок типа tower, ставший стандартом де-факто. 


Но особенно впечатляет их производительность, основанная на процессорах M2 Max и M2 Ultra. Apple не называет количество мегагерцов, а использует сравнительное обозначение мощностей: во сколько раз mac на M2 быстрее такого же мака, базирующегося на интелловском процессоре.


mac studio - передняя сторона
mac studio - задняя сторона
mac pro - передняя сторона
mac pro - вид сбоку со снятой крышкой

Кроме того, mac Pro имеет на задней панели разъемы для подключения устройств по шине PCI-Express.


Следующий блок презентации был посвящен обновлениям операционных систем. Прогресс эволюционный, ничего революционного. Продолжая озвученную год назад тенденцию «геймификации» маков, снова был упомянут графический API Metal 3.0 и, какие прекрасные игры можно создавать с его помощью. На этот раз для подтверждения своих намерений Apple пригласила Коджиму. Коджима-сан рассказал, что очень рад сотрудничать с Apple и безмерно счастлив выпустить Death Stranding Director’s Cut на маках — игру далеко не первой свежести.


Много слов было сказано о новых iOS и watchOS. Затем, как гром среди ясного неба, миру была представлена гарнитура дополненной реальности Vision Pro. Самая смакованная вещица мероприятия. О ней уже написали тексты и сняли видосики все, кому не лень. 


Vision Pro


Гарнитура представляет собой обособленный «пространственный» компьютер. Использует с нуля спроектированную операционную систему visionOS, которая копирует знакомые элементы других яблочных операционок. Управляется visionOS с помощью глаз, пальцев и голоса. Гарнитура имеет кучу датчиков, за обработку данных с которых отвечает отдельный процессор R2, установленный в придачу к M2. 

В процессе демонстрации Vision Pro было упомянуто, что компания Unity станет основным партнером по разработке игр и средств разработки игр под новую платформу. Затем выступил президент Disney, высказавший свои впечатления от гарнитуры и партнерстве с Apple в плане создания контента.

Я думаю, Vision Pro — интересный продукт при должном развитии способный занять свою нишу. По обещаниям Apple, уже в этом месяце можно будет приступить к разработке приложений для Vision Pro с помощью соответствующих API.

понедельник, 15 мая 2023 г.

Об IT всерьёз

Как не вкатиться в АйТи

yurembo


Последние 8-10 лет как грибы после дождя появляются различные онлайновые школы, обучающие премудростям IT. Помню, как в 16-м году писал для «Хакера» рекламную статью одного из подобных учебных заведений о программировании для мака и айфона на Объектном С. К настоящему моменту этих школ стало так много, что они непросто рекламируют себя, а развернули настоящую агрессивную рекламную кампанию, зазывая всех в область IT. Особенно ситуация обострилась последние год — полтора. На фоне специальной операции и последующими за ней громкими событиями (т.к. оттока из страны прогрессивной интеллигенции, не желающей служить в армии) обучающие учреждения стали использовать новые способы привлечения клиентов, базирующихся на отсрочки от армии для IT-специалистов.



Тем не менее есть одна существенная проблема. Такое количество айтишников стране не нужно. РФ — это про похеренное сельское хозяйство и убитую черную металлургию. 



Тут не увязываются высокие технологии. Во всем мире продолжается сокращение IT-специалистов, избыток которых сформировался за «жирные» года ковидной пандемии. Она поспособствовала росту IT-сектора. В настоящее время компании избавляются от избытка человеческих мощностей. На западе высвободившихся из IT-гигантов специалистов с понижением зарплаты подхватят IT-стартапы. А какая ситуация в РФ? В наших широтах не было ковидного роста IT-компаний, а формирование IT-стартапов отсутствует как класс, правда, не совсем, но это происходит в виде исключений из правила. Потому что имеет место быть по большей части в столицах: Москве и Питере. Там, да, что-то новое цифровое иногда появляется, и сотрудники нужны. Но остальные города нашей родины в пролете.



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



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



Тем не менее ни одна онлайновая школа высшее образование не дает. К сожалению, даже при наличие этого образования и опыта работы твое резюме по-сути никому не нужно. Я почти не сомневаюсь, что при должном усердии учащегося в онлайн-школе, он получит твердые знания в выбранной области IT, но толку-то, если работодатели сами не вдупляют, какой сотрудник им нужен? Какая потребность в айтишниках? Где?



Кто бы что не говорил о неэффективности высшего образования (я тоже так считаю), факт его получения остается первостепенно важным при устройстве на работу.


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



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

воскресенье, 7 мая 2023 г.

«Именно в Америке с её антисоциалистической политикой гангстерские банды пронизали всю промышленность, государственный аппарат, армию и полицию, всюду неся страх и коррупцию. Началась борьба со все усиливающимся политическим влиянием бандитских объединений, начались политические терроры, вызвавшие усиление тайной полиции и в конечном счете захват власти олигархией гангстерского типа.

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


«Час быка», Иван Ефремов

понедельник, 1 мая 2023 г.

 Переустановка Visual Assist

…и зачем она может понадобиться

Юрий «yurembo» Язев 

Visual Assist является незаменимым помощником при программировании под Windows в Visual Studio на C++. Его помощь шире, чем от пресловутого IntelliSense, так же он работает гораздо быстрее последнего. Его средства поиска работают очень быстро, ни то, что стандартные средства Visual Studio. Автоматическая генерация кода, такая, как создание реализации класса по его определению, существенно экономит время. Но данная статья посвящена не восхвалению Visual Assist.

Первоначальная установка Visual Assist протекает без проблем. Запускаем исполняемый файл, проходим по шагам мастера установки, радуемся результату.

рис. 1

Тем не менее, в новых версиях Windows 10/11 старые версии установщика Visual Assist могут не запускаться. Для решения этой невзгоды открываем свойства файла, переходим на вкладку «Совместимость», в области «Режим совместимости» отмечаем чекбокс «Запустить программу в режиме совместимости с:» и в находящемся ниже ниспадающем списке выбираем «Windows 7».

рис. 2

После этого инсталлятор обязан заработать. Перейдем к следующей душещипательной теме.

Итак, зачем тебе может понадобиться переустановить Visual Assist? Первое, после переустановки Visual Studio, или установки рядом с имеющейся версией еще одной. Или, что вполне может случиться, сам плагин Visual Assist перестал корректно работать.

Почему Visual Assist может перестать работать? Представь, у тебя лицензионная версия Visual Assist, он нормально работает до поры до времени, затем Whole Tomato выпускает новую версию помощника. Твоя лицензионная версия незаметно для тебя обновляется, и старая лицензия перестает работать. Разработчики хотят, чтобы ты заплатил за новую лицензию деньги, но тебя вполне устраивает предыдущая версия помощника!

Чтобы Visual Assist не обновлялся по своему желанию, сразу после его установки открываем окно «Управление расширениями» (по пунктам меню: Расширения -> Управление расширениями). В списке расширений выделяем Visual Assist и в правой панели снимаем галочку с пункта «Автоматически обновить это расширение».

рис. 3

В качестве контрольного выстрела можно снять галочки с чекбоксов меню «Расширения» в окне «Параметры» (меню Средства -> Параметры…).

рис. 4

Если изначально ты не соблюл вышеприведенные рекомендации, то теперь тебе ничего не остается делать, кроме как переустановить плагин. Переустановка Visual Studio не помогает. Выполни следующие действия. Сначала корректным образом удали плагин из студии. Это делается в окне «Управление расширениями» с помощью кнопки «Удалить» соответствующего плагина (см. рис. 3). Если плагин установлен в нескольких версиях Visual Studio, надо удалить изо всех.

Далее необходимо удалить оставшиеся файлы. Под удаление попадает подпапка VisualAssist, которая находится в c:\Users\<имя пользователя>\AppData\Roaming\. Затем надо удалить ключи реестра Windows: в редакторе реестра regedit удали ветку «Компьютер\HKEY_CURRENT_USER\SOFTWARE\Whole Tomato»:

рис. 5

После этого для чистоты эксперимента можно удалить настройки внешнего вида Visual Studio, расположения панелей и менюшек. Для этого надо перейти в директорию c:\Users\«имя пользователя»\AppData\Local\Microsoft\VisualStudio\. В ней находятся поддиректории, в именах которых стоит номер студии или «номер студии + хэш код». К примеру, в моем случае, для Visual Studio 2019 создана папка с именем 16.0_edf73be1. Из нее/них надо удалить файл privateregistry.bin, содержащий настройки текущего пользователя. При следующем запуске Visual Studio будет иметь начальный вид. Однако, если базовые настройки (такие как: светлая/темная тема интерфейса) хранятся в облаке (в аккаунте, привязанному к Visual Studio), то они будут подгружены.

На следующем шаге надо запустить инсталлятор Visual Assist и установить плагин для всех имеющихся версий студии. Во время установки для каждой версии студии инсталлятор будет выкидывать сообщения следующего вида:

рис. 6

рис. 7

Не обращай на них внимания, так как установка все равно проходит корректно.

Если все сделано правильно, Visual Assist снова будет корректно работать, помогая тебе писать код. Только не забудь заблокировать обновление плагина, иначе всю процедуру придется повторять заново!

понедельник, 30 января 2023 г.

О «Фундаментальных основах…»

Юрий «yurembo» Язев


Чуть более месяца назад вышла книга «Фундаментальные основы хакерства. Анализ программ в среде Win64».


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

Изначально в обновленном издании первые шесть глав были посвящены анализу 32-битных программ. При этом остальные 21 главы — 64-битных. Однако Nik Zer0 — один из наших авторов в журнале «Хакер» обратил внимание, что подзаголовок книги: «Анализ программ в среде Win64», следовательно анализировать 64-битные приложения 
надо на протяжении всей книге.

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

Я написал издателю e-mail о том, что хочу внести изменения в текст и макет книги. Издатель согласился на это мероприятие, тем самым фактически остановив печатный станок.

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

Тем не менее, пятая глава, в которой работа ведется под виртуальной машиной в 32-битной Windows XP, где анализу с помощью IDA Pro подвергается 16-битный COM-файл, не претерпела крупных изменений. Зато главы с первой по четвертую и шестая переписаны почти полностью. Можно сравнить текст книги со статьями на сайте Хакера, где опубликованы старые версии глав.