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

Книга Джульена Вехена «Безопасный DevOps»

В последнее время я больше стал заниматься разработкой для серверной части веб-приложений, короче говоря, бэкендом. И хотя я не особо люблю заниматься админскими делами (самый страшный сон для меня — это искать проблему, почему что-то не работает в сети), но иногда приходится заниматься настройкой серверов, планированием структуры микросервисов и тому подобными делами. Ну и куда ж сегодня без DevOps-а? Грань между программистами и админами размывается, и по крайней мере нужно разбираться, как аккуратно должно развертываться приложение на серверах, каким образом взаимодействуют микросервисы и т.п. И в этом деле меня всегда беспокоит безопасность. Как делать это правильно? На какие грабли наступали другие разработчики, чтобы не повторять хотя бы элементарные ошибки? Держа в голове эту цель я начинал читать книгу Джульена Вехена «Безопасный DevOps».

Автор этой книги c 2013 года работает в Mozilla и занимается безопасностью облачных сервисов. Собственно безопасности и облакам посвящена книга. Конкретно про DevOps в ней сказано не так много (в основном в первой половине книги), зато рассматривается безопасность на различных уровнях, начиная с того, какие типичные ошибки допускают разработчики приложений, что позволяет злоумышленнику провести атаку, и до безопасности на уровне предприятия.

Читать далее ‘Книга Джульена Вехена «Безопасный DevOps»’ »

Про книгу «Современный язык Java»

Обложка "Современный язык Java"В последнее время помимо языка Python (которому, кстати, на днях исполнилось 30 лет) я активно стал использовать Java, поэтому решил углубить свои знания в этом языке и почитать более специализированные книги, которые поподробнее рассказывают об отдельных элементах языка или библиотек. Этот пост будет посвящен одной из таких книг, которую в целом можно охарактеризовать словами «как нам из Java сделать функциональный язык программирования». Речь пойдет о книге трех авторов Рауля-Габриэля Урма, Марио Фуско и Алана Майкрофта «Современный язык Java», в оригинале она называется «Modern Java in Action». Англоязычная версия книги была издана в 2018 году, и на тот момент были актуальные версии Java 8 и 9, а Java 10, который только-только вышел.

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

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

Книга Брайана Кернигана «Время Unix. A History and a Memoir»

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

Пару месяцев назад, просматривая книжные новинки, я обратил внимание на книгу под названием «Время Unix. A History and a Memoir». Одно то, что это книга по истории софтостроения, было бы достаточно, чтобы я ее купил, а тут еще и автор книги — Брайан Керниган. У нас в России он известен как один из авторов учебника по языку Си, написанного в соавторстве с Деннисом Ритчи — автором языка языка Си. Но помимо этого достижения Керниган является одним из программистов, работавших в Bell Labs в том числе и над операционной системой Unix в 1970-х годах. Правда, не над ядром этой операционной системы, но, например, он был соавтором языка AWK, предназначенного для обработки текста (AWK — это сокращение из первых букв фамилий авторов, «K» обозначает «Kernighan»). Разумеется, проигнорировать книгу, в которой рассказывается о легендарной операционной системе от лица непосредственного участника тех событий, я не мог. Кстати, на тему истории Unix-подобных операционных систем я когда-то давно писал пост История UNIX-систем.

Читать далее ‘Книга Брайана Кернигана «Время Unix. A History and a Memoir»’ »

Книга Дэвида Кушнера «Повелители DOOM»

Всем привет! IDDQD! Когда-то я писал о книге Кровь, пот и пиксели, в которой рассказывается про историю создания некоторых видеоигр, а недавно дочитал еще одну книгу из той же серии. В книге Дэвида Кушнера «Повелители DOOM» очень подробно рассказывается история двух Джонов — Кармака и Ромеро, а также некоторых других разработчиков, которые создали такие игры как Wolfenstein 3D, Doom, Quake и другие может быть чуть менее известные игры.

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

Читать далее ‘Книга Дэвида Кушнера «Повелители DOOM»’ »

Книга Джейсона Шрейера «Кровь, пот и пиксели»

Если вы думаете, что разработчики игр только и делают, что развлекаются, играя в игры, которые создают, и мечтаете пойти работать в какую-нибудь геймдев-компанию, то обязательно почитайте книгу Джейсона Шрейера «Кровь, пот и пиксели. Обратная сторона индустрии видеоигр». Главный вопрос, который так или иначе проходит сквозь все главы книги звучит так: возможно ли создать игру без многомесячных авралов, работы по 12-14 часов в сутки и по выходным? Может быть кому-то это и удается, но только не тем компаниям, о которых идет речь в этой книге, а этот список, между прочим, включает в себя таких монстров индустрии как Blizzard, BioWare, CD Projekt Red и уже не существующая Lucas Arts.

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

Книга «Кровь, пот и пиксели» основана на интервью, взятых автором у создателей (программистов, дизайнеров, сценаристов) игр «Pillars of Eternity», «Uncharted 4», «Stardew Valley», «Diablo III», «Halo Wars» (не путать с «Halo»), «Dragon Age: Inquisition», «Shovel Knight», «Destiny», «The Witcher 3», «Star Wars 1313» (так и не вышедшая игра). До того, как мне попала в руки эта книга, я слышал только о нескольких играх из этого списка, поэтому перед чтением очередной главы шел на Youtube и смотрел ролик-другой, чтобы понять, что это за игра, о которой идет речь. Это очень сильно помогало в понимании того, о чем идет речь в книге. Если же вы фанат каких-то из перечисленных игр, то получите еще большее удовольствие, читая, в каких муках они рождались.

Читать далее ‘Книга Джейсона Шрейера «Кровь, пот и пиксели»’ »

Про книгу Сергея Калинина «Чтение как образ жизни»

Читать я люблю, хотя, в отличие от некоторых, не могу похвастаться сотнями книг, прочитанных за год. В среднем на одну книгу у меня уходит две недели, то есть за год успеваю прочитать около 20-25 книг. Но есть одна проблема — когда в тексте попадаются интересные мысли или появляются полезные идеи, через какое-то время они выветриваются из головы. Особенно обидно, когда читаешь книгу, насыщенную полезными идеями, то поток новых мыслей вытесняют из головы то, что прочитал ранее. Или, говоря по-простому, прочитанное забывается.

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

Читать далее ‘Про книгу Сергея Калинина «Чтение как образ жизни»’ »

О книге «Элегантный SciPy»

Приятно, что в последнее время появляется много книг не просто о языке Python, но и о применении его в более узких областях. Меня в первую очередь интересуют инженерные расчеты, в которых практически стандартом являются библиотеки Numpy, SciPy и Matplotlib. На эту тему мне попадалось несколько книжек, но, к сожалению, все они страдают одной проблемой — после них нельзя сказать, что ты знаешь, например, Numpy.

Недавно я дочитал еще одну книгу сразу трех авторов: Хуана Нуньеса-Иглесиаса, Штефана ван дер Уолта и Харриет Дэшноу «Элегантный SciPy», которая посвящена научным расчетам на языке Python. К сожалению, и она страдает той же проблемой, что и другие известные мне книги, но хочется про нее все-таки рассказать.

Читать далее ‘О книге «Элегантный SciPy»’ »

Книга С.Л. Соловейчика «Учение с увлечением»

Образование дают, образование получают…
Но надо еще уметь его взять!

Как уже некоторые из вас знают, я работаю в институте и читаю лекции студентам, поэтому меня важно, чтобы мой труд не пропадал даром. К сожалению, чтение лекций проходит с КПД около 15%, т.е. в группе на 25 человек максимум 4 человека проявляют заинтересованность в предмете. Я это оцениваю по тому, насколько студенты втягиваются в обсуждения и задают хоть какие-то вопросы, остальные в лучшем случае молча записывают материал, а в худшем — уходят в телефон. Возможно, они стесняются что-то спрашивать, хотя я постоянно подталкиваю их к взаимодействию во время занятий. Такое ощущение, что большая часть группы приходит на занятия только для галочки, хотя я уже давно отказался от подсчета посещаемости.

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

Этой проблеме и посвящена книга Симона Львовича Соловейчика «Учение с увлечением» (спасибо моей жене, которая навела на эту книгу). Симон Львович был журналистом, который много времени уделял вопросам педагогики, писал статьи и книги на эту тему. В основном он писал об учебе в школе. И книга «Учение с увлечением» посвящена проблеме заинтересованности школьников в изучаемых предметах. Первое издание ее вышло в 1976 году, позже было множество переизданий в советский период.

Читать далее ‘Книга С.Л. Соловейчика «Учение с увлечением»’ »

Книга «Разработка веб-приложений с использованием Flask на языке Python»

Если говорить о веб-разработке на Python, то в первую очередь вспоминается веб-фреймворк Django, на основе которого создано огромное количество как небольших сайтов, а также таких монстров как Instagram, сайт Mozilla, Bitbucket и множество других. Django хорош тем, что к нему «прилагаются батарейки», т.е. в библиотеку входит большое количество инструментов, которые могут понадобиться для построения движка сайтов разных типов — это пакеты для работы с базой данных, для создания профилей пользователей и их авторизации, для создания форм по объектом данных и т.д. Это удобно, но из-за этого сам фреймворк становится достаточно тяжелый, а при его обновлении каждый раз что-нибудь ломается. К тому же, если вас не устраивает какая-то часть фреймворка, то заменить ее на аналог может быть тяжело.

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

Я был приятно удивлен, узнав, что 2016 году была переведена книга Мигеля Гринберга «Flask Web Development», которая на русском языке стала называться «Разработка веб-приложений с использованием Flask на языке Python».

Читать далее ‘Книга «Разработка веб-приложений с использованием Flask на языке Python»’ »

Книга Эдриена Моуэта «Использование Docker»

Я давно посматривал на Docker, но до недавнего времени нигде его не применял на практике, а недавно меня убедили, что для сборки OutWiker его вполне можно использовать вместо виртуальных машин. Правда, для меня до сих пор остается загадкой, можно ли 32-битные контейнеры запускать в 64-битной системе (именно по этой причине для сборки я использовал полноценные виртуальные машины вместо контейнеров), но некоторое время назад такая надобность отпала.

Новые для себя технологии я обычно изучаю по книгам. Сначала я прочитал пару небольших книжек про Docker на английском языке в электронном виде (это были книги Karl Matthias and Sean P. Kane «Docker: Up and Running» и James Turnbull «The Docker Book»), а потом понял, что хотелось бы иметь что-то в бумажном виде. В бумажном виде на русском языке попалась книга Эдриена Моуэта с незамысловатым названием «Использование Docker». И, пожалуй, эта книга мне понравилась даже больше первых двух.

Читать далее ‘Книга Эдриена Моуэта «Использование Docker»’ »