Книга Дэйва Эггерса «Сфера»

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

Я редко пишу отзывы на художественные книги, но о «Сфере» Дэйва Эггерса просто обязан что-нибудь написать, к тому же эта книга про технологии и пользователей. «Сфера» — это роман-антиутопия, который настолько мне понравился, что в личном рейтинге я готов поставить ее на один уровень с «451 градусом по Фаренгейту» Брэдбери, хотя по задумке книга ближе к «1984» Оруэлла.

Я очень люблю книги, в которых автор выдвигает какую-то идею и пытается представить мир, в котором эта идея реализовалась, пробует эту идею на прочность, пытается вывести из нее следствия. Идея «Сферы» не кажется такой уж фантастической, если технологии со временем позволят хранить достаточно большой объем данных.

Эггерс в своей книге описывает IT-компанию, которая так и называется «Сфера» (в оригинале «The Circle»), которая очень напоминает существующий Google (или теперь уже Alphabet). Эта компания выросла за счет создания технологии, которая позволяет легко и безопасно авторизовываться на сайтах с использованием учетной записи Сферы — «АУтенТы». Аккаунт привязан ко всем личным данным пользователя, поэтому фейковые аккаунты исключены. По сюжету Сфера поглотила и Google, и Twitter, и Facebook, при этом Сфера дает пользователям свою платформу для блогов, посты в которой называются «Кваки». Дела у компании идут хорошо, пользователи довольны. Внутри компании отличная творческая атмосфера, о сотрудниках и их родственниках компания заботится, хотя работы много и сотрудники буквально живут в кампусе компании.

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

Читать далее ‘Книга Дэйва Эггерса «Сфера»’ »

О книге «Producing Open Source Software»


Давно я не писал посты о прочитанных книгах, хотя в последнее время удалось прочитать достаточно много книг, которые достойны обзора. Так уж получилось, что в этом году большинство книг по программированию, которые мне попадались, были на английском языке. В этом посте речь пойдет об одной из таких книг Карла Фогеля (Karl Fogel) — «Producing Open Source Software».

Как ясно из названия, эта книга об открытом программном обеспечении, но прежде чем говорить о книге, надо сказать пару слов об ее авторе. Карл работал (или работает) над такими известными проектами как Subversion (она же SVN, система контроля версий, которая когда-то пришла на смену CVS) и Launchpad — хостинг для открытого софта, где, например, располагается проект Ubuntu, MySQL и многие другие крупные опенсорсные проекты.

В своей книге «Producing Open Source Software», которая также распространяется с открытыми исходниками на сайте http://producingoss.com, Карл всесторонне описывает работу над софтом с открытыми исходниками. Причем, речь в ней идет не только о технической стороне, но и о социальной, ведь успешный открытый проект — это прежде всего результат взаимодействия многих людей, тем или иным образом участвующих в проекте. Причем участники могут проживать по всему миру. Это не обязательно должны быть программисты, это могут быть дизайнеры, бета-тестеры, люди, которые переводят программу на свой родной язык, да и просто пользователи, которые присылают свои пожелания и сообщения об ошибках. А может быть создание свободного софта — это ваша основная работа, тогда возникнет вопрос о том, как зарабатывать на нем, причем так, чтобы сообщество вас поддерживало.

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

Читать далее ‘О книге «Producing Open Source Software»’ »

Про книгу «Android. Программирование для профессионалов»

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

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

К сожалению, книга Б. Харди, Б. Филлипса, К. Стюарта и К. Марсикано «Android. Программирование для профессионалов» не исключение. Но сначала хочется выразить свое «фи» переводчикам и издателю (несмотря на все мое уважение к издательству Питер). Во-первых, второе название книги перевели настолько вольно, что оно стало полностью противоречить содержанию книги. В оригинале книга называется «Android Programming. The Big Nerd Ranch Guide». Никаких профессионалов в оригинале нет, «The Big Nerd Ranch» — это компания, которая занимается разработкой и обучением программированию. И даже предисловие книги начинается словами «Начинающему программисту Android предстоит основательно потрудиться…» Таким образом, эта книга предназначена именно для новичков. Вот именно с этой позиции и стоит рассматривать эту книгу.

Читать далее ‘Про книгу «Android. Программирование для профессионалов»’ »

Итоги 2016 года. Прочитанные книги

Итоги 2016 года. Прочитанные книги

Близится новый год, пора подводить итоги года уходящего — что удалось реализовать за последние 365 366 дней, а до чего руки так и не дошли. Предновогодние итоги я разобью на несколько тем, в сегодняшнем посте я вспомню книги, которые были прочитаны в 2016 году.

Книги я разделил на три группы: художественные, программирование и разное. В этом году удалось прочитать 9 художественных книг, 15 книг, связанных с программированием, и 6 из раздела «разное» — итого получилось ровно 30 книг, т.е. в среднем по больнице на одну книгу у меня уходит чуть меньше 2 недель. Разумеется, все зависит от толщины и интересности книги. В основном книги я читаю в метро по дороге на работу / с работы, хотя и дома иногда приятно посидеть с интересной книжкой. По замерам времени, в метро за день на чтение уходит примерно 1 ч. 20 мин.

К некоторым прочитанным книгам я напишу комментарии, о некоторых я уже писал посты в этом блоге, и тогда дам ссылки на эти записи. Про художественные книги писать комментарии особо не буду, мне это сразу навевает воспоминания о школьных сочинениях, которые могут отбить желание читать книги у любого школьника. Хотя после прочтения 6-го тома из серии про Дюну Френка Герберта я не удержался и написал пост в ЖЖ.

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

Читать далее ‘Итоги 2016 года. Прочитанные книги’ »

Книга Лучано Рамальо «Python. К вершинам мастерства»

На днях дочитал книгу Лучано Рамальо «Python. К вершинам мастерства». Пожалуй, это лучшая техническая книга, которая мне попадалась за последние время. Это объемная книга, содержащая 768 страниц, но при этом читается она достаточно легко. Сразу надо сказать, что книга Рамальо — не учебник для начинающих, вы уже должны знать Python хотя бы на начальном уровне, представлять себе, что такое объектно-ориентированное программирование и иметь хотя бы общее представление о шаблонах проектирования. Процитирую несколько фраз из введения книги, где сам автор пишет, для кого предназначена эта книга:

Python — простой для изучения и мощный язык программирования… Поскольку язык так просто выучить и начать применять на деле, многие программисты используют лишь малую часть его обширных возможностей… Эта книга написана для практикующих программистов на Python, которые хотят усовершенствоваться в Python 3. Если вы уже знакомы с Python и хотели бы перейти на версию Python 3.4 или старше, эта книга для вас.

В этой книге действительно упор сделан на возможностях, которые появились в Python 3.x, особенно автор подчеркивает особенности, возникшие в версиях Python 3.3 и 3.4. В момент написания книги Python 3.5 еще не вышла, но было примерно понятно, что туда собираются включить, и Лучано Рамальо упоминает некоторые такие возможности. Хотя в книге упор сделан на Python 3, но многие описанные вещи применимы и к Python 2.x, при этом подчеркивается, где есть различия в поведении интерпретатора Python 2.x и 3.x.

Большая часть книги в той или иной мере посвящена объектам в Python, тому, как интерпретатор их создает, что происходит при вызове методов вида __xxx__ и многое другое. Хотя местами описывается достаточно низкоуровневая логика, но до байт-кода автор доходит всего один или два раза.

Читать далее ‘Книга Лучано Рамальо «Python. К вершинам мастерства»’ »

Книга Уолтера Айзексона «Инноваторы»

innovatoryЯ обожаю читать про историю науки и развитие различных технологий, особенно, когда дело касается информационных технологий. Качественных книг на эту тему еще недавно было не так много, но в последнее время ситуация стала выправляться. В основном за счет переводных книг, но все же. На сегодняшний день любимой книгой по истории информационных технологий у меня была книга Стивена Леви «Хакеры. Герои компьютерной революции», которая очень подробно описывает развитие компьютеров, начиная с конца 50-ых годов прошлого века и до 1980-ых годов. И вот недавно вышла книга, которую в своем личном рейтинге я готов поставить рядом с «Хакерами» — это книга Уолтера Айзексона «Инноваторы» или ее полное название «Инноваторы. Как несколько гениев, хакеров и гиков совершили цифровую революцию» (да, любят историки от IT слово «революция»).

Уолтер Айзексон в России известен в первую очередь как автор жизнеописания Стива Джобса, хотя кроме этого он написал биографии Эйнштейна, Франклина и Киссенджера. Его книгу про Стива Джобса я еще не читал, поскольку ее выход совпал с моментом, когда мне попалась книга Янга и Саймона «iКона», и в тот момент читать вторую книгу подряд на эту же тему не хотелось.

В отличие от книги «Хакеры», которая охватывает лишь несколько десятилетий, Айзексон решил написать историю развития информационных технологий, начиная со времен Бэббиджа и его разностной машины, Ады Лавлейс, которая считается первой программисткой, и до появления компании Google с ее оригинальным алгоритмом поиска, который придумали Ларри Пейдж и Сергей Брин.

Читать далее ‘Книга Уолтера Айзексона «Инноваторы»’ »

Книга Сэма Ньюмена «Создание микросервисов»

book_sozdanie_mikroservisovВ последнее время я решил прокачать свои знания в той области, которую называют DevOps (от слов development и operations) — области, объединяющей в себе разработку, тестирование и развертывание программного обеспечения. Недавно я уже писал обзор очень интересной книги на эту тему — Непрерывное развертывание ПО. В продолжение этой темы мне попалась довольно свежая книга Сэма Ньюмена «Создание микросервисов», вышедшая в этом году.

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

Читать далее ‘Книга Сэма Ньюмена «Создание микросервисов»’ »

Пост про книги «Как пасти котов» и «Путь камикадзе»

Некоторое время назад попались мне две книжки про организацию работы программистов — «Как пасти котов» Дж. Ханка Рейнвотера и «Путь камикадзе» Эдварда Йордона. Эти книги написаны в первую очередь для менеджеров (в хорошем смысле этого слова) или тех, кто руководит группой разработчиков, и хотя мне это пока не особо актуально, я считаю, что такие книги полезно читать, чтобы задуматься об организации личного процесса разработки.

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

kak_pasti_kotov

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

Читать далее ‘Пост про книги «Как пасти котов» и «Путь камикадзе»’ »

Книга Дж. Хамбла и Д. Фарли «Непрерывное развертывание ПО»

neprerivnoe_razvertivanie_po

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

В этом посте речь пойдет о книге, которую я прочитал последней, и которая заставила по-новому взглянуть на разработку проектов, которыми я занимаюсь. Это книга Джеза Хамбла и Дэвида Фарли «Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ». Сама книга уже довольно старая, ее русский перевод вышел в 2011 году и, похоже, что оригинал был издан в том же году, но почему-то до этого я про нее ничего не слышал и наткнулся на нее случайно.

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

conveyer

Читать далее ‘Книга Дж. Хамбла и Д. Фарли «Непрерывное развертывание ПО»’ »

Книга Алана Купера «Психбольница в руках пациентов»

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

Стандарты качества у разработчиков программного обеспечения гораздо ниже, чем в традиционных инженерных дисциплинах.

Вся книга написана с иронией над программистами, но очень точно раскрывает причины поведения этих забавных существ. Алан Купер делит людей на два вида: хомо сапиенс и хомо логикус (т.е. программистов) и пытается доказать, что последним ни в коем случае нельзя доверять создание интерфейсов, потому то основные мотивы действий у людей и программистов различаются. Например, обычному хомо сапиенс нужно, чтобы предмет просто работал и выполнял свою функцию, он не хочет задумываться о том, как он устроен внутри. Хомо логикус же, напротив, желает полностью контролировать поведение предмета или программы, он готов пойти на некоторые неудобства использования программы, если они позволят полностью держать программу под наблюдением и контролем. Поэтому он будет инстинктивно добавлять в интерфейс множество настроек и индикаторов, которыми можно будет тонко настраивать программу под себя, но что абсолютно не будет использовать обычный пользователь.
Читать далее ‘Книга Алана Купера «Психбольница в руках пациентов»’ »