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

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

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

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

Читать далее…

OutWiker 2.0.0.800 (unstable) и обновления всех плагинов

OutWiker 2.0.0.800 (unstable) и обновления всех плагинов

Сегодня я выложил новую нестабильную версию OutWiker с юбилейным номером 2.0.0.800. В этой версии были исправлены некоторые ошибки и добавлены новые возможности.

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

swedish

Читать далее…

OutWiker 2.0.0.798 (unstable) и мысли по поводу изменения интерфейса

OutWiker 2.0.0.798 (unstable) и мысли по поводу изменения интерфейса

Продолжаю работать над развитием OutWiker. В очередной нестабильной версии, которая получила номер 2.0.0.798, изменения относятся в первую очередь к улучшению интерфейса.

В этой версии был переписан кусок кода, отвечающий за работу иконки в трее (области уведомления). Пользователи Windows не должны заметить никаких изменений, а вот под Linux иконка в трее — это была большая проблема в некоторых оболочках. Если, например, в XFCE все работало как надо, то в Unity ее просто не было, а в KDE программа зависала при попытке свернуть ее в трей. Теперь работоспособность иконки еще не идеальна, но стала намного лучше: в Unity она теперь полноценно работает.

tray

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

Читать далее…

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

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

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

Читать далее…

Обзор настольной стратегической игры «Колонизаторы. Мореходы»

Недавно я писал заметку про настольную стратегическую игру «Колонизаторы», которая в оригинале (по-немецки) называется «Die siedler von Catan», а в этом посте я расскажу о дополнении к ней, которая называется «Колонизаторы. Мореходы».

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

Читать далее…

Новая нестабильная версия OutWiker (2.0.0.796)

Новая нестабильная версия OutWiker (2.0.0.796)

Прошел месяц с момента выкладывания предыдущей нестабильной версии OutWiker. За это время была проделана довольно большая работа, хотя она не везде будет видна с точки зрения пользователя.

Во-первых, под впечатлением от книги Непрерывное развертывание ПО я взялся за автоматизацию процесса выкладывания новых версий и за большой рефакторинг системы сборки. Если раньше все сценарии сборки были собраны в одном большом fabfile.py в корне исходников, то теперь из него был выделен пакет buildtools, где по разным модулям разнесены сборки для разных операционных систем и другие вспомогательные скрипты. В группе во Вконтакте меня спрашивали по поводу того, как организована сборка, но тогда она еще находилась в скомканном состоянии, а сейчас ее не стыдно описать в документации, хотя процесс автоматизации выкладывания сборок еще не завершен.

Читать далее…

Про новый рейтинг суперкомпьютеров (июнь 2016)

Про новый рейтинг суперкомпьютеров (июнь 2016)

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

TOP500, вышедший в июне 2016 году интересен сразу несколькими моментами. Новый рейтинг знаменателен тем, что с первого места был свергнут китайский суперкомпьютер Tianhe-2, который держался на вершине рейтинга с весны 2013 года. Теперь лидер TOP500 — китайский же суперкомпьютер Sunway TaihuLight, который обгоняет Tianhe-2 по производительности почти в 3 раза — 93014.6 TFlop/s против 33862.7 TFlop/s у Tianhe-2. Напомню, что Flop/s — это количество операций с плавающей точкой, которое производит компьютер за секунду. На следующей картинке показана фотография нового лидера (почти все картинки в этом посте взяты с сайта top500.org и отчета про суперкомпьютер Sunway TaihuLight.

taihulight

Читать далее…

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

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

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

kak_pasti_kotov

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

Читать далее…

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

neprerivnoe_razvertivanie_po

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

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

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

conveyer

Читать далее…

Про студентов

Про студентов

Сейчас начинается сессия — самое время, чтобы поговорить о студентах. В этом посте я буду много ворчать на большую их часть.

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

Типичная ситуация, когда им перед лабораторкой рассказываешь всю теорию, которая им понадобится для выполнения работы, и которую им придется сдавать через две недели на следующем занятии, но через две недели они не отвечают на те же самые вопросы, которые им рассказывал на предыдущем занятии. Причем во время такой укороченной лекции останавливаешься, спрашиваешь, все ли понятно, вытягиваешь из них хоть какие-то вопросы. Говорят, что все понятно и молчат. А на защите лабораторки говорят: «Да-да, мы помним, Вы что-то такое рассказывали, но мы забыли.»

Читать далее…