Re: Редактор acme: пишем почтовый клиент

[std.hugeping] Thu Oct 14 12:25:21 UTC 2021 @vvs -> hugeping

Если кого-нибудь интересует практическая информация по языкам программирования, то проще начинать с википедии. Конкретно по Оберону там упоминается пару порталов на русском: https://oberon.org/ru https://oberoncore.ru/library/start Я сам запускал Оберон лет двадцать назад. Меня тогда поразил его визуальный интерфейс. Когда гораздо позже я увидел ACME, то сразу вспомнил об Обероне. Поискав информацию убедился, что Пайк действительно позаимствовал идею оттуда. Помню, что тогда там не было никакой системы управления версиями и я качал исходники Оберона поштучно в браузере. Они даже должны у меня где-то до сих пор валяться. Но других интересных языков было много, поэтому именно Оберону я уделил мало внимания и до чтения литературы даже не добрался. Lisp и Smalltalk - это отдельная песня. По ним я даже прочитал учебную литературу. Начинал с GNU Smalltalk, потом сразу перешёл на Squeek. Его пытался использовать на практике, в качестве рабочей системы. Пробовал разобраться с его виртуальной машиной, но меня отпугнула жутко запутанная система её построения. Еще у Smalltalk очень специфичная система управления версиями, в которой ведётся разработка. Поддержка Git там появилась только недавно и тоже довольно непривычная. Насколько я понял, Squeek больше ориентирован именно на конечного пользователя, чем Pharo. В своё время я постепенно переходил с Windows 98 на RedHat Linux несколько лет, когда использовал их параллельно и это был непростой опыт. На Smalltalk же перейти так и не удалось - не хватило мотивации и дальше отдельных экспериментов дело не пошло. Сейчас же я сижу на NixOS и там пока нет поддержки Squeek 5.x. Тогда меня интересовали чисто инженерные аспекты компьютерных наук. Сейчас же меня интересует, в основном, логика и теория формальных языков, да и то не как самоцель, а как средство более глубокого понимания других наук, которые можно на них формулировать. Так что мне сейчас интересней устройство компиляторов, а не их практическое использование. Впрочем, исключение составляют языки с зависимыми типами, такие как Coq, Lean или Agda. На них можно формализовывать различные математические теории и доказывать теоремы, что мне и нужно. Так что в данный момент штудирую теоретическую литературу, коей хватит на несколько лет, а временами решаю задачки по логике, что лучше любой игры. На эксперименты с другими языками времени уже не остаётся - это всё больше в прошлом. P.S. Кстати, Lean использует Emacs или VSCode в качестве интерфейса пользователя. В отличие от многих других языков, здесь это не просто удобство, а совершенно необходимая часть взаимодействия с языком.

Re: Редактор acme: пишем почтовый клиент

[std.hugeping] Thu Oct 14 04:45:53 UTC 2021 @Andrew Lobanov -> hugeping

Большое спасибо за отличную статью. Даже если я не начну использовать acme для почты, полезного и интересного почерпнул из неё не мало. Вообще люблю твои статьи. Их и читать приятно и интересно, и зачастую полезно. +++ Caesium/0.4 RC1

Re: Редактор acme: пишем почтовый клиент

[std.hugeping] Thu Oct 14 04:29:39 UTC 2021 @Andrew Lobanov -> vvs

vvs> Так ведь почему кому-то нравится Emacs? Причины могут быть разные, но я назову одну: Emacs - это интерфейс к elisp. Есть стремление всё делать средствами одного языка. А ACME - это ведь не язык, а чистый интерфейс и предполагает использование дополнительных средств. С точки зрения языка высокого уровня выгоднее вообще не использовать лишние концепции, такие как ОС. Как емаксер со стажем, люблю емакс по куче причин. Во-первых, лисп. Я обожаю лисп и ничего не могу с этим поделать. Во-вторых: это классный текстовый интерфейс а-ля Genera только текстовый. А ещё его можно хачить хоть до посинения. Это отдельный кайф. vvs> Есть такая тенденция языковой среды, когда начинается с языка и постепенно переходит к решению его средствами любых задач, включая построение интерфейсов. В Web - это, наверное, JavaScript из которого выросла целая платформа Node.js. То же самое наблюдается в Python, OCaml, Haskell и т.д. Дайте программисту Тьюринг-полный язык и он рано или поздно напишет на нём всё. vvs> Когда-то в Xerox из этого придумали целую парадигму ОО программирования в стиле Smalltalk (сильно отличающаяся от Simula 67/C++), где вся среда исполнения и интерфейс - это Smalltalk и пользователь меняет эту среду прямо из языка в реальном времени, избегая цикла компиляция-линкование-запуск. До него что-то похожее делали на Lisp, откуда и родился в итоге Emacs. Smalltalk это была действительно крутая концепция. Правда я до сих пор не представляю как можно пользоваться огромной объектной штукой, когда всё мутабельно. Но я особо и не вникал. Так, по верхам pharo тыкал. Кстати, у меня он на старте чистого образа ругается, начиная с 8 версии. Досадно. vvs> Концепции же Unix, в целом, довольно низкоуровневые. Кстати, идея ACME пришла из языка Oberon Н.Вирта. А где можно почитать поподробнее? Я про оберон читал, но что-то поверхностное. И про язык и про систему. Интересуют, конечно, обе штуки. +++ Caesium/0.4 RC1

Re: 0 или 1

[std.hugeping] Thu Oct 14 04:29:38 UTC 2021 @Andrew Lobanov -> vvs

hugeping>> Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса. vvs> Кстати, о проблеме существования. Математик говорит, что есть топологическое пространство. Обыватель говорит, что он его не видит, следовательно его не существует и это пустая болтовня. Лично я здесь и вижу то самое разделение на вульгарных материалистов и идеалистов. Понятно, что у вульгарного материалиста точка зрения часто не совпадает с идеалистами. vvs> P.S. Почему говорю о "вульгарном" материализме? Потому что далеко не все материалисты основываются исключительно на личном эмпирическом опыте. Я как материалист искал какую-либо базу или выкладки по теме, но так и не нашёл. Даже спрашивал, но везде встречалось только "это так, потому что это так" и ничего существенного. А это для меня сродни единорогам :)

Re: Редактор acme: пишем почтовый клиент

[std.hugeping] Wed Oct 13 17:30:21 UTC 2021 @vvs -> hugeping

hugeping> Кстати, об одёжке. Уверен, у 99% людей пропадает интерес к acme как только они узнают, что в нём нет подстветки синтаксиса. Или, что в этом редакторе нельзя перемещаться по строкам вверх-вниз с помощью клавиатуры... Я зря это сейчас сказал, да? :) Так ведь почему кому-то нравится Emacs? Причины могут быть разные, но я назову одну: Emacs - это интерфейс к elisp. Есть стремление всё делать средствами одного языка. А ACME - это ведь не язык, а чистый интерфейс и предполагает использование дополнительных средств. С точки зрения языка высокого уровня выгоднее вообще не использовать лишние концепции, такие как ОС. Есть такая тенденция языковой среды, когда начинается с языка и постепенно переходит к решению его средствами любых задач, включая построение интерфейсов. В Web - это, наверное, JavaScript из которого выросла целая платформа Node.js. То же самое наблюдается в Python, OCaml, Haskell и т.д. Когда-то в Xerox из этого придумали целую парадигму ОО программирования в стиле Smalltalk (сильно отличающаяся от Simula 67/C++), где вся среда исполнения и интерфейс - это Smalltalk и пользователь меняет эту среду прямо из языка в реальном времени, избегая цикла компиляция-линкование-запуск. До него что-то похожее делали на Lisp, откуда и родился в итоге Emacs. Концепции же Unix, в целом, довольно низкоуровневые. Кстати, идея ACME пришла из языка Oberon Н.Вирта.

ACME в Linux: пишем почтовый клиент

[plan.9] Wed Oct 13 16:48:36 UTC 2021 @hugeping -> hugeping

Написал статью о том, как писал фронтенд к почте для acme: ii://S4sJA2iZYo83k8ZnpjEX

Редактор acme: пишем почтовый клиент

[std.hugeping] Wed Oct 13 16:46:59 UTC 2021 @hugeping -> All

Медленно, но верно, редактор acme становится моим основным редактором-средой в Linux. Почему это происходит, вопрос отдельный и он не сводится к утилитарности. Проще, удобнее, быстрее -- это всё категории, которые в большей степени определяются нашими привычками. А мной в IT движет любопытство и тяга к простоте. Идея acme очень простая, но при этом мощная. Это не редактор, это прослойка между Unix средой и человеком. Когда вы работаете с acme, "редактором" становится вся ОС. В начале это очень непривычно, но потом -- затягивает. До последнего момента в качестве основного редактора я пользовался emacs и пользовался им как средой. То-есть, кроме собственно редактирования файлов я читал в нём почту (mu4e), общался в телеграм (telega.el), читал pdf ну и так далее... Отвыкнуть от emacs очень сложно, а мне было интересно проводить в acme больше времени, поэтому я решил попробовать перенести в него работу с почтой. Вероятно, можно было бы завести upas, который есть в составе plan9port, но мне этот вариант не очень подходит. Потому что я параноик. Так как почтовые серверы мне не принадлежат у меня есть непреодолимое желание хранить копию своих почтовых ящиков локально на диске. Кроме того, это даёт возможность быстро искать нужное письмо. Поэтому я пошёл другим путём. # Синхронизация почты mbsync Для синхронизации почты между Maildir на диске и imap на сервере нашлась отличная штука: isync (или mbsync). Замечательна она тем, что синхронизация работает в обе стороны. То-есть, удаляя письмо в Maildir вы тем самым удаляете его в imap mailbox. Ну и так далее. Таким образом, вы получаете единый срез почты на многих машинах и всё это прекрасным образом синхронизируется через imap. Конфигурация выглядит примерно так: ==== IMAPAccount gmail Host imap.gmail.com User user@gmail.com Pass password SSLType IMAPS CertificateFile /etc/ssl/certs/ca-certificates.crt IMAPStore gmail-remote UseUTF8Mailboxes yes Account gmail MaildirStore gmail-local SubFolders Verbatim Path ~/Mail/gmail/ Inbox ~/Mail/gmail/Inbox Channel gmail Far :gmail-remote: Near :gmail-local: Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/9front" Create Both Expunge Both SyncState * ==== Правда, mbsync из апстрима создаёт каталоги на диске в кодировке UTF-7. Но в aur есть пакет с поддержкой UTF-8. Обратите внимание на UseUTF8Mailboxes в конфиге. Для других Linux можно собрать версию отсюда: https://sourceforge.net/u/shashurup/isync/ci/utf8-mailboxes/tree/ После того, как всё настроили, можно поставить задачу на таймер в systemd или cron и всё. # Индексация Не так давно я открыл для себя mu. Mu позволяет индексировать почту в Maildir и дальше делать выборку, показ писем, распаковку аттачей и так далее. И всё это очень быстро. Вместе с mu идёт почтовый клиент для emacs -- mu4e. Для создания базы просто делаем что-то вроде: $ mu init --my-address='ваш емейл' И потом периодически делаем индексацию: $ mu index # Идея почтового клиента на acme Mu -- это почти полноценный клиент, по крайней мере, для чтения почты. Практически всё можно сделать из командной строки. Например, вывести последние сообщения: ==== $ mu find --sortfield d --reverse "" | head -n10 ==== Чтобы просмотреть сообщение, вы должны указать путь к конкретному файлу в Maildir. Например: ==== mu view `mu find "" --sortfield d --reverse -f l | head -n1` ==== Конечно, пользоваться в таком виде почтой малореально, но возможностей для скриптования -- масса. И когда я это понял, то решил написать свой фронтенд к mu для acme. # Приложение на acme Acme с помощью файловой системы предоставляет доступ к некоторым функциям по работе с своими окнами, которых оказывается достаточно для написания "приложений". Если вы работаете в Plan9, то файловая система доступна всегда. Если же вы запускаете acme в рамках plan9port, то для доступа к ней можно: 1. Использовать утилиту 9p 2. Подмонтировать ФС через fuse: 9pfuse Допустим, у нас есть скрипт hello, который доступен по PATH. Если запустить acme и вписать hello в заголовок главного окна (там где Newcol Kill Putall Dump..), а потом нажать на hello 2-й кнопкой мыши, то скрипт запустится. Когда скрипт запускается в рамках acme, то переменная окружения winid содержит номер текущего окна или 0, если нет никаких открытых окон, кроме главного. Для работы с файловой системы acme пока будем пользоваться 9p. ==== #!/bin/sh 9p ls acme 9p read acme acme/$winid/tag ==== Запустите этот вариант скрипта и увидите в отдельном окне корень ФС acme и список пунктов меню вашего текущего активного окна (если такое есть). То же самое можно сделать с fuse: ==== #!/bin/sh mnt=`mktemp -d /tmp/acmeXXXX` 9pfuse `namespace`/acme $mnt ls $mnt cat $mnt/$winid/tag fusermount -u "$mnt" && rmdir "$mnt" ==== На самом деле, в теории, fuse вариант удобнее и быстрее, но я столкнулся с проблемой. Мой ноутбук с ArchLinux не хотел уходить в сон, пока есть хоть одна подмонтированная точка fuse. Так что приходится всё время монтировать и размонтировать, что не очень удобно. В man 4 acme (из plan9port) описана файловая система acme. Я не буду здесь пересказывать эту информацию, но отмечу только некоторые моменты с которыми столкнулся. 1. По идее, мы можем считать позицию селектора (курсор + выделение) с помощью записи в ctl строки addr=dot и и последующего чтения из addr. Однако, при открытии addr он каждый раз ресетится. Таким образом, с помощью 9p вы не сможете получить текущую позицию курсора, так как это две операции: запись addr=dot и чтение addr. А нужно, открыть (и не закрывать addr), потом записать addr=dot, потом прочитать addr. Это можно проделать при использовании 9pfuse. Например: ==== pos=`{ echo 'addr=dot' >> $mnt/$winid/ctl; cat; }<$mnt/$winid/addr` ==== 2. Если добавлять в окно текст (в data), содержащий в себе переводы строк, то просто так читать из event построчно не получится. Потому что первая строка будет содержать событие, а следующая -- уже просто кусок текста и так далее. Да, число символов текстового блока тоже при этом приходит, но писать обработку такого протокола на shell неудобно. Поэтому я добавлял текст только построчно. # Версия на shell Первую черновую версию я написал на shell. Всё, что она делала -- показывала последние 100 писем и реагировала на нажатие средней кнопки мыши на путь к письму (при этом, нужно было сначала этот путь выделить). Она была неудобна, неполна. Но очень проста. Поэтому, в качестве иллюстраций я привожу этот вариант целиком: ==== #!/bin/sh mail_view() { mu view "$MAILDIR/$2" --nocolor | 9p write acme/$1/data echo -n 'clean' | 9p write acme/$1/ctl toline $1 0 } mail_ls() { mu find --nocolor -s d --reverse -f "l|d|f|s" "" | \ /usr/bin/sed -e 's|'$MAILDIR'/\([^ ]\+\)|\1|g' | \ head -n 100 | 9p write acme/$1/data echo -n 'clean' | 9p write acme/$1/ctl toline $1 0 } toline() { echo -n "$2" | 9p write acme/$1/addr echo -n 'dot=addr' | 9p write acme/$1/ctl echo -n 'show' | 9p write acme/$1/ctl } if [ -z "$winid" ]; then exit 1 fi # создаём новое окно winid=`9p read acme/new/ctl | awk '{ print $1 }'` # показываем 100 сообщений mail_ls $winid # добавляем "кнопку" Get echo -n "Get" | 9p write acme/$winid/tag # цикл обработки событий 9p read acme/$winid/event | while read a b c d e; do if echo "$a" | grep -q -e '^Mx' 2>/dev/null; then # mx if [ "$e" = "Get" ]; then mail_ls $winid continue fi elif echo "$a" | grep -q -e '^ML' 2>/dev/null; then if [ -f "$MAILDIR/$e" ]; then msgid=`9p read acme/new/ctl | awk '{ print $1 }'` mail_view $msgid $e continue fi fi echo "$a $b" | 9p write acme/$winid/event 2>/dev/null done ==== Кстати, этот текст был вставлен в статью так: - ввел в tagline

Re: 0 или 1

[std.hugeping] Wed Oct 13 13:41:57 UTC 2021 @vvs -> hugeping

hugeping> Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса. Кстати, о проблеме существования. Математик говорит, что есть топологическое пространство. Обыватель говорит, что он его не видит, следовательно его не существует и это пустая болтовня. Лично я здесь и вижу то самое разделение на вульгарных материалистов и идеалистов. Понятно, что у вульгарного материалиста точка зрения часто не совпадает с идеалистами. P.S. Почему говорю о "вульгарном" материализме? Потому что далеко не все материалисты основываются исключительно на личном эмпирическом опыте.

Re: 0 или 1

[std.hugeping] Wed Oct 13 07:08:49 UTC 2021 @hugeping -> Andrew Lobanov

AL> Саму проблему я примерно понял, но не понял откуда вообще берётся этот вопрос. Я, в общем, об этом и говорю. Остальные рассуждения, следствие вот этой вот поворотной точки. Я где-то кажется цитировал Джона Чалмерса, но не могу найти сейчас. Так что ещё раз приведу. > Некоторые говорят, что сознание — это «иллюзия», но я даже плохо понимаю, что это могло бы означать. Мне кажется, что наша уверенность в существовании сознательного опыта превышает нашу уверенность в существовании чего-либо еще в мире. Временами я изо всех сил пытался убедить себя в том, что в действительности тут ничего нет, что сознательный опыт пуст, есть всего лишь иллюзия. В таком представлении есть нечто соблазнительное, и философы разных эпох пытались обыгрывать его, но в итоге подобная картина совершенно неудовлетворительна. ... > В этой связи можно было бы говорить о Великом Разделении, имеющемся в области исследований сознания. Если вы считаете, что решение «легких» проблем объясняет все, что нуждается в объяснении, то у вас получается один тип теории; если вы считаете, что кроме них есть и дополнительная «трудная» проблема, то у вас будет другой ее тип. В какой-то момент общезначимые аргументы становятся затруднительны, и обсуждения зачастую сводятся к ударам по столу. > Мне кажется очевидным, что здесь есть некий дополнительный момент, нуждающийся в объяснении; другие же готовы принять, что ничего подобного не существует. > Не исключено, что нам надо попросту смириться с этим базовым разделением. > Эта книга может представлять интеллектуальный интерес для тех, кто думает, что здесь нет особой проблемы, но в действительности она предназначена тем, кто нутром ощущает эту проблему. Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

Re: 0 или 1

[std.hugeping] Wed Oct 13 05:31:59 UTC 2021 @Andrew Lobanov -> hugeping

hugeping> Например, я очень сильно удивился, когда понял, что для части людей не существует трудной проблемы сознания. Хорошо, что я хотя-бы нашёл термин, который её обозначает, иначе вообще было сложно донести о чём таком я толкую. В первую очередь я не понимаю как может удивлять квалиа при невозможности создать идентичные системы и поместить их в полностью идентичные условия. То есть два разных человека (разные системы) находятся в разных условиях (чисто физически невозможно их в одни условия поместить) и имеют разный опыт. Грубо говоря, это как два разных колебательных контура резонируют на разных частотах. Потому что они в разных условиях находятся и они разные (аналогии всегда отстой ага). Моего куцего интеллекта не хватило даже на это. Саму проблему я примерно понял, но не понял откуда вообще берётся этот вопрос. Всё, что читал по теме создало впечатление "это так, потому что это так". Но такое объяснение антинаучно. Вот и вышло, я не наблюдаю явление, но мне говорят, что оно есть, не приводя ни единого довода в пользу его существования. Это слишком похоже на религию, а на религиозные темы я стараюсь не дискутировать, так как вера это личное дело каждого и мне в этом поле делать нечего.

Re: 0 или 1

[std.hugeping] Tue Oct 12 13:38:16 UTC 2021 @vvs -> hugeping

hugeping> Вот-вот... ;) Скорее всего на разных. Особенно, когда речь заходит об абстрактных понятиях. И дело тут мне кажется не только в языке, но и в том, как ощущаются понятия (или не ощущаются вообще). Если ещё не читал, рекомендую книгу Д.Хофштадтера "Гёдель, Эшер, Бах: эта бесконечная гирлянда". hugeping> Например, я очень сильно удивился, когда понял, что для части людей не существует трудной проблемы сознания. Хорошо, что я хотя-бы нашёл термин, который её обозначает, иначе вообще было сложно донести о чём таком я толкую. Для части людей даже проблемы чтения не существует. Один мой бывший сотрудник начинал решение текущих проблем с поиска какой-то одной строки в документации и, если не находил именно эту строку, то сразу переходил к поиску в Гугле. Он даже просто читать документацию не любил, что уж говорить о учебниках. Вообще, современное образование не расчитано на развитие личности. Меня же когда-то привлекали только самые трудные для философии проблемы. Это, наверное, своеобразная жадность. Сейчас вот думаю, что мне хотя бы с "простыми" искусственными языками разобраться на достаточном уровне - уже какое-то достижение. С моей точки зрения это необходимый лингвистический минимум для достаточно глубокого понимания других наук, которые определяются на языке логики. А в качестве примера для подражания хотелось бы равняться на уровень знакомых аспирантов. Решение чисто инженерных задач уже совсем не удовлетворяет и жизнь всего одна. Как всё успеть? P.S. Ещё говорят, что Билл Гейтс как-то сказал, что тот, кто полностью прочёл "Искусство программирования для ЭВМ" Д.Кнута может смело присылать ему своё резюме :)

Re: 0 или 1

[std.hugeping] Tue Oct 12 10:15:18 UTC 2021 @hugeping -> vvs

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

Re: 0 или 1

[std.hugeping] Mon Oct 11 13:03:21 UTC 2021 @vvs -> hugeping

>> - Смотри, я тут игру написал Color Lines. >> - Неплохо. Только цвета шариков мне не нравятся. >> - А мне, кажется, красиво. >> - Нет, слишком яркие. hugeping> (сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру. hugeping> (сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил. Навеяло. Вариант номер три: ==== — Правда ли, что шахматист Петросян выиграл в лотерею тысячу рублей? — Правда, только не шахматист Петросян, а футболист «Арарата» Акопян, и не тысячу, а десять тысяч, и не рублей, а долларов, и не в лотерею, а в карты, и не выиграл, а проиграл. ==== Речь вообще идёт о разных вещах. Я тут взялся почитать учебник формальной логики для философов. В чём его характерное отличие от логики для математиков или информатиков - упор на выражение предложений естественного языка в символической форме. И частые примеры возникающей в естественном языке неоднозначности грамматики или смысла ("казнить нельзя помиловать" и т.п.). Я вот буквально каждый день вижу такие примеры, когда люди просто тупо превратно истолковывают смысл того, что хотел сказать собеседник. И даже не знаю, имеет ли к этому какое-нибудь отношение чёрно-белая логика и программирование. Зачастую это просто большие отличия в том контексте, в котором разные люди интерпретируют фразы естественного языка. Иногда даже возникает сомнение: а действительно ли многие люди говорят на одном со мной языке? Характерный пример - частые споры о смысле слов, даже до драки. Собственно, исторически это и подтолкнуло когда-то мой интерес к философии и основаниям математики. Надоели бессмысленные и беспощадные докапывания до совершенно невинных слов на некоторых форумах, которые я в своё время посещал. Это ещё и о сравнении с пьяным при общении в интернете. В реальной жизни ведь и всякие недоразумения решать проще, чем в воображаемом окружении. P.S. Смешной момент, возникший при чтении этого учебника - что эта логика понятна только тем, кто читает учебники и бесполезна всем остальным :)

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

[pipe.2032] Mon Oct 11 04:50:31 UTC 2021 @Andrew Lobanov -> vvs

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

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

[pipe.2032] Sun Oct 10 13:40:15 UTC 2021 @vit01 -> btimofeev

vit01>> Но в армию меня точно не возьмут, в этом уверен на 100%. btimofeev> Всякое бывает. У меня врождённый порок сердца, ничего особо серьезного, но с ним в армию не берут. Я подготовил все документы, врач в военкомате сказал что не пойду в армию. Потом собрали целый автобус ребят под списание и отвезли на военную комиссию в областной центр. А комиссия приняла всех без исключения годными, нас тут же переодели в военную форму и отправили в ближайшую военную часть. Блин, тебе реально не повезло. Но тут суть в том, что у меня отсрочка по учёбе, а это совсем другое дело, нежели просто пакет документов по болячкам. Тех, кто учится, насильно не забирают. Если "запахнет жареным", то всегда можно взять и сбежать, перед тем как начнётся облава. Приедут и спасут. В этом плане есть люди, на которых можно положиться. Пока у тебя не отобрали телефон, то всегда можно позвать кого надо на помощь. Исключения бывают только тогда, когда охота идёт не на "выполнение нормы", а на тебя лично, там уже совершенно другие методы работают. +++ Отправлено через IDEC Mobile +++ GNU/Linux, Android, physics, MLP:FIM

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

[pipe.2032] Sun Oct 10 04:48:50 UTC 2021 @btimofeev -> vit01

vit01> Но в армию меня точно не возьмут, в этом уверен на 100%. Всякое бывает. У меня врождённый порок сердца, ничего особо серьезного, но с ним в армию не берут. Я подготовил все документы, врач в военкомате сказал что не пойду в армию. Потом собрали целый автобус ребят под списание и отвезли на военную комиссию в областной центр. А комиссия приняла всех без исключения годными, нас тут же переодели в военную форму и отправили в ближайшую военную часть. После прохождения службы военкомат заплатил мне мизерную компенсацию (что-то около 60 тысяч рублей). Наверное можно было с ними посудиться конечно, но уже ничего не хотелось. Конечно это исключение из практики наверное. Вроде бы говорили что в тот год у нас был жёсткий недобор, поэтому забирали таким вот образом.

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

[pipe.2032] Sat Oct 9 16:13:03 UTC 2021 @vvs -> vit01

vit01> Вполне вероятно, ты редко пишешь первый, потому что у тебя достаточно друзей в реальном мире, а не в сети, с которыми приятно общаться. Возможно, есть жена/девушка и.т.д. vit01> Тогда у тебя просто нет потребности кому-то навязываться, лишний раз переводить внимание на сетевое общение. Долгое время мне было трудно понять, что молодёжь обычно воспринимает интернет, как реальную жизнь. Для многих людей моего круга - это скорее такая игра, этакая "Матрица". На самом деле у меня вовсе не так много друзей в реальном мире, но вполне хватает важных для меня интересов и целей. В общем, со скукой бороться обычно не приходится, скорее наоборот :) Так что люди вокруг иногда даже мешают.

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

[pipe.2032] Sat Oct 9 14:55:17 UTC 2021 @vit01 -> vvs

vvs> vit01> На момент создания этого поста эксперимент с молчанием продолжается неделю с лишним, и никто из русскоязычных друзей/знакомых мне не написал. Один англоязычный товарищ написал через 6 дней ожидания. Скорее всего, публикация этого поста несколько смажет конечный результат, но, тем не менее, я подсчитал приблизительное количество времени, на которое можно исчезнуть из интернета, чтобы этого никто не заметил. vvs> Тут пахнет чем-то нехорошим из теории игр. Если каждый начнёт проводить такой эксперимент, то всякое общение скорее всего прекратится. Да, это действительно плохая идея, но на что-то хорошее у меня пока не хватает мозгов. И та самая причина про "любое общение прекратится", к сожалению, не была разобрана мною в полной мере В целом мне сейчас трудно мыслить адекватно vvs> Я сам редко пишу первым, поскольку считаю, что это вряд ли может быть интересно кому-то другому. Но обычно отвечаю остальным, если тема меня волнует. Это показывает, что данный тип активности у всех разный и без учёта этого такая статистика не имеет большого смысла. Конечно, в личной переписке есть свои нюансы. Вполне вероятно, ты редко пишешь первый, потому что у тебя достаточно друзей в реальном мире, а не в сети, с которыми приятно общаться. Возможно, есть жена/девушка и.т.д. Тогда у тебя просто нет потребности кому-то навязываться, лишний раз переводить внимание на сетевое общение. +++ Отправлено через IDEC Mobile +++ GNU/Linux, Android, physics, MLP:FIM

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

[pipe.2032] Sat Oct 9 12:41:13 UTC 2021 @vvs -> vit01

vit01> На момент создания этого поста эксперимент с молчанием продолжается неделю с лишним, и никто из русскоязычных друзей/знакомых мне не написал. Один англоязычный товарищ написал через 6 дней ожидания. Скорее всего, публикация этого поста несколько смажет конечный результат, но, тем не менее, я подсчитал приблизительное количество времени, на которое можно исчезнуть из интернета, чтобы этого никто не заметил. Тут пахнет чем-то нехорошим из теории игр. Если каждый начнёт проводить такой эксперимент, то всякое общение скорее всего прекратится. Я сам редко пишу первым, поскольку считаю, что это вряд ли может быть интересно кому-то другому. Но обычно отвечаю остальным, если тема меня волнует. Это показывает, что данный тип активности у всех разный и без учёта этого такая статистика не имеет большого смысла. Конечно, в личной переписке есть свои нюансы. Так что бывает всякое, иногда даже и хамят в ответ - зависит от человека. В общем, риск - благородное дело, а кто не рискует - тот не пьёт шампанское :)

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

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

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

Re: Дюна

[pipe.2032] Wed Oct 6 16:55:04 UTC 2021 @Andrew Lobanov -> boscholeg

boscholeg> Удивительное дело. Слышу множество одобрительных отзывов об этом фильме. Неужто удалось снять фильм без ЛГБТ и БЛМ повестки? boscholeg> Было бы здорово. Если сильно захотеть, то найдёшь и то и другое. Даже в "Ну, погоди!" :) Мне в первую очередь понравилось достаточно бережное отношение к оригиналу. Ну и просто потрясающая картинка. Я не про качество, а про красоту происходящего на экране. boscholeg> Тоже хочу сходить с женой и дочкой. boscholeg> Стоит с собой брать девочку подростка? Ну если 12+ и если не сильно впичатлительная, то почему нет? Страшного ничего нет особо (кроме Шаи-Хулуда и Владимира Харконена). Но вот сцены убийства людей есть. Впрочем без подробностей и без особой жестокости. Если я правильно помню, конечно. Мог уже подзабыть. Вообще, Дюна достаточно сложное произведение для подростка :)

Re: Дюна

[pipe.2032] Wed Oct 6 13:06:52 UTC 2021 @boscholeg -> Andrew Lobanov

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

Re: 0 или 1

[std.hugeping] Mon Oct 4 22:27:32 UTC 2021 @vvs -> hugeping

hugeping> Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги. Самобичевание, конечно, делает честь :) Но не стоит преувеличивать свои грехи. hugeping> Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём. Я могу послать только в жизни :) Но прозой, как-то рука не поднимается. Можно считать это моей слабостью. Может это такая попытка создать идеального Аватара в виртуальной реальности, поскольку в жизни это не всегда получается :( Вот я не совсем согласен, что общение в интернете способствует распущенности - мне, наоборот, приятнее почувствовать себя лучше, чем я есть на самом деле :) > Но, в общем, прими мои извинения за ситуацию. Если тебя это волнует, то это лишнее. Я не вижу здесь твоей активной вины. А за косвенные последствия может нести ответственность только всезнающий Бог. P.S. В жизни мне себя сдерживать гораздо сложнее. Поэтому пожелаю всем нам побольше сдержанности :)

Re: 0 или 1

[std.hugeping] Mon Oct 4 21:41:23 UTC 2021 @hugeping -> vvs

vvs> Честно говоря, для меня эта тема была уже закрыта. Я высказал здесь своё мнение только чтобы до конца объяснить своё отношение и во избежание обвинений в предвзятости меня самого. А вот в предвзятой обстановке на форуме я такой возможности просто не вижу. Да, давай закроем. Я с твоим мнением согласен в той части, что касается хамства и перехода на личности. Но вмешиваться в процесс я не хочу. Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги. Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём. Но, в общем, прими мои извинения за ситуацию. Можешь писать здесь спокойно. Если дойдёт до конфликтов и тут, я решу проблему на своей площадке.

Re: 0 или 1

[std.hugeping] Mon Oct 4 19:53:19 UTC 2021 @vvs -> hugeping

hugeping> Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает. Честно говоря, для меня эта тема была уже закрыта. Я высказал здесь своё мнение только чтобы до конца объяснить своё отношение и во избежание обвинений в предвзятости меня самого. А вот в предвзятой обстановке на форуме я такой возможности просто не вижу. Да, и ещё могу добавить - недопустимо, когда корректное и объективное разбирательство подменяется оголтелыми, бессмысленными и огульными обвинениями по типу стенка на стенку, когда обвиняемого заранее объявляют виновным, при полном неравенстве положения обвиняемого и модератора. Совершенно недопустимо для модератора становиться на любую сторону и руководствоваться субъективным мнением (и личными отношениями с одной из сторон) - он должен руководствоваться только правилами, которых "нет" или взять самоотвод. Иначе это беззаконие и произвол. И это не я так решил - этого требуют стандартная практика и простая порядочность. Я уже не упоминаю о лицемерии, когда кто-нибудь из участников одновременно где-то претендует на философскую бесстрастность и терпимость к чужому мнению. Что таки не отменяет сведения всех претензий к тому, что есть люди полезные, а с бесполезными у нас разговор короткий. "Друзьям - всё, врагам - закон" (приписывается Франсиско Франко). Подозреваю, что не я один был жертвой такого беспредела. И действительно ли все пользователи уходили с форума только из-за отсутствия аудитории? Надо спросить у них самих. И это я вовсе не занимаюсь бесполезным шантажом, а лишь обращаю внимание, что когда кого-то гонят с форума, то справедливо делать это, по крайней мере, на основе объективного равного выбора. Однако, спорить тут с предвзятым мнением и круговой порукой - совершенно бесполезное занятие. P.S. И я так и не понял, что именно криминального в том, чтобы задать невинный вопрос в специально отведённом для этого разделе? Даже если кому-то этот вопрос и кажется глупым - это вовсе не повод для оскорблений, можно ведь и просто промолчать. И я нахожу нелепыми обвинения в нарушении каких-то "несуществующих" правил (о чтении документации). Плюс какие-то дикие претензии за то, что вопрос задан не с целью написания "полезного" кода, а из чистого любопытства. И вообще, вызывает оторопь неадекватность реакции администрации форума на этот "проступок". Но это дело совести. Лично у меня совесть чиста и вступать в ненужные пререкания я ни с кем не собираюсь. P.P.S. Заранее приношу извинения за этот поток мыслей. И давайте уже закроем эту тему совсем. Форумов всяких много, а свои нервы дороже. И вообще, призываю всегда общаться без ненужной агрессивности, тогда и проблем меньше будет для всех.

Re: 0 или 1

[std.hugeping] Mon Oct 4 16:43:40 UTC 2021 @Andrew Lobanov -> vvs

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

Re: 0 или 1

[std.hugeping] Mon Oct 4 12:38:34 UTC 2021 @vvs -> hugeping

hugeping> Общение по сети действует как алкоголь - ослабляя сдерживающие факторы. Стоит напомнить, что в правовом поле алкоголь является не оправданием, а усугубляющим фактором. hugeping> Так вот, мне кажется, есть люди, которые не напрягаются и совсем "отпускают" себя в сети. Я сейчас не оправдываю хамство, но описываю тот факт, что для большой части развязанное поведение стало "нормой". К сожалению. Все эти троллинги, мемчики -- работают в одну сторону. Народ становится более толстокожим, высказывается максимально резко, надеясь что это пробьёт оборону противника, судя всех людей по себе. Это стало нормой на немодерируемых форумах, которые ничем не лучше помойки. И это больнее всего бьёт там, где такого и не ждёшь. Обычно причиной, по которой я появляюсь на форумах - это не столько конкретный повод, сколько желание пообщаться с умными людьми. Люди приходят на "приличный" форум для общения по интересам среди равных, а нарываются на внезапные унижения и оскорбления. И хуже всего, когда это становится нормой для тех, кто обязан поддерживать порядок - модераторов. В этом случае на форуме уже полный произвол и беззаконие, да ещё когда повод для агрессии высосан из пальца. hugeping> Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает. Это не главное. Проблема не в самой агрессии, которая может быть спонтанной и человек потом об этом пожалеет. У меня самого скверный характер и я бываю иногда груб с хорошо знакомыми людьми, когда я уверен, что они меня простят. Проблема, когда человек начинает бравировать своей наглостью и открыто заявляет, что правила социального поведения для него не писаны. Однако основной фактор, из-за которого я прекращаю любые отношения с такими людьми - это корысть. Если уже _официально_ заявляется, что отношение к людям зависит только от приносимой ими "пользы", то любые дискуссии становятся бесполезными. То есть здесь не идёт речь ни о какой дружбе, а только об отношениях "ты мне - я тебе". Такие отношения уместны разве что на базаре, общаться же лично я предпочитаю с друзьями. hugeping> P.S. Можно ещё Столлмана вспомнить. :) А он хамит? Знаю, что Торвальдс этим известен. Но я не думаю, что все они набрасываются на людей, которые к ним даже не обращались. И не думаю, что они ценят в людях только свою выгоду. Иначе в моих глазах они сразу перестали бы существовать. В любом случае, я нередко читаю зарубежные форумы, где большинство - люди с хорошим образованием и репутацией. Там подобная манера общения является чем-то немыслимым. Я думаю, что было бы ещё неплохо иметь какие-то рейтинги, чтобы человек сразу мог оценить, куда ему заходить просто не стоит или такое посещение даже может угрожать его репутации в глазах окружающих. Почему-то вспомнил чёрные списки несостоятельных должников, которые циркулируют среди большинства банков.

Re: 0 или 1

[std.hugeping] Mon Oct 4 07:41:28 UTC 2021 @hugeping -> vvs

vvs> P.S. Совсем другое дело - проявление неуважения к собеседнику, чего я в людях не выношу. Моё определение подлости: обращение с людьми не по правилам, общим для всех порядочных людей, а по критерию личной пользы и положению в какой-то иерархии, да ещё и хамство и притворство. И это моя мораль, к которой у меня отношение исключительно чёрно-белое и это меня не тяготит. Тут ещё проблема в том, что общение по сети накладывает свои особенности. В жизни к тебе вряд-ли подойдёт человек и начнёт докапываться по какому-то поводу. Если только он не пьян. В другую сторону, правда, тоже действует. Общение по сети действует как алкоголь - ослабляя сдерживающие факторы. Так вот, мне кажется, есть люди, которые не напрягаются и совсем "отпускают" себя в сети. Я сейчас не оправдываю хамство, но описываю тот факт, что для большой части развязанное поведение стало "нормой". К сожалению. Все эти троллинги, мемчики -- работают в одну сторону. Народ становится более толстокожим, высказывается максимально резко, надеясь что это пробьёт оборону противника, судя всех людей по себе. Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает. P.S. Можно ещё Столлмана вспомнить. :)

Re:instead 0.5 с поддержкой tts

[std.club] Sat Oct 2 09:22:07 UTC 2021 @hugeping -> All

Выпустил Re:instead 0.5 с поддержкой голосового вывода и улучшениями в Android сборке. * поддержка голосового вывода на: Linux, Windows и Android. * !tts команда; * функции доступности в Android версии; * лучшая поддержка виртуальных клавиатур Android; * исправления ошибок. Этот релиз не состоялся бы без помощи Nikita Tseykovets. Спасибо! Как обычно, скачать версии для Windows/Linux и Android можно с github: https://github.com/instead-hub/reinstead Версия в F-Droid будет через несколько дней. #news

Дюна

[pipe.2032] Fri Sep 24 11:46:23 UTC 2021 @Andrew Lobanov -> All

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

Re: 0 или 1

[std.hugeping] Thu Sep 23 13:22:11 UTC 2021 @vvs -> hugeping

hugeping> Моя заметка в основном о том, что одно дело -- те вещи, которые мы создаём (и, поэтому, осознаём и подчиняем их логике), а другое дело -- мы сами и другие люди, восприятие мира. Жизнь не редуцируется. В лучшем случае -- она диалектична. Ха-ха. Тут я с тобой полностью согласен. И это явно основная причина, почему для меня важно моё увлечение математикой. Правда, в отличие от тебя, я никогда раньше не замечал "искусcтвенности" программирования - ведь для меня это всегда была только игра. К математике же я относился всегда серьёзно и для того, чтобы осознать, что она лишь человеческое изобретение мне понадобились горы литературы по философии. > Законы, которые работают в логике -- работают не везде. Попытка обосновать всю нашу жизнь логически, научно или как-то ещё уложить в непротиворечивую "теорию" неизбежно будут содержать сингулярности. В нас есть (как в творении Божьем) бесконечность внутри. Тот же пример рассуждения: я смертен значит меня не существует, при кажущемся парадоксе мне соверешенно (как идеалисту) понятен. Если наше существование не утверждено Богом -- нас просто не существует. Согласен и нет одновременно. Если смотреть с точки зрения одной вечности, то всё верно. Но если смотреть с личной точки зрения - то нет. А ты сам говоришь, что в нас тоже есть внутренняя бесконечность. А сколько их всего? Это, как мощность континуума, по сравнению с мощностью счётного множества. hugeping> Это "философская" часть заметки, которая присутствует в ней неявно. А явно -- просто бытовая проблема, когда твоя "логичность" доводит до нервных срывов и конфликтов, потому что доведённая до абсолюта -- она в жизни только мешает. Да, верно. Если присутствует какая-то незавершённость, то она меня будет постоянно беспокоить. В жизни много чего мешает, но и помогает тоже. hugeping> Но я ни с чем не спорю, просто пояснил другими словами свою мысль. А я не вижу ничего плохого в спорах, если они о разных точках зрения - это обогащает наш жизненный опыт. P.S. Совсем другое дело - проявление неуважения к собеседнику, чего я в людях не выношу. Моё определение подлости: обращение с людьми не по правилам, общим для всех порядочных людей, а по критерию личной пользы и положению в какой-то иерархии, да ещё и хамство и притворство. И это моя мораль, к которой у меня отношение исключительно чёрно-белое и это меня не тяготит. P.S. Edited: 2021-09-23 14:23:05

Re: 0 или 1

[std.hugeping] Thu Sep 23 12:41:42 UTC 2021 @hugeping -> vvs

vvs> Иными словами, я хочу сказать, что человек - активный преобразователь мира, а не просто сторонний наблюдатель. Моя заметка в основном о том, что одно дело -- те вещи, которые мы создаём (и, поэтому, осознаём и подчиняем их логике), а другое дело -- мы сами и другие люди, восприятие мира. Жизнь не редуцируется. В лучшем случае -- она диалектична. Законы, которые работают в логике -- работают не везде. Попытка обосновать всю нашу жизнь логически, научно или как-то ещё уложить в непротиворечивую "теорию" неизбежно будут содержать сингулярности. В нас есть (как в творении Божьем) бесконечность внутри. Тот же пример рассуждения: я смертен значит меня не существует, при кажущемся парадоксе мне соверешенно (как идеалисту) понятен. Если наше существование не утверждено Богом -- нас просто не существует. Это "философская" часть заметки, которая присутствует в ней неявно. А явно -- просто бытовая проблема, когда твоя "логичность" доводит до нервных срывов и конфликтов, потому что доведённая до абсолюта -- она в жизни только мешает. Но я ни с чем не спорю, просто пояснил другими словами свою мысль.

Re: 0 или 1

[std.hugeping] Thu Sep 23 12:21:32 UTC 2021 @vvs -> hugeping

hugeping> Программа -- мир, который создал программист и полностью его контролирует. Выполнение программы в глубине своей -- детерминированная шарманка. Возможно, именно отсутствие противоречий и привлекает программистов в профессию. Но жизнь -- нередуцируема и противоречива по своей сути. Попытка действовать в реальном мире так же, как ты привык работать в виртуальном, неизбежно приводит к конфликту. Попытка решения его в виде ответа 0 или 1 приводит к парадоксальным и опасным состояниям. В лучшем случае -- просто неадекватным. Я думаю, ты недооцениваешь всей сложности этой ситуации. Подумав, я прихожу к выводу, что я, персонально, не в состоянии примириться с "несовершенством" окружающего мира. Я просто не могу пожать плечами и пройти мимо. Если ситуация не укладывается в мою модель, то я должен или попробовать изменить ситуацию или объявить такую ситуацию не имеющей права на существование. А главное - я вовсе не считаю, что все возможные ситуации допустимы с чисто практической точки зрения. Какое отношение это может иметь к программированию? Ну, допустим, рядом с городом пробудился вулкан. Если бы у нас была такая возможность, то почему мы не должны его попробовать "заткнуть"? Тут надо, конечно, взвешивать все последствия. Но для этого и нужно образование, разве не так? Иными словами, я хочу сказать, что человек - активный преобразователь мира, а не просто сторонний наблюдатель. Так меня воспитали и ничего тут изменить нельзя, да я и не вижу такой необходимости. Кстати, библия утверждает, что мы созданы по образу и подобию Божию. Не в этом ли дело? :) P.S. Edited: 2021-09-23 13:24:12

Re: 0 или 1

[std.hugeping] Wed Sep 22 22:08:29 UTC 2021 @vvs -> hugeping

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

Re: 0 или 1

[std.hugeping] Tue Sep 21 19:23:54 UTC 2021 @vvs -> hugeping

hugeping> В повседневной жизни я встречал программистов-математиков и программистов-инженеров. Я скорее отношусь ко вторым. hugeping> "Он делает всё точно так, как я скажу! Даже, если я ошибаюсь!" Эта была основная мысль, которую я помню в процессе написания своей первой программы и она дала толчок всему остальному. Представь себе, но я до последнего времени никогда серьёзно не увлекался математикой. В детстве она мне нравилась, но я не понимал зачем нужны доказательства. Зато я считал, что математика - это формулы, которые надо запомнить и использовать при решении разных задач. Когда мне в школе попала в руки книжка по абстрактной алгебре, то мне было очень любопытно, но я совершенно ничего там не понял, хотя начинал её несколько раз. Когда классе в четвёртом моя учительница математики дала мне записочку и предложила пойти в математический кружок в доме пионеров, то я согласился очень неохотно. К моему удивлению на дверях кабинетов там не было номеров и побродив по коридорам какое-то время я отправился восвояси. На следующий день учительница посмотрела на меня, но ничего не сказала. Зато я обожал всякие шифры и электронные устройства. Когда в 8-м классе мне в руки попала книга К.Джермейн "Программирование в IBM/360", я был очарован и с тех пор никогда не отступал с этой стези... до недавнего времени. После сорока мне всё более казалось, что я живу неправильно и жизнь моя не имеет цели. В конце-концов мне удалось круто изменить свою жизнь и заняться не конъюнктурными программами и устройствами, а чем-то более вечным - языком, на котором написано всё, что имеет отношение к реальному миру. Я считал себя материалистом :) С тех пор многое в моей жизни радикально переменилось. Оглядываясь назад я диву даюсь, как изменились мои взгляды и приоритеты в жизни. Мне кажется, что за последние несколько лет я узнал больше важных и интересных вещей, чем за всю предыдущую жизнь. И я больше не считаю себя материалистом :) Но теперь я и играю гораздо реже. А головоломки - это и не совсем игра. hugeping> Никогда не умел нормально (да и не любил) играть в шахматы. Решать математические головоломки. Терпеть не мог квесты с вставками игрушек на логику. (Например, были такие в Машинариуме). Ты не поверишь, но я не умею и не люблю играть в шахматы, хотя и знаю правила. Зато любил играть в преферанс :) hugeping> Правда, очень любил стереометрию в школе, например. Решал большинство задач интуитивно и быстро. А ты обратил внимание на игру Euclid, которую я уже упоминал? Там надо решать геометрические головоломки. С моей точки зрения - это та же логика, просто другие символы. Все принципы те же и еще Д.Гильберт превратил геометрию в аксиоматическую теорию. За последние годы я узнал одну важную истину. Всякому овощу - своё время. Кто-то становится религиозным, а кто-то увлекается математикой. Может для тебя время математики ещё не наступило, а я ещё поверю в Бога каким-то своим, особенным путём :) P.S. Edited: 2021-09-21 20:24:51

Re: 0 или 1

[std.hugeping] Tue Sep 21 18:47:10 UTC 2021 @hugeping -> vvs

> Наличие только двух вариантов - это характерно для булевой логики и, в более скрытом виде, в классическом законе исключённого третьего. > Программист, который не любит математические головоломки - это любопытная экзотика. Возможно он просто не умеет их готовить? (изучаем ещё и кулинарию ;) В повседневной жизни я встречал программистов-математиков и программистов-инженеров. Я скорее отношусь ко вторым. "Он делает всё точно так, как я скажу! Даже, если я ошибаюсь!" Эта была основная мысль, которую я помню в процессе написания своей первой программы и она дала толчок всему остальному. Никогда не умел нормально (да и не любил) играть в шахматы. Решать математические головоломки. Терпеть не мог квесты с вставками игрушек на логику. (Например, были такие в Машинариуме). Правда, очень любил стереометрию в школе, например. Решал большинство задач интуитивно и быстро.

Re: 0 или 1

[std.hugeping] Tue Sep 21 16:21:11 UTC 2021 @vvs -> hugeping

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

Re: Блокировка INSTEAD в Google Play

[std.club] Tue Sep 21 14:49:49 UTC 2021 @hugeping -> hugeping

Приложение снова доступно :) Ура!

Re: RE:INSTEAD

[std.club] Tue Sep 21 14:49:11 UTC 2021 @hugeping -> hugeping

tts в re:instead Со второй попытки, всё-таки, поддержку tts решил оставить. (Пока, только для Android). Спасибо Никите за помощь! Поддержка неидеальна, конечно, но пользоваться можно. Будет в следующей версии (0.5).

0 или 1

[std.hugeping] Tue Sep 21 14:32:40 UTC 2021 @hugeping -> All

Когда долго программируешь, привыкаешь проверять все причинно-следственные связи от начала и до конца, разворачивать их. Отладка учит быть подозрительным. Не верь тому, что написано и вроде-бы "работало раньше". Ошибка могла не проявляться. Ошибка может скрывать проявление другой ошибки. Ошибка может быть следствием гонки. Несколько ошибок могут входить в суперпозицию и выглядеть как одна ошибка или наоборот. Чтобы действительно разобраться в проблеме, ты должен понять что именно происходит максимально педантично и досконально. Никаких домыслов! Никаких непроверенных предположений! Каждый раз ты должен учиться смотреть на код, как будто он написан только что. Не удивительно, что с годами это начинает отражаться и на психике. Один из таких "синдромов" я замечаю у себя и у некоторых знакомых программистов. Я назвал его синдром "0 или 1". Проявляется он в различных формах, но стоит за всем одно и то же. Если высказано какое-либо суждение, ты начинаешь его раскручивать и доводить до логического конца. Интерпретация событий всегда чёрно-белая. 0 или 1? Ведь нужен конкретный и простой факт в основе. То, что хорошо помогает искать ошибки может навредить в общении. Например? > - Смотри, я тут игру написал Color Lines. > - Неплохо. Только цвета шариков мне не нравятся. > - А мне, кажется, красиво. > - Нет, слишком яркие. (сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру. (сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил. Следствие синдрома. "Если что-то может случиться, то это обязательно случится." Перекликается с законами Мерфи, да? Не случайно, ой не случайно... :) > - Где мой паспорт? > - Зачем тебе? > - Я всегда беру паспорт, когда выхожу на улицу... И, кстати, где зонт? Усиление следствия. "Если что-то случится в будущем, то это уже случилось." > Мы смертны -> мы уже мертвы -> нас не существует и никогда не существовало. Ещё одно следствие -- если назревает конфликт, нет смысла тянуть, ведь "он уже случился". > - Не могу тебя видеть! > - Если мы враги, то давай расстанемся. Если нет, то зачем эта ссора? Наконец, невозможность делать простейшие вещи без детального понимания задачи. > - Отрежь кусочек скотча. > - Какой длины? > - Просто кусочек скотча. > - Для какой задачи нужен скотч? (попытка узнать точную длину отрезка под задачу) > - Блин, да ты издеваешься! // Все диалоги являются вымышленными, любое сходство -- случайно. Годами выработанная привычка сводить всё к "да" или "нет", "всё" или "ничего", 0 или 1 -- рано или поздно находит выход, нередко приводя к раздражению, непониманию, ссорам. Программа -- мир, который создал программист и полностью его контролирует. Выполнение программы в глубине своей -- детерминированная шарманка. Возможно, именно отсутствие противоречий и привлекает программистов в профессию. Но жизнь -- нередуцируема и противоречива по своей сути. Попытка действовать в реальном мире так же, как ты привык работать в виртуальном, неизбежно приводит к конфликту. Попытка решения его в виде ответа 0 или 1 приводит к парадоксальным и опасным состояниям. В лучшем случае -- просто неадекватным. Когда я слышу очередную "печальную" новость про программиста, я всегда с сожалением думаю, что не последнюю роль здесь сыграл синдром 0 или 1. Мне кажется, любой программист в качестве противоядия должен иметь "аналоговое" хобби. Велосипед, гитара, рыбалка... Что угодно, что позволяет не терять связь с реальным миром и напоминать себе, что не всё решается через 0 или 1. Берегите себя!

Re: RE:INSTEAD

[std.club] Sun Sep 19 12:29:01 UTC 2021 @hugeping -> hugeping

Выпустил RE:INSTEAD 0.4 Новое: * возможность сборки с одной из трёх библиотек рендеринга шрифтов (stb_truetype/libschrift/freetype); * статические сборки Linux/Windows теперь собираются с freetype; * исправление ошибок; * системные команды теперь начинаются с ! (например, !save); * команды !saves и !rm для просмотра и удаления сейвов. Готовы бинарные сборки для Linux/Windows (reinstead-0.4.zip) и .apk для Android. Обновление в F-Droid должно тоже скоро подоспеть. https://github.com/instead-hub/reinstead/releases

netsurf и iconv

[plan.9] Sun Sep 12 21:11:57 UTC 2021 @hugeping -> All

Те, кто пользуются 9front наверняка знают, что есть порт netsurf: https://github.com/netsurf-plan9/netsurf К сожалению, порт собран без iconv поддержки. Поэтому некоторые сайты (например, opennet) открываются с убитой кодировкой. Я взял iconv реализацию из openwrt и грязным образом прикрутил к netsurf. Положил в свой репозиторий: https://github.com/gl00my/plan9hacks P.S. Кроме этого, у меня там есть ещё какие-то патчи, которые что-то исправляют в плане русского и шрифтов.

RE:INSTEAD 0.3

[std.club] Sun Sep 12 15:11:47 UTC 2021 @hugeping -> All

Выпущен Re:instead 0.3. В новой версии: - Настройка conf.width: максимальное число символов в строке; - Обновлён Метапарсер; - Исправлены ошибки; - Улучшена Android версия. Также, Re:instead уже можно поставить из F-Droid! Правда, пока только прошлую версию (0.2). https://github.com/instead-hub/reinstead/releases/tag/0.3 #news

Блокировка INSTEAD в Google Play

[std.club] Sun Sep 5 18:04:07 UTC 2021 @hugeping -> All

Сегодня выпустил re:instead. Сделал также merge реквест в f-droid. Настроение выполненной работы держалось до самого вечера, когда пришли тревожные новости... # INSTEAD от btimofeev заблокирован в Google Play # Что они там нашли, не знаю... Вероятно, не нравится установка Lua кода из сторонних источников. Что же, закономерный оскал капитализма. На самом деле, неуместность INSTEAD на коммерческой площадке чувствовалась и раньше. И вот, сейчас мы получили логическую развязку. INSTEAD не место на площадке Apple. Не место на площадке Google. Не знаю, что будет дальше, но лично моё мнение, что лучше просто послать Google подальше и продолжать заниматься творчеством. Пока ещё есть возможность запускать открытый код на наших (пока?) компьютерах. Напомню, что скачать приложение вы можете из репозитория открытых проектов на F-Droid: https://f-droid.org/en/packages/org.emunix.insteadlauncher/ Я обновил ссылку на https://instead.hugeping.ru на приложение для Android. #news

RE:INSTEAD 0.2

[std.club] Sun Sep 5 10:33:05 UTC 2021 @hugeping -> All

Сегодня, тихо и незаметно, выпущено обновление re:instead 0.2! RE:INSTEAD это приложение проекта "ПАРСЕРНОЕ СОПРОТИВЛЕНИЕ" https://parser.hugeping.ru которое предлагает вашему вниманию сборник парсерных игр в минималистичном формате. Сборки подготовлены для: Windows, Linux и Android. Для других ОС (включая Plan9, MacOS X, BSD*) предлагается тривиальная самостоятельная сборка из исходных кодов. Изменений масса: - изменение размера шрифта клавишами ctrl-+/-/0; - поддержка автоскриптов через параметр -i ; - значительное ускорение работы; - исправления в играх; - поддержка сохранения настроек; - порт на Android; - исправление ошибок и прочие улучшения. Сборку для android пока можно скачать прямо в виде .apk файла. А потом, я надеюсь, приложение примут в F-Droid. Соответствующий merge request уже создан. Проект на github: https://github.com/instead-hub/reinstead Руководство для игроков: https://github.com/instead-hub/reinstead/releases/download/0.2/manual.pdf Бинарные сборки: https://github.com/instead-hub/reinstead/releases #news

МЕТАПАРСЕР 2.2.1

[std.club] Sat Sep 4 16:52:33 UTC 2021 @hugeping -> All

Обновлён метапарсер. - Исправлено формирование с/со в русской библиотеке; - Исправлены сохранения в metaparser.js. Обновлениы: metaparser, metaparser-js(до 2.2.2). Заменена сборка instead-cli(1.5). #news

Надвигается беда

[std.hugeping] Sat Sep 4 07:54:33 UTC 2021 @hugeping -> All

Случайностей в жизни не бывает. Думал ли я, посещая с семьёй воронежский цирк, что это приведёт меня к книге, в которой я прочитаю нужные мне строчки? А ведь так всё и произошло! > Он мигом распознает подростков, неспособных стать мужчинами, ноющих, как огромный больной зуб мудрости. Он чувствует, как вдруг начинает мельчать мужчина средних лет (вроде меня). Его августовский полдень давно прошел, а он все тараторит без пользы. ## Рей Бредбери. Надвигается беда В детстве и в институте я не очень любил Бредбери. Тогда я читал фантастику запоем, но другую -- понятную мне. А Бредбери вызывал скорее недоумение. О чём это всё? И только в зрелом возрасте я обнаружил, что он стал мне ближе и понятней. По восприятию, где-то рядом с Гофманом, которого я тоже начал открывать. Книга отличная. Читал и не мог остановиться. Близко было всё. И главные герои -- подростки. И религиозные мотивы в фундаменте. И переплетение реального и идеального. > - Папа.. а я хороший человек? > - Думаю, да. Точно знаю - да, - был ответ. > - Это... поможет, когда придется действительно туго? > - Обязательно. > - И спасет, когда придется спасаться? Ну, если вокруг, например, все плохие и на много миль - ни одного хорошего? Тогда как? > - И тогда пригодится. > - Хотя ведь пользы от этого не очень-то много, верно? > - Знаешь, это ведь не для тела, это все-таки больше для души. В начале, как мне показалось, я услышал в книге присутствие христианства, что сразу расположило к себе. > Мы разжигаем в своих помыслах страсть, зависть, похоть, окисляем их в наших душах, и все это срывается с наших глаз, с наших губ, с наших рук, как с антенн, работающих, уж не знаю, на длинных или на коротких волнах. Но хозяева балаганных уродов знают, они давно научились принимать эти сигналы и не преминут урвать здесь свое. Карнавал не спешит, он знает, что на любом перекрестке найдет желающих подкормить его пинтой похотливой страсти или квартой лютой ненависти. Вот чем жив Карнавал: ядом грехов, творимых нами по отношению друг к другу, ферментами наших ужасных помыслов! Аллюзия была настолько сильная, что ошибиться невозможно. > ... Одного только не говорят они людям, катающимся под их музыку... > - Чего? - не утерпел Джим. > - А того, что если ты в одном обличье стал несчастным грешником, то и в любом другом им останешься. Книга полна образов, которые, кажется, действуют на подсознательном, каком-то фундаментальном уровне человеческой архитектуры. Образ продавца громоотводами. Человек-в-Картинках. Подросток, стреляющий из лука в ведьму. А на сцене, где раненый Чарльз Хэллуэй ставит на плечо своего сына ружьё, заряженное восковой пулей я уже почти плакал... Вся книга наполнена поэтическими образами и лирикой октября. Но сюжет не такой прямолинейный, как мне показалось на первый взгляд, и мои ожидания не раз разбивались в дребезги. > - Эй, что вы там прижимаете? - М-р Дарк прищурился. А, Библия! Очаровательно! Как это по-детски наивно и свежо. > - Вы читали ее, мистер Дарк? > - Представьте, читал. Скажу даже больше. Каждую главу этой книги, каждый стих вы можете прочесть на мне, сэр... Но всё-таки, как мне кажется, назвать повесть христианской будет не вполне правдой. Ближе к концу события развиваются в таком ключе, что в какой-то момент я даже почувствовал недоумение. Так что же такое карнавал? И кто такой Дарк? Почему борьба с ним возможна именно тем способом, который обнаружил Чарьльз Хэллуэй? > - Ну что? Удивлены? Могу даже почитать вам. - Дым от сигареты м-ра Дарка завихрялся над шелестящими страницами. > - А вы, конечно, ожидали, что я рассыплюсь прямо перед вами? К вашему несчастью, это все - легенды. Жизнь, это очаровательное скопище самых разных понятий, продолжается, как видите. Она движет сама себя и сама себя оберегает, а смысл ей придает неистовость. А я - не последний в легионе необузданных. Можно ли верить Дарку, отцу лжи? Но и Чарльз Хэллуэй, порой, сообщает нам со страниц книги нечто не всегда понятное. К концу книги эти вопросы, на мой взгляд, не разрешаются и в полной мере не преодолеваются. Это, в свою очередь, оставляет колкое послевкусие вопроса. Так о чём же повесть? О жизни, детстве, взрослении, о человеческих страстях. Но действует ли в этом мире Бог? Доверившись книге, я чувствовал что болтаюсь между двумя состояниями: ощущением присутствия Бога и ужасом богооставленности. В повести, не смотря на всю её "сказочность", присутствует парадоксальность реального мира. В ней нет прямого рецепта, хотя сначала кажется, что есть. И это переплетение фантастики и реализма делает повесть пронзительно острой. > "У Зла есть только одна сила, та, которой наделяем его мы. От меня ты ничего не получишь. Наоборот, я заберу у тебя все. И тогда тебе останется только погибнуть". И вот мы уже почти добрались до конца. Счастливого конца? > - Да, сынок. Теперь уж всю жизнь придется быть начеку. Все только начинается. Они неторопливо обогнули карусель. > - А как же мы их узнаем? - допытывался Вилли. - На кого они будут похожи? > - Может быть, они уже здесь, - тихо ответил отец. > Оба друга быстро огляделись. Но поблизости была только карусель да они сами. Тогда Вилли поднес руки к лицу и внимательно осмотрел их, перевел взгляд на Джима и снова на отца. > Чарльз Хэллуэй кивнул. Только один раз. После того, как закончил читать, поискал в интернете и нашёл, что книга изначально была сценарием к фильму, который превратился в повесть. В 1983 году был снят фильм "Именно так зло и приходит", для которого Бредбери снова написал сценарий. Я попытался смотреть фильм и был разочарован. От магии мало что осталось. Я просмотрел ключевые моменты, диалоги и концовку, надеясь узнать что-то новое... Но быстро понял, что в фильме всё упрощено. Рецепт подан прямым текстом. Счастливые люди не нужны карнавалу. Любовь побеждает зло. Слабые места (страсти) персонажей нарисованы без тени загадки. Нет, возможно это всё есть и в повести, и это хорошо и правильно! Только в книге это настоящее, которое врывается со страниц прямо в наш реальный мир. А в фильме... похоже на пластмассу... P.S. Кстати, такое же разочарование было у меня от просмотра фильма "1984", который на фоне книги показался блеклым и невыразительным.

Что происходило, когда, казалось бы, ничего не происходило

[pipe.2032] Thu Sep 2 13:04:25 UTC 2021 @vit01 -> All

Рассказываю, чем занимался под конец августа, даю парочку полезных советов ## В целом На работе большая часть моих коллег находилась в отпусках, поэтому было скучновато. Но я всё равно приходил на работу и работал. Была возможность тоже пойти в отпуск, но не захотел, потому что ввиду моей нестабильной психики (и ограниченной возможности получать какое-либо удовольствие альтернативными способами, вне работы) уход в отпуск и занятие безделием означает погружение в новый виток депрессии. На момент публикации данного поста все мои коллеги вернулись из отпусков, и стало жить чуточку легче, т.к. снова ощущается хоть какая-то связь с обществом. Как обычно, был на даче. Реже, чем в предыдущие года, но всё же дачу вынужден был посещать с целью сбора урожая ягод и не только. Фотал растущие там цветы (не знаю, зачем). Наверное, что-то в этом есть (скорее всего, просто проявление скуки, но кто знает), поэтому оставим данное воспоминание на всякий случай в блоге, мало ли: 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

INSTEAD 3.4.0 вышел!

[std.club] Tue Aug 31 15:07:33 UTC 2021 @hugeping -> All

На исходе последнего дня лета вышел INSTEAD 3.4.0! Версия с поддержкой hi-dpi экранов и возможностью создавать игры с адаптивными темами. Список изменений: - исправление в pxl:fill_triangle (сортировка вершин); - исправлена сборка с новым SDL_image; - корректная работа с масштабированием в Windows (dpi awarness); - поддержка высоких dpi (если включена опция HQ); - новый параметр -dpi; - новая функция instead.screen_dpi(); - новый параметр theme scr.gfx.scale; - новый параметр theme scr.dpi; - новый параметр theme scr.scale_aware (1|2) - поддержка адаптивных тем; - возможность запуска игры через командную строку по пути к main?.lua файлу; - более качественное масштабирование картинки сцены; - обновлён SDL для windows сборки; - улучшение: используется GetModuleName для нахождения полного пути к .exe (Windows); - новая функция pxl:tosprite (конвертация pxl в sprite с масштабированием); - ускорение pxl:fill; - экспериментальная поддержка сборки с gtk4.0 (пока отключено). Бинарные сборки будут появляться по мере готовности. #news

metaparser-js 2.2.1

[std.club] Wed Aug 25 15:29:13 UTC 2021 @hugeping -> All

Обновлёна js версия метапарсера до версии 2.2.1. Изменения: - исправлена работа старой js версии, которая активизируется если браузер не поддерживает wasm; - исправлена доступность для незрячих (спасибо Даниилу Гусеву за помощь в отладке). #news

copyleft 2021 difrex at lessmore dot pw; source code