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

Опыт использования Julia

Логотип Julia

Из-за непрекращающегося бардака в мире решил отвлечься от стресса и в итоге три недели учился кодить на Julia — портировал с Python один из своих экспериментальных проектов.

Я уже писал про впечатления от документации Julia — «теорию», а сейчас, так сказать, будет «практика».

Далее

Композиция vs классификация

Эволюция организации информации.

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

Вопрос не так прост как кажется.

Исторически человечество сильно клонится к классификации. Начиная с ранних лет мы учим детей что классификация — это единственный основной способ организации информации — на неё опирается большинство учебников.

В итоге почти все взрослые люди имеют «урезанную» модель мира и не могут, например, в изобретательство.

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

Заранее прошу прощения у математиков и других формалистов за отсутствие должной строгости в изложении. Свою задачу я вижу не в доказательстве математических свойств композиции и классификации, а в популяризации применения композиции.

Далее

Учитесь правильно

Учитель ~~форматирует~~ стандартизирует мозги детей.  Автора изображения не знаю. Если знаете, напишите, пожалуйста.

Учитель форматирует стандартизирует мозги детей.
Автора изображения не знаю. Если знаете, напишите, пожалуйста.

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

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

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

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

Далее

Гены, мемы и мемплексы

Иллюстрация засилья мемов в голове

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

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

Мемплекс это и есть сложносоставное культурное явление. Это слово буду использовать и дальше, так как оно красивое и короткое.

Начну издалека — с пары оговорок и биологии, как наиболее изученной области проявления эволюции. Потом по аналогии рассмотрим элементарные информационные конструкции — мемы. Потом мемплексы.

Далее

Модная типизация в Python

Разработчики пришивают типы к Python.

Разработчики пришивают типы к Python.

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

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

В этот раз я:

  • Посмотрел что из себя представляет mypy и чем может быть полезно (мало чем).
  • Посмотрел чем можно автоматически сгенерировать аннотации типов (ничего рабочего нет).
  • Подумал о том, как правильно использовать проверку типов в Python, раз их так форсят.
  • Нашёл библиотеку, реализующую идеологически верный подход.

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

Большая часть поста не про mypy, а про философию проверки типов и будущее Python. Поэтому должно быть интересно, даже если сам mypy вас не интересует.

Далее