green_fr: (Default)
Разговорились за обедом с шефом. Он примерно моего возраста, школу закончил в начале 1990-х. Во Франции тогда была ещё обязательная воинская служба, но была возможность отдать долг родине через альтернативную службу. Он постулировал на помощника IT-шника (Винду ставить, принтеры подключать) на какой-то научной станции в Гвиане (это кусочек Франции в Южной Америке). Станция рядом с космодромом Куру, он видел старты Ариан-4, был там, когда взорвался первый Ариан-5 (1996 год), но самого взрыва не видел. У меня тут же в голове крутится параллель с моей базой в институте. Я был в ИКИ, это тоже 1996 год, и там тоже все ходили прибитые, потому что денег нет, еле-еле наскребли на Марс-96, который тоже взорвался. Все сидели и пили водку — если бы аппарат долетел до Марса, теоретически светили ещё какие-то деньги на исследования, а так...

Шеф рассказал, что провёл там 18 месяцев. Достаточно сложно без связи с родными. Хорошо, что мейл уже был. У них там помимо «нормальных» Виндов стояли какие-то странные машины Sun. Да ладно, не выдерживаю я! SPARCstation? Они самые. И там ещё UNIX был. Конечно, поддакиваю я, Solaris OS. У нас в ИКИ тоже почему-то именно такие же машины стояли. И связь с внешним миром была именно через них. Я там не только первый свой e-mail завёл (ank@d902.iki.rssi.ru — уже давно не работает, и это был единственный мой адрес не «green»), я там впервые увидел web-браузер. В ИКИ был выход в интернет, пусть и с какой-то смешной сегодня скоростью, мы шарились по FTP-серверам финских университетов, скачивали картинки, надеясь на эротику. Она тоже попадалась, но чаще какие-то котики / водопадики — тоже, впрочем, в памяти отпечатавшиеся.

А ещё, говорит шеф, в Гвиане нет разрешения на охоту (я проверил, с 2017 года есть). И очень простой подход к покупке охотничьего орудия. То есть, ты просто заходишь в магазин, покупаешь винтовку, идёшь в лес и охотишься. Он первым делом купил себе ствол. Кстати, говорит мне, никогда не догадаешься, как называлась моя винтовка! Калашников, говорю? Ну, почти что — «Байкал» (я посмотрел, это действительно охотничий бренд Калашникова). Ну и как, спрашивают все, кого ты там наохотил? Ну, говорит, каймана застрелил. Все на автомате смотрят, из какой кожи его ботинки — но нет, не крокодиловой. Застрелил, говорит, съели потом. И ещё какую-то птицу. Не сильно быстро летающую. Курицу, что ли? Ну, примерно :-) Мои трофеи и того скромнее — я максимум словил одну форель (достаточно позорная история из нашей поездки в Австралию), наверное это весь мой опыт охотника-рыболова.

А вообще, приятно было слушать. Провести полтора года на научной станции — мечта. Его регулярно брали с собой в какие-то небольшие экспедиции, ну или просто хотя бы рассказывали, что они там делают. Был этнограф, он изучал индейцев, регулярно уходил к ним на несколько недель (во Франции ты не можешь избирательно запретить людям заходить на открытую для других граждан территорию, поэтому у них там не резервации с запретом на вход для других людей, а ZAR = zone d’accès réglementé — не то, чтобы я видел сильную разницу). Был энтомолог с какой-то сумасшедшей коллекцией местных тараканов. Были биологи, ещё какие-то учёные, постоянно бравшие пробы воды и грунта.
В прошлом отделе у меня был коллега, который точно так же тепло вспоминал стажировку в астрономической обсерватории на Aiguille du Midi. Фантастически им повезло, конечно (я как раз досмотрел 6 сезон «Детства Шелдона», где его взяли на лето в Гейдельбергский университет :->)
green_fr: (Default)
Прекрасная история на работе. У нас над проектом работает 2 отдела. Один из дирекции инвестиций (DI), другой из страховой дирекции (DAP). Код проекта хранится в SVN, депозиторий назвали di — просто потому, что в тот момент я работал в DI, не подумал.

В этой же DI есть внутренний аудитор, с которым лично у меня не получалось работать. Мне вообще сложно с людьми, которые сначала задают вопрос, чтобы узнать что-то для себя новое, слушают, ответа не понимают, но зато начинают после этого пытаться тебя же исправлять. Не понимая половины слов даже в собственных фразах. Начальнику я на него жаловался, но это же мой начальник, а не его. Мой начальник решил забить («сделай так, чтобы он больше мне не писал»), через некоторое время я сменил дирекцию (не из-за этого, но это был однозначно дополнительный бонус для перехода в DAP) и подумал, что можно об этом персонаже забыть.

Но недавно наш герой увидел название депозитория и потребовал, чтобы к нему имели доступ только сотрудники DI. Почему? Потому что депозиторий называется di. В этом месте нельзя не вспомнить анекдот про пограничника и Fiat Uno, только у нас это не анекдот. Начальник отдела DI взял под козырёк, отослал мейл в DSI (информатики, управляют правами доступа), и на следующий день у нас не было доступа (собственно, откуда мы и узнали о внутренней жизни соседней дирекции).

Собрались все члены проекта, начали искать решение. Я предложил переименовать репозиторий :-) Но в силу других причин этого решили не делать. Начальник отдела DI предложил сделать два репозитория и назначить ответственного за ручную синхронизацию между ними (я не шучу). К счастью, этот вариант тоже не приняли.

Решили в итоге перекроить права доступа так, чтобы работники из DI имели доступ ко всему репозиторию, а работники DAP — только к части его. Сделали новые спецификации, отослали в DSI. Через день у нас снова были права, на выделенный нам кусочек. При этом работники DI потеряли все права целиком. Ещё день ушёл на то, чтобы починить права DI. Сколько денег / человеко-часов мы потеряли из-за этого анекдота, я не берусь посчитать.
green_fr: (Default)
Прошло 5 месяцев, как я сменил работу. Стиль очень сильно отличается от того, что было в предыдущем отделе. Причём и в профессиональном смысле, и в личном. Про личное сформулировать проще: в новом отделе люди разговаривают друг с другом :-) В старом накладывалось сразу несколько факторов: личность начальника (он правда не понимает, зачем вообще нужно разговаривать, когда можно не), состав отдела (одновременно ушло несколько человек, а те, кого нанимали с тех пор, были какими-то феерически неприятными в общении людьми), да я и сам не сказать, чтобы слишком уж горел или умел с людьми общаться (письменно мне это удаётся лучше).

Сильно отличается ритм работы. В прошлом отделе у меня не было практически никакой привязки к реальному миру, чистое моделирование. Или даже скорее разработка моделирования, потому что регулярные расчёты делал не я, то есть и к датам отчётов никакой привязки у меня не было. К слову о предыдущем параграфе: только уйдя в новый отдел, я узнал, кто в старом занимался этими расчётами, и в чём именно они заключались. На мне была только одна привязанная к реальному миру задача, для которой маржа по времени плюс-минус месяц. Здесь же очень чёткий производственный цикл: закрытие каждого триместра занимает практически весь первый месяц следующего, таким образом отпуск в январе / апреле / июле / октябре мне в ближайшие годы не светит. Скорее всего и в марте тоже, потому что это закрытие года.
Read more... )
green_fr: (Default)
В Европе лет 10 назад приняли закон о невозможности дискриминации тарифа страховых контрактов по полу человека. С нового года этот же закон начинает распространяться на так называемые «коллективные контракты» (типичный случай: работодатель подписывает контракт на всех своих работников — текущих и будущих — одним махом). Я как раз сменил работу, есть возможность разобраться, как это работает на самом деле.
Read more... )
green_fr: (Default)
Большое досье про квантовые компьютеры. Пересказывать несерьёзно, но некоторые побочные моменты мне хочется отметить.

Интересный аргумент к вопросу о детерминизме (в контексте досье это было о квантовых компьютерах, но я тут же подумал и о разговорах о свободе воли): не важно даже, есть ли детерминизм в квантовых системах. Даже если он есть, мы не знаем с абсолютной точностью действующих физических законов. А следовательно мы не можем «взять первоначальные условия и просчитать будущее». Ну так и какая нам разница, по какой именно причине мы не можем просчитать будущее? Чем это концептуально отличается от недетрминизма?

Статья о задаче моделирования N квантовых тел — пример конкретной нужной задачи, в которой с одной стороны превосходство квантового компьютера очевидно, но при этом появляются какие-то алгоритмы для нормальных компьютеров, позволяющие и им делать какие-то вычисления. Если моделировать в лоб, то сложность волновой функции растёт экспоненциально N. Обычные компьютеры исторически справлялись с тривиальными конфигурациями (водород в вакууме — практически сферический конь), для интересных случаев долгое время надежда была только на квантовые компьютеры. Потом для 1-мерного варианта нашли решение (density matrix renormalization group). А потом нашли красивый хак (matrix product states): вместо того, чтобы описывать систему N-мерной матрицей (для тел с d возможными состояниями это d^N параметров), попробуем представить её в виде произведения N матриц меньшей размерности. И этот хак позволяет получать решения буквально на обычном компьютере.

Дальше авторы рассуждают о том, как именно можно было бы применить этот хак к системам большей размерности, а я вспомнил, как убил несколько недель на ровно этот же хак на работе. У нас самая ресурсоёмкая часть расчётов оперирует матрицей K*S, где K — количество клиентов в портфеле, а S — количество моделируемых сценариев. Очевидно, что подавляющее большинство операция одномерно либо по первому измерению (например, финансовые показатели не зависят от личности клиента: если мы заработали 3%, значит мы дали всем по 3%), либо по второму (например, показатели смертности — вероятность умереть зависит только от возраста, а он для каждого человека одинаков во всех наших сценариях). К сожалению, я наткнулся на операцию, которую я не смог выразить как последовательность одномерных операций (достаточно техническая вещь: распределение некоей суммы, которая зависит от сценария, но распределяется в зависимости от характеристик клиентов). А переводить на одномерные операторы только часть расчётов приводило к ужасной сложности кода — и я забил.

В статье при этом рассматривают ещё одну интересную мысль: работать не с общим случаем, а пытаться понять, какие упрощения оставляют нам все более-менее интересные варианты. Красивая иллюстрация: архиватор в общем случае не работает (Дирихле не даст соврать), но на практике все реальные файлы сжимаются. Тот же jpeg — все интересные человеку фотографии прекрасно компрессируются, и всем плевать, что в общем случае (белый шум) алгоритм никакого выигрыша не даёт. Точно так же и с системой N квантовых тел, если мы, например, работаем с их запутанностью. В общем случае да, каждая частица может быть запутана с любой из оставшихся. Но на практике нас интересуют только системы, где запутанность связывает частицы, находящиеся относительно недалеко друг от друга. И в этой формулировке вроде как получилось посчитать какие-то 2D конфигурации. Это тоже очень полезная мысль, надо постараться держать её в голове в следующий раз, когда я примусь решать на работе задачу «в общем виде». Привычка есть, и вообще сложно оставлять в голове возможность того, что мой алгоритм не работает в общем виде (последний пример: пост про Advent of Code 2022, где я возмущаюсь человеком, схалявившим в решении 16-й задачи, в то время как я искал общее решение — но у него при этом получился ответ, а у меня-то нат).

В этой же статье упоминают «нотацию Пенроуза» — английская Википедия рассказывает какие-то ужасы, в русской Википедии вообще тишина. Нашёл описание на другом сайте. Очень удобное графическое изображение операция с многомерными матрицами. Надо будет обязательно принести эту нотацию на работу!
green_fr: (Default)
Я меняю работу, перехожу в соседний отдел. Остаюсь актуарием, но буду заниматься не финансовым риском, а риском страхования жизни. Учитывая, что у актуариев есть три специализации, и третья у меня была перед нынешней — в этой игре я собрал все баджики.

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

У меня обычно на одну должность уходило ~2 года (первые 6 должностей = 14 лет), нынешний отдел — явное исключение (ещё 14 лет только в нём). Понятно, что я узнал здесь много нового, и каждый год было что-то новое, ну и вообще уникальное место. Но всё равно, у меня появилось ощущение, что я «засиделся». Какой-то излишний комфорт, когда ты знаешь, что ты уверенно справишься с практически любой задачей. А я люблю учиться новому, люблю ощущать границы собственной компетентности. Как я говорю на работе: нельзя вечно сидеть на одном месте, иначе из тебя рано или поздно получится Путин. Когда ты уже не сможешь уйти с того места, на котором сидишь.

Должность в новом отделе лучше конвертируется, потому что такие отделы есть буквально в каждой страховой компании, тогда как мой текущий отдел — практически экзотика. Что-то похожее есть во всех страховых компаниях и банках, но обычно всю теорию и всю разработку отдают крупным монстрам (например Moody’s), ну или собственной дирекции информатики. Это у нас шеф решил всё делать своими руками — не знаю, насколько это осмысленно для компании, но лично мне было интересно. С другой стороны, насколько мне эта конвертируемость нужна, непонятно. Судя по всему, у нас в компании хорошо платят: я несколько раз подавался в разные компании, и когда меня готовы были куда-то брать, платили там в полтора, если не в два раза меньше. С этой точки зрения смена работы без смены компании хороша — у нас при внутренней мобильности заплата остаётся той же, куда бы ты не переходил.

Официально перехожу с 1 октября, но график сложный: в новом отделе запарка в июле и октябре, а в нынешнем отделе запарка в ноябре. Поэтому договорились, что меня в июле на полмесяца занимает мой будущий отдел, а в ноябре он меня предоставит назад на полмесяца отделу нынешнему. Чувствую себя футболистом во время переговоров о трансфере (переговоры с апреля длятся). Соответственно, планы на ближайшее будущее: июль — смотреть и учиться, как мои новые коллеги закрывают второй триместр (я этим буду заниматься в третьем), ну и отпуск, конечно (Австрия). Август-сентябрь — принять новую девочку в старый отдел и попытаться довести её с нуля до максимальной автономии, ну и отпуск, конечно (Ирландия и Франция). Октябрь — закрывать с новыми коллегами третий триместр, ну и отпуск, конечно (Египет и Германия). Ноябрь — смотреть, как обученная мною девочка сдаёт ORSA — с отпуском пока что не определились :-)

Несколько дней назад на LinkedIn опубликовали объявление о найме на моё место. В списке обещанных благ служебный автомобиль, по коему поводу все ржут и в старом отделе и в новом.
green_fr: (Default)
В MatLab есть функция isa(object, className), которая проверяет, является ли данный объект «совместимым» с указанным классом (либо объект самого класса, либо объект одного из наследующих классов). Оно само по себе плохо, иметь код с такими проверками, но так уж получилось, у нас такое есть. Например, когда в одном файле хранятся объекты разного типа (скажем, актив и пассив), а я хочу прочитать их и сделать какую-то операцию только с объектами определённого типа (скажем, только с активом, посчитать общую сумму). Я мог бы базироваться на имени переменных, но это для меня ещё хуже, чем проверять тип данных.

Так вот, функция isa. Проблема для меня в слове «name» — я не люблю использование строк в этом контексте. Например, если я поменяю название класса, я хотел бы, чтобы функция isa не просто отвечала «ой, нет», а выдавала ошибку «не знаю такого класса» (причём лучше даже ещё на этапе компиляции). Ну и всякие там утилиты рефакторинга (предположим, они когда-нибудь появятся и для MatLab) лучше бы работали, если бы это была не просто строка, а прямая отсылка к классу.

При этом за последние годы в MatLab дописали много связанного с reflexion, полез в RTFM. Вижу, что есть класс meta.class, у которого есть свойство Name — это же то, что мне надо! Осталось понять, как получить объект этого класса, соответствующий нужному мне классу. Откопал, что есть какой-то убогий синтаксис ?MyClass. Убогость его в том, что эта конструкция вырывается из общей структуры программы на MatLab — что за вопросительный знак? Почему это нельзя было хотя бы оформить в виде свойства или метода (как это сделали в java)? И таки да, за счёт этой убогости я не могу прицепить эту инструкцию к последующим вызовам. То есть не работает не только двусмысленный ?MyClass.Name, но и очевидный (?MyClass).Name. Только через временную переменную: сначала meta = ?MyClass, а уже потом meta.Name.

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

Первый ответ. Да, лучше всего использовать временную переменную. Но можно и без неё. Объект класса meta.class можно получить не только через класс, но и через объект этого класса. См. метод class(myObject). А если у вас нет под рукой объекта нужного вам класса (нет, у меня в этот момент его как раз нет), то вы можете попытаться схитрить и написать class(MyClass()) - при условии, что у вашего класса есть пустой конструктор. Нет, и пустого конструктора у меня тоже нет. Более того, у меня куча абстрактных классов, так что даже создать пустой конструктор исключительно для этого использования — это не вариант.

Второй ответ. Вы знаете, мы тут посоветовались с разработчиками, и к вашей проблеме можно подойти с другой стороны. Вы уже знаете, как получить meta.class нужного вам класса: ?MyClass. И у вас есть объект, для которого вы тоже можете получить meta.class его класса: class(myObject). Осталось только сравнить эти два мета-класса, а для этого у нас есть операторы «>=» и «<=»! Стоп, думаю. Они мне что, предлагают тупо проверять на идентичность два объекта класса meta.class? А если у меня класс объекта наследует от проверяемого класса: это совместимые, но разные классы, объекты их meta.class будут разными.

Прежде чем выругаться «что вы меня, за идиота держите?!», проверяю — а оно работает. Реально, я могу арифметически сравнивать два объекта meta.class, и наследующий класс строго меньше наследуемого, а наследуемый строго больше наследующего. При этом, если сравнивать два класса из разных ветвей, то любое сравнение (больше, меньше, равно) будет выдавать негативный результат.

Пишу в ответ: хмм... спасибо, это, конечно, работает, но выглядит каким-то безумным хаком. Это хотя бы где-то документировано? Или просто «так получилось»? Основывать свой функционал на таких соплях, которые, возможно, уже в следующей версии перестанут работать, лично мне страшно. Приходит ответ: ну что вы, конечно это фича!

Тикет закрыли. Но учитывая, что изначально я стремился к большей лёгкости управления кодом (представил себе, как я буду объяснять эту строчку коллегам...), применять новые знания я не стал :-)
green_fr: (Default)
Пришёл мне по работе файл со странной датой. Показывает «17/03/2025», но когда кликаешь на эту ячейку, в строке формул показывает значение «16/03/2025 00:00:00».

Пытаюсь понять, что происходит. Снимаю формат даты — значение 45733. Пишу в соседней ячейке ручками «45733». Ставлю назад формат даты: обе ячейки показывают «17/03/2025». Но когда кликаешь в мою, в строке формул остаётся «17/03/2025», а в той ячейке — «16/03/2025 00:00:00». Побаловался с форматами, показывающими время — без проблем, может показывать «00:00:00» и в моей тоже.

Ладно, думаю, может быть моё 45733 чем-то отличается от их 45733? Ставлю рядом формулу разности между двумя ячейками — 0. Честный ноль. Не какое-то там 10E-10.

Достаём козыри. К чёрту Excel, мало ли что он там мудрит. Надо смотреть на исходные данные. Сохраняю файл, состоящий из этих двух ячеек. Открываю его в Total Commander как zip, спускаюсь до «xl\worksheets\sheet1.xml», открываю XML в текстовом редакторе, а там такая прелесть:

<sheetData>
  <row r="1" spans="1:1" x14ac:dyDescent="0.35">
    <c r="A1" s="1">
     <v>45732.999999999993</v>
    </c>
  </row>
  <row r="2" spans="1:1" x14ac:dyDescent="0.35">
    <c r="A2" s="2">
     <v>45733</v>
    </c>
  </row>
  <row r="3" spans="1:1" x14ac:dyDescent="0.35">
    <c r="A3">
     <f>A2-A1</f>
     <v>0</v>
    </c>
  </row>
</sheetData>
  


То есть в двух ячейках примерно одна и та же дата — полночь с 16 на 17 марта. Только у меня точно полночь. А в другой ячейке — несколько микросекунд до полуночи. То есть, формально у меня 17 марта, а у них — 16 марта. Проблема в том, что их время 23:59:59.99999999 округляется не до 24:00:00, а до 00:00:00. Ну и то, что (из-за особенностей внутреннего формата хранения данных) 45733 — 45732.999999999993 реально равняется 0, а не 0.0000000000007 (поэтому я не мог увидеть эту разницу в Excel).

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


Читаю сейчас книжку от автора StandUp Math. У него вообще прекрасный пример. Наберите, говорит, в Excel формулу «=0.5-0.4-0.1». Он посчитает «честный ноль». А теперь наберите «=(0.5-0.4-0.1)*1» — и вы увидите что-то вроде 1E-17, потому что числа 0.4 и 0.1 не записываются в двоичной системе без округления (примерно потому же, почему нас не удивляет, что конечная запись 1/3+2/3 не даёт ровно 1: 0.33333333+0.66666666=0.99999999). Почему же в первом случае получается 0? Видимо, Excel в этом случае не считает по-честному, а каким-то образом понимает, что там должен быть ноль — и показывает его. А умножение на 1 ломает его эвристику, он не узнаёт формулы, начинает считать — и получает «логичный» рудимент округления.
green_fr: (Default)
У нас тут решили продвигать марку SMA в LinkedIn, запустили кампанию: кто лучше всех будет нахваливать нашу контору в ноябре-декабре, тому подарят айфончик :-) Мы с коллегами похихикали, конечно — половина не представляет, что такое LinkedIn, вторая половина — что мы там можем писать о нашей компании.

А сегодня профком (CSE) прислал рассылку, которую я с удовольствием и расшарил бы в LinkedIn, но поскольку ещё не ноябрь, буду довольствоваться бложиком. Профком решил пожертвовать 18K€ ассоциации, занимающейся приёмом беженцев. На конкретный проект: интернет для беженцев (проведение и раздача интернета в местах приёма беженцев, курсы по использованию сайтов французской администрации).

В рассылке уточняют, что они имеют право распоряжаться деньгами по своему усмотрению (до 10% годового бюджета могут жертвовать, кому угодно). А также, что конкретно это сумма — это невостребованные субсидии прошлого года работникам компании на питание. Вместо того, чтобы просто вернуть их в общий бюджет, деньги решили пожертвовать. Аналогично думают о том, чтобы куда-то подарить невостребованные субсидии на отпуск.
green_fr: (Default)
Я очень люблю рассматривать опечатки и пытаться понять, откуда они взялись — где-то кнопки рядом на клавиатуре, где-то транслит заглючил, где-то левая рука с правой перепутались. Вчера в моей коллекции появился новый тип опечатки, типично французский.

У нас на работе телефон технический поддержки 77100. Я наткнулся на ошибку программы, где мы можем запрашивать себе курсы повышения квалификации (хочу подучить бухгалтерию страхования жизни, там много неочевидного, а мне это моделировать), написал мейлом свой запрос, уточнил, почему не могу сделать запрос через приложение. Мне ответили просьбой сообщить об ошибке в службу поддержки, телефон 70700.

Оба номера по-французски читаются примерно одинаково: soixante-dix-sept-cent. Вопрос лишь в интонации, в длине пробела.
Если soixante-dix-sept----cent, то выходит 77100. А если soixante-dix---sept-cent, то 70700.
green_fr: (Default)
В Institut des Actuaires сделали доклад на эту тему, как можно было не послушать? :-)

В двух словах, человек пытается показать, что смертность от ковида пропорциональна обычной смертности (слайд 5). Под «обычной» смертностью он подразумевает «смертность без учёта смертей от внешних причин» — убийства, самоубийства, автокатастрофы и пр. То есть «смертность от болезни, по здоровью». В этом смысле очень интересно посмотреть на график «общей» смертности и «обычной», точнее на их расхождение. И задуматься, какой же фигнёй занимаются мальчики до 40 лет, что у них такая огромная «смертность от внешних причин»? Никакого сюрприза, конечно, но всё равно, впечатляет увидеть этот график своими глазами.



В качестве модели смертности от ковида автор предлагает простую формулу AIR: X = A*I*R, где X — смертность от ковида, A — общая смертность, I — множитель заражения, R — множитель смертности заражённого. Сама по себе модель может быть, конечно же, какой угодно, интересно поведение этих множителей от различных факторов. Если они меняются индивидуально, от человека к человеку — то никакого интереса такая модель не представляет. Если же видны какие-то константы или хотя бы закономерности — модель можно использовать в предсказательных целях.

Дальше автор разбивает людей на группы по возрасту и по тому, что во Франции называют groupe socio-professionnel, то есть какие-то однородные по своему составу (характеристики, поведение и пр.) группы. В отличие от Франции, в Великобритании (автор из Эдинбурга) не стесняются расовой классификации, поэтому там не только сегментация по доходам, образованию и типу работы (рабочий, колхозник, офисная крыса, начальник, артист, пенсионер, безработный), но и этнические группы.

И вот выходит, что R очень слабо зависит от всей этой классификации. То есть, когда мы говорим «от ковида умирают только старики», это можно переформулировать как «ковид убивает в z раз больше обычного, а обычно умирают только старики, поэтому на стариках эффект ковида виден лучше». Тут автору задали вопрос про разные медицинские эффекты — насколько больше умирают те, у кого и так уже есть какие-то проблемы со здоровьем. Он ответил чуть позже, на странице 17, примерно в том же духе: да, люди, у которых лишний вес, диабет и прочее, они быстрее умирают от ковида — но и без ковида они умирают быстрее. Точно посчитать у него не получается (сложный доступ к данным), но не факт, что будет какой-то другой результат.

Фактор I ведёт себя достаточно предсказуемо. На странице 12 автор приводит несколько определяющих его значение параметров:
* От пола он практически не зависит
* Очень слабая зависимость от уровня доходов (но всё же, чем меньше денег — тем больше риск, об этом он поговорит позже)
* Возраст влияет — молодёжь (18-24 года) заражается существенно проще, чем остальные категории населения. От себя добавлю: то ли из-за стиля жизни (тусовки, вечеринки), то ли потому что они неправильно поняли, почему смертность видна только на стариках (нам пофиг, ковид молодых не задевает!)
* География конечно же влияет — с точки зрения I лучше жить в жопе мира, чем в центре Лондона
* Раса влияет — у белых I самый низкий. Но тут тоже он позже попытался декоррелировать от всего остального
* У мед. персонала I вдвое больше среднего. Но самый ужас — у client-facing care home worker (я не совсем понял английский термин — это те, кто, условно, ухаживает за стариками, или уборщики дома туда тоже попадают?), у них I втрое больше.
* Вполне предсказуемо, что с размером семьи (количество людей, живущих под одной крышей) I тоже растёт. Эффект чисто математический, но не он ли объясняет постоянно всплывающую в израильских блогах тему о том, как «религиозным всё пофиг»? Может, у них больше заражённость только потому, что семьи большие, а не из-за какого-то их особого поведения?

Слайды 13-15 разбирают эффект дохода. Обычная смертность растёт с уменьшением доходов — это всем известный факт (серые прямоугольники). Смертность от ковида (синие прямоугольники) тоже растёт с уменьшением доходов, и даже кажется, что она растёт существенно быстрее, особенно на последних трёх децилях. Но мы видели, например, что в Лондоне ковида было существенно больше, чем где бы то ни было по стране, и при этом именно в Лондоне же больший процент бедных людей. Если попытаться декоррелировать хотя бы географический фактор (тут сложность из-за разной детализации данных — здесь автор вынужден перейти к данным общей смертности, он не смог исключить смертность от внешних причин), то эффект бедности становится существенно меньше: красные полоски — общая смертность, серые — наблюдаемая смертность от ковида, жёлтые — после того, как убрали эффект географии.




Вторая тема доклада — насколько можно говорить просто об ускорении смертности? То есть, нет ли такого эффекта, что от ковида умирают те, кто и так умер бы — не в этом году, так в следующем? (Майк, привет, это твоя тема!) В таком случае общий эффект на населении был бы существенно ниже — повышенная смертность этого года практически компенсировалась бы пониженной смертностью следующего. Понятно, что мы предполагаем, что эпидемия когда-то остановится. Ключевой вопрос долгосрочных последствий болезни на не имевших никаких осложнений больных ковидом — но вроде как пока что нет никаких оснований уверенно утверждать, что такие последствия есть.

В такой постановке задачи достаточно цинично, но очевидно, что ковид «оздоравливает» выжившую популяцию. Как лиса в курятнике: если она съела самых слабых, то в живых остались самые сильные. Дальше автор пытается построить модель и численно оценить этот эффект, но мне эта часть показалась не такой интересной. Да, с точки зрения актуария (принятие решения о сценариях смертности) это очень важный вопрос, но насколько же там всё вилами на воде писано. И даже в построенных и откалиброванных по имеющимся данным моделях эффект получается слабым. Так что эту часть можно пропустить.

Интересен слайд 25, где автор пытается сделать какие-то выводы о грядущей смертности, исходя из общих соображений:
* От рака и прочих болезней смертность должна краткосрочно вырасти — во время ковида люди перестали диагностироваться и лечиться
* От болезней дыхательных путей смертность может снизиться — эффект «умерли самые слабые». При условии, что мы не обнаружим какого-то супер-разрушающего эффекта у переболевших ковидом здоровых людей
* Есть совершенно неоцениваемый эффект научного прогресса — денег в исследования сейчас вбухали без счёта. Аналогично с деньгами в развитие медицины — дай бог, чтобы эти бюджеты оставались с нами подольше
* Эффект смены паттернов поведения тоже нереально предсказать. Кто-то перестал стрессовать по пути на работу, а кто-то перестал заниматься спортом. И уж точно все стали больше пить алкоголя (добравшийся до этого места читатель может нервно похихикать и задуматься)
* Экономический эффект — я ожидал, что автор упомянет специфику Франции, где ковид практически не отразился на уровне безработицы (у нас государство вбухивает в поддержание рабочих мест ещё больше денег, чем в исследования), но по Великобритании он прошёлся — на смертности эффект от безработицы явно будет виден
green_fr: (Default)
На работе пошла постепенно обратная тенденция. Домой ещё не выталкивают, но изначальный настрой «скоро свернём карантин» пропал. Ещё летом, когда нас подталкивали к возвращению в офис, оставили максимум два дня удалёнки в неделю, но как бы на переходный период, только до середины сентября. Потом продлили до конца октября, потом увеличили до трёх дней. Сегодня уже — пока неофициально — говорят о возврате на 100% удалёнки.

Наш шеф при этом откровенно не умеет работать с нами удалённо. И как следствие — не любит. Официально запретить он не может, но изо всех сил тормозит наши попытки работать из дому. До такой степени, что приходится продавливать свою точку зрения: я понимаю, что тебе некомфортно так, но мне некомфортно эдак, давай искать компромисс. Формально я могу, конечно, и потребовать (право на удалённую работу чётко проговорено в новых правилах), но кто же хочет по пустякам с начальником ругаться? В итоге шеф согласился, но понавтыкал палок везде, где смог: я ему буду присылать каждую неделю мейл с указанием дней, когда я работаю из дому, а также описание причины, почему именно я хочу работать из дому в эти дни. С уточнением, что причина должна иметь какое-то отношение к эпидемии. Причина у меня одна: минимизация времени в транспорте, с припиской, что в нашем автобусе нет никакой возможности соблюдать дистанцию безопасности :-)

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


Спорт закрыли. Наши внутренние спортивные секции в сентябре так и не открылись, а спортзал какое-то время поработал, но потом попал под очередную раздачу от правительства и закрылся. Тоже «временно, на две недели», но постоянно продлевают. Новый абонемент можно не покупать.


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

Звоню в лабораторию. Можно у вас сдать тест? Конечно! Когда приходить? Каждый день с 8:30 до 10:00 без записи. Когда будут результаты? А кто же его знает, в среднем дней 5-6, но в последнее время всё быстрее и быстрее, рассчитывайте на 4 дня.

А это важно, потому что Германия чётко пишет, что в момент пересечения границы у тебя должен быть тест, сделанный не ранее чем за 48 часов до этого момента. Лагерь начинается в пятницу. Традиционно мы выезжали в четверг вечером, ночевали перед границей, и в пятницу доезжали до лагеря. То есть, результаты теста нам нужны самое раннее в среду утром, а самое позднее — в четверг вечером. Ок, делаем тест в субботу, воскресенье выходной, глядишь всё получится.

Приходим в лабораторию, там человек 10 в очереди. Достояли, нам говорят, что результат будет в течение 2 дней. Я говорю, что могу взять пару дней отпуска, погуляем по Германии, навестим друзей. Натанкина из школы мы превентивно отпросили с формулировкой, что точные даты сообщим накануне отъезда. А Анечка ни в какую — у неё работа, она и так не уверена, что поедет, тем более она точно не поедет заранее. Ну, значит делаем тест мы с Натаном, а Анюта придёт в понедельник.

Тест ужасный. Ну, то есть не так, чтобы нестерпимо больно, были у меня в жизни и похуже тесты. Но тебе залезают палочкой в такое место, где ты не ожидаешь ничего встретить. И вот эта щекотка / чесотки очень остро воспринимается. Руками туда не залезешь, головой дёрнуть страшно, как дышать непонятно. Хорошо, что длится недолго. Но слёзы из глаз просто брызжут.
Мальчик — герой. И мотивированный: чего ради друзей не вытерпишь :-)

В понедельник утром Анюта пошла тоже сдавать тест, а уже вечером пришли наши результаты. Результаты предсказуемо отрицательные, но пришли слишком рано — выезжать нужно максимум во вторник. А тут во Франции подняли ещё на один шаг уровень опасности (когда закончились цвета, и ты уже в «красной» зоне, начинают играть оттенками, теперь у нас зона «ярко-красная»). Ну и мы как-то подумали, что нет, неправильно это — разносить потенциальную заразу по всей Европе. Написали Оле, извинились, отменили.

А уже потом пришли Анечкины результаты — у неё ковид.

Продолжение следует, а то и так долгий пост. Спойлер: всё кончилось хорошо, Анечка выздоровела, мы не заболели.
green_fr: (Default)
Решил съездить сегодня на работу. Формально нам уже свернули дистанционную работу, на переходный период оставили максимум один день в неделю. Но смысла в этом я пока никакого не вижу — нам из дому работать только удобнее. Начальник, пока он в отпуске, тоже не настаивает :-) Поэтому лично я продолжаю работать в предыдущем режиме: минимум один день в неделю в офисе, остальное из дому.

В офисе видно какое-то послабление, в основном на лифтах: туда пускают уже по 4 человека, а не по 2; плюс отменили выделенные направления — раньше одни лифты работали только на подъём, другие -только на спуск. В столовой всё так же: выдают поднос уже с приборами, салфеткой и бутылкой воды (стандартные краны не работают), закуски и десерты завёрнуты плёнкой. Но хотя бы за одним столом можно сидеть — не рядом, и не напротив, но в шахматном порядке можно.
В офисе встретил пару приятных коллег — тоже хорошо.

Сходил с спортзал. Формально на занятие обязательна запись, но у меня записаться не получилось (сайт глючит), а пока со мной разбиралась поддержка, осталось меньше часа до занятия — запись минимум за час. Сказали: приходите так, там всё равно никто не проверяет (система внушает доверие), к тому же 30-40% заказавших не приходят.
Пришёл — а зале чётко размеченные и пронумерованные места, где стоять. В принципе, это даже лучше — конкретно это вот занятие (Body Jam) меня раздражало именно концентрацией людей, когда друг у друга буквально на головах стояли. Но летом и так всегда было хорошо — что будет с сентября, когда / если все вернутся в офис, непонятно.
Во время занятия словил, кажется, поток так давно уже обещанных мне эндорфинов. Люди обычно рассказывают о кайфе от бега — а меня, видимо, прёт просто от физических занятий под громкую музыку. Может, на дискотеку ходить вместо спорта? :-)

Распечатал разных нужных дома бумажек — надо, наконец-то, разобраться с принтером. Мы печатаем по паре листов в месяц, струйники дома есть, но за месяц простоя у них все картриджи / головки засыхают, и каждая страница выходит золотой. Пока ездили на работу, проблемы не было, а за время карантина мы успели поприставать ко всем соседям. Надо купить какой-нибудь лазерник — они, вроде, не так быстро засыхают.
Интересно, есть уже сервис, когда ты посылаешь файл по электронной почте, а тебе назавтра приходит распечатка обычной почтой?

А вообще, странное ощущение от работы в офисе. При том, что я всегда был скорее против дистанционной работы. Очень глупым выглядит потеря времени на дорогу. Сегодня я на велосипеде — типа спорт, ну и книжку слушаю по пути. Равно как и в электричке формально время не тратил — читал. Но после долгого перерыва даже такое использование времени кажется глупым. Так что правильно нас в офис вытаскивают. Пока всё окончательно не атрофировалось.

И при этом какое-то ощущение неправильности. Вроде как эпидемия не побеждена, куда лезем? Тоже, наверное, ни на чём не основанное ощущение. Скорее всего, какой-то необоснованный страх. Боязнь уже ставшего непривычным. И это тоже аргумент постепенно возвращаться в офис.

update 19/08/2020: Снёс к чёртовой бабушке конспирологический флейм - простите все, участвовавшие в нём, но меня эта тема (и эта форма) здесь не интересует.
green_fr: (Default)
Карантин официально закончился месяц назад, но на работу пускают постепенно. Сначала, конечно же, занялись теми, кому нереально работать из дому — эксперты, которые должны выезжать на место строительства, например. Мы в списке приоритетов были явно в самом конце: встреч даже внутренних у нас крайне мало, да и вся инфраструктура уже настроена так, чтобы мы могли работать из дому.

Тем не менее, неделю назад прошёл мейл от генерального директора в духе: надо постепенно возвращаться к нормальной жизни, восстанавливать связи с коллегами, с работодателем, с рабочим местом. Наш шеф переформулировал: хотя бы раз покажитесь до середины июня, ну и потом неплохо было бы хотя бы раз в неделю показываться в офисе. Слово шефа — закон, я собрался и поехал.
Read more... )
green_fr: (Default)
У нас на работе новый человек, имя Нусрет, а фамилию я до сих пор не выучил — он курд :-) Молодой, инициативный, пока ещё даже математику любит. В какой-то момент рассказал, что с нетерпением ждёт выхода очередного тома своей любимой серии книг по математике — я заинтересовался, он притащил мне два томика на почитать. Явная популяризация математики (хотя бы исходя из названия — это записи каких-то публичных уроков-выступлений), но такого уровня, что мне очень сложно следить. Если какую-то тему знаешь хотя бы в общих чертах, то крайне увлекательно. А если какая-нибудь алгебраическая геометрия, о существовании которой ты узнаёшь из названия, а потом не понимаешь даже вводной главы — то да, до конца дочитать у меня не получалось. В итоге из 12 уроков пару осилил целиком, ещё 3-4 напополам, а всё остальное — так, рассматривал картинки.
Тем не менее, второй том тоже «читать» буду, и остальные как-нибудь стрельну.

Урок об использовании дифуров в биологии. Пишут про Тьюринга, объяснявшего полоски зебр через дифуры — а я вспомнил об аналогичной статье, в которой показывали, как разные параметры одного и того же уравнения дают разные результаты. И как на практике описанный дифуром процесс даёт полосочки на хвосте у ягуара — и пятна на всей остальной тушке.

Урок по оптике призмы. В первой части разбираются возможные «популяризаторские» объяснения, почему свет преломляется при смене среды, и почему эти объяснения не работают — я тут же вспомнил свою курсовую в институте, когда я набрал кучу «объяснений» зеноновских парадоксов и разбирал, в чём ошибка каждого из них (мне до сих пор кажется, что мало какое объяснение справедливо).
А в какой-то момент автор упоминает конечность скорости света, а также то, что её обнаружили ещё в XVII веке в ходе наблюдений спутников Юпитера. Я полез в Википедию — и таки да, это тот же эксперимент, о котором я уже писал. Идея в том, чтобы использовать спутники Юпитера как точные часы во время морских плаваний. Начиная с какой-то точности астрономы заметили, что затмения наступают немного быстрее, когда Земля ближе к Юпитеру, и сделали из этого вывод о конечности скорости света. 1676 год. Оценили скорость, ошиблись всего на четверть.

Несколько раз уже встречал понятие производящей функции последовательности, и всякий раз всё это выглядит как какое-то волшебство. У меня нет, наверное, ни времени, ни желания разюбираться с серьёзным университетским курсом на эту тему, но такие вот статьи всякий раз читаю с удовольствием. Пусть и нереально уследить за всеми этими переходами — реально как в научной фантастике, когда люди прыгают из пространства в пространство через какие-то порталы. Ну или как в машинном обучении, когда после анализа текста удаётся поставить каким-то словам в соответствие векторы, и на этих векторах работает обычная математика: «Москва» — «Росия» + «Франция» даёт «Париж». Фантастика :-)

Просто приятная задачка о «заражённой площади»: предположим, у нас есть какой-то выпуклый полигон площади S и периметра L, в котором есть какие-то бактерии / муравьи / некий источник чего-то, распространяющегося во все стороны с единичной скоростью. И «заражающего» каждый фрагмент пространства, до которого оно дотягивается. Посчитать «зараженную площадь» через время t. Получается S + Lt + πt² — доказательство красивое, можно детям в школе показывать.
В статье привели эту задачку для дальнейшего изучения свойств, связывающих площадь с периметром. Например, пишут, дискриминант этого квадратного уравнения равен L²-4πS, а он должен быть больше нуля (либо равен нулю), что даёт нам очень важное свойство, показывающее, в частности, что среди всех фигур одинакового периметра максимальная площадь будет у круга (ну или как минимум она будет такой же, как у круга — доказать, что эта площадь только у круга нетривиально).
А я задумался о физическом смысле этого положительного дискриминанта. Это означает, что есть корни — но что обозначают эти корни? Время t такое, что заражённая площадь равняется нулю? Эти корни действительно отрицательны — но можем ли мы говорить, что было какое-то время, когда зараза только начала распространяться из точки (нулевой площади)? Это же неверно — если бы такое произошло, у нас в любой момент времени был бы заражённый круг, а не произвольный выпуклый полигон, как в момент времени t=0. Не говоря уже о смысле второго корня квадратного уравнения — он чему соответствует? А если у нас нет физического смысла этих корней, то с чего мы взяли, что они вообще существуют? То есть, что дискриминант обязательно будет положительным?
green_fr: (Default)
Столкнулся с неожиданной для себя проблемой. Есть у меня файл html, в котором все картинки Base64, то есть определены прямо внутри этого же файла. И я эти картинки никаким приличным способом не могу скопировать оттуда в, например, Word.

1. Простой copy-paste не работает.
2. Открыть файл сразу в Word — открывает, но картинки не показывает.
3. Открыть файл в браузере и сохранить в другом формате — перепробовал все опции в IE / Edge / Chrome, ничего не работает, всегда сохраняет в том же формате, как и был изначально.
4. У IE есть опция «редактировать страничку в Word», но она просто не работает.
5. Можно конвертировать картинку одну за другой — в интернете есть полно сервисов: копируешь Base64 в окошко, появляется кнопка «скачать картинку». Но у меня там картинок чуть больше, чем дофига, а операцию, скорее всего, придётся повторять неоднократно.
6. Вопрос однозначно не имеет никакого отношения к защите картинок — файл сгенерил я сам (MatLab LiveScript -> Export to html).

Проблему я в итоге решил через экспорт в LaTeX. Но что всё это вот было? Мои кривые ручки? Или считается, что реально никому никогда не нужно копировать картинки, которые в Base64?
green_fr: (Default)
У нас уже несколько недель забастовки. Причина — очередная попытка реформировать пенсионную систему. Я смотрел предложения правительства по диагонали, потому что распутать этот клубок (изначально призванный не только обеспечить финансирование, но и упростить нынешний зоопарк) сложно — там предложения реформ смешались с многочисленными костылями, которые соответствуют каким-то давним дискуссиям, былым договорённостям и прочее и прочее. В диагональном прочтении реформа прекрасная, но и здесь я не уверен, кажется они мне такой, потому что я давно её ждал, потому что мне нравится нынешний президент, или потому, что у меня просто фантазии не хватает представить альтенативные варианты (а оппозиция их выдаёт регулярно и описывает так красочно, что аж задаёшься вопросом, что они курят завидно).

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

Работать из дому у меня не получается. Аналогично, клубок старых костылей. Когда-то давным-давно наша IT-дирекция поставила управлять лицензией MatLab какого-то совершенно не интересовавшегося этим человека. Которому я звонил по каждому поводу, после чего я же ему объяснял, куда нужно тыкать. Через пару лет работы в таком режиме человек тупо отдал мне пароль админа от сервера лицензий, и какое-то время мы все жили счастливо. Но потом в MathWorks пришёл альтернативно одарённый работник с клиентами, которому показалсоь (реально показалось), что мы нарушаем лицензионное соглашение. И он прислал нам письмо с штрафом на много нулей. Наш IT-директор побледнел и потребовал расследование — угадайте, кто его проводил? Я подробно расписал ему, что как у нас работает, плюс подчеркнул жёлтым фразы, где человек из MathWorks неправильно понимает их же лицензионное соглашение. В итоге человека из MathWorks уволили, нам никакогго штрафа, конечно, не было, но IT-директор изо всей этой истории запомнил только то, что я узурпировал личность администратора сервера. После чего лицензионный сервер перевели на другой режим (Л-логика!), не позволяющий работать вне нашей сетки. То есть, никакой работы из дому. Шах и мат.

А поезда не ходят. От слова «совсем». То есть, за эти недели была пара дней, когда на нашем конце RER C был десяток поездов в день (при норме 8 в час), а всё остальное время — ноль. Есть вариант доехать до Montparnasse (туда чуть чаще пускают всё тот же десяток поездов в сутки), но оттуда до работы тоже нетривиально добираться, т.к. метро в нашей части города не работает, станции тупо закрыты.

На машине на работу ехать 30 минут, но это если ехать в ночь с 15 на 16 августа. Всё остальное время мне было даже страшно об этом думать — пробки. Да и просто потеря времени: в поезде ты читаешь или хотя бы спишь — а тут считай работаешь, водителем.

Одно время я мечтал, что пересяду на время забастовок на велосипед — это реально, я уже ездил на работу на велике. Но как назло, погода мерзкая — постоянно дождь и температура болтается около нуля. Сейчас немного потеплело, и я снова начинаю задумываться о велике, но дождь всё ещё маячит каждый день.

В итоге я договорился с шефом, что сдвину рабочий день часа на 3. Выезжаю из дому в 6 утра (и в 6:30-7:00 уже на работе), а с работы ухожу примерно в 16. С одной стороны, удобно — вечером ребёнка видишь, можно ему с домашним заданием помочь (чем он жутко недоволен и больше всех в стране ждёт, когда закончатся забастовки). С другой — жену не видишь вообще.

А ещё закорефанился с несколькими коллегами (как ни странно, все — женщины :-Р) о том, чтобы подвозить друг друга по очереди. В основном, чтобы не так уставать за рулём, но девчонки оказались настолько приятными, что в итоге время в пути пролетает достаточно быстро.

Но устаю страшно, конечно. И чтения совсем нет — раньше читал в поезде, сейчас его нет, а вечером нет уже сил, в лучшем случае хватает на посмотреть цирк по ТВ или погонять с сыном в Mario Kart.
green_fr: (Default)
Устроили праздник, назначили дату, сняли недавно построенный концертный зал в паре остановок от офиса.

Разослали всем приглашение, в котором говорилось, что следует прибыть в концертный зал к 15:00, явка обязательна, а двери на выход будут закрыты как минимум до 18:30. Я немедленно вспомнил концерты к «дню милиции» из своего детства, когда нас аналогично сгоняли стоять в торжественном оцеплении в соседнее ДК имени Ленина. Не знаю, насколько это результат моей негативной предрасположенности, но и сам праздник в итоге напомнил мне день милиции.

Выходит президент компании, извиняется за президента холдинга, который не смог присутствовать на нашем празднике. Понимаете, говорит, он был внезапно приглашён (invité) президентом республики. А вы все понимаете, что такое «приглашён» в этом контексте — это скорее «вызван» (convoqué). Приглашение, от которого нельзя отказаться. — Зал вежливо смеётся шутке, а я сижу и думаю о том, что все мы здесь именно так «приглашены» на «праздник».

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

Из приятного — пригласили комика. Он тоже проехался по поводу свободы выбора (скетч про защитницу животных, приютившую у себя кота — а ты у кота спросила, хочет ли он у тебя жить, хочет ли он, чтобы ты его кастрировала? — ему нравится, он даже урчит, когда я его чухаю! — если ты заключённого в тюрьме будешь чухать, он тоже заурчит, но значит ли это, что ему там нравится?), по поводу парижского транспорта (когда бастуют в провинции, там объявляют, что будет un train sur 3, а когда бастует Gare du Nord, там будет un train sûr — непереводимая игра слов, произносится одинаково, но в первом случае обозначает «один поезд из 3», а во втором — «один поезд точно», мы не знаем когда, но он точно будет).

Отличный скетч про велосипедистов, у которых на лице написано «я прав» — на самом деле это о том, как в обществе идёт борьба между правотой «по закону» и правотой «по справедливости». Не важно, что говорят ПДД, главное, где велосипедист, потому что он прав морально, а значит и по ПДД. Ехал, говорит, недавно на велосипеде, вдруг слева вылетает другой велосипедист и подрезает его. Ты что, кричит герой, я же справа, у меня приоритет! — Иди в задницу, кричит тот, я веган!

Прекрасная шутка, которая, как мне показалось, невозможна в моей воображаемой Америке. Решение сразу двух глобальных проблем человечества: есть страны, в которых слишком много людей, и есть страны, в которых людям нечего есть. Комик делает длинную паузу, давая переварить сказанное, затем продолжает: так и представляю, как где-нибудь в Судане люди разговаривают вечером: on va encore manger le chinois? (тоже непереводимо, т.к. обозначает «снова будем есть китайскую еду» и «есть китайца»).

И отличный скетч, когда комик рассказывает, почему ему не нравится термин stand-up — потому что легко спутать со stand-up-paddle.
— Qu’est-ce que tu fait ?
— Du stand-up.
— Et pour gagner la vie ?
— Bah, du stand-up.
— Et quel est ton modèle économique ?
— Je fais du stand-up, et les gens achètent des billets pour me regarder.
— Tu dois être très fort ! Et tu fais du stand-up à Paris aussi ?
— Evidemment.
— Sur la Seine ?
— Bah oui, le stand-up se fait toujours sur la scène (произносится точно так же, как и Seine).
— La vie est donc facile pour toi ?
— Parfois je rame...

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


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


На 150 лет было лучше. Просто выдали всем премию :-)
green_fr: (Default)
Дорогие друзья! Кто из вас в курсе %subj%?

Контекст: мне нужно сгенерить какое-нибудь распределение, удовлетворяющее первым четырём моментам (mean, volatility, skewness, kurtosis), и шеф сказал, что упомянутый метод вроде как должен работать. Я прочитал французскую Википедию (они путаются между величиной квантиля и его реализацией), английскую Википедию (я там половину слов не понимаю), пару статей по-русски ("...такого, например, как метод Корниша-Фишера, откуда непосредственно следует..." - откуда?!), нашёл даже функцию MatLab, которая реализует метод - но непонятно, что у неё за аргументы (комментарий из одной строчки с упоминанием автора функции).

Насколько я понимаю, у нас есть формула:



Она даёт нам квантиль распределения с kurtosis K и skewness S. Оставим в стороне вопрос mean и volatility - что обозначает zc и Z? Я сначала думал, что первое - это квантиль нормального распределения (то есть, -1,65 для 5 персентиля), а второе - квантиль нужного мне распределения. Но это явно не так.

У кого есть под рукой более-менее внятное описание метода? Идеально - с примером.

P.S. Другие варианты генерации случайной переменной по первым четырём моментам тоже приветствуются.
green_fr: (Default)
Я обычно обедаю не за столом в компании коллег (у меня как-то не получается найти общую тему для разговора с коллегами, ну вот не люблю я футбол), а у длинного стола-стойки вдоль окна, где удобно сидеть в одиночестве, максимум — парой. Обычно там сидят такие же уткнувшиеся в книги / сериалы додики, либо спешаще-опаздывающие меж двух собраний менеджеры. А ещё там регулярно садится девица, расставляющая рядом с подносом телефон, втыкающая туда наушники и звонящая своей подруге. Я знаю, что именно подруге, а не другу, потому что это видео-звонок. Она сидит примерно час (нормальная продолжительность обеда во Франции), неспешно кушает и разговаривает. По видео. Подруга в это время тоже сидит перед подносом и ест. И разговаривает. По видео.

Для меня все эти видео-звонки — исключая профессиональную необходимость, вроде «уроков по скайпу» или собрания разбросанной по всему миру команды — всегда были и остаются какой-то ненужной экзотикой. Ну ок, позвонить раз в год родителям, показать им пробегающего мимо камеры ребёнка — ах, как он подрос! Но зачем мне видеть собеседника? Я и вживую-то его не сильно рассматриваю...

Перечитал пост — типичная ассоциация анонимных аутистов :-)

Profile

green_fr: (Default)
green_fr

June 2025

S M T W T F S
123 4 567
891011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 9th, 2025 02:46 am
Powered by Dreamwidth Studios