Социальные эксперименты и работа

[pipe.2032] Sat Oct 9 06:20:35 UTC 2021 @vit01 -> All

Перестал всем писать, отчитываюсь по учёбе и работе. ## Эксперимент над собой и окружающими Будучи в очередном депрессивном припадке, я опять засомневался в себе и в окружающих и решил провести эксперимент, посвящённый личной переписке. Изначальной гипотезой было, что моя потребность в общении с окружающими гораздо выше, чем потребность окружающих в общении со мной. Выражается это в том, во многих случаях я всегда пишу людям первый, а они мне первые не пишут. Разумеется, это работает не со всеми собеседниками, с кем-то мы списываемся чисто по насущной необходимости, либо частота переписки с ними изначально достаточно низкая, например, раз в месяц или меньше. Эксперимент состоял в том, чтобы перестать писать первым абсолютно всем людям в интернете, за исключением тех, с кем я вынужден связываться для выполнения своих учебных или рабочих обязанностей. Если человек по мне соскучится или заподозрит, что что-то пошло не так, то он в конце концов напишет сам или "маякнёт" тем или иным образом, и мы продолжаем общаться. В противном же случае переписка прекращается, так как с обеих сторон никакая информация не поступает. Подобный отказ от начинания общения первым не только даёт обнаружить те социальные связи, которые явно "барахлят" (например, людей, которые отвечают тебе чисто из вежливости и не имеют интереса к продолжению общения), но и посчитать _время соскучивания_ в днях, то есть количественно оценить потребность других людей в поддержании контакта с тобой. На момент создания этого поста эксперимент с молчанием продолжается неделю с лишним, и никто из русскоязычных друзей/знакомых мне не написал. Один англоязычный товарищ написал через 6 дней ожидания. Скорее всего, публикация этого поста несколько смажет конечный результат, но, тем не менее, я подсчитал приблизительное количество времени, на которое можно исчезнуть из интернета, чтобы этого никто не заметил. Минусов подобной авантюры можно перечислить сразу несколько: * Некоторые люди могут воспринять моё молчание как акт неприязни, потому что подумают, что таким образом я решил прервать с ними общение из-за их личных качеств * С точки зрения психологии это не способ решения проблемы, а больше повод себя пожалеть, если вдруг что-то пошло не так Тем не менее, мне кажется, что польза от желания узнать правду сравнима с вышеперечисленными недостатками подхода. Грустновато получается, но хочу сказать спасибо тем, кто меня "терпел" ранее. ## Теперь об учёбе и работе В магистратуре мы изучаем следующие предметы: * Методы математической физики * Физика плазмы * Плазменная астрофизика * Общая астрофизика * История и методология физики Есть ещё компьютерный практикум, от которого меня практически освободили, потому уже очень многое знаю. Также есть странный предмет "межкультурная коммуникация", который должен быть английским языком, но на деле там нам рассказывают что попало, и к английскому языку мы там так и не приступили. Расписание сейчас перестроили так, что мы учимся с понедельника по пятницу. Это было сделано, чтобы мы учились не по 4 пары в день, а меньше, и чтобы было проще совмещать учёбу с работой. Получается, с утра прихожу и учусь, а после учёбы остаюсь и работаю. ## На меня опять наехал военкомат Даже несмотря на то, что поступил на учёбу и получил отсрочку от армии, категория годности у меня стоит "временно не годен". А это значит, что военкомату плевать на мою отсрочку, и они меня могут постоянно посылать по врачам на разные обследования. Что они и делают. Поэтому есть несколько вариантов развития событий: 1. После очередного обследования военкомату надоедает со мной возиться, и меня признают негодным 2. Признают годным, и вступает в действие отсрочка по учёбе 3. Всё ещё остаюсь временно не годным, но во время каждого призыва (весеннего или осеннего) заставляют ходить по обследованиям Медицинские обследования для военкомата и прохождение медкомиссии очень долгие и утомительные. Это отъедает время и от учёбы, и от работы, привносит в жизнь огромное количество стресса и вселяет неопределённость. Будем надеяться, что в скором времени эта хрень закончится. Но в армию меня точно не возьмут, в этом уверен на 100%. ## Вторая решётка Сибирского Радиогелиографа Перейдём к хорошим новостям. Отдел радиоастрофизики достраивает радиотелескоп в обсерватории Бадары, и не так давно получилось запустить в тестовом режиме решётку 6-12 ГГц на более чем 200 антенн. Хороших картинок пока не будет, но рано или поздно всё отправлю. Полноценного сбора данных с этой решётки пока не ведётся, потому что сервера и хранилище данных пока в обсерваторию не привезли. Кроме этого, калибровки антенн друг с другом ещё далеки от идеальных, и монтажники в период тестовой работы будут подстраивать длины кабелей. После окончания учебного семестра у меня будет возможность приехать в Бадары, когда уже завезут всё нужное оборудование, и там с радостью "посисадминю". Зимой в горах должно быть очень круто и не менее красиво. Доживём до зимы и посмотрим. ## Успехи в работе про гирорезонансные источники на 34 ГГц После перенаполнения архива данных для радиогелиографа Нобеяма удалось найти ещё несколько оптически толстых гирорезонансных радиоисточников. Вот, например, один из них, апрель 2004 года: https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/ZesB7XpiOk5GM9G8DAzU Яркостная температура здесь порядка 150 000 К, размеры источника малы по сравнению с диаграммой направленности радиотелескопа. Среди найденных результатов есть ещё интересные события, пока думаю над наиболее эффективной их визуализацией. ## МГД-моделирование В процессе МГД-моделирования передо мной была поставлена задача проверки одного случая плазменной трубки, для которого уже известно аналитическое решение для распределения плотности, поля и.т.д. от времени. Для этого надо было решить дисперсионное уравнение и взять некоторые сложные интегралы. На определённом этапе оказалось так, что просчитать вручную на бумаге я эти вещи не могу, и я решил воспользоваться библиотекой sympy, чтобы высчитать дисперсионное уравнение, подставить его решения куда надо и превратить результат интеграла в код, который можно запустить. Покажу, как примерно это всё происходило. Объявляем переменные и записываем уравнение: ==== import sympy as s import numpy as np k, a, Ci, C0, Vph, w, x, y, t = s.symbols("k a C_{\infty} C_0 V_{ph} omega x y t") rho, rho_inf, rho_m = s.symbols("\\rho \\rho_{\infty} \\rho_{m}") eq1 = s.Eq(k * a / C0**2 * (Vph**2 - C0**2) - 2 / k / a, 3 / Ci * s.sqrt(Ci**2 - Vph**2)) eq1_omega = eq1.subs(Vph, w/k) eq1_omega ==== $$- \frac{2}{a k} + \frac{a k \left(- C_{0}^{2} + \frac{\omega^{2}}{k^{2}}\right)}{C_{0}^{2}} = \frac{3 \sqrt{C_{\infty}^{2} - \frac{\omega^{2}}{k^{2}}}}{C_{\infty}}$$ Возводим обе части уравнения в квадрат и записываем в формате полинома: ==== eq2_omega = s.Eq((eq1_omega.lhs**2).expand(), (eq1_omega.rhs**2).expand()) equation_poly = eq2_omega.as_poly(w) equation_poly ==== $$\operatorname{Poly}{\left( \frac{a^{2}}{C_{0}^{4} k^{2}} \omega^{4} + \frac{9 C_{0}^{2} - 2 C_{\infty}^{2} a^{2} k^{2} - 4 C_{\infty}^{2}}{C_{0}^{2} C_{\infty}^{2} k^{2}} \omega^{2} + \frac{a^{4} k^{4} - 5 a^{2} k^{2} + 4}{a^{2} k^{2}} \right)}$$ В итоге получается обычное биквадратное уравнение, которое можно решить и руками, но это будет неприятно. Получим решение, подставим замены для некоторых параметров и построим дисперсионную кривую: ==== solutions = s.solve(equation_poly, w) solutions_simplified = [] for sol in solutions: solutions_simplified.append(sol.subs(Ci, (rho_m + 1) * C0)) # некоторые шаги были на этом моменте пропущены solutions_k = [] for sol in solutions_simplified: solutions_k.append(sol.subs(C0, C0_computed).subs(rho_m, rho_m_computed).subs(a, 1)) display(solutions_k[-1]) solutions_np = [s.lambdify(k, sol, modules="numpy") for sol in solutions_k] ==== https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/pxvWIFAqlkRb0j0dWu8A Функция `sympy.lambdify` достаточно важная для вычислений, потому что она позволяет сконвертировать символьное представление sympy в питоновский код с использованием numpy, который будет быстро выполняться. Вот, кстати, дисперсионная кривая в "попугаях", т.е. зависимость фазовой скорости волны от значения волнового вектора: https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/8V2w6ofPRHNSgePtkYcz В дальнейшем, пользуясь полученными решениями дисперсионного уравнения, интегрирую начальные условия по плотности и температуре, чтобы получить в итоге, например, вот такую бегущую волну по плотности: https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/BmMJANAnOZgzMCNwY3TG Из полезных функций в sympy: * `s.print_fcode(expr), s.print_python(expr)` и подобные ему позволяют быстро получить код на Fortran и Python из полученных выражений * `s.print_latex(expr)` выдаёт LaTeX разметку, чтобы быстро вставить результат в статью * `expr.evalf()` вычисляет все константы в виде чисел и проделывают под капотом арифметику, чтобы упростить вид выражения Всё остальное, конечно же, искать [в документации]( https://docs.sympy.org/latest/index.html ) ## Контейнеры Singularity Давно обещал рассказать про эту штуку, пришло время это сделать. Мы на нашем вычислительном сервере в институте пользуемся самыми разными операционками, потому что каждому человеку удобнее работать в своём собственном привычном окружении, со своим софтом и так далее. Наилучшим способом для этого оказалось дать возможность всем пользователям работать с непривилегированными контейнерами. Система работы с контейнерами Singularity [доступна]( https://repology.org/project/singularity-container/versions ) на большинстве дистрибутивов GNU/Linux и не только. Она позволяет работать с read-only SquashFS образами операционок, либо с chroot-окружениями в виде директорий (sandbox в их терминологии). Различные виды образов можно автоматически пересобирать, запаковывать, распаковывать и даже превращать в статические исполняемые файлы-приложения. Найти подходящий для работы контейнер с любой нужной операционкой и софтом можно на [DockerHub]( https://hub.docker.com/ ). Кроме интеграции с каталогом Docker у Singularity есть возможность собирать образы из файлов-рецептов и из своего собственного каталога. Допустим, сервер запущен на Ubuntu, но мы хотим пользоваться привычным Арчем. Скачаем образ командой ==== $ singularity build --sandbox ./archtest docker://archlinux:latest ==== В каталоге `archtest` после её выполнения создастся дерево файлов Archlinux, которое по факту уже готово для работы. Перед тем как заходить внутрь в командную оболочку, желательно настроить переменные окружения, чтобы не было проблем с запуском софта. В каталоге `archtest/.singularity.d` содержатся скрипты, которые выполняются перед входом внутрь песочницы. Рекомендую для начала поправить файл `archtest/.singularity.d/env/10-docker2singularity.sh` и установить там переменные `PATH` и `LANG`: ==== #!/bin/sh export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/.local/bin" ==== Когда происходит вход внутрь контейнера, то Singularity автоматом пробрасывает внутрь домашний каталог пользователя и запускает командную оболочку, благодаря чему мы можем работать с файлами "ОС снаружи", при этом пользуясь софтом "ОС внутри". Из соображений безопасности запустить пакетный менеджер и установить софт в системные каталоги не получится, для этого нужно входить в контейнер в отдельном режиме. Самое удобное решение - создать в файле `.bashrc` алиасы, где `si` - это вход в обычном режиме, а `si_root` - вход в fakeroot-режим, в котором можно запускать пакетный менеджер, править конфиги в /etc и делать остальные улучшательства. Параметр `-B` отвечает за проброс внутрь контейнера других каталогов кроме домашнего. ==== alias si='singularity shell -B /data,/usr/local/bin ~/archtest' alias si_root='singularity shell -f --writable ~/archtest' ==== Про все остальные крутые штуки можно прочитать в [документации]( https://sylabs.io/docs/ ) на их сайте. По моим впечатлениям Singularity имеет гораздо больше полезных фич, чем аскетичный LXC или контейнеры systemd, но при этом он гораздо проще в работе и в настройке, чем громоздкий и переусложнённый Docker. ## В следующих постах 3D-моделирование плазмы, болезненная миграция сервера с MySQL на PostgreSQL и ожидаемый кинообзор (можете угадать, на что) Этот пост в блоге: https://blog.alicorn.tk/posts/anti-social-work.html

copyleft 2021 difrex at lessmore dot pw; source code