Круглый стол в субботу

Завтра в 12:00 меня можно будет увидеть на организованном Партией Прямой Демократии “круглом столе“, посвященном вопросу дистанционного электронного голосования:

Нажми на кнопку: теория и практика электронных голосований

Суббота, 30 мая, 12:00 по московскому времени

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

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

Трансляция будет доступна на YouTube-канале партии: https://youtu.be/0N8_DQw3hOs

Вопросы спикерам можно задавать в комментариях к трансляции или через Телеграм-канал партии

Участники:
• Алёна Август, политтехнолог
• Кирилл Азарченко, электоральный юрист
• Олег Артамонов, член ВКС Партии прямой демократии
• Александр Исавнин, член Пиратской партии России, независимый эксперт, член рабочей группы при Правительстве Москвы по проведению электронных выборов в МГД в 2019 году
• Вячеслав Макаров, генеральный секретарь ВКС Партии прямой демократии
• Олег Молчанов, электоральный юрист
• Александр Подшивалов, математик
• Павел Рассудов, кандидат психологических наук, бывший председатель Пиратской партии России
• Роман Смирнов, политтехнолог
• Алексей Щербаков, приглашенный эксперт команды Романа Юнемана по подготовке доклада «Электронное голосование. Риски и уязвимости»

Модератор круглого стола — Тимофей Шевяков, член ВКС Партии прямой демократии.

Читаю вот творчество ДИТа на хабре

moscow-state-duma

Нет ли в этой опечатке состава статьи 280.1 УК РФ?

Кстати, еще про магическое мышление

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

Для начала – все про те же персональные данные. “Околооборонное” предприятие решило сделать современную проходную, разогнать бабок из ВОХРы и поставить турникеты с электронными карточками и проверкой отпечатков пальцев. Перед запуском системы решили собрать необходимую для этого макулатуру – в частности, каждый из сотрудников предприятия подписал “согласие на обработку биометрических персональных данных”, которое включало в себя вагон разрешений, вплоть до “трансграничной передачи”. Напомню, что предприятие околооборонное, со всей полагающейся паранойей.

Схожую историю наблюдал с одним сколковским стартапом, которому при найме сотрудников захотелось подписать с ними NDA. Текст бумажки о “неразглашении конфиденциальных данных”, больше подходящий ликероводочному заводу, нашли то ли в каком-то “справочнике бухгалтера”, то ли вообще на каком-то левом интернетовском сайте. Про ликероводочный завод – не шутка, к конфиденциальной информации были отнесены “купажные листы”. Надо ли говорить, что, допустим, исходного кода программ в этом NDA не было? Да, специально для [info]sish – остальных телодвижений, предусмотренных 98-ФЗ, тоже не предприняли.

Из более приземленного – вы когда-нибудь покупали автомобиль “с рук”, без участия в этом автосалонов? Видели у регистрационного подразделений ГИБДД ряд ларьков с вывеской “оформление ДКП”? Почему-то сограждане верят, что оформленный ИП Ивановым П. С. за 500 рублей “договор” (с проставлением печати этого самого ИП Иванова П. С. в ПТСе) имеет какую-то большую юридическую силу, чем составленный продавцом и покупателем самостоятельно. Для большего счастья граждане вписывают в эту бумажку волшебную сумму 250 000 рублей – чтобы налоги не платить.

В общем, любые правовые отношения у нас сводятся к маханию руками с криками “Ахалай-махалай”.

Какой качественный наброс

Довольно забавную ситуацию можно было наблюдать в этот понедельник – Партия прямой демократии опубликовала на хабре почти безобидный текст:

https://habr.com/ru/company/analogbytes/blog/503552/

Ну казалось бы – никаких “наездов”, просто процитирован текст некоего документа, с которым предлагается согласиться на одном из официальных сайтов г. Москвы, и приведена инструкция, как с этим жить, исходя из требований 152-ФЗ. Но нет, почему-то материал получил внезапный всплеск интереса (не скрою, под соусом “мэрия Москвы будет 10 лет слать вам рекламу” можно и не такое устроить), был пропиарен даже Навальным (что особенно смешно), и где-то ближе к вечеру по разного рода телеграм-каналам начали распространяться “опровержения”. “Гениальный” шаг со стороны связанных с ДИТом пиарщиков, увеличивший посещаемость, пожалуй, в разы.

В понедельник, в 9:00 свой комментарий дал глава ДИПРа Фурсин, разумеется, в духе “все в соответствии с законом”:

https://tass.ru/moskva/8553717

Собственно, с этим никто и не спорит – да, все в соответствии с законом, пользователь сам предоставляет свои персональные данные и осознанно ставит галочку. Чуть позже, вероятно, проснулись более осознающие ситуацию пиарщики и посоветовали не разгонять тему, сама вскоре потухнет (ситуация “глава московского департамента комментирует наброс анонимусов на хабре” – это вообще что-то невообразимое) – но “выстрелили” еще пара телеграм-каналов в духе “а мне нечего скрывать, мой телефон и так в открытом доступе”.

Что показывает вся эта история? Ни чиновники, ни граждане, ни авторы телеграм-каналов (впрочем, последним простительно) так и не осознали принятый 14 лет назад 152-ФЗ. Точнее, осознали – но на уровне того, что в лесу живет бабайка, и если перед походом в лес не сказать волшебное заклинание – бабайка подскочит и больно укусит за жопу. В роли бабайки выступает Роскомнадзор (да, он следит в том числе и за соблюдением 152-ФЗ), в роли “укусит за жопу” – статья 13.11 КоАП. Волшебное заклинание же – текст “согласия на обработку персональных данных”, которое можно найти в интернете (а уж там-то в “типовом документе” чего только не понаписали). Что ж, развитием магического сознания удовлетворен. Скоро начнут мазать лоб кровью черного петуха и ритуально приносить Роскомнадзору в жертву девственниц, это вполне логичный следующий шаг.

Второе поколение

Вот еще – хочу сознаться, что зря я гнобил TU D-stadt, и даже там на факультете информатики можно научиться чему-то полезному, если вам повезет, конечно. Дело в том, что вводный курс по информатике, с программированием на Java, читают два разных преподавателя – раньше в четные годы это был Prof. Dr. Johannes Furnkranz (ссылки на его курс можно найти у меня), сейчас курс на основе сделанного Furnkranz’ем читает более молодой преподаватель, Prof. Dr. Christian Reuter. А если повезет, и вы поступите на факультет информатики в нечетный год – то курс с формально тем же содержанием читает Prof. Dr. Karsten Weihe (в отличие от предыдущих, заслуживший страничку в немецкой википедии) – и это совершенно другое дело!

Нет, формально оба преподавателя читают примерно одно и то же – но возьмем тот же пример с определением, является ли строка палиндромом. Самостоятельная ценность у этой задачи близка к нулю – но она прекрасно демонстрирует, как писать нетривиальные циклы и обращаться к элементам массива по индексу (да еще и с возможностью “попасть” на off-by-one error). В лекциях и домашних заданиях курса господина Weihe прослеживается какое-то понимание того, зачем нужны все эти задания, и что за ними стоит на самом деле; если же посмотреть на “альтернативный” курс – то иногда возникает впечатление, что автор заданий, типа того же палиндрома, держал перед глазами список “типовых задач”, да так и не понял его.

Что же такое происходит, и чего нам ждать в будущем? У меня есть на этот счет довольно злобная теория – дело в том, что со сменой поколений в преподавании computer science исчезает и понимание сути материала. Вот возьмем какую-нибудь не менее “популярную” учебную задачку – не надоевшие всем палиндромы, а, скажем, структуры данных. Реализовывали ли вы стек на базе массива? А на базе списка? Пожалуй, если дочитали до этого места – для вас это не пустые слова. Предположим, реализацию стека на базе массива вы увидите и так (собственно, “стек вызовов” так и делается в большинстве более-менее адекватных систем) – но зачем делать это на базе списка? Да и вообще, откуда такая любовь к связным спискам, это же совершенно бестолковая и никому не нужная структура данных? Если вы засомневались – почему же списки никому не нужны? – постарайтесь вспомнить, когда они вам последний раз пригодились за исключением изучения информатики и программистских “технических” собеседований.

А ведь если подумать – то связные списки – это “естественный” для Lisp-подобных языков способ организации данных, да и аппаратная их поддержка – не так уж и сложна (примером чему служат всевозможные “Lisp-машины”). Ничто не мешает рассматривать их, как вполне равноправные с массивами (которые имитируют обычную память с линейной адресацией) “элементарные” структуры данных – и строить на их основе что-то более сложное. Но многие ли в “нашем поколении”, полностью захваченном обычными фон-неймановскими компьютерами, могут себе представить “альтернативные” варианты? Многие ли могут понять теоретическую важность других способов организации памяти, чем очевидный “массив из int8_t”? Да и рассуждать о способах построения алгоритмов – скажем, об “индуктивных функциях” или доказательстве правильности рекурсивных функций, имея под рукой такую структуру данных, как список, очень удобно (хотя никто не мешает делать это в “императивном” духе).

И возвращаясь к “смене поколений” – если “старики” еще понимают, чему соответствуют все эти нетривиальные штуки в курсе “информатики”, то новое поколение действует “по инерции”, понимая свою задачу скорее в “начетническом” ключе – если те же списки или палиндромы встречаются в курсе, то достаточно предъявить некоторое количество задач, где как-то фигурируют эти понятия (при этом совершенно теряя суть происходящего). Худший же вариант – рассказать о списках на примере встроенного в Java интерфейса List – встречается, на мой взгляд, пугающе часто.

PS Интересно, а бывают ли учебные курсы Java, где в качестве примеров разбираются реальные классы из JDK? Тот же java.lang.String – прекрасное наглядное пособие для изучения массивов, например :)

Обожаю хабр

Вот пишут на хабре статью – “Нужна ли программисту этика“, по поводу обосравшегося со своим творчеством ДИТа Москвы. Комментарии просто шикарны, как обычно.

Во-первых, в одной из веток хотят не много, ни мало, а отменить положения 54 статьи Конституции РФ – “Закон, устанавливающий или отягчающий ответственность, обратной силы не имеет”:

Если человек участвовал в чём-либо пусть даже на то время законном, но позднее признанном преступным или аморальным (привет, Ванштейн!), он должен понести неминуемую ответственность. И да, эту ответственность должны разделить его близкие, как бенефициары плодов его действий.

Во-вторых – никто до сих пор так и не вспомнил о существовании Software Engineering Code of Ethics. Просто удивительно – обсуждать вопросы “программистской этики” и не удосужиться хотя бы минимальным изучением того, что по этому поводу было сделано раньше.

И чуть-чуть вдогонку

Упомянул в предыдущей записи слова “менеджер проектов” – так что надо немного и на эту тему высказаться. Вот модно стало осуждать правительство Москвы, и конкретно – ДИТ и связанные с ним структуры:

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

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

https://www.facebook.com/alexander.isavnin/posts/1159514467731428

Или даже так:

Выступления политиков можно раздергивать на цитаты “как не нужно писать ТЗ”.

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

И упражнения: задайте заказчику уточняющие вопросы по этому требованию, переформулируйте это требование после ответов на вопросы.

https://tat-ti.livejournal.com/1090928.html

Все косяки с той же “пропускной системой” в Москве – свидетельство полного, окончательного проеба еще на стадии написания технического задания. Отдельные странные люди, конечно, могут писать оды о героизме рядовых сисадминов (потерто, но сохранились скриншоты):

bunin-mos-ru

Не знаю, конечно, кто, по мнению г-на Бунина, пишет техническое задание – но с этим “команда”, стоящая за mos.ru, очевидно не справилась, а возникшие по ходу пьесы проблемы переделывались в авральном режиме (и то криво).

Так вот, с другой стороны – вижу всякого рода описания “чем занимается менеджер проектов” и понимаю, что “менеджмента” там уже нет, а в типовой “айтишной” структуре он вообще превратился в гибрид массовика-затейника для ритуалов Scrum и придатка к Jira. Впрочем, откуда взяться чему-то более содержательному, когда так называемое “айти” представлено в основном бодишопами-субподрядчиками, а настоящее руководство сидит где-то максимально далеко? Но согласитесь – если какого-нибудь Васяна (3 года опыта натягивания тем на Wordpress) “продали” заказчику, как Senior fullstack developer, это же не делает его настоящим “senior developer”? Так же и тут – сидящая придатком к Jira девочка не становится “менеджером проекта” только оттого, что ее должность так называется.

Если вы думаете, что в “окологосударственном” IT дела обстоят как-то лучше – то нет, тут все усугубляется цепочкой субподрядчиков и “отрицательным отбором” на всех руководящих уровнях. На выходе имеем продукт ДИТа, про который даже официальные лица вынуждены говорить “это не баг, это фича“.

Сталинские методы против плоской иерархии

В одном высшем учебном заведении решили вместо обычных курсовых перейти на “проекты”, причем – что особо смешно – групповые. Ну вы представляете себе, что происходит, когда три-четыре студента, да к тому же с дерьмом в голове в виде сказок про flat hierarchy (”как в Silicon Valley!”), пытаются делать что-то вместе. Херня получается. По этому поводу дал одному из участников такой “проектной группы” несколько советов, как всех построить и заставить работать.

Но начну издалека, с описания “управленческой” структуры советского государства образца 30-х годов – она по-своему занимательна. Для начала, вооружившись Конституцией 1936 года, попробуем понять, кто мог бы по ней считаться главой государства. Так как власть у нас – советская, то в 30 статье провозглашалость, что высшим органом государственной власти является Верховный Совет СССР – этакий двухпалатный парламент, состоящий из Совета Союза (1 депутат на 300 тысяч человек населения) и Совета Национальностей (25 депутатов от каждой союзной республики, 11 депутатов от каждой автономной республики и так далее по убывающей). Нетрудно догадаться, что “совет” из тысячи с лишним человек полностью недееспособен – поэтому в 48-49 статье вводится Президиум Верховного Совета, состоящий из председателя, 11 его заместителей, секретаря и 24 членов; согласитесь, что 37 человек скорее смогут о чем-то договориться, нежели 1000. Исполнительная власть – Совет Народных Комиссаров – подотчетна Верховному Совету (точнее, его президиуму, так как сам совет – не постоянно действующий орган). Председатель Совета Народных Комиссаров, по нашим понятиям – глава правительства. В принципе, нормальная такая парламентская республика.

Так вот, где в этой системе место И. В. Сталина? А его там и нет; председатель президиума (в принципе, иностранцы считали его “президентом”) – “всесоюзный староста” Михаил Иванович Калинин, председатель СНК – Вячеслав Михайлович Молотов. Сталин станет председателем СНК только в 1941 году, накануне войны. Но параллельно “государственной” системе управления, существовала еще и “партийная”, про которую в Конституции – буквально три строчки (из 126 статьи):

наиболее активные и сознательные граждане из рядов рабочего класса и других слоев трудящихся объединяются во Всесоюзную коммунистическую партию (большевиков), являющуюся передовым отрядом трудящихся в их борьбе за укрепление и развитие социалистического строя и представляющую руководящее ядро всех организаций трудящихся, как общественных, так и государственных

И здесь не обходится без странностей – РСДРП/РКП(б)/ВКП(б) с самого начала – партия с “внутренней демократией”, без должности “председателя партии”, но так или иначе, руководящий орган в ней образовался, хотя назывался крайне странно – вдумайтесь – “Секретариат Центрального Комитета”. С 1922 по 1934 год должность Сталина – “Генеральный секретарь”, с 1934 до 1953 года Сталин – лишь один из нескольких секретарей ЦК ВКП(б). И в 1922 году секретариат ЦК действительно занимался канцелярской и организационной работой. Думаю, “старые большевики” неоднократно потешались над тем, как горячий грузинский парень яростно изъявляет желание “порулить” секретариатом партии, то есть секретаршами и машинистками. Зря смеялись – благодаря этому уже в конце 1922 года в “Письме к съезду” Ленин пишет, что “тов. Сталин, сделавшись генсеком, сосредоточил в своих руках необъятную власть”; в том же абзаце критикуется его “чрезмерное увлечение чисто административной стороной дела”.

В чем же состояла “необъятная власть”? Плавненько “секретариат” из чисто вспомогательного, административного органа превратился в “руководящий” (хотя в конце 20-х все еще занимался организационной работой, вплоть до распределения путевок на отдых среди членов ЦК), а “генеральный секретарь” из секретаря превратился, фактически, в главу государства. Так вот, метод “генерального секретаря” прекрасно уничтожает любую “плоскую иерархию” за крайне малое время.

Что можно сделать применительно к такому вот “студенческому проекту”? Для начала – прикинуться дурачком, то бишь грузином или блондинкой. Старательно законспектировать трехчасовой треп в Zoom о судьбах проекта, выделить основные тезисы и разослать всем в качестве meeting minutes. Первый шаг сделан – особенно удачно было бы сопроводить его неким недоумением, мол, правильно ли я все понял? Остальные участники проекта решат, что вы действительно туповаты и не будут воспринимать вас всерьез.

На втором шаге – пожалуйтесь, что вот этот ежедневный/еженедельный треп отнимает массу времени и предложите заранее, перед созвоном определять обсуждаемые вопросы. Можно попытаться ввести регламент – зачитываем вопрос, каждый высказывается (не более 5 минут), формулируем решение или откладываем до следующего раза. За соблюдением регламента следите, разумеется, вы – вряд ли кто-то пожелает заниматься подобной скучной работой, а вы дурачок/грузин/блондинка, вам только это доверить и можно. Любая “бюрократия” – от “слушали … постановили” (хотя так явно палиться не надо) до похожих на веселые игры ритуалов Scrum (всякие там stand-up meeting, planning poker и так далее) вам тут на руку.

Уже к третьему-четвертому такому созвону вы будете знать о проекте больше любого другого участника, сможете формировать “повестку дня” и предъявлять другим участникам претензии за несделанную работу – то есть в бывшей плоской иерархии превратитесь в полноценного “менеджера проекта”. Как вы распорядитесь доставшейся вам необъятной властью – уже другое дело, погоны генералиссимуса вы вряд ли получите, но попробовать стоит.

Автосимуляторное

Узнал тут о существовании “новой физики” и “чешского плагина” для вышедшей еще в 2004 году Richard Burns Rally. А еще оказывается – в этой вроде бы древней игрушке до сих пор проводят довольно представительные “киберспортивные” соревнования:

http://rbr-russia.ru/championships/

А с другой стороны – посмотрел тут в магазинах цены на минимально подходящие для серьезных игр рули и как-то немного опечалился:

https://www.dns-shop.ru/catalog/6809155f0e06c3d1/igrovye-ruli/

За такие деньги можно и Жигуар купить и гонять по пока еще не закатанным в асфальт дорожкам Московской области, закидывая камнями мирно едущих на дачу граждан.

Уверенное второе место

covid-2nd

Самое время догнать и перегнать Америку.

Баржеводство неизлечимо

Купил вот часы с символикой Горьковского автозавода на “легендарном” механизме 3133:

gaz-3133

Скажите, это вообще нормально?

Читаю вот новости

Пишут, что Госдума приняла закон, “разрешающий электронное голосование”:

https://tass.ru/politika/8463527

Комментарии – в том числе от технически вполне грамотных людей (ну или считающих себя таковыми) – разнообразием почему-то не отличаются, мол, знаем-знаем, главное – не как проголосуют, а как подсчитают, ну и в целом настрой довольно скептический. Отдельные “технически грамотные” товарищи (в кавычках, и это важно), видимо, представляя себе “как бы я делал электронную голосовалку для конкурса красоты в контакте” безапелляционно утверждают, что сделать систему электронного голосования, обеспечивающую те же гарантии, что и традиционное бумажное голосование, совершенно невозможно.

Так вот, спешу этих “технически грамотных” разочаровать – еще лет 15 назад, учась в старших классах, я читал книжку Брюса Шнайера “Прикладная криптография“, где в одной из глав описывались “эзотерические протоколы” – и среди всяких подбрасываний монеты по телефону, дистанционного покера и тому подобных забавных, но чисто теоретических построений были подробно разобраны требования к “электронным” выборам и реализации, удовлетворяющие всем или части этих требований. Задача построения системы электронного голосования, обеспечивающей одновременно и тайну голосования, и возможность проверки результатов (и еще несколько свойств бумажного голосования, о которых мы как-то забываем) – вполне себе решаемая, вопрос только в том, захотят ли ее решать разработчики очередной такой системы или нет. Впрочем, “захотят” рано или поздно в любом случае – так как неправильно построенные электронные голосовалки приводят только к очередным скандалам.

А краткое изложение основных тезисов из книжки Шнайера можно увидеть в этом ролике:

Киберралли “Карантин”

Федерация экстремальных и технических видов спорта придумала новое развлечение – соревнование по дорожному ралли и автомобильному ориентированию, для которого автомобиль не требуется :) Если вы хотели посмотреть, как выглядит “штурманское” ралли – читайте регламент и заявляйтесь:

http://pro-x.pro/news/382

Обновления турнирной таблицы

Не удовлетворившись победой над Германией еще 7 мая и досрочным выполнением обязательств, российская сборная еще вчера ворвалась в Top-5, а сегодня вступила в борьбу за третье место:

covid-top5

И с Днем Радио!

А то что это я все на матлаб жалуюсь? Вот у Попова никакого матлаба не было – а радио тем не менее работало!

Еще раз про MATLAB

Сим постановляю:

  • Считать MATLAB Coder кривым куском говна;
  • Сайт techbriefs.com приравнять к рекламным листовкам, напечатанным на мягкой бумаге;
  • Его читателей считать говноедами.

А теперь подробнее – несложная функция в два десятка строк на MATLAB (содержащая в основном операции с матрицами – несколько вычислений нормы и умножений) с помощью этого прекрасного инструмента превращается в четыре (!) полуработающих функции на C, общей длиной – что-то около 3000 (!) строк кода. Ни одна из функций не работает полностью правильно, на всех возможных вариантах входных данных. Написанная вручную функция, делающая то же самое – всего 80 строк (в SLOC и того меньше, комментарии мне сейчас считать лень). Как это соотносится с декларируемыми в статейке “benefits”:

no need to schedule time for hand-coding GN&C algorithms (60,000+ SLOC were autocoded by the Critical Design Review), and a detailed requirements review was replaced by a review of MBD artifacts that had proven functionality

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

Симулятор ковида, или зачем нам нужны программисты

Листал тут твиттер и наткнулся на твит @ID_AA_Carmack, где тот пишет о том, как помогал привести в божеский вид симулятор распространения вирусных заболеваний под авторством Имперского Колледжа Лондона. Симулятор можно найти на гитхабе:

https://github.com/mrc-ide/covid-sim

Есть пара мыслей о полезности программистов во время массовых эпидемий. Во-первых: симулятор написан на банальном и тупом Си. Никаких модных концепций вроде объектно-ориентированного или функционального программирования, никаких этих ваших хаскеллей с монадами и прочей такой хероты. Просто банальный “процедурный” код, местами – в стиле книжки Numerical Recipes или, прости господи, в неподражаемом духе “you can write Fortran in any language“. Тупо – но просто и понятно:

Before the GitHub team started working on the code it was a single 15k line C file that had been worked on for a decade, and some of the functions looked like they were machine translated from Fortran. There are some tropes about academic code that have grains of truth, but it turned out that it fared a lot better going through the gauntlet of code analysis tools I hit it with than a lot of more modern code. There is something to be said for straightforward C code. Bugs were found and fixed, but generally in paths that weren’t enabled or hit. Similarly, the performance scaling using OpenMP was already pretty good, and this was not the place for one of my dramatic system refactorings. Mostly, I was just a code janitor for a few weeks, but I was happy to be able to help a little.

https://mobile.twitter.com/ID_AA_Carmack/status/1254872369556074496

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

Угадали? Правильно – ноль!

Как мне кажется, в скором времени надо будет отлавливать всяких там фронтендеров, бекендеров, сеньоров с трехлетним стажем, дата-саентистов и прочих специалистов по бигдате и строго спрашивать – “А что ты сделал для борьбы с ковидом?” За ответы вроде “высрал сто комментариев на хабре”, “напечатал на 3D-принтере клапан для ИВЛ” и тому подобные – выводить в чистое поле к стенке отправлять санитаром в чумной барак.

Музыка из HoMM II

Узнал тут, что “оперный” саундтрек во вторых “Героях” – это не “бессмысленное пение на псевдолатыни“, а вполне себе связный текст на довольно четком немецком:

http://mm6world.ru/differ/h2_lyrics.htm

Интересно, а как это все воспринимали немецкоязычные игроки?

Хроники с полей

Россия уверенно обошла Турцию и приближается к группе лидеров по заболеваемости COVID-19. Опередим ли Германию к 9 мая?

covid-germany-vs-russia

Про антиквариат

Набрел на прекрасный тред на форуме часовщиков: мужик нашел где-то старинные каминные часы (причем не вполне комплектные), пришел на форум с просьбой “оценить”, а когда ему сказали, что это французский ширпотреб конца XIX века, уже в те времена довольно массовый, особой исторической и художественной ценности не имеющий, и оценили в 250 евро – сильно обиделся:

http://forum.watch.ru/showthread.php?t=311275

Вообще не первый раз вижу, что советские и постсоветские люди совершенно неадекватно оценивают любой “антиквариат” (особенно, когда он относится к категории “нашел в гараже” – заодно . То, что какой-то вещи больше сотни лет, еще не делает ее владельца обладателем редкого сокровища – особенно сейчас, когда любой может зайти на тот же немецкий или французский eBay и обнаружить там все это барахло конца XIX века по вполне приемлемым ценам (скажем, те же каминные часы будут действительно стоить 250-300 евро). Сложно однозначно сказать, в чем корень такого заблуждения – тут и две войны, и революция, и 70 лет советской власти, не особо способствовавшие сохранности всякого барахла – но как-то пора бы уже научиться понимать, что вряд ли ширпотреб, пусть и столетней давности, превратится вдруг в невероятное сокровище.