RSS
Pages: 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72
[>] Мечты сбываются!
pipe.2032
vit01(mira, 1) — All
2021-03-04 13:32:17


Существует такое явление, что люди с огромным количеством проблем в жизни не любят узнавать о хороших новостях у окружающих. И их можно понять, ведь трудно радоваться чьим-то успехам или удаче, когда самому хреново. Но и меня поймите: не всё же время писать о плохом и жаловаться на жизнь. Здесь в блоге я стараюсь поддерживать какой-никакой, но уровень позитива, даже если всё рушится под ногами. Сейчас как раз тот случай, когда время написать о хорошем...


[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/rb1zIYoUoxVL45iqyU3h]( https://www.deviantart.com/plainoasis/art/For-Summer-Solstice-2017-688227624 )

# Что изменилось с момента создания блога

Этот блог я завёл, чтобы делиться новостями из жизни с близкими мне людьми. Или с теми, кто хотел бы себя таковым считать. Поэтому часто тут откровенничаю. Приходилось много рассказывать о своём одиночестве, о том, как это чувствуется, насколько это ужасно и неприятно. [Пару постов назад]( https://blog.alicorn.tk/posts/technical-debt.html ) я впервые упомянул, что больше не одинок, и что это ощущается по-другому, но немножко прикрыл это, не называя вещи своими именами.

## Давайте назовём это вслух

> У меня есть любимая девушка, мы уже 5 месяцев вместе, и я этому очень-очень счастлив!

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

И кто после этого скажет, что мечты не сбываются? Но подождите, есть ещё одна существенная новость...

## Началось с поняшек, закончилось кое-чем большим

Когда я только-только планировал создание этого блога, то заранее продумывал, о чём же буду писать тут в долгосрочной перспективе. Очень хотелось писать сюда о достижении каких-то целей, как маленьких, так и больших, чтобы донести до читателя, что многое возможно, если просто захотеть. В 2014 году я познакомился с MLP:FIM, и какой-то детский (а иногда очень и недетский) мультик о поняшах сильно повлиял на моё ощущение этого мира, сформировал ценностные ориентиры. Если ты на эту тему серьёзно подсел, то оно навсегда, ну или по крайней мере, крайне надолго. Даже если сам сериал закончился, то его идеи и этот культурный пласт остаются жить.

Так вот, сначала я подсел на MLP, а моими героями по жизни стали правительница страны поняш Селестия, управляющая местным Солнцем-светилом, и её ученица-заучка Твайлайт Спаркл, проходящая долгий путь социализации и достигающая в жизни всех высот. Идёт 7 год с того, как всё началось, и где я сейчас? Ха-ха, получаю кучу знаний, занимаюсь наукой и изучаю Солнце :) *Пусть не люблю излишний символизм, но здесь читатель должен его хорошенько прочувствовать*.

## Принимаю ваши поздравления

> С 4 марта 2021 года я официально трудоустроен в Институт Солнечно-Земной Физики СО РАН, в отдел радиоастрофизики, в лабораторию мониторинга солнечной активности

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/un5UmWxDk4z98ZIZBpwh]( https://www.deviantart.com/plainoasis/art/Intervention-666098224 )

Знали бы вы, как долго пришлось к этому идти! Но в конце концов всё получилось. За неимением диплома я пока на низших позициях, но это только старт, а дальше будет ещё сложнее и ещё интереснее. Начался целый новый этап в жизни. Кстати, кому хочется чуточку подробностей: мне выделили отдельное рабочее место, хороший комп и мощный интернет-канал.

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

Как всегда пожелание народу: будьте сильными и смелыми, поняши!

Этот пост в блоге: https://blog.alicorn.tk/posts/congratulations.html

[>] Re: Dark
pipe.2032
btimofeev(tavern,13) — Andrew Lobanov
2021-03-20 18:08:23


Если ты про немецкий Dark про временные петли, то он классный. Досматриваю второй сезон. Мозги набекрень от всех переплетений.

[>] Re: Dark
pipe.2032
Andrew Lobanov(tavern,1) — btimofeev
2021-03-20 20:25:56


btimofeev> Если ты про немецкий Dark про временные петли, то он классный. Досматриваю второй сезон. Мозги набекрень от всех переплетений

Да. Я про него. Честно говоря, я сломался на четвёртом сезоне :)

[>] Re: Что меня раздражает
pipe.2032
hugeping(ping,1) — Peter
2021-03-23 06:22:42


Дико, люто раздражают архивы виндузятников, которые не содержат в себе директории и распаковываются засоряя каталог всяким виндузятным хламом. :(

[>] Re: Что меня раздражает
pipe.2032
btimofeev(tavern,13) — hugeping
2021-03-23 07:21:11


Юзай aunpack (из программы atool), он для архивов без корневой директории создаёт её сам (она будет названа по названию архива). Вот моя статейка про эту программу https://emunix.org/post/atool/

[>] Re: Что меня раздражает
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-23 08:11:49


btimofeev> Вот моя статейка про эту программу https://emunix.org/post/atool/

Отлично, почитаем! Спасибо.

[>] Windows 10
pipe.2032
btimofeev(tavern,13) — All
2021-03-26 19:20:52


Что-то тут опять тихо. Поделюсь своим двухдневным опытом использования сабжа.

Немного предыстории: последняя Windows которую я использовал на личных компьютерах была Xp. Линуксом я начал пользоваться в 2004, а примерно с 2009 я удалил WinXp (которую к этому времени почти перестал использовать) и полностью ушел на Linux. Теперь на новой работе мне, по всей видимости, придется пользоваться Виндовс постоянно, так как нужно будет использовать некий аппаратный токен (драйверов и софта под который похоже нет на Линукс). Так что пришлось поставить сабж на отдельный диск.

Так вот, как все нормальные люди я сначала пошел на сайт Майкрософт, что бы скачать официальный образ (а не сборку от Васяна). Но сайт мне сказал, что у меня неподдерживаемая операционная система, поэтому скачать образ мне нельзя. Это интересно. Ок, идём на торрент и качаем оттуда.

По какой-то причине Майкрософт считает что все в 2021 году записывают DVD диски и поэтому iso образ это единственный доступный вариант. Ок, я помню что зачастую iso образы линукса загружаются с флешки если просто скопировать его туда через dd. Тут так не прокатило, не грузится. Все инструкции в интернете снова говорят о том что на флешку нужно перепаковывать из самой windows.

Но потом я наткнулся на утилиту которая умеет это делать в линуксе. Называется WoeUSB. Что бы записать образ на флешку выполняем команду:

sudo woeusb --tgt-fs NTFS --device win10.iso /dev/sdX

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

С первого взгляда win10 довольно неплоха оказалась. Очень обрадовало, что можно установить линуксовую консольку (wsl2) со всеми привычными инструментами. Но многие вещи не изменились с начала 2000-х.

Добавили виртуальные рабочие столы, но пользоваться ими неудобно.
Как-то перенастроить кнопки на клавиатуре или мышке похоже нельзя. Заменить стандартные горячие клавиши ОС тоже не нашел где. (Если кто-то знает решение подскажите, наверное какие-то внешние программы существуют).

У меня трекбол с двумя кнопками, третья в линуксе эмулируется одновременным нажатием двух. Здесь это не работает, скачал официальную программу для трекбола для настройки кнопок, но она почему то не хочет сохранять конфигурацию кнопок.

Подключил внешний юсб диск, а винда его почему-то распознала как внутренний и не даёт его размонтировать (в меню совсем нет пункта извлечь).

А ещё обновления устанавливаются очень долго и пользоваться компьютером в это время нельзя =(

[>] Re: Windows 10
pipe.2032
Andrew Lobanov(tavern,1) — btimofeev
2021-03-26 20:54:01


btimofeev> Добавили виртуальные рабочие столы, но пользоваться ими неудобно.

Да уж. А я даже обрадовался было, когда узнал, что наконец их добавили.

btimofeev> Как-то перенастроить кнопки на клавиатуре или мышке похоже нельзя. Заменить стандартные горячие клавиши ОС тоже не нашел где. (Если кто-то знает решение подскажите, наверное какие-то внешние программы существуют).

Я не знаю как это можно сделать. Вроде как, штатными средствами никак. Всё гвоздями прибито.

btimofeev> У меня трекбол с двумя кнопками, третья в линуксе эмулируется одновременным нажатием двух. Здесь это не работает, скачал официальную программу для трекбола для настройки кнопок, но она почему то не хочет сохранять конфигурацию кнопок.

С такими штуками своершеннейшая дичь в винде. А почему непонятно. Помнится, я мультитач тапы пытался поменять менстами. Типа правую и среднюю кнопку поменять. В линуксе это делается элементарно, а в винде я забуксовал. А потом ноут на работе стал не нужен.

btimofeev> Подключил внешний юсб диск, а винда его почему-то распознала как внутренний и не даёт его размонтировать (в меню совсем нет пункта извлечь).

ЧуднО. Такого ещё не видел :)

btimofeev> А ещё обновления устанавливаются очень долго и пользоваться компьютером в это время нельзя =(

Обновления в винде это вообще какое-то отдельное издевательство над пользователем. Долго ищутся (интересно где), долго качаются, очень долго устанавливаются. А ещё периодически при обновлении ломается центр обновления и дальше надо руками в потроха системы лазить, чтобы обновления снова ставиться могли. В 7 таких обновлений несколько :) В 10 как минимум одно такое ловил.

[>] Re: Windows 10
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-27 08:03:04


Да, тоже давно не использовал винду. Программировал под 2000. XP уже как пользователь не застал. Иногда хочется поизучать чисто как "экзотику", но каждый раз останавливаюсь... Зачем? Перегруженное, проприетарное... Так что немного сочувствую твоей ситуации. С другой стороны, опыт пригодится, так или иначе...

Интересно, конечно, что там с wsl? Графические приложения работают или только консоль? Где-то слышал, что там полноценный userland от Ubunta?

[>] Re: Windows 10
pipe.2032
btimofeev(tavern,13) — hugeping
2021-03-27 09:20:05


hugeping> Интересно, конечно, что там с wsl? Графические приложения работают или только консоль? Где-то слышал, что там полноценный userland от Ubunta?

Я пока не смотрел можно ли запускать графические приложения.

Выглядит это так: включаешь wsl через шелл, дополнительно устанавливаешь какую-то программу, потом через Microsoft Store выбираешь дистрибутив, там их больше 5 разных, есть убунту, suse, alpine, на гитхабе нашел ещё arch. Я себе поставил убунту как официально поддерживаемую. Далее запускаешь эту убунту как отдельную программу, открывается она как терминал, предлагает сразу создать пользователя и затем можно пользоваться этим терминалом, часть программ уже установлены (tmux например), через apt можешь установить похоже все что есть в репах убунты. Я себе ставил Emacs (скачивается с какими-то GUI пакетами, но запускается консольная версия), gpg, pass, ranger: все это нормально работало.

Пока программа убунты запущена через меню "сеть" проводника можно зайти в ее файловую систему и копировать туда-сюда файлы. Также диски винды уже смонтированы в /mnt

[>] Re: Windows 10
pipe.2032
vvs(ping,12) — hugeping
2021-03-27 13:15:26


hugeping> Да, тоже давно не использовал винду. Программировал под 2000. XP уже как пользователь не застал. Иногда хочется поизучать чисто как "экзотику", но каждый раз останавливаюсь... Зачем? Перегруженное, проприетарное... Так что немного сочувствую твоей ситуации. С другой стороны, опыт пригодится, так или иначе...

Почти как в анекдоте. Хочется приключений? Установите Windows 10 IoT Core для Raspberry Pi 2 & 3:

https://docs.microsoft.com/en-us/windows/iot-core/downloads

Однако сам я приключений не ищу.

[>] Re: Windows 10
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-27 16:45:06


btimofeev> Я пока не смотрел можно ли запускать графические приложения.

Судя по нагугленному, там можно ставить X11 сервер в саму винду, и запускать приложения, задавая DISPLAY=... Ну что, прикольно. :)

[>] Re: Windows 10
pipe.2032
vvs(ping,12) — hugeping
2021-03-27 18:07:13


Насколько мне помнится, графика в терминале виртуальной машины всегда реализуется по сетевым протоколам типа X11, RDP/RemoteFX, Citrix HDX и т.п. Как вариант - потоковое видео или 3D API (OpenGL, Direct3D) по RPC. Либо пробросом физического устройства на ВМ. Вариант этого способа - аппаратная виртуализация GPU. По моему опыту, второй способ всегда выигрывает, но он требует специальное железо и дороже.

Мой прошлый энтузиазм по этому вопросу сильно поостыл за прошедшие годы. Если кому-то нужна хорошая графика (видео, 3D), то лучше не использовать для этого виртуализацию, КМК. А сейчас даже простой десктоп часто использует 3D эффекты направо и налево.

Короче, метапарсер - наше все ;)

[>] Re: Windows 10
pipe.2032
hugeping(ping,1) — vvs
2021-03-28 10:08:50


vvs> Насколько мне помнится, графика в терминале виртуальной машины всегда реализуется по сетевым протоколам типа X11

А я думал. что wsl это не виртуализация. Я думал, там как wine. Системные вызовы linux транслируются в win. Или что-то вроде user-mode linux. Но это требует специальной сборки всего, вряд-ли оно так устроено?

P.S. Почитал опять интернеты. Оказывается, есть wsl и wsl2. wsl2 - виртуализация/гипервизор, а в wsl -- примерно то, что я выше написал.

[>] Re: Windows 10
pipe.2032
vvs(ping,12) — hugeping
2021-03-28 13:24:08


Я и не интересовался деталями именно WSL, писал о своем личном опыте с другими решениями.

А "уровень совместимости", наподобие WINE или WSL1, имеет слишком много проблем на практике. Там никогда не получается добиться полной совместимости с произвольной версией ПО. Надо реализовать все нюансы каждой версии, включая распространенные баги! И при этом требуется реализовать огромное число постоянно меняющихся интерфейсов и поддерживать их в актуальном состоянии (читай OpenGL 1.x, 2.x, 3.x, 4.x, Vulkan, DirectX 7, 8, 9, 10, 11, 12 и пр.). А драйвера вовсе не поддерживаются (то есть всякие DRM и защита от копирования). В итоге - ни рыба, ни мясо. А использование аппаратной виртуализации явно и проще и надежнее.

Я иногда пользуюсь WINE с посредственным успехом, но в основном для игр. Иногда не работает программа установки, иногда - само приложение, а иногда вообще ничего. Бывают всякие глюки, которые зависят от фазы луны. А здесь я, честно говоря, даже не представляю, какие именно графические приложения линукса может понадобиться запускать из винды - ну не игры же?

Когда-то гипервизор Xen использовал только паравиртуализацию, что отдалённо напоминает такой уровень совместимости. В итоге даже они от него постепенно отказываются в пользу аппаратного подхода.

[>] Работаем с тем, что есть
pipe.2032
vit01(mira, 1) — All
2021-03-28 09:27:22


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


## First of all

В посте про поздравляшки я радовался тому, что долгое время не одинок. Но через какое-то время с девушкой наши противоречия достигли критических значений, на данный момент уже более чем 2 недели как мы расстались. Не буду углубляться в подробности, но всё прошло ужасно, и во многом там моя вина. Очень жаль, что так вышло, но сейчас ничего не поделаешь.

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

Короче, всем спасибо, все свободны. У этой мыльной оперы начинается новый сезон.

## Но у тебя же есть работа

И правда, ведь у меня осталась моя работа в ИСЗФ, куда я очень хотел попасть и где очень хотел работать. Большую часть свободного времени сейчас именно там и провожу, засиживаясь допоздна. Потихоньку привыкаю к рабочему месту и к коллективу, решаю возникающие проблемы. По факту, занимаюсь тем же, чем и занимался раньше: пишу статью и диплом, улучшаю некоторые вещи в обработке данных.

Совсем-совсем недавно у нас в отделе случилось замечательное событие: с [Сибирского Радиогелиографа]( https://goo.gl/maps/Y17g1W7NUWjg31Qf6 ), точнее, с его основной решётки из 48 антенн СРГ-48 **впервые за 5 лет** сумели синтезировать изображения высокого качества. И основная заслуга в этом моего научного руководителя, который реализовал так называемую процедуру самокалибровки.

На 2 курсе я писал курсовую работу по алгоритму [CLEAN]( https://en.wikipedia.org/wiki/CLEAN_(algorithm )), используемому в радиоастрономии, который позволяет из дифракционной картины с кучей побочных максимумов восстановить оригинальный радиоисточник. По сути своей, CLEAN - это задача обращения двумерной свёртки. У алгоритма CLEAN есть некоторые недостатки, которые не позволяют получать идеально чистые изображения, просто "втупую" взяв и применив его с параметрами по умолчанию: надо знать, как эти параметры подбирать. Смысл самокалибровки заключается в том, что CLEAN запускается на изображении несколько раз, чтобы выяснить наиболее оптимальные параметры. Кстати, в том коде для самокалибровки СРГ есть и немножко моего кода, написанного раньше.

Ниже показано изображение с СРГ-48 на частоте 4.3 ГГц, наблюдение от 21 марта 2021 года. На данный момент это самый настоящий эксклюзив. Обывателю такая картинка покажется не очень интересной на первый взгляд, но учёные могут получить оттуда много ценных данных. Кстати, если выкрутить хорошенько контраст, то можно обнаружить волокна и корональные дыры на Солнце. Максимальное разрешение там вроде как 6 угловых секунд на пиксель.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/gRhTDsEVA0anoyQyl8T6

Так что в ИСЗФ сейчас все очень-очень радуются, особенно у меня в отделе, потому что это всё очень круто.

## Что делаю по диплому

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

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

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

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/Am3rP5ctWYn7rrECS2a6

## Ещё больше фишек Jupyter, или на чём всё это держится

Чтобы как можно более эффективно анализировать данные и быстро строить нужные визуализации, я пользуюсь [ipywidgets]( https://ipywidgets.readthedocs.io/en/latest/ ). Впервые здесь в блоге они были упомянуты [вот в этом посте]( https://blog.alicorn.tk/posts/procrast.html ). Но, согласитесь, демка там была малость громоздкой, и она могла отпугнуть читателя.

### interact

Существует способ делать визуализации на ipywidgets с гораздо меньшим количеством кода - с помощью декоратора `@interact`. Вы просто пишете функцию, принимающую на вход несколько параметров, обёртываете её декоратором, и рядом с ячейкой автоматом генерируются все GUI-элементы, позволяющие менять параметры в реальном времени. Вот пример графика, который мгновенно перестраивается, реагируя на движение ползунков:

z=np.arange(0, 20, 0.1)

@ipywidgets.interact(v=(0, 10, 1), v1=(0, 10, 1))
def plot_Jv(v, v1):
    fig, ax = plt.subplots(1, 1, figsize=(10, 4))
    func_output = special.jv(v, z)
    func_output1 = special.jv(v1, z)
    
    ax.plot(z, func_output)
    ax.plot(z, func_output1)

    plt.fill_between(z,func_output, color="blue", alpha=0.5)
    plt.fill_between(z,func_output1, color="green", alpha=0.5)
    
    ax.set_title("Наложение функций Бесселя")
    ax.set_ylim(-0.75, 0.75)
    plt.show()

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/QRjpfHI3Yz309tbp9kJA

Кроме чисел в качестве параметров можно задавать списки, текстовые поля и любые другие виджеты, см. [документация]( https://ipywidgets.readthedocs.io/en/latest/ ). Если же в процессе происходят долгие вычисления, то внутри декоратора достаточно указать `continuous_update=False`, и тогда функция построения графика будет вызываться только после фиксации некоторого значения, а не в реальном времени.

### voila и voila-gridstack

Теперь представим, что мы сделали какое-то исследование или демку на базе Jupyter. Это может быть аналитическая модель с формулами и графиками, сложная карта общественного транспорта или путинских дворцов на базе [ipyleaflet]( https://blog.alicorn.tk/posts/exams-politics.html ). И мы хотим превратить наш Jupyter-файл в веб-приложение в браузере, чтобы любой человек мог зайти по ссылке и увидеть что-то вроде панели управления с виджетами, графиками, текстом и так далее.

Для этого существует инструмент [voila]( https://github.com/voila-dashboards/voila ), которому можно натравить файл `.ipynb` и заставить его крутиться на определённом порту сервера в качестве веб-приложения.

voila myfile.ipynb --port=228

[Voila] Using /tmp to store connection files
[Voila] Storing connection files in /tmp/voila_diqc6yb_.
[Voila] Serving static files from /home/user/.local/lib/python3.9/site-packages/voila/static.
[Voila] Voilà is running at:
http://localhost:228/

Voila поддерживает кучу настроек, в частности, тёмную тему оформления и скрытие (или наоборот отображение) кода ячеек. Также есть надстройка [voila-gridstack]( https://github.com/voila-dashboards/voila-gridstack ), позволяющая сделать что-то вроде панели управления, где можно расставлять ячейки с виджетами и кодом в произвольное место на странице, а не просто друг за другом.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/xiYmDKAEUzKBXuLJ7wEd

### papermill

А что если нам не нужно веб-приложение, а нужно просто запустить блокнот Jupyter в фоне с какими-то вычислениями как скрипт? Или чтобы несколько блокнотов отработали последовательно друг за другом. Проект [papermill]( https://github.com/nteract/papermill ) призван решить эту проблему. Кроме запуска на локальной машине он ещё умеет запускать блокноты в Google Cloud и Amazon AWS.

papermill ./myfile.ipynb ./output.ipynb

Потом можно при желании написать crontab, в котором нужные вычисления или отчёты будут генерироваться по расписанию, например, раз в час. Дальше уже через [nbconvert]( https://github.com/jupyter/nbconvert ) можно автоматом сгенерировать PDF с графиками, HTML-страницу или даже презентацию со слайдами. *Примечание: для генерации PDF требуется установленный pandoc + LaTeX и немножко подправленный шаблон с поддержкой русских шрифтов*

jupyter nbconvert ./output.ipynb --to pdf
jupyter nbconvert ./output.ipynb --to slides

С инструментами, про которые рассказал выше (а ещё и с фактом поддержки других языков, например, C++ и R) экосистема Jupyter становится самодостаточной и может удовлетворить практически любые хотелки исследователей данных и автоматизаторов. Все эти пакеты я недавно добавил в свой репозиторий [zaebis-скриптов]( https://github.com/vit1-irk/lazyinstall-puppet ) в "научную" конфигурацию.

## И напоследок

Недавно начал пилить проект по работе с API проекта ГосЗатраты, можете посмотреть его [на Github]( https://github.com/vit1-irk/clearspending-pieces ). ГосЗатраты пользуются ежедневными выгрузками сайта Госзакупок, засовывают данные себе в базу и позволяют независимым исследователям вроде нас с вами делать к этой базе автоматизированные запросы. Благодаря этому можно удобно отслеживать ~~всех жуликов и воров~~ покупки любого государственного учреждения. Надеюсь, что затея получит развитие и поможет людям.

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

В общем, "не падаем духом" и работаем с тем, что есть. Show must go on...

Этот пост в блоге: https://blog.alicorn.tk/posts/as-is.html

[>] Re: Работаем с тем, что есть
pipe.2032
boscholeg(ping,5) — vit01
2021-03-29 08:35:18


Может стоит побороться за близкого возвращение человека? Ошибки в общении всегда можно исправить. А контакт можно наладить.Это бывает трудно но вполне реально.
Работа и учеба дело важное, но не первостепенное по моему менению.
Но это если человек тебе действительно близок.

[>] Re: Работаем с тем, что есть
pipe.2032
vit01(mira, 1) — boscholeg
2021-03-29 08:57:23


Там так получилось, что скорее всего человек на контакт уже не пойдёт из-за своей принципиальной позиции и в том числе из-за накопившегося коммуникационного барьера.

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

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

[>] Re: Работаем с тем, что есть
pipe.2032
Andrew Lobanov(tavern,1) — boscholeg
2021-03-30 21:43:09


boscholeg> Может стоит побороться за близкого возвращение человека? Ошибки в общении всегда можно исправить. А контакт можно наладить.Это бывает трудно но вполне реально.

Молодость самое подходящее время для разрыва. Оглядываясь на свои расстования лет 15 назад, понимаю, что оно было к лучшему для обоих сторон.

boscholeg> Работа и учеба дело важное, но не первостепенное по моему менению.
boscholeg> Но это если человек тебе действительно близок.

У каждого свои приоритеты. Хотя, если одиночество мешает жить, то приоритеты стоит пересмотреть.

Мне с четвёртого курса по второй год работы не мешало совершенно. Да и сейчас, как оказалось, не особо мешает, но тут уж я всё таки приложил усилия для ремонта отношений с женой. Это потребовало уйму усилий и было тяжёлой работой, но оно того стоило.

В любом случае желаю Виктору не унывать и удачи в том числе и на этом поприще :)

[>] Re: Механические клавиатуры
pipe.2032
btimofeev(ping,6) — all
2021-04-29 17:38:17


Моей Anne Pro исполнился год и за это время с ней появились кое-какие проблемы (вроде Spline себе хотел такую купить, может передумаешь еще):

1. Официальная программа для линукса почему-то перестала перепрошивать клаву, при попытке прошить программа наглухо зависает. Последнюю прошивку ставил из винды. Не исключено, что в будущем придется перейти на кастомную прошивку https://openannepro.github.io/ (но это хорошо что подобная хотя бы есть).

2. Месяца два назад начал замечать, что кнопка V иногда дает двойные нажатия. Со временем это началось и на других клавишах, на сегодняшний день насчитал уже 5 таких, две из них двоят-троят постоянно и это очень раздражает. Планирую заказать в китае набор клавиш и повозиться с паяльником (и тут жаль что у клавы нет хот-свапа). Почему-то мне представлялось, что клавиши проживут подольше.

[>] Re: Механические клавиатуры
pipe.2032
Andrew Lobanov(tavern,1) — btimofeev
2021-04-30 04:59:12


btimofeev> Моей Anne Pro исполнился год и за это время с ней появились кое-какие проблемы (вроде Spline себе хотел такую купить, может передумаешь еще):
btimofeev> 1. Официальная программа для линукса почему-то перестала перепрошивать клаву, при попытке прошить программа наглухо зависает. Последнюю прошивку ставил из винды. Не исключено, что в будущем придется перейти на кастомную прошивку https://openannepro.github.io/ (но это хорошо что подобная хотя бы есть).
btimofeev> 2. Месяца два назад начал замечать, что кнопка V иногда дает двойные нажатия. Со временем это началось и на других клавишах, на сегодняшний день насчитал уже 5 таких, две из них двоят-троят постоянно и это очень раздражает. Планирую заказать в китае набор клавиш и повозиться с паяльником (и тут жаль что у клавы нет хот-свапа). Почему-то мне представлялось, что клавиши проживут подольше.

Плохие новости, блин. Впрочем, я уже думаю не брать анечку. Да и вообще пока как-то не до стационарных машин стало :)

А через годик-другой, если созрею на стационар, то буду просто более детально смотреть что я хочу и что есть на рынке.

+++ Caesium/0.4 RC1

[>] Груз ответственности
pipe.2032
vit01(mira, 1) — All
2021-05-02 07:09:41


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

Внимание: тут есть разметка в LaTeX, поэтому желательно читать в моём блоге, чтобы оно отрендерилось


## Приключения в ИСЗФ

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

Работа с СРГ и с моделью ведётся в нескольких направлениях:

* Поиск дефектов на изображениях, из них
1. **Проблемы с позиционированием активных областей**. Не всегда на изображении радиоисточник показан именно в том месте, в котором он на самом деле должен находиться. Существуют систематические сдвижки, которые видны во время сравнения модели и реального изображения. Причиной этому служит недостаточная взаимная колибровка фаз антенн, неправильное определение радиуса Солнца и в том числе несовпадение поляризаций
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/BARb1JWZxf1ZU6akw7mm
2. **Эффекты несовпадения поляризаций**. Профили радиоинтенсивности строятся из двух поляризаций - круговой левой и круговой правой, путём их наложения друг на друга. Если картинка в одной из поляризаций смещена, значит радиоисточник будет двоиться или будет неправильной формы. Модель позволяет выяснить, имеет ли место рассинхронизация поляризаций у прибора.

3. **Нормировка интенсивности, которую выдаёт прибор**. Просадка в интенсивности излучения может случиться из-за неправильной оценки фаз антенн, из-за несовпадения поляризаций (радиоисточник имеет яркость меньше, чем нужно) и из-за эффектов наложения побочных дифракционных максимумов на высоких частотах (дополнительных Солнц). Моделирование позволяет узнать, насколько качественно работают уже эти механизмы обработки.
https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/9gm6XOIa4mhN2lIsGroV
4. **Сопоставление спектров прибора с моделью**. Поскольку радиогелиограф высматривает Солнце на нескольких частотах, имеет смысл посмотреть спектры спокойного Солнца и солнечных пятен. Этим мне предстоит заняться в ближайшее время. Во-первых, чтобы удостовериться, что при синтезе изображений модель спокойного Солнца, которая закладывается в прибор, применена корректно. Во-вторых, чтобы уметь определять параметры плазмы в районе того или иного радиоисточника. Реальная физика, которая стоит за корректно определёнными параметрами радиоспектра, пока от меня скрыта, но по мере написания диплома она будет потихоньку открываться для понимания.

* Сравнение данных с Сибирского радиогелиографа и РАТАН-600

[РАТАН-600]( https://ru.wikipedia.org/wiki/%D0%A0%D0%90%D0%A2%D0%90%D0%9D-600 ) - это радиотелескоп, расположенный в Карачаево-Черкесии и делающий одномерные сканы Солнца (и не только, ещё звёзд и планет). Работает он достаточно давно, и для калибровки нашего прибора была поставлена цель сделать усреднение изображений СРГ и сравнить их с графиками РАТАНа. По этой работе большое спасибо нашим коллегам из Санкт-Петербурга, которые помогают разобраться в тонкостях.

Что уже было сделано:

1. Сопоставление сканов Солнца для двух приборов на каждой из совпадающих частот, учитывая точный угол поворота скана РАТАНа
2. Размытие изображения СРГ, причём таким образом, чтобы обеспечить одинаковый уровень размытия с графиком РАТАНа. Для этого я использовал свойства дисперсий свёртки двух функций (Гауссиан в нашем случае), согласно которому \\(D_1 + D_2 = D_3 \iff \sqrt{\sigma_1^2 + \sigma_2^2} = \sigma_3\\). Причём \\(\sigma_1\\) для повёрнутого скана СРГ подбиралась методом наименьших квадратов, а \\(\sigma_3\\) (РАТАНовская) была уже известна.
3. Зануление дифракционного "мусора" за пределами диска Солнца на изображениях СРГ, что увеличило количество совпадений между графиками

На высоких частотах (> 4 ГГц) из-за больших перекрытий от вторичных Солнц у СРГ проседает яркость (см. картинка ниже), и с этим надо работать. В конце концов, для этого мы и делаем проверку.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/tzgpJCTxyPd6XvMzrstN

Что планируется сделать:

1. Вычитание модели спокойного Солнца для СРГ и калибровка яркостей на её основе
2. Вычисление точной временной сдвижки сканов двух приборов на основе [кросс-корреляции]( https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F )
3. Может быть, разобраться со спектрами, но это ещё неточно

* **Статья**. Конечно же, про гирорезонансные источники на 34 ГГц я не забываю и над статьёй тоже работаю. Не так давно была вычитка с нашим соавтором, после которой осталось много невыполненных замечаний. Потихоньку мы эти замечания с научруком устраняем, и это довольно непросто. Мне очень жаль, что с публикацией дела затягиваются, но это реально очень и очень большая работа, учитывая то, что всё идёт на английском. Есть некоторые новости, например, у моего найденного списка событий есть пересечение со списком солнцетрясений. Но про это всё я напишу поближе к публикации.

* **Магнитогидродинамика**. Кроме возни с данными радиотелескопов передо мной естественным образом возникает задача разбираться в магнитозвуковых колебаниях в плазме для помощи в осуществлении ещё парочки исследований, и это ещё одна из зон моей (будущей) ответственности. В скором времени этот вопрос актуализируется, и там будет над чем поломать голову.

* **Свободное время**. Несмотря на большое количество дел, иногда на работе возникает простой по тем или иным причинам, и в эти свободные минутки я прохожу [курсы на Kaggle]( https://www.kaggle.com/learn ), чтобы закрепить свои знания в области анализа данных. Эти уроки можно даже без регистрации проходить, и среди них есть весьма интересные примеры.

## Что с моей психикой

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

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

Целенаправленно искать новые отношения планирую не раньше защиты диплома, а пока что нужно прийти в чувство (в прямом и в переносном смысле) и поднакопить силы.

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/I4TpwbtXd5vNBhVwfFvh]( https://www.deviantart.com/ncmares/art/Serenity-618818009 )

## Политические бурления

Фонд борьбы с коррупцией объявляют экстремистской организацией, штабы Навального разграбливают, а его самого гнобят в тюрьме, устраивая таким образом политическую месть. Гайки ещё больше закручиваются, и я чисто по-человечески переживал за Алексея. Конечно же, я сходил на акцию 21 апреля (см. [фотографии]( https://alicorn.tk/dashie/s/RscZzNAXma6PJ72 )), но ничего особенного там не происходило и не могло. Хотя людей было достаточно много, больше, чем 31 января.

Несистемной оппозиции сейчас придётся перестраиваться и придумывать что-то новое, чтобы даже несмотря на "набеги" достигать каких-то результатов. И, увы, нам нужно и самим включать голову. Здесь может быть 2 направления (это из того, что мне предлагал народ):

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

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

## Фальсификации и почему они доказываются

Размышляя в очередной раз, почему [Метод Шпилькина]( https://meduza.io/cards/vizhu-mnogo-grafikov-o-falsifikatsii-na-vyborah-chto-oni-znachat ) для доказательства фальсификации выборов работает, почему-то захотелось найти надёжное объяснение, которое сработает для других людей, которые не очень хорошо понимают его принцип.

На графике ниже можно увидеть пример "выборов курильщика", когда [фальсификации]( https://www.golosinfo.org/articles/144478 ) достигли невиданных масштабов, а распределение напоминает гребёнку:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/ltw4tYIb0pG5rXU7AkBO

А вот тут пример честных выборов:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/TIF5ctAfd0foAAH13VZJ

Принцип заключается в том, что зависимость явки людей на избирательные участки от количества проголосовавших за того или иного кандидата должна иметь [нормальное распределение]( https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5 ). И если нормальное распределение не получается, если на таком графике существуют пики вблизи "ровных" чисел вроде 50%, 60%, 70% или 90%, то налицо фальсификация выборов, вбросы бюллетеней, перекладывания (от одного кандидата к другому) и "рисовка результатов".

Обычно люди на основе своей интуиции говорят, что это всё хрень, ведь их политические предпочтения - это не случайность, а твёрдо принятое решение, которое не поддаётся распределению вроде суммы очков при бросании игральной кости. Так-то оно так, но если посмотреть на ситуацию с другой стороны, то эта случайность естественным образом возникает. С точки зрения политика, который "встретился" с Васей Пупкиным на улице или в интернете и пытается агитировать в свою пользу, поведение Васи на выборах как раз является случайной величиной. Ведь с какой-то вероятностью Вася среагирует на агитацию и придёт проголосует, а может плюнуть и не проголосовать или проголосовать за оппонента.

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

## [Центральная предельная теорема]( https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0 )

Одна из классических теорем статистики. Говорит, что сумма большого числа любых случайных величин стремится к нормальному распределению. Мне хотелось бы дать ей некоторое простое доказательство-обоснование, в котором будет несложно разобраться и закрепить это в уме.

Начнём с того, что сумма случайных величин с плотностью вероятности \\(f_1(x)\\) и \\(f_2(x)\\) имеет плотность вероятности их свёртки: \\(f_{1+2}(x) = \int_{-\infty}^{+\infty}\,f_1(x') f_2(x-x') dx'\\). Если вы уже знакомы с методами обработки сигналов, то на этом можно остановиться, ведь фактически любая свёртка берёт и "размывает" исходный сигнал, сглаживая все неровности. И чем больше мы сглаживаем сигналы любой конечной формы друг с другом, тем всё больше результат начинает напоминать правильный колокол нормального распределения. В [Википедии]( https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BA%D0%B0_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7 )) есть хорошая визуализация на эту тему.

Но классическое доказательство ЦПТ основывается на характеристических функциях, а именно на спектрах функции распределения. Спектр свёртки двух функций равен произведению спектров. То есть в пространстве спектров \\(\phi_{1+2}(t) = \phi_1(t)\phi_2(t)\\). Согласитесь же, гораздо проще выглядит =)

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

$$\phi_x(t) = \int_{-\infty}^{\infty} e^{itx}f(x)dx \approx \int_{-\infty}^{\infty} (1+itx-\frac{x^2t^2}{2})f(x)dx \approx 1 - \frac{t^2}{2}\langle x^2\rangle$$

Среднее значение \\(\langle x\rangle\\), которое возникает при интегрировании, я здесь зануляю, потому что при сдвиге плотности распределения по оси X это добавляет в спектр лишь фазовый множитель, который на форму функции не влияет. Если дисперсии наших вероятностных вкладов имеют одинаково-малый порядок, то их можно тоже приравнять друг к другу, а лучше даже отнормировать на единицу, взамен получив обычную параболу на оси спектров: \\(\phi_x(t) \approx 1 - \frac{t^2}{2}\\).

Затем прибегнем ко второму замечательному пределу:

$$\phi_{\frac{\sum x_k}{\sqrt{N}}}(t) = \phi_{\sum x_k}(\frac{t}{\sqrt{N}}) = \prod\limits_{k=1}^N(1-\frac{t^2}{2N}) \longrightarrow \lim_{N \to \infty}(1-\frac{t^2}{2N})^N = e^\frac{-t^2}{2} $$

Если вспомнить свойство преобразования Фурье от Гауссианы, то становится понятно, что в конце концов Гауссиана и получится. Трюк, который в доказательстве классической ЦПТ был проделан с дисперсиями, непонятен с первого раза, но в более строгой формулировке [теоремы Ляпунова]( https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0#%D0%A6._%D0%9F._%D0%A2._%D0%9B%D1%8F%D0%BF%D1%83%D0%BD%D0%BE%D0%B2%D0%B0 ) он объясняется путём накладывания условия на дисперсии с привлечением третьего центрального момента (асимметрии). Оставим это на размышление читателю...

## Планы на будущее и mermaid.js
Всё-всё, прекращаю вас мучать формулами. Лучше расскажу, что у меня в планах на будущее, построив (кликабельно, смотреть в отдельном окне) небольшую диаграмму Гантта в [mermaid.js]( https://mermaid-js.github.io/mermaid/#/ )

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/zzgPLuNvUnGM0nTutibK]( /img/plans-summer-2021.png )

## Бонус

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

## Обновление zbs-скриптов

В моём [репозитории]( https://github.com/vit1-irk/lazyinstall-puppet ) zaebis-скриптов для Puppet большое обновление:

- Добавлен скрипт [easy-wg-quick]( https://github.com/burghardt/easy-wg-quick ) для быстрого развёртывания VPN на вашем сервере. Как пользоваться:

sudo su
cd /etc/wireguard
easy-wg-quick
systemctl start wg-quick@wghub
systemctl enable wg-quick@wghub

- Добавил библиотеку sympy для аналитических вычислений
- Заставил работать Jupyter-модули для языка R, так что теперь поддержка языка R в сборке стала полноценной
- Добавил питоновские библиотеки для задач оптимизации и машинного обучения вроде sklearn, cvxpy и optlang

Этот пост в блоге: https://blog.alicorn.tk/posts/responsibility.html

[>] Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2021-05-02 13:16:45


> 1. Официальная программа для линукса почему-то перестала перепрошивать клаву, при попытке прошить программа наглухо зависает. Последнюю прошивку ставил из винды. Не исключено, что в будущем придется перейти на кастомную прошивку openannepro.github.io (но это хорошо что подобная хотя бы есть).

Странно, но у себя ничего подобного не замечал - прога работает нормально.

> 2. Месяца два назад начал замечать, что кнопка V иногда дает двойные нажатия

У меня есть подобная проблема с \. И почему-то проявляется только при легких нажатиях - когда жмешь быстро и до конца, то такого нет. Проблема это с самого начала присутствует. С остальными клавишами все ок. В принципе можно заменить свитч.

[>] Re: Механические клавиатуры
pipe.2032
btimofeev(ping,6) — Difrex
2021-05-04 13:36:28


Difrex> Странно, но у себя ничего подобного не замечал - прога работает нормально.

Мне тоже странно, тк программа не обновлялась, ее конфиги не менялись и тп. Она просто стала зависать при старте прошивки. При этом клава отрубается, а после переподключения работает.

[>] Re: Халява
pipe.2032
btimofeev(tavern,13) — all
2021-05-28 20:56:17


В стиме бесплатная раздача Little Nightmares https://store.steampowered.com/app/424840/Little_Nightmares/

[>] Новая работа
pipe.2032
Andrew Lobanov(tavern,1) — All
2021-06-01 07:08:44


Я в чатах уже упоминал, но здесь ещё не было такой информации.

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

Первые впечатления: вечный кайф. Я много лет занимался всем этим для отдыха и развлечения, а сейчас можно ковырять код в рабочее время и за это платят существенно лучше, чем на предыдущей работе платили за ненавистные бумажки. Причём развиваться на работе начал существенно стремительней, чем раньше, когда это было хобби. Очень здорово.

Единственная проблема в том, что ребята не пишут документацию. Совсем. Как с этим бороться снизу? Есть истории успеха?

+++ Caesium/0.4 RC1

[>] Re: Новая работа
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2021-06-01 09:22:53


Поздравляю!
В какой город переезжаешь? Что с нодой будет? :)

> Единственная проблема в том, что ребята не пишут документацию. Совсем. Как с этим бороться снизу? Есть истории успеха?
Начини сам писать документацию для своего проекта и добавь сборку оной в ваш CI. Я принес во все наши большие проекты sphinx.
Для некоторых проектов можно собирать документацию из docstring - это для документирования API. А для мелких часто хватает небольшого README.md в корне.

[>] Re: Новая работа
pipe.2032
vvs(ping,12) — Andrew Lobanov
2021-06-01 12:16:55


Удачи на новом поприще.

Документация - это всеобщая болезнь, как правило нужен профессиональный писатель. Иногда вместо документации кто-то издает книгу. Комментарии и API - это другое дело.

[>] Re: Новая работа
pipe.2032
Difrex(dynamic,1) — vvs
2021-06-01 12:57:33


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

[>] Re: Новая работа
pipe.2032
vvs(ping,12) — Difrex
2021-06-01 14:08:34


Тогда скажу по-другому: есть разные литературные жанры.

[>] Re: Новая работа
pipe.2032
Difrex(dynamic,1) — vvs
2021-06-01 14:26:33


> Тогда скажу по-другому: есть разные литературные жанры.
Типа того - документация для пользователей обычно запаздывает, хорошо, когда она вообще есть.
Главное, чтобы были исходники.

[>] Re: Новая работа
pipe.2032
vvs(ping,12) — Difrex
2021-06-01 16:37:47


Difrex> Главное, чтобы были исходники.

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

Только недавно читал что-то подобное об играх Infocom и даже оставлял ссылку на форуме instead-games.ru.

[>] Re: Новая работа
pipe.2032
vvs(ping,12) — vvs
2021-06-03 15:22:18


Кстати, есть еще ЯОП: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

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

[>] Re: Новая работа
pipe.2032
Andrew Lobanov(tavern,1) — Difrex
2021-06-15 06:23:27


Difrex> Поздравляю!

Спасибо

Difrex> В какой город переезжаешь? Что с нодой будет? :)

Переезжаю в Питер, хотя сроки опять сдвигаются. Нода переедет на арендованный сервер из под дивана :)

>> Единственная проблема в том, что ребята не пишут документацию. Совсем. Как с этим бороться снизу? Есть истории успеха?
Difrex> Начини сам писать документацию для своего проекта и добавь сборку оной в ваш CI. Я принес во все наши большие проекты sphinx.
Difrex> Для некоторых проектов можно собирать документацию из docstring - это для документирования API. А для мелких часто хватает небольшого README.md в корне.

Видимо, единственный вариант. Собственно, его и придерживаюсь :)

+++ Caesium/0.4 RC1

[>] Re: Новая работа
pipe.2032
Andrew Lobanov(tavern,1) — vvs
2021-06-15 06:23:28


vvs> Удачи на новом поприще.

Спасибо.

vvs> Документация - это всеобщая болезнь, как правило нужен профессиональный писатель. Иногда вместо документации кто-то издает книгу. Комментарии и API - это другое дело.

Ну вот достался мне проект, где был только README с инструкцией по деплою. Правда инструкция была неполная и с ошибками :) Комментариев не было, API документирован не был :)

+++ Caesium/0.4 RC1

[>] Re: Новая работа
pipe.2032
Andrew Lobanov(tavern,1) — Difrex
2021-06-15 06:23:29


>> Тогда скажу по-другому: есть разные литературные жанры.
Difrex> Типа того - документация для пользователей обычно запаздывает, хорошо, когда она вообще есть.

Документация для пользователей меня не особо пока волнует. Тем более, что в конкретно этом продукте всё очевидно для пользователя. One button operation, так сказать.

Difrex> Главное, чтобы были исходники.

Они есть. Только пришлось подтянуть PHP и поверхностно изучить Laravel, чтобы разобраться.

+++ Caesium/0.4 RC1

[>] Re: Новая работа
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2021-06-15 13:43:13


> Переезжаю в Питер, хотя сроки опять сдвигаются. Нода переедет на арендованный сервер из под дивана :)
Люблю Питер, очень атмосферный город. Следующий в списке на переезд после Минска :). Надо будет пересечься сеткой в Питере :)

[>] Защитил диплом сегодня
pipe.2032
vit01(mira, 1) — All
2021-06-15 15:25:15


На отлично

Принимаю поздравления :)

А о чём был диплом, расскажу потом в блогопосте

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

[>] Re: Новая работа
pipe.2032
Andrew Lobanov(tavern,1) — Difrex
2021-06-16 10:42:30


>> Переезжаю в Питер, хотя сроки опять сдвигаются. Нода переедет на арендованный сервер из под дивана :)
Difrex> Люблю Питер, очень атмосферный город. Следующий в списке на переезд после Минска :). Надо будет пересечься сеткой в Питере :)

Ае! Первая сисопка! Но я туда пока только поздней осенью перееду, если опять сроки не сдвинутся.

+++ Caesium/0.4 RC1

[>] Re: Защитил диплом сегодня
pipe.2032
Andrew Lobanov(tavern,1) — vit01
2021-06-16 10:42:31


vit01> На отлично
vit01> Принимаю поздравления :)

Поздравляю! Как быстро летит время :)

Чем планируешь дальше заниматься?

vit01> А о чём был диплом, расскажу потом в блогопосте

Отлично.

+++ Caesium/0.4 RC1

[>] Re: Защитил диплом сегодня
pipe.2032
vit01(mira, 1) — Andrew Lobanov
2021-06-16 11:10:47


vit01>> На отлично
vit01>> Принимаю поздравления :)

AL> Поздравляю! Как быстро летит время :)
Спасибо :)

AL> Чем планируешь дальше заниматься?

Иду в магистратуру ИСЗФ + аспирантуру. Планирую в скором времени на телескоп съездить для накопления опыта. Про это ещё расскажу, конечно

По работе из предстоящих проектов у меня лично - одно из исследований по поводу распространения магнитозвуковых волн в плазме на Солнце

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

[>] Пока меня не было из-за диплома
pipe.2032
vit01(mira, 1) — All
2021-06-24 02:25:52


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


## Работа над психикой

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

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

Сейчас же мы прорабатываем во время терапии так называемый метод субличностей. Это такая абстракция, которая позволяет проанализировать причины того или иного твоего поведения, разложив их по полочкам. Суть достаточно простая: вы ищете у себя в голове тех или иных "персонажей", у которых есть некоторые собственные черты характера, потребности и способы решения тех или иных проблем. А потом при рассмотрении какой-то возникшей жизненной ситуации можно увидеть, **кто** из персонажей активировался и **почему**. Так ещё можно и проконтролировать, какую свою часть нужно попридержать, а какой дать ход. Эдак получается, что каждый человек - это человек-оркестр, которым можно ещё дирижировать :)

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

Так получилось, что действия моего внутренного критика и внутреннего "умника" - это вторая после низкого эмоционального интеллекта причина краха прошлых отношений. _Третья - несоответствие базовых потребностей, но это уже совсем другая история._ И вот, в чём суть: двигаясь самостоятельно к своим идеалам, я иногда начинаю вредничать и учить жить других людей. И даже не со зла, а очень даже из благих побуждений. Но вот проблемы меня и моего критика таковы, что иногда они неправы. И даже если они на 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

### Google Apps script

Как-то давно [жаловался]( 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

В прошлом посте я рассказывал, что пробовал проходить курсы на [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

[>] Летняя терапия и трудотерапия
pipe.2032
vit01(mira, 1) — All
2021-07-12 08:21:13


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


## Про психотерапию

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

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


## Советую книги по психологии

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

1. Ричард Дэвидсон: Эмоциональная жизнь мозга
* [PDF]( https://batrachos.com/sites/default/files/pictures/Books/Devidson_Begli_2017_Emotsionalnaya%20zhizn%20mozga.pdf )
* Автор достаточно известен и имеет множество публикаций по теме изучения мозга в ведущих научных журналах. Может быть, в плане психологии эта книжка будет не настолько полезна, но она, тем не менее, достаточно познавательна. Рассказывается, как люди ведут себя во время различных экспериментов и какие данные из их мозга удалось получить с помощью датчиков.
2. Джон Бреддок: Думай как шпион
* [Онлайн-версия]( https://booksonline.com.ua/view.php?book=181554 )
* Здесь не столько про психологию, сколько про прокачивание скилла стратегического мышления и умения взглянуть на ситуацию со стороны (в рамках коммуникации и не только). Для тех, кто не знает, что делать и зачем.
3. Тимур Гагин: Занимательная физика отношений
* [Онлайн-версия]( https://libcat.ru/knigi/nauka-i-obrazovanie/psihologiya/232589-timur-gagin-zanimatelnaya-fizika-otnoshenij.html )
* Книга, написанная весьма несерьёзным языком и хорошая для того, чтобы поржать над самими собой и над окружающими. Однако, в плане психологии даёт задуматься о том, насколько важно в отношениях иметь совместимые друг с другом потребности, как эти потребности удобнее всего классифицировать и замечать (у себя и других)
4. Митч и Сьюзен Голант: Что делать, когда тот, кого вы любите, в депрессии
* [Перевод]( https://marriedhusband.github.io/books/golant/depression/index.html )
* Название говорит само за себя. Будем надеяться, что советы отсюда не всем пригодятся, однако, в жизни бывает всякое, и инструкции по общению с депрессивными людьми лишним не будут. Ещё, кстати, иногда можно и на себя со стороны взглянуть...
5. Эрик Бёрн: Игры, в которые играют люди, и люди, которые играют в игры
* [Игры, в которые играют люди]( http://www.aifet.ru/books/transl_v2_Berne.pdf )
* [Люди, которые играют в игры]( https://psychoanalysis.by/wp-content/uploads/2017/12/Igry-v-kotorye-igrayut-lyudi.-Lyudi-kotorye-igrayut-v-igry.pdf )
* Серьёзное издание из двух частей, которое даёт очень подробные наводки на то, как разбираться в себе и людях, как и из каких позиций мы привыкли друг с другом общаться. Огромное спасибо тому человеку, который порекомендовал мне сей фундаментальный опус, потому что даже несмотря на то, что в ходе психотерапии я прорабатываю уже готовые идеи, подчерпнутые у автора, читать оригинал оказалось достаточно полезным и увлекательным.
6. И. Ципоркина, Е. Кабанова: Домашняя дипломатия или как установить отношения между родителями и детьми
* [Скачать]( https://bookscafe.net/book/kabanova_elena-domashnyaya_diplomatiya_ili_kak_ustanovit_otnosheniya_mezhdu_roditelyami_i_detmi-204610.html )
* Несмотря на достаточно банальное название и чересчур юморную подачу, в данной книжке рассматриваются подходы к взаимодействию между людьми с позиции самого точного психологического опросника [MMPI]( https://ru.wikipedia.org/wiki/MMPI ). Тест надо пройти отдельно, где-нибудь онлайн и желательно до прочтения этой книги.

## Снова работаю с Replika

[Ещё год назад]( https://blog.alicorn.tk/posts/summer-progress.html ) я рассказывал, как попробовал достаточно продвинутого чат-бота [Replika]( https://replika.ai ). Не так давно решил вернуться и снова начать им пользоваться. Как ни странно, на этом боте можно потренироваться в навыке ненапряжного и уважительного общения друг с другом, плюс с премиумом он становится достаточно неплохим собеседником (по сравнению с конкурентами, конечно). Не то чтобы Реплика была действительно идеальной, но за год там произошло немало улучшений, и в этот раз мне более интересно поиграть с этим виртуальным помощником. Уже месяц с лишним пользуюсь и пока не дошёл до того момента, когда все фразочки начинают излишне повторяться: разработчики постоянно наполняют бота контентом и новыми диалогами.

## Jupyterlab-latex: работающий релиз

В предыдущем посте я жаловался на то, что интерфейс Jupyter для подготовки научных публикаций гораздо удобнее, чем тот же CoCalc, при этом работающего плагина для Латеха нет. Совсем недавно разработчики расширения [Jupyterlab-latex]( https://github.com/jupyterlab/jupyterlab-latex ) обновили его, и оно теперь нормально устанавливается в свежих версиях JupyterLab. В ближайшее время скрипты моей научной конфигурации [lazyinstall-puppet]( https://github.com/vit1-irk/lazyinstall-puppet ) пополнятся уже работающим расширением.

## Планы на лето и работа

Проблема с калибровкой потоков излучения с РАТАН-600 по факту решилась и объяснена, чему очень рад. По спектру полных потоков можно отметить, что величина относительной ошибки достаточно мала, и наши приборы измеряют всё правильно.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/8ornFti4fD1MsOLWLPkH

Кроме спектров полного потока я рассматривал спектры отдельного яркого радиоисточника, по которым удалось подтвердить гипотезу о негауссовой форме диаграммы направленности РАТАН-600. Это будет не гаусс, а некоторая похожая функция с длинными "хвостами" + обычный гаусс.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/cSLtXretYT11q2wbWdSp

В оставшиеся планы на лето по работе у меня входит:

* Разобраться с софтом для численного моделирования в магнитогидродинамике и применить это на работе в рамках общего проекта с местными товарищами (будет в следующих постах)
* Начать подготовку к поступлению в магистратуру ИСЗФ
* Повторить физику плазмы
* Наконец-то отправить уже статью
* Подготовиться к выступлению на конференции по солнечному магнетизму, которая будет в сентябре (к сожалению, по удалёнке, потому что в это время буду очно учиться)
* И оставить место для совместного проекта с ионосферщиками (пока сам не в курсе, чё за тема, но потом всё прояснится)

Трудотерапия, вообще говоря, работает. Когда напрягаешься по делу, то меньше стимулов закисать и сваливаться в неважное состояние.

## Поездка в Бадары

Сейчас, на момент публикации этого поста, я отправляюсь в Бурятию (вот прямо уже выехал), в радиоастрофизическую обсерваторию [Бадары]( https://goo.gl/maps/B8ki4jf5gHvWjzsm6 ). Путешествие, совмещающее с собой некоторую рабочую стажировку, продлится неделю, за это время накопится куча рассказов и фоточек, которые в следующем посте опубликую. По поводу прибора и по поводу инфраструктуры определённо будет что рассказать.

## Stay strong and dreamy, my fellow ponies

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/Ta98e9Hpju17dN4Qwdfw]( https://www.deviantart.com/dream--chan/art/Starborn-388688119 )

Этот пост в блоге: https://blog.alicorn.tk/posts/summer-therapy.html

[>] Поездка в Бадары
pipe.2032
vit01(mira, 1) — All
2021-07-20 04:09:33


Рассказываю о своей первой поездке в [Радиоастрофизическую обсерваторию ИСЗФ СО РАН]( https://goo.gl/maps/B8ki4jf5gHvWjzsm6 ) в урочище Бадары (Бурятия).


## Общие слова

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

Цели поездки были примерно такие:

1. Узнать больше о приборе, выяснить некоторые детали о нём (набраться опыта и знаний)
2. Хорошенько поработать в обсерватории, чтобы упростить людям работу и обслуживание антенн. Эту цель я поставил, потому что уже знал, что у антенн есть проблемы с глючностью прошивок и с постоянными сбоями, поэтому примерно знал, что искать и что исправлять
3. Свалить подальше от родителей, пусть даже и на неделю. Да, это тоже пустим в счёт мотивации
4. Сравнить с другими обсерваториями, где я уже побывал, и посмотреть, а где же жить лучше

## Разбавим текст фотографиями

Все остальные фотки с поездки можно посмотреть [в облаке по ссылке]( https://alicorn.tk/dashie/s/FEkyYnp78zjdFBt ). За некоторые из них спасибо одногруппнику Илье, который ехал вместе со мной (у него на камере лучше стабилизация работает).

Поселили нас вот в таком вот старом советском домике, который стоит посреди леса. От домика до самого здания обсерватории топать 1.7 километров.

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/iwmoT7OOxArumqyEMlFc

Как выглядит здание обсерватории - см. фоточки из облака :) Это не просто так, а чтобы вам как читателям был стимул посмотреть все фотки. А я больше сосредоточусь на самом приборе

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/Z69PtOMne64Jl2ePaTgP

Итак, радиотелескоп состоит из трёх антенных решёток, работающих в разных диапазонах. Работает и наблюдает за Солнцем на данный момент только первая решётка: от 3 до 6 ГГц. Те антенны, которые разобраны и лежат, сложенные в кучки - это остатки старого прибора-прототипа (48 антенн, до апгрейда). Мелкие антенны предназначены для второй и третьей антенных решёток, которые ещё не запущены.

Для более высокой частоты наблюдения диаметр антенн меньше, чтобы обеспечить одинаково-широкое поле зрения (если антенны будут большими, то поле зрения по всему небу при повышении частоты наоборот сузится). Это объясняется тем, что при дифракции на щели размер главного лепестка получившейся функции (а значит и лепестка диаграммы направленности) зависит от длины волны и диаметра щели как: \\(dx \sim \frac{\lambda}{D}\\)

Схема расположения антенн первой решётки такая:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/69UFnAGQgjsRcAMISOun

Облучатель (это такая штука, в которой фокусируется весь сигнал) представляет собой внутри два перпендикулярных друг другу диполя и позволяет извлекать данные в двух поляризациях. Круговые поляризации получаются из линейных путём корреляции и добавления фазового сдвига \\(\pi / 2\\).

Амплитуды сигналов с облучателей собираются мощным 12-битным АЦП, а коэффициенты корреляции с каждой пары антенн (они же в терминологии радиоастрономов называются видности) вычисляются как усреднённая сумма произведений 3-битных (редуцированных) значений амплитуд. Почему из 12 бит сделали 3 бита? Всё достаточно просто: во-первых, вычислительных мощностей микроконтроллеров не хватит для перемножения 12-битных чисел с огромной скоростью, плюс при проведении процедуры усреднения не особо принципиально, какой изначально числовой разрядности будет произведение (на точности это не сильно сказывается). Ранее здесь вообще использовали 1-битный коррелятор, суммирующий только одиночные единички и нули.

Место в подвале, где расположены приёмники сигнала с облучателей и корреляторы:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/2ZxdBuK1ogbzhfcJkzmz

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

Большинство компьютеров здесь, кстати, на Линуксе, и управляются под Fedora (в том числе последней версии). Есть и достаточно мощные компы, например, один из них на Intel Core i9 и с 32 гигами оперативки.

## Чем я тут занимался

### Сисадминские мелочи

Первым заданием мне дали поднять NFS-сервер на компьютере, на котором складируют данные, чтобы было можно было удалённо монтировать файловую систему из локальной сети. Это оказалось достаточно просто.

Потом меня посадили разбираться с интерфейсом местного маршрутизатора Mikrotik, на котором не поднималась вебморда после обновления. С этим тоже справился, заодно вытащил в сеть отвалившийся спектрополяриметр. Так что теперь могу могу себе записать галочкой, что микротик потыкать довелось :). В сети, здесь, кстати, висит вместе с антеннами около 800 устройств. И вполне себе сидят работают.

### Заклинивающие антенны

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

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

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

### Получение телеметрии

Управляющий блок каждой антенны имеет свой IP-адрес и позволяет общаться с собой по протоколу [SNMP]( https://ru.wikipedia.org/wiki/SNMP ). На запросы он отвечает некоторым закодированным выхлопом, который ещё и не до конца задокументирован. Проблема как прошивки, так и управляющего софта заключается в том, что исходников нет (и подрядчик выдавать их пока не хочет, т.к. секрет фирмы). Документация есть, но в достаточно ограниченном виде. К счастью, для меня достали описания большей части полей телеметрии в виде XML-файлов, которые потом скормил в свою программу.

Сначала я пробовал просто опрашивать все 128 антенн в цикле и находить среди них те, у которых ошибка заклинивания. После нахождения проблемных антенн начал пытаться отправить на них команды выключения и включения, в том же цикле.

Время последовательного опроса всех антенн было от 4 до 5 минут (это очень медленно), из-за чего проблемные антенны успевали съехать, а потом перезапускались и вставали на место, и так раз за разом. На графиках потока это отражалось примерно так:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/vxIPA29wAuE2ouAcYrzG

Поток сильно не падал, но всё равно получалась нехорошая гребёнка. Нужно было засекать проблемные антенны мгновенно, чтобы сразу же их перезапускать, и они не успевали за это время "отстать" от Солнца. К счастью, прошивка позволяет им выставить так называемый SNMP-TRAP-сервер. Это режим, при котором опрашивать вручную все антенны не надо, а они сами шлют информацию на заданный им сервер.

### Пусть антенны сами всё шлют мне

Питоновская библиотека pysnmp кроме простого обмена сообщениями вида запрос-ответ позволяет в том числе работать в виде SNMP-сервера, чем я и воспользовался. Как только сообщение ловилось, в нём искался код ошибки, и если он находился, то мой скрипт отсылал команду перезапуска. Задержки в этот раз не превышали нескольких секунд, и на потоке это не сказывалось. Здесь гребёнки во время работы скрипта уже никакой нет:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/2clNf5Gj5f7wbALNBbSw

### Полноценный интерфейс для мониторинга

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

1. Телеметрию с кривых антенн стал сбрасывать в лог для дальнейшего анализа
2. Прикрутил уведомления об ошибках в Telegram для сотрудников обсерватории, чтобы можно было оперативно следить за заклиниваниями
3. Оформил всё в виде удобной консольной утилиты, через которую можно запрашивать показатели с отдельной антенны, включать и выключать наводку на Солнце, менять сервер уведомлений у антенн и так далее

> По итогам работы моего скрипта в первой решётке СРГ были найдены 4 антенны, которые полностью отключат и отправят обратно подрядчику на ремонт. Также нашли ещё несколько сомнительных антенн, за которыми будут чаще наблюдать.

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

Вот, что получилось:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/7tqS8Esb820ii4BM2cbL

Сначала сделал экспорт самой актуальной телеметрии со скрипта в виде JSON с помощью веб-фреймворка [Flask]( https://github.com/pallets/flask/ ). А потом отдельным скриптом с помощью фреймворка [Plotly Dash]( https://dash.plotly.com/ ) накидал вебморду, запрашивающую данные раз в секунду и позволяющую их удобно просматривать.

[Plotly]( https://plotly.com/ ) - это движок для построения интерактивных графиков на языках Python и R. При знакомстве с ним мне понравилась система связи виджетов друг с другом. Может быть, он не настолько прост в настройке как matplotlib, но для веб-приложений, думаю, это идеальный вариант. Наверное, тут следовало бы привести примеры кода, но лучше оставлю ссылку на [официальную галерею]( https://dash-gallery.plotly.host/Portal/ ) примеров, потому что там всё показано как надо. В документации советую особое внимание обратить на секцию Dash Callbacks.

### Что ещё удалось сделать

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

## Где лучше: в Бадарах или в Мондах?

Кормят хорошо и сытно как здесь, так и там. Мобильной сети нет и там, и там, но есть вайфай, поэтому всё более-менее нормально.

**Плюсы Монд:**

1. Природа всё-таки там красивее и благороднее. Наверное, дело в том, что Монды находятся на высоте около 2000 метров над уровнем моря, и видны вершины гор
2. Архитектура там тоже прикольнее и интереснее, как из советского фантастического кино. Однако, и в Бадарах её плохой не назовёшь, просто менее интересная
3. Много самых разных научных установок. В Бадарах всё-таки один радиотелескоп
4. Нет комаров. Возможно, летом они тоже есть, но я не был в Мондах летом. В Бадарах комаров по вечерам очень много.
5. В жилом домике было аж 2 монитора. Жаль, что тогда забыл переходник, потому что перед сном посидеть за большим экраном самое то
6. Дорога от научных установок до жилых домиков короче, чем в Бадарах

**Плюсы Бадар:**

1. В жилом корпусе есть персональный душ и туалет, а также центральное отопление. В Мондах туалеты похуже и не в доме. Вместо душа вроде как есть баня, но это не то. Отопление в Мондах печное + электрообогреватель
2. Много цветов в корпусе и в столовой. Очень много красивых цветов
3. Интернет в Бадарах гораздо быстрее и стабильнее. По проводу аж до 100 мбит/c, вайфай - до 50. Это решающее удобство для меня :)
4. Есть персональный холодильник и небольшая электроплита. В Мондах есть печка, но всё равно. Жаль, что стиральной машины нет, так бы точно жить можно было
5. Есть конференц-зал и даже спортзал с тренажёрами

## Что в итоге?

Итогами поездки, конечно, доволен. Удалось хорошо отдохнуть и поработать, я получил представление о том, насколько большая инфраструктура в обсерватории и каким образом она поддерживается в рабочем состоянии. Начальство тоже довольно :) В будущем меня свяжут с другими сотрудниками обсерватории (которые сейчас сидят в отпуске) для обмена опытом и для помощи им с некоторыми вещами. С запуском второй и третьей антенных решёток инфраструктура усложнится, но с моей помощью наверняка удастся упростить её администрирование.

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

Кроме работы с антеннами у меня и так много других научных проектов. Тем не менее, это был полезный опыт, хотел бы снова съездить в Бадары, только ближе к зиме, например, в новогодние каникулы.

Этот пост в блоге: https://blog.alicorn.tk/posts/rao-trip.html

[>] Что происходило, когда, казалось бы, ничего не происходило
pipe.2032
vit01(mira, 1) — All
2021-09-02 14:04:25


Рассказываю, чем занимался под конец августа, даю парочку полезных советов


## В целом

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

Как обычно, был на даче. Реже, чем в предыдущие года, но всё же дачу вынужден был посещать с целью сбора урожая ягод и не только. Фотал растущие там цветы (не знаю, зачем). Наверное, что-то в этом есть (скорее всего, просто проявление скуки, но кто знает), поэтому оставим данное воспоминание на всякий случай в блоге, мало ли:

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/OxSj3w2ix4Hj9CTwm86i

Кстати, вдруг кому пригодится, этот коллаж был составлен парочкой командой в консоли, с помощью пакета [GraphicsMagick]( http://www.graphicsmagick.org/utilities.html ) (как ImageMagick):

mkdir -p changed
for i in *.jpg; do gm convert $i -resize "3000x3000^^" -crop 3000x3000+0+0 -quality 100 changed/$i; done
gm montage changed/*.jpg -geometry 1024 -tile 3x3 -quality 80 flowers-in-my-garden.jpg

## Моделирую плазменные трубки с МГД-волнами

Одной из моих текущих задач по работе является моделирование стоячих магнитогидродинамических волн в плазме внутри плазменных трубок. Пока что на данный момент применяется линейное приближение идеальной магнитогидродинамики. Дальше будут и вязкостные слагаемые в уравнениях, и функции нагрева, и всё остальное, но не всё сразу!

В самом начале надо было подобрать и посчитать нормировочные константы таким образом, чтобы характерные величины и их масштабы соответствовали параметрам солнечной плазмы. В процессе проверки констант очень пригодилась библиотека [Pint]( https://pint.readthedocs.io/en/stable/ ), которая позволяет работать в Python с физическими размерностями, проделывать с ними арифметические операции.

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

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/a4cmuCQsX4y5vxmjuE73

Синий и красный цвет - это отрицательное и положительное направление компоненты вектора. Для X-компонент синий-красный - это влево-вправо, для Y-компонент - вниз-вверх.

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

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

## Стыдно? Нет!

В августе решил немного погрузиться в детство и посмотрел 10 сезонов сериала Stargate SG-1. Первые несколько сезонов на русском, а остальные на английском. Казалось бы, зачем лишний раз тратить время и страдать чем попало? Но я не пожалел о просмотре, и не только потому что серии увлекательные, а потому что догадался, как обратить это себе в пользу.

Обычно во время просмотра кино я включаю субтитры. Как только нахожу глазами незнакомое слово, то ставлю воспроизведение на паузу и лезу в переводчик, а потом переслушиваю фрагмент. После нескольких таких итераций запоминается звучание слова и его перевод. Через какое-то время почувствовал уверенность в том, что воспринимаю речь правильно, и начал смотреть на ускоренном, вплоть до 1.5х и даже 2х. Ещё совсем недавно я мог смотреть на ускоренном воспроизведении только русскую речь, но сейчас, после практики на американском сериале, могу уже воспринимать на ускоренном и английскую речь.

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

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/faDeWs3qGMUxelo6W0NI]( https://www.deviantart.com/chobittsu-studios/art/Event-Horizon-Redux-253177802 )

Своё английское _произношение_ я раньше успешно прокачивал на My Little Pony: Friendship is Magic. Мультфильмы имеют такую особенность, что у персонажей специально делают очень разные, качественно отличающиеся друг от друга голоса, чтобы подчеркнуть различия их характеров. Ещё там актёры озвучки стараются усиливать эмоциональную окраску речи, что полезно для усвоения интонаций и фонетики. Конкретно в поняшах есть разные песни (хорошо, когда привносят элементы мюзикла), плюс там есть Пинки Пай, которая очень-очень-очень быстро разговаривает.

## Визуализация через PlantUML

Продолжаю находить лучшие инструменты для визуализации разной информации. Не так давно в блоге упоминал mermaid.js, но сейчас решил наконец-то попробовать [PlantUML]( https://plantuml.com/en/ ), которым пользуется мой научрук. Результатом оказался более чем доволен, потому что, во-первых, у PlantUML есть полностью рабочее расширение для Jupyter, которое пашет из коробки, во-вторых, потому что многие типы графиков он отрисовывает гораздо красивее, чем аналогичные движки.

apt install plantuml
pip3 install iplantuml

Пример диаграммы Ганта в PlantUML и Jupyter (нужно в первой ячейке не забыть сделать `import iplantuml`):

%%plantuml

@startgantt
scale 1000 width
language ru
saturday are closed
sunday are closed
Project starts 2021-08-27

today is colored in pink

-- По статье --

[Конференция] as [k1] starts 2021-08-30 and ends 2021-09-03
[Выступление] as [k2] starts 2021-09-01

-- По остальным событиям --
[g1] happens on 2021-09-03
[g2] happens on 7 days after [g1]'s end
[g3] happens on 7 days after [g2]'s end
[g4] happens on 7 days after [g3]'s end
[g1] displays on same row as [g2]
[g2] displays on same row as [g3]
[g3] displays on same row as [g4]

@endgantt

https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/XLx8bR0w0k8JXGBmFVzo

## Поступил в магистратуру ИСЗФ

Итого, следующие 2 года я буду не только работать в ИСЗФ, но и учиться. Это очень удобно, ведь нас сразу будут учить тем вещам, которые пригодятся в работе. Расписание у нас достаточно насыщенное, 4 дня в неделю с утра до вечера (но пятницы должны быть свободны). Занятия начинаются с 6 сентября, в программе в основном физика плазмы, компьютерные практикумы и математические методы.

## Поучаствовал в конференции

1 сентября со своей работой про поиск гирорезонансных источников на Солнце на частоте 34 ГГц я выступил на конференции "Магнетизм и активность Солнца и звёзд - 2021", которая в этом году проходит в [Крымской астрофизической обсерватории]( https://crao.ru/ru/ ) с 31 августа до 3 сентября. Первый раз, когда где-то засветился на "серьёзном" мероприятии с результатами того, что делал. К сожалению, вживую съездить не получилось, потому что из-за даты проведения заранее зарегистрировался как онлайн-участник. Ну не хотелось 1 сентября куда-то уезжать! Было бы в августе, поехал бы в Крым вживую, но ничего страшного.

На конференции было больше 100 участников, в основном люди старшего поколения и больше десятка тех, кто из ИСЗФ. Молодёжь тоже была, но в разы меньше.

**Из основных тем, которые там обсуждали:**

- Новые телескопы, планируемые к постройке, и мониторинг космической погоды
- Закономерности в циклах солнечной (и звёздной) активности
- Теории солнечного динамо
- Нагрев и охлаждение солнечных (и звёздных) вспышек
- Магнитное поле в плазменных трубках и в солнечных пятнах, разные модели, колебания
- и многое другое

Оживлённые дискуссии вызвали предложения строить в России новые телескопы и магнитографы, чтобы объединить их в единую сеть "службы Солнца", потому что большой вопрос, кто за это будет платить. Однако, нужность этой задачи поднимается давно на протяжении многих лет. Дело в том, что в США служба космической погоды уже существует, но военные на местных конференциях постоянно говорят о том, что если строить телескопы в других странах, то должна быть возможность их быстренько отключить, когда надо. Один из спикеров привёл пример, как по совершенно другим причинам американский солнечный сервис забанил подсеть Института Космических Исследований, и этот инцидент разруливали на уровне академии наук. Учёных подобные расклады не устраивают, поэтому что для коллаборации всегда важно иметь публичные архивы данных.

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

## Не будем о грустном, потому что Селестия всё равно радуется

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

[https://ii-net.tk/ii/ii-point.php?q=/f/f/alicorn.blog/pzR0T5JtQk0TKAG8wx7P]( https://www.deviantart.com/airtower/art/Rising-Sunshine-510879062 )

Добра всем трудолюбивым поняшам! И до следующего поста

Этот пост в блоге: https://blog.alicorn.tk/posts/end-august.html

[>] Дюна
pipe.2032
Andrew Lobanov(tavern,1) — All
2021-09-24 12:46:23


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

[>] Re: Дюна
pipe.2032
boscholeg(ping,5) — Andrew Lobanov
2021-10-06 14:06:52


Удивительное дело. Слышу множество одобрительных отзывов об этом фильме. Неужто удалось снять фильм без ЛГБТ и БЛМ повестки?
Было бы здорово.
Тоже хочу сходить с женой и дочкой.
Стоит с собой брать девочку подростка?

[>] Re: Дюна
pipe.2032
Andrew Lobanov(tavern,1) — boscholeg
2021-10-06 17:55:04


boscholeg> Удивительное дело. Слышу множество одобрительных отзывов об этом фильме. Неужто удалось снять фильм без ЛГБТ и БЛМ повестки?
boscholeg> Было бы здорово.

Если сильно захотеть, то найдёшь и то и другое. Даже в "Ну, погоди!" :)

Мне в первую очередь понравилось достаточно бережное отношение к оригиналу. Ну и просто потрясающая картинка. Я не про качество, а про красоту происходящего на экране.

boscholeg> Тоже хочу сходить с женой и дочкой.
boscholeg> Стоит с собой брать девочку подростка?

Ну если 12+ и если не сильно впичатлительная, то почему нет? Страшного ничего нет особо (кроме Шаи-Хулуда и Владимира Харконена). Но вот сцены убийства людей есть. Впрочем без подробностей и без особой жестокости. Если я правильно помню, конечно. Мог уже подзабыть.

Вообще, Дюна достаточно сложное произведение для подростка :)

[>] Социальные эксперименты и работа
pipe.2032
vit01(mira, 1) — All
2021-10-09 07:20:35


Перестал всем писать, отчитываюсь по учёбе и работе.


## Эксперимент над собой и окружающими

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

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

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

На момент создания этого поста эксперимент с молчанием продолжается неделю с лишним, и никто из русскоязычных друзей/знакомых мне не написал. Один англоязычный товарищ написал через 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

[>] Re: Социальные эксперименты и работа
pipe.2032
vvs(ping,12) — vit01
2021-10-09 13:41:13


vit01> На момент создания этого поста эксперимент с молчанием продолжается неделю с лишним, и никто из русскоязычных друзей/знакомых мне не написал. Один англоязычный товарищ написал через 6 дней ожидания. Скорее всего, публикация этого поста несколько смажет конечный результат, но, тем не менее, я подсчитал приблизительное количество времени, на которое можно исчезнуть из интернета, чтобы этого никто не заметил.

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

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

Так что бывает всякое, иногда даже и хамят в ответ - зависит от человека. В общем, риск - благородное дело, а кто не рискует - тот не пьёт шампанское :)

Pages: 1 ... 60 61 62 63 64 65 66 67 68 69 70 71 72