Долго-долго не писал в блог, но на то было множество причин: куча разборок с дипломом и документами, мало свободного времени для вдумчивой рефлексии. Что ж, когда дела наладились, потихоньку сливаю накопившиеся темы.
Психотерапия не проходит бесследно, здесь есть некоторый прогресс. И, может быть, выводы, которые я в итоге делаю, для многих являются очевидными, мне часто требуется время для того чтобы достигнуть даже небольших результатов.
В прошлом посте я приоткрыл некоторую часть причин своих неудач со взаимоотношениями. Например, неразвитость эмоционального интеллекта, когда трудно распознавать обстановку и то, что нужно окружающим в данный момент больше всего.
Сейчас же мы прорабатываем во время терапии так называемый метод субличностей. Это такая абстракция, которая позволяет проанализировать причины того или иного твоего поведения, разложив их по полочкам. Суть достаточно простая: вы ищете у себя в голове тех или иных "персонажей", у которых есть некоторые собственные черты характера, потребности и способы решения тех или иных проблем. А потом при рассмотрении какой-то возникшей жизненной ситуации можно увидеть, **кто** из персонажей активировался и **почему**. Так ещё можно и проконтролировать, какую свою часть нужно попридержать, а какой дать ход. Эдак получается, что каждый человек - это человек-оркестр, которым можно ещё дирижировать :)
Приведу пример. Одна из моих субличностей - это критик-формалист. У него в программе прописана некоторая идеальная картина мира и набор своих идеалов. Формалист любит следовать своим идеалам и строго-настрого следит за тем, соответствует мир нужной картине или нет. И если не соответствует, то он очень возмущается и пытается повернуть всё к соответствию. И всё по формальным критериям. Основная функция формалиста - критиковать, как внутри, так и снаружи, находить проблемы и недостатки в любых аспектах окружающего мира. Вообще-то, он частенько бывает полезен (в науке особенно), но когда слишком недоволен чем-то, то приносит кучу проблем.
Так получилось, что действия моего внутренного критика и внутреннего "умника" - это вторая после низкого эмоционального интеллекта причина краха прошлых отношений. _Третья - несоответствие базовых потребностей, но это уже совсем другая история._ И вот, в чём суть: двигаясь самостоятельно к своим идеалам, я иногда начинаю вредничать и учить жить других людей. И даже не со зла, а очень даже из благих побуждений. Но вот проблемы меня и моего критика таковы, что иногда они неправы. И даже если они на 100% правы и спрогнозировали всё на 100 шагов вперёд, то другому человеку может быть глубоко противно, когда его учат жизни. Может быть, этому человеку просто пофиг, а может быть у него психологическая травма от чужих нравоучений, и ты давишь на больное.
Ой, а ещё один хороший жизненный урок - не надо судить других людей по себе. Я часто люблю, когда мне дают советы и наставления. А многие другие - не любят и не воспринимают это. И этим легко оттолкнуть. И вот уже любимый человек перестаёт быть любимым и открытым текстом посылает тебя нахуй. Да, так бывает. Надо делать выводы и не наступать снова на те же грабли.
Ха-ха, а вообще, наверное, упорно искать косяки и недостатки в реальности - это один из моих талантов :) И тут можно уже плавно перейти к диплому...
Наверное, все уже всё знают, но я защитил диплом. Про предпосылки работы писал в предыдущих двух постах. [В этом посте](
https://blog.alicorn.tk/posts/as-is.html ), кстати, поправил некоторые технические неточности, в которых на тот момент не до конца разобрался.
Что же было нового с предыдущего поста и что успело войти в диплом:
* Проблему с несовпадением изображений в двух круговых поляризациях починили с помощью моделирования
* Нормировку диапазонов интенсивностей на радиоизображениях очень сильно удалось улучшить
* После сравнения с РАТАН-600 удалось обнаружить систематическую сдвижку, связанную как с проблемами центровки Солнца, так и с погрешностями РАТАН-600
* Сдвижку при центровке и неверного определении радиуса Солнца удалось обнаружить и впоследствие уменьшить (хотя она ещё осталась, и это будет улучшаться)
* Посмотрели, что полные потоки излучения Солнца не совпадают для низких частот (3.1 ГГц), калибровку потоков немного удалось улучшить с помощью одной из статей + с помощью данных солнечной обсерватории Learmonth
А вот взгляните на сравнение радиоисточников с настоящего прибора и со сгенерированной модели:
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/TZqvwZsYx8ijx6oA1IJ8
В процессе написания диплома некоторые аппаратные проблемы прибора народ успел исправить, поэтому качество изображений стало ещё лучше уже и из-за этого. Дальнейшие направления работы, вне диплома, теперь таковы:
* Систематическую сдвижку при центровке Солнца надо всё-таки исправлять
* Побочные диски Солнца, которые перекрывают основной диск на высоких частотах (4.9 и 5.6 ГГц) надо вычищать наиболее эффективно, потому что сейчас это работает плоховато
* Надо построить спектры для спокойного Солнца и для какой-нибудь из активных областей, и этим я займусь в скором времени
* Есть некоторый набор антенн, у которых плохая синхронизация фаз, но это уже не моя проблема, а того народа, который работает в Бадарах
Кстати, что самое забавное: одна из аппаратных проблем с антеннами возникла из-за того, что при монтаже длины кабелей между некоторыми антеннами и корреляторами очень сильно отличались, аж на 8 метров. При суммировании и перемножении сигналов для каждой из пар антенн очень важно, чтобы сигналы приходили практически одновременно и можно было синхронизировать фазы волн. Допустимая разница - это не больше метра, а для наилучшего сопоставления сигналов вообще до десятка сантиметров. Так что да, среди ошибок бывают и достаточно глупые =) Но эту проблему уже починили, хотя с антеннами и сейчас не всё идеально.
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/gCgrAzE2JLHSsXgvrE0s
Как правило, для написания всяких отчётов, если это долгострои и достаточно большие работы, я руководствуюсь двумя принципами:
1. Надо иметь возможность работать из любого места и за любым компьютером
2. Повторяющуюся и ручную работу надо минимизировать
В итоге, расчёты я проделываю на отдельном мощном сервере в окружении [JupyterLab](
https://jupyter.org/ ), графики генерирую все там же, через matplotlib. Отдельные блок-схемы и диаграммы делаю в программах [Graphviz Dot](
https://graphviz.org/ ) (тоже устанавливается на сервер и интегрируется в Jupyter) и [Geogebra](
https://www.geogebra.org/ ) для геометрических построений.
Все графики складируются на сервере для расчётов, чтобы потом прилететь на отдельный сервис, где происходит вёрстка диплома в LaTeX. Конечно же, LaTeX - это не случайный выбор. Во-первых, там проще верстать формулы и добавлять кучу разных сложных символов, удобное позиционирование элементов, во-вторых, один раз создав шаблон, можно его очень удобно переносить между разными работами. В-третьих, ключевое преимущество LaTeX - это работа со списком литературы. Найдя нужную научные статьи в системе [NASA ADS](
https://ui.adsabs.harvard.edu/ ), я нажимаю Export Citation, вставляю их все в файлик `.bib`, а потом весь список в нужном формате сразу формируется в нужной секции документа. Достаточно лишь не забыть вот это:
\section*{}\addcontentsline{toc}{section}{Список литературы}
\bibliographystyle{gost2008}
\bibliography{References.bib}
Пользователям MS Word магия автоматического оформления ссылок по ГОСТу недоступна :) Точнее, там свои есть костыли, но подход LaTeX гораздо круче. А ещё в том же LaTeX можно делать красочные презентации с помощью класса `beamer`. И, более того, поскольку всякие схемы и диаграммы задаются в виде имени файлов, то когда ты перегенерируешь картинку, то она автоматом заменится и в дипломе, и в презентации. Удобно!
Написанием курсовых и научной статьи я занимался в редакторе LaTeX [Overleaf](
https://www.overleaf.com/ ). Но для того чтобы автоматически загружать туда картинки и другие файлы через git с сервера (если они изменились), требуется заплатить за подписку 8-10 долларов в месяц. Мне что-то оказалось жалко платить, поэтому для написания диплома решил воспользоваться чем-нибудь аналогичным, но бесплатным.
LaTeX можно пользоваться и просто на домашнем компе, но я принципиально люблю работать на сервере, чтобы не зависеть от отключений электричества, от сломанных/украденных компьютеров, стихийных бедствий и других непредвиденных обстоятельств. Плюс можно работать совместно с соавторами и рецензентами.
В качестве альтернативы Overleaf выступил весьма интересный сервис [CoCalc](
https://cocalc.com/ ). Это настоящий комбайн, который предоставляет пользователю виртуальную машину с линуксом на борту, редактор кода на самых разных языках (в том числе LaTeX), файловый менеджер, возможность для коллаборации и многое другое (в том числе запуск десктопного софта). **И всё это в браузере!** Кстати, там даже можно сам Jupyter запускать, хотя для моих нужд это уже было в избытке, потому что им я пользуюсь уже на другом сервере.
У ИСЗФ запущен свой собственный инстанс CoCalc с целью предоставить побольше вычислительных ресурсов своим сотрудникам. Поэтому именно там и решено было писать диплом. В процессе я написал себе скрипт для бэкапов, чтобы сливать уже написанный диплом в безопасное место, и скрипт для скачивания всех картинок с основного сервера, на котором делаются расчёты.
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/1cX0eJ45bn6EuYEXRisN
Почему не писал сразу в Jupyter? Во-первых, расширение Jupyterlab-Latex не работает в новых версиях, и его ещё нескоро починят. Это очень досадно, ведь интерфейс Jupyter будет получше. Ещё там есть проблемы с отображением PDF, которые тоже препятствуют работе. Надеюсь, что скоро это поправят.
Из плюсов CoCalc можно отметить пригодность фактически для любых научных нужд (в том числе для анализа данных и подготовки отчётов) и удобство доступа из браузера. Минусом можно отметить общую тормознутость интерфейса и его некоторую недоработанность. Тем не менее, инструмент сработал и свою задачу выполняет.
Иногда, если не хочется пользоваться собственным сервером для каких-то мелких расчётов, то посоветую сервис [Google Colab](
https://colab.research.google.com/ ). Он предоставляет уже готовое окружение Jupyter Notebook, причём с интеграцией в гугл-диск и бесплатным доступом к графическим процессорам для нужд машинного обучения.
Вычислительных ресурсов даётся весьма прилично (около 10 Гб ОЗУ и 70 Гб жёсткого диска). Не знаю, за что Гугл вдруг стал настолько щедрым, но это работает, и этим можно пользоваться бесплатно. Какое-то ещё более мощное железо, конечно, даётся за подписку.
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/ZAJXuEa8RJRaMiga9zis
Как-то давно [жаловался](
https://blog.alicorn.tk/posts/selenium.html ) на то, что Гугл затрудняет доступ к своему API, из-за чего для вычленения информации со своего YouTube-аккаунта пришлось прибегать к грязным уловкам. Эту проблему, оказывается, можно решить, если код запускать прямо на самих же гугловских серверах на их [собственном языке](
https://script.google.com ) (причём очень похожем на Javascript).
Вот, например, код, который позволяет вытащить ваши подписки на YouTube:
function myFunction() {
var results = YouTube.Subscriptions.list(part="id,snippet", {mine: true, maxResults: 100});
var pieces = [];
results.items.forEach(function(item) {
var snippet = item.snippet;
var piece = {"id": snippet.resourceId.channelId, "title": snippet.title};
pieces.push(piece);
});
var payload = JSON.stringify(pieces);
console.log(payload);
}
Потом этот JSON можно загрузить на ваш собственный сервер через бэкенд. Кроме работы с Ютубом, через Google Apps Script можно взаимодействовать со всеми остальными сервисами Гугла, например, с Гугл-картами, Диском и Таблицами. Многие фишки доступны полностью бесплатно.
Но возьмите на заметку, что сейчас очень часто гугл-скриптами пользуется вредоносное ПО, поэтому нельзя давать разрешение непонятным скриптам на доступ к своему аккаунту.
В прошлом посте я рассказывал, что пробовал проходить курсы на [Kaggle](
https://www.kaggle.com/ ), правда, на момент написания диплома их немножко подзабросил. Напомню, что на Kaggle можно бесплатно и без регистрации проходить интерактивные курсы по анализу данных и машинному обучению, ещё там есть челленджи и куча интересных датасетов. Кроме этого, они позволяют после регистрации получить доступ к мощной виртуалке с Jupyter Notebook с 16 Гб ОЗУ и около 70 Гб жёсткого диска (вроде, это как раз всё может крутиться на платформе Google Colab).
Хочу поделиться впечатлением об одном из пройденных курсов, который мне очень понравился - [курс по анализу геоданных](
https://www.kaggle.com/learn/geospatial-analysis ). Он доставлен достаточно увлекательно: там даются примеры кода для питоновских библиотек GeoPandas (обработка датасетов с геоданными) и Folium (построение интерактивных карт). И, что самое главное, после примеров кода идут достаточно интересные задания на основе реальных случаев из жизни (и реальных данных!), которые тебе дают выполнить самостоятельно, например:
* Построить карту миграции птиц и сопоставить с местоположением заповедников, чтобы убедиться, а в тех ли местах эти заповедники выбраны
* Воссоздать и проанализировать карту преступности в Бостоне
* Понять, используя накопленную статистику, какие же районы Японии наиболее подвержены землетрясениям
* Сделать интерактивный трекер заражений ковидом
* Помочь Starbucks открыть новый филиал своего элитного ресторана :) по данным демографии штатов США
* Выбрать место для постройки нового травмпункта в Нью-Йорке, основываясь на статистике автомобильных аварий и из того принципа, чтобы до больницы можно было добраться как можно быстрее
Последнее упражнение, наверное, самое шедевральное. Поражён тем, насколько увлекательным и приближенным к реальности можно сделать обучение, поэтому даже скриншот приведу с финальной карты:
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/cfkiXHdny6jGmTwTmkcw
Здесь нанесены больницы с 10-километровым радиусом вокруг них. А яркие области - это концентрация аварий. Новые больницы оптимальнее строить в тех местах, где много аварий и при этом нет уже построенных больниц. На карте это нагляднее всего видно. Вот бы в Иркутске качеству городской среды уделялось столько внимания!
Под конец этого странного поста отправлю вас в небольшой экзистенциальный кризис с помощью этого видео:
https://youtu.be/JXeJANDKwDc
Обожаю Kurzgesagt не только из-за качества их анимации и наполнения контентом, но и за то, что тщательно подбирают материал.
Этот пост в блоге:
https://blog.alicorn.tk/posts/diploma-absence.html