Как стать автором
Обновить
113
0
Алексей Морозов @synedra

Биоинформатик

Отправить сообщение

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

R? Дизайнеру? Какие там вообще были аргументы в его пользу?

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

Во-первых, в питоне нет проверки типов и честной типобезопасности: невозможность пресловутого 10 + '10' обеспечивается проверками в int.__add__ (насчёт конкретно int не уверен, мб и в коде CPython/PyPy, но для не-встроенных типов точно так). Вполне можно написать свой числовой тип, который умеет складываться со строками, датами и чёртом в ступе; ван Россум просто справедливо решил, что встроенным типам это не нужно.


Во-вторых, свойства объектов (и типов (которые тоже объекты)) можно менять в рантайме. Если какой-нибудь my_type.__eq__ или my_type.__len__ может в самый неожиданный момент поменять семантику, то строгая статическая типизация не имеет смысла. Любые утверждения о том, какие у типов могут быть значения и какие над ними возможны операции, приобретают ссылочку мелким шрифтом "если только пользователь не залезет куда не надо".


TL;DR Питон довольно убедительно изображает строгую типизацию (особенно на встроенных типах), но вообще-то у него нестрогая.

Они "Алексей" в любой транслитерации читают как Алéкси, а "Борис" — как Бóрис. Скорее всего, это устоявшаяся форма произношения, вроде пресловутого Лондона-Ландона.

В загране ALEKSEIY.

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

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

С этим-то я согласен, я в принципе стараюсь писать маркдауном где только можно. Но этот человек считал, что конкретно конструкция ![]() уместна в комментариях внутри кода.

А как оно в случае тех же Point и Rect поступало с недостающими в источнике полями? Оставляло имеющиеся? Если так, то это, конечно, не присваивание, но вообще-то полезная операция для всяких грязных низкоуровневых дел. Такой типа отдалённый аналог прототипного наследования, но используемый по необходимости, а не при генерации структуры (и поэтому не требующий думать о том, кто кому наследник и как это всё разрешается).


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

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


<think 0.2>
a ?=> b

# На трипл ведёт себя как а => b
# На дабл ведёт себя как if random() <= 0.2 {a =>b}

Более формально: значение присваивается с задаваемой пользователем вероятностью не выше 0.1 (всегда присваивает на дабл) и не ниже 0.01 (присваивает только на трипл). Вероятности ниже 0.01 не поддерживаются синтаксисом, т.к. настолько маловероятные события сложно покрыть юнит-тестами. Тем не менее, операции на квадрипл и меньшие вероятности могут быть импортированы из стандартной библиотеки. Распределение униформное, вероятность присваивания на дабл фиксированная для каждого пространства имён и задаётся оператором think <float>. Использование этого оператора несколько раз в одном пространстве имён является неопределённым поведением и кидает ворнинг.


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


# Распределение бернулли
<think P>
0 => b
1 ?=>> b
# На дабл/трипл ведёт себя как 1 =>> b (или устаревший синтаксис b+=1)

# Биномиальное распределение

<think P>
N => index
while index > 0
    {
    0 => a
    1 ?=>> a
    -1 =>> index
    }

Распределение Пуассона аппроксимируется биномиальным при достаточно высоком N. Аппроксимация нормального распределения выполняется с использованием алгоритмов метапрограммирования. Синтаксис этой аппроксимации слишком громоздок, чтобы поместиться в данном комменте. Но базовая идея состоит в том, что заданная пользователем операция многократно рекурсивно модифицируется таким образом, чтобы создать семейство различных распределений (по дефолту тысячу, но количество может быть определено аргументом компилятора). Затем из каждого распределения берётся по одному значению в том же диапазоне, что и исходная операция. Согласно Центральной предельной теореме, их среднее арифметическое распределено нормально.

Вот вы смеётесь, а кто-то на хабре мне неиронически доказывал, что писать комменты маркдауном и эмбеддить в них рисунки — это не только нормально, а даже и вполне удобно.

Обязателен чтобы что? Чтобы запустить ось? Чтобы в контакт с гмэйлом заходить? Чтобы редактировать вордовские документы? Чтобы принтер работал? Изначально ведь вся претензия в том и состоит, что в начале нулевых с эквивалентными задачами как-то справлялись на одноядерных процессорах безо всякого SSD и с гигом оперативки в лучшем случае.

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

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


Очевидно, никто не собирается на таком железе тренировать нейросети или шевелить Плотву, но от почты/мессенджеров/офиса/IDE вполне можно требовать нормальной работы. Сложно представить, почему офисным работникам, которые в основном заняты перепиской и редактированием документов MS Office, должны требоваться 16 гигабайт памяти и SSD. Да и программистам тоже, у которых 90% работы по сути сводится к манипуляциям над текстовыми файлами (максимум в мегабайты размером) и гуглёжке.

Немножко странная история жанра. Вот у нас предыстория, основатели, классики — а потом примерно к началу нулевых RPG умирают и ничего не происходит, вот разве что Wasteland II на кикстартере был. То есть ни BioWare после Baldur's Gate, ни Bethesda после Daggerfall ничего не выпускали, не говоря уже о более мелких студиях. DnD, потом книги-игры и парсерный IF, потом Фоллач/Бальдур — а потом сразу AI Dungeon. И к тому же совершенно не упоминаются японские РПГ и визуальные новеллы, которые развивались сами по себе.


Можно, конечно, сказать, что нет никакого принципиального различия в нарративной структуре между ультимой и любой другой сюжетной игрой (хоть Skyrim, хоть "Бесконечным летом") — и там и там квесты, возможные решения и их последствия геймдизы/сценаристы прописывают вручную, не-рельсовость всё равно иллюзорная и достигается тем, сколько развилок на те рельсы добавлено. Но это совершенно упускает из виду игры, у которых симуляция мира достаточно сложная, чтобы сюжет возникал сам собой. Sims, Dwarf Fortress/Rimworld, Space Station 13, да и многие рогалики (напр Cave of Qud) имеют какую-никакую модель взаимоотношений с NPC.

То есть получается, что целая Демократическая партия на довольно важный элемент своей инфраструктуры наскребла 60k и аж целых четырёх программистов? И начать разработку раньше чем за два месяца до дедлайна не сумела? И тестов в приближенных к боевым условиям не провела? Что-то мне подсказывает, что тут не в культуре стартапов проблема и не в спринтах.

Он уже лет двадцать как "должен или рухнуть, или скатиться в полноценную диктатуру". И что-то как-то воз и ныне там.

В принципе реально. Лично я Lua не владею и писать на нём не собираюсь.

Информация

В рейтинге
Не участвует
Откуда
Иркутск, Иркутская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность