Эссе о разработке игр, мышлении и книгах

Первая кругосветка Кука: Контекст

Попал мне в руки перевод судового журнала [Джеймса Кука](https://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%BA,_%D0%94%D0%B6%D0%B5%D0%B9%D0%BC%D1%81) во время его первого кругосветного плавания в 1768—1771 годах.

Попал мне в руки перевод судового журнала Джеймса Кука во время его первого кругосветного плавания в 1768—1771 годах.

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

Содержание:

  1. Контекст
  2. Политика
  3. Туземцы
  4. Кораблекрушение
  5. Потери
  6. Интересное

В очередь на прочтение я положил журнал по нескольким причинам:

  1. Хотел узнать о первых контактах с туземцами.
  2. Хотел посмотреть на реальный судовой журнал.
  3. Это первая книга известного мореплавателя, которая попалась мне на глаза.

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

Далее

Python & OpenAPI

Покопался в OpenAPI и его интеграции с Python. Глубоко не лез — только чтобы закрыть собственные вопросы.

OpenAPI — спецификация API web-сервисов, выросшая из Swagger — описывает свойства API, чтобы по описанию генерировать документацию, клиентские и серверные библиотеки.

Swagger — проприетарная штука, OpenAPI — открытая. Поэтому сам Swagger я не смотрел — в наше время не стоит завязываться на такое, если у вас нет мешка с деньгами и вагона с юристами.

Также не смотрел интеграцию OpenAPI с другими языками. Где-то всё будет лучше, где-то — хуже. Думаю, лучше всего поддерживаться OpenAPI должно для JavaScript, так как фронтендерам оно больше всех пользы несёт.

Далее, тезисно, моё мнение.

Далее

Как придумать подземелье

Источник: [Pinterest](https://www.pinterest.com/pin/559994534913996418/?)

Источник: Pinterest

В пост о генерации подземелий часто приходят люди, которые ищут урок по придумыванию подземелья, а не по программированию. Для партии в D&D, например.

Чтобы никто не ушёл обиженным, вот небольшой набор рекомендаций на тему. Рекомендации подойдут не только для подземелий, но и для разработки любой локации.

Дополнительно советую почитать:

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

Далее

Типы в Python не радуют

Сделал ещё один заход на контроль типов в Python. На этот раз со стороны собственной библиотеки для контроля изменений типов переменных в runtime.

Общие выводы ясны из названия поста, хотя полученная библиотека более-менее работает и я попытаюсь её со временем довести до ума. Если разработчики Python наведут порядок у себя в проекте.

Задумка

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

Краткое обоснование:

  1. Важная часть семантики программы на динамическом языке программирования конструируется во время выполнения программы.
  2. Поэтому закодировать её статически не получится — сложно и дорого.
  3. Поэтому статический анализ типов для динамических языков не пригоден — он игнорирует критические части логики и провоцирует разработчиков на создание костылей для обхода этого игнорирования.
  4. Поэтому анализировать типы имеет смысл только время выполнения программы.

Из библиотек для контроля типов Python во время выполнения можно выделить только typeguard, которая позволяет контролировать входные и выходные параметры функций и методов. Это уже хорошо и удобно, но хочется большего.

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

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

Далее

Итоги 2020 года для меня и блога

[Terry Pratchett's Hogfather](https://en.wikipedia.org/wiki/Terry_Pratchett%27s_Hogfather)

Terry Pratchett's Hogfather

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

Далее