Изначально статья была опубликована на Хабре в 2014 году, но я решил вернуть её в блог. Изменений не делал, поэтому подача может немного отличаться от традиционной.
Привет, я уже второй год с переменным успехом пилю свою браузерку и хочу поделиться опытом формирования и работы с игровым сообществом, когда на это нет ни ресурсов ни времени. А так же рассказать про пользу, которую оно может принести.
Текст в первую очередь будет полезен как вводная для таких же одиночек как я и небольших команд, начинающих свой проект и не имеющих возможности нанять отдельного специалиста.
Изначально статья была опубликована на Хабре в 2013 году, но я решил вернуть её в блог. Изменений не делал, поэтому подача может немного отличаться от традиционной.
Несмотря на то, что вопрос автоматической генерации заданий в RPG достаточно древний, общедоступных работающих версий таких генераторов почти нет (скорее совсем нет), если не считать совсем примитивных вариантов. Работ по этой теме тоже не много, хотя, если активно гуглить, кое-что можно откопать. Поэтому надеюсь, что этот текст (и сам генератор, ссылка на репозиторий есть в конце статьи) будет полезен.
Для торопливых: визуализация одного из полученных заданий.
Появление монополий почти всегда идёт во вред, но до всеобъемлющей цифровизации у людей оставались варианты защиты от шантажа отбором товаров или услуг.
С переводом жизни в цифру, средств защиты остаётся всё меньше, отказ от цифровых услуг откатывает уровень жизни на неприемлемые для большинства позиции.
До расцвета машинного обучения проблема IT монополий с трудом, но решалась созданием альтернативного ПО. Его авторами могли выступать как небольшие предприятия, так и сообщества энтузиастов, ратующие за свободное и открытое ПО.
Сначала альтернативный софт можно было создавать в одиночку. Затем группами всё большего размера.
Стоимость разработки росла, но альтернативы продолжали появляться, поскольку основная стоимость производства ПО определялась оплатой труда разработчиков. Люди всегда могут затянуть пояса ради идеи или будущего дохода.
Machine Learning, в его текущем виде, меняет расклад.
Сделал ещё один заход на контроль типов в Python. На этот раз со стороны собственной библиотеки для контроля изменений типов переменных в runtime.
Общие выводы ясны из названия поста, хотя полученная библиотека более-менее работает и я попытаюсь её со временем довести до ума. Если разработчики Python наведут порядок у себя в проекте.
Как уже писал в обозрении актуального состояния типизации в Python, правильный подход к контролю типов в языке с динамической типизацией — делать контроль во время исполнения программы.
Краткое обоснование:
Из библиотек для контроля типов Python во время выполнения можно выделить только typeguard, которая позволяет контролировать входные и выходные параметры функций и методов. Это уже хорошо и удобно, но хочется большего.
Например, контролировать тип переменных и атрибутов при каждом присваивании им значения.
Библиотеку для такой функциональности я и попытался реализовать, но столкнулся с суровой реальностью.
Раз в несколько лет я нахожу время, чтобы покопаться в наработках сообщества по «продвинутым» проверкам типов. Благо у меня под рукой есть взрослый, большой и нетривиальный проект, на котором можно безбоязненно ставить эксперименты.
Не могу сказать что я разделяю оптимизм по поводу продвинутой типизации в Python. Наоборот, считаю, что это как попытка пришить змее ноги — забавно, но вряд ли удобно. Но раз куча людей тратит на это время, надо быть в курсе.
В этот раз я:
Рассказывать буду тезисно, без глубоких обоснований, так как делать нормального качества обоснования для таких холиварных вопросов слишком долго, а я уже дней 5 на копание в этом потратил.
Большая часть поста не про mypy, а про философию проверки типов и будущее Python. Поэтому должно быть интересно, даже если сам mypy вас не интересует.