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

Если вы думаете, что разработчики игр только и делают, что развлекаются, играя в игры, которые создают, и мечтаете пойти работать в какую-нибудь геймдев-компанию, то обязательно почитайте книгу Джейсона Шрейера «Кровь, пот и пиксели. Обратная сторона индустрии видеоигр». Главный вопрос, который так или иначе проходит сквозь все главы книги звучит так: возможно ли создать игру без многомесячных авралов, работы по 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 и смотрел ролик-другой, чтобы понять, что это за игра, о которой идет речь. Это очень сильно помогало в понимании того, о чем идет речь в книге. Если же вы фанат каких-то из перечисленных игр, то получите еще большее удовольствие, читая, в каких муках они рождались.

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

Нужно ли заставлять студентов учиться?

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

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

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

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

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

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

Optlib 0.2. Библиотека для оптимизации на языке Rust

Optlib 0.2. Библиотека для оптимизации на языке Rust

Параллельно с другими проектами я продолжаю заниматься библиотекой optlib, предназначенной для оптимизации функций на языке Rust. Напомню, что под оптимизацией функции f(x) понимается нахождение такого значения x’ (в общем случае x — вектор), что значение функции f(x’) минимально на заданном интервале для x. Библиотека optlib содержит в себе алгоритмы, предназначенные для глобальной оптимизации, то есть, в отличие от градиентных методов, эти алгоритмы пытаются найти глобальный экстремум функции (градиентные методы находят только ближайший к начальной точке локальный экстремум).

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

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

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

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

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

OutWiker 3.0.0.868 unstable

OutWiker 3.0.0.868 unstable

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

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

Доклад про генетические алгоритмы

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

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

OutWiker 3.0.0.866 unstable

OutWiker 3.0.0.866 unstable

Всем привет. Сегодня выложил следующую нестабильную версию OutWiker с номером 3.0.0.866.

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

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

Айтишные события в ближайшее время

Айтишные события в ближайшее время

В ближайшее время состоится сразу несколько интересных айтишных событий.

Завтра, 8 августа, в офисе Леруа Мерлен соберется московский клуб программистов, чтобы обсудить работу с сокетами и образовательный процесс в IT — https://www.meetup.com/progmsk/events/263642165

На следующей неделе 16 августа в музее Яндекса пройдет лекция про историю КПК — https://yandex.ru/museum/ Вспомнив, что у меня в завалах компьютерного железа тоже валяется КПК Dell, отдам его в музей (обещали взять).

Через две недели 21 августа в офисе Мегафона пройдет очередной Moscow Python Meetup — http://www.moscowpython.ru/ Темы выступлений — «Пишем на питоне так, чтобы все вас любили (или ненавидели)», «Как стать разработчиком с нуля за полгода (и выжить)» и «Осваиваем и дополняем Data Version Control».

А еще в Москву приезжает Ричард Столлман (если кто не знает — создатель движения за свободный софт, лицензии GPL, проекта GNU и текстового редактора Emacs. 27 августа он будет выступать в Московском политехническом университете — https://www.fsf.org/events/rms-20190827-moscow.

Статья «Использование библиотеки Matplotlib. Как делать анимированные графики»

Статья "Использование библиотеки Matplotlib. Как делать анимированные графики"

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

В новой версии статьи приводится четыре способа создания анимированных графиков.

Ссылка на статью — Использование библиотеки Matplotlib. Как делать анимированные графики.

OutWiker 3.0.0.864 unstable

OutWiker 3.0.0.864 unstable

Сегодня выложил следующую нестабильную версию OutWiker под номером 3.0.0.864. Эта версия в основном содержит исправления ошибок.

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