RSS
# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — Andrew Lobanov
2021-12-08 13:46:55


AL> Книга далека от идеала, но лучше на русском языке ничего нет. То есть книги Столярова это такая отправная точка для тех, кто только делает первые шаги в CS. Где-то с перегибами, где-то с недосказанностью, где-то с ошибками. Но свою задачу, мне кажется, она выполняет - даёт представление о компьютере и программировании в достаточном для дальнейшего самостоятельного обучения объёме.

Ну, не знаю. Моей первой книгой была "Программирование на IBM/360" К.Джермейн. По-моему, она была тогда получше для восьмиклассника. По крайней мере, она меня увлекла на всю жизнь :) Такие книги издавали ещё и в 90-х, например П.Нортон и Р.Журден, но там был, в основном, справочный материал, который больше нигде нельзя было тогда найти. Да и когда то было, сейчас какой год на дворе? Я думал мы уже выросли из подобной литературы.

На русском всегда был дефицит всего, но есть же переводы. Ну и зачем в школе английский учат?

AL> Сам же Столяров личность специфическая и фанатическая, что достаточно опасно в его случае, так как он помимо этого учебника ещё и учит живых студентов.

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

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

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

Я-то так и понял. Но знает ли об этом сам Столяров? :) И как воспринимает его аудитория? Здесь, в основном, негативные отзывы. Но ведь кому-то там даже что-то нравится :)

В общем, плач Ярославны :(

# Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-12-08 04:33:01


vvs> Интервью не смотрел. Столярова не знаю. Отражённые на его сайте взгляды умеренными явно не являются :) Оглавление его книг меня не впечатлило: лично я своё время предпочитаю тратить на более полноценное теоретическое изложение, а документацию предпочитаю читать не в вольном пересказе.

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

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

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

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

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

# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — hugeping
2021-12-08 00:02:07


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

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

И да, к защите от копирования это никакого отношения не имеет. Копировать файлы, как можно заметить, никто и ничто не мешает.
Странные у него взгляды, однако :)
P.S. Edited: 2021-12-08 00:02:31

# Re: gemini:// как дополнение idec
idec.talks
ake(ping,30) — Andrew Lobanov
2021-11-29 17:23:34


AL> А насколько этот сервер будет сложнее gemini?

Я не зря упомянул "HTTP-сервера, аналогичного по функциям gemini-серверу", т.е. для паритета по функциям протокола достаточно будет обработки начальной строки запроса/ответа и аж целых двух заголовков - Host и Content-Type. Завернуть в TLS по вкусу и гонять внутри хоть text/x-gemini, хоть gophermap'ы.

AL> А это новая сеть?

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

AL> Или просто ещё один протокол в той же сети, коих и так каждый день плодится море?

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

# Парсерное сопротивление: новые версии (МП 2.4)
std.club
hugeping(ping,1) — hugeping
2021-11-27 14:24:38


Встречайте большое обновление ПАРСЕРНОГО СОПРОТИВЛЕНИЯ!

Вышли новые версии проектов: МЕТАПАРСЕР, Re:instead и metaparser-js.

https://parser.hugeping.ru
https://instead.hugeping.ru/page/metaparser/

# МЕТАПАРСЕР 2.4

Парсерный движок для создания игр с текстовым вводом. Для использования требуется INSTEAD или Re:instead.

https://instead.hugeping.ru/page/metaparser/

Изменения:

* комната gameover теперь имеет атрибут 'gameover';
* функция getDaemons() -- получить список фоновых процессов;
* комната gameover останавливает все фоновые процессы;
* атрибут 'concealed' удаляется, когда предмет перемещается в инвентарь;
* новый метод obj.is_once() для проверки факта срабатывания obj.once();
* обновление документации;
* исправлены/улучшены некоторые сообщения.

# Re:instead 0.7

Минималистичный парсерный движок для Unix, Windows, Plan-9 и Android. В комплект включён набор игр.

* значительное улучшение кернинга при работе с freetype и libschrift;
* параметры -noautoload/-noautosave;
* новый метапарсер 2.4;
* исправления в игре "Краски октября";
* поддержка клавиши del;
* исправление при изменении размера шрифта;
* исправление смены иконки приложения в Windows;
* возможность делать синонимы команд (conf.cmd_aliases);
* Windows: перенаправлять stdout/stderr в errors.txt только если stdout не доступен;
* команды !script и !debug;
* !stop команда в autoscript.

# metaparser-js 2.4

Реализация парсера на js.

* обновление метапарсера до 2.4;
* команды !ls, !rm, !restart;
* возможность загружать и выгружать сохранения;
* возможность выгружать транскрипт (пока только в пределах одной игровой сессии);
* локализация на английский (язык выбирается по основному языку браузера).

# Re: gemini:// как дополнение idec
idec.talks
Andrew Lobanov(tavern,1) — ake
2021-11-18 04:25:54


AL>> Веб с его протоколами и серверами уже слабо пренадлежит сообществу.
ake> А когда он принадлежал сообществу? Напоминает чепуху про "интернет создан DoD, значит им управляется" - интернет (и веб в том числе) это не нечто консистентное, даже сейчас. ИМХО сейчас возможность держать собственный сервер более доступна. Разработка HTTP-сервера, аналогичного по функциям gemini-серверу не потребует большего числа ресурсов, при этом он будет совместим с прорвой клиентов, от современных до IE/NN. Вполне есть всякие сообщества внутри, которые культивируют независимый web, вроде indieweb, или авторский, вроде neocities.

А насколько этот сервер будет сложнее gemini?

AL>> Причём то, что ты в вебе, по сути ничего не изменит.
ake> Почему, не будут плодиться дополнительные сущности. Новая сеть это, в некотором роде, как поиск ключей под фонарём из анекдота.

А это новая сеть? Или просто ещё один протокол в той же сети, коих и так каждый день плодится море?

AL>> Причём в gemini есть гейты и их можно читать и из того же хромиума. Причём gemini очень простой и потому пренадлежит сообществу. Тебе не нужна большая команда классных специалистов, несколько лет и несколько миллионов вечнозелёных (думаю, всё дороже), чтобы построить полностью свою реализацию.
ake> Потому что эти время и деньги уже были потрачены на проектирование спецификаций и разработку библиотек для URL/URI и TLS, на опыт HTTP и Gopher. Можно почитать, кстати, в рассылке, как оригинальная идея использования TOFU (trust on first use), в качестве политики сертификатов, наткнулась на реальность и про другие подводные камни "простоты".

Так надо искать и находить, а не идти на поводу.

ake> Ну и silo-узлы всегда будут, ибо так банально оптимальней с точки зрения масштабирования и ресурсов, и снижает технический ценз (предвижу недовольный технарский снобизм) для неофитов. Даже в том же gemini они присутствуют в виде различных pubnix'ов.
ake> Ну и чтобы не казалось, я не могу сказать, что отрицательно отношусь к gemini, просто хочу критически посмотреть на всё это.

Да нормально общаемся :)

# Re: gemini:// как дополнение idec
idec.talks
hugeping(ping,1) — ake
2021-11-17 08:59:28


ake> Ну и чтобы не казалось, я не могу сказать, что отрицательно отношусь к gemini, просто хочу критически посмотреть на всё это.

Хотел было привести свои аргументы, но передумал. :) Меня всё устраивает. Это как с велосипедными дорожками. Меня устраивает текущая ситуация, когда их нет или они построены не там и неправильно.

Так что gemini меня полностью устраивает и технически и просто как место, которое привлекает специфический контингент. Главное, чтобы не стали "расширять" дальше, как это часто бывает. Но вроде бы пока к этому нет тенденции.

Критиковать можно, но я не вижу никакого позитивного выхлопа от этой критики. :)

# Re: gemini:// как дополнение idec
idec.talks
ake(ping,30) — Andrew Lobanov
2021-11-17 08:12:06


AL> Веб с его протоколами и серверами уже слабо пренадлежит сообществу.

А когда он принадлежал сообществу? Напоминает чепуху про "интернет создан DoD, значит им управляется" - интернет (и веб в том числе) это не нечто консистентное, даже сейчас. ИМХО сейчас возможность держать собственный сервер более доступна. Разработка HTTP-сервера, аналогичного по функциям gemini-серверу не потребует большего числа ресурсов, при этом он будет совместим с прорвой клиентов, от современных до IE/NN. Вполне есть всякие сообщества внутри, которые культивируют независимый web, вроде indieweb, или авторский, вроде neocities.

AL> Причём то, что ты в вебе, по сути ничего не изменит.

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

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

Потому что эти время и деньги уже были потрачены на проектирование спецификаций и разработку библиотек для URL/URI и TLS, на опыт HTTP и Gopher. Можно почитать, кстати, в рассылке, как оригинальная идея использования TOFU (trust on first use), в качестве политики сертификатов, наткнулась на реальность и про другие подводные камни "простоты".

Ну и silo-узлы всегда будут, ибо так банально оптимальней с точки зрения масштабирования и ресурсов, и снижает технический ценз (предвижу недовольный технарский снобизм) для неофитов. Даже в том же gemini они присутствуют в виде различных pubnix'ов.

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

# Re: gemini:// как дополнение idec
idec.talks
Andrew Lobanov(tavern,1) — ake
2021-11-17 05:43:18


ake> Аналогично, в WWW уже есть всё, что есть в gemini, а остальным можно не пользоваться, например, ограничив себя использованием lynx или NetSurf. Зачем gemini?

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

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

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

Около того. Секта (idec, точнее) туда же. Это просто весело делать и использовать. Хотя проще взять какой-нибудь telegram или даже бота для почтовой рассылки. Просто idec простой и реализуется за вечер в минимально достаточном для общения виде на практически любом стеке технологий.

# Re: gemini:// как дополнение idec
idec.talks
hugeping(ping,1) — ake
2021-11-16 21:32:25


ake> Аналогично, в WWW уже есть всё, что есть в gemini, а остальным можно не пользоваться, например, ограничив себя использованием lynx или NetSurf. Зачем gemini?

Мне лично gemeni нравится таким, каким он есть. Регулярно смотрю. Интересный для меня контент там есть. Часто просто вбиваю в поисковик какое-нибудь слово и читаю блоги. Успокаиваюсь. Я рад, что таких людей -- не я один. На фоне остальных "альтернатив" -- gemini оказался прямо в тему.

Я кстати и netsurf и eww и прочим таким тоже пользуюсь, но gemini -- это всё-таки другое.

# Re: gemini:// как дополнение idec
idec.talks
ake(ping,30) — Ordos
2021-11-16 16:37:24


Ordos> Эдак ты сразу половину всея Интернета описал. Не сегодняшнего, скорее того старого доброго n-дцать лет наз. Насчет гейтов спорный вопрос, а по остальному претензий нет - вся ценность-то как раз в авторской информации (персональные сайты/блоги), либо редкие файлы.

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

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

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

Ordos> Проще говоря, можно напихать в тот же gemini всякого и запилить какие-нибудь соц. сети, например, но чем она тогда будет отличаться от остального инета?

Аналогично, в WWW уже есть всё, что есть в gemini, а остальным можно не пользоваться, например, ограничив себя использованием lynx или NetSurf. Зачем gemini?

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

# Re: gemini:// как дополнение idec
idec.talks
Ordos(tgi,1) — ake
2021-11-16 13:58:56


ake> фактическим наполнением оказываются гейты к обычным сайтам, файловые архивы разной степени полезности и персональные сайты/блоги

Эдак ты сразу половину всея Интернета описал. Не сегодняшнего, скорее того старого доброго n-дцать лет наз. Насчет гейтов спорный вопрос, а по остальному претензий нет - вся ценность-то как раз в авторской информации (персональные сайты/блоги), либо редкие файлы.

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

Проще говоря, можно напихать в тот же gemini всякого и запилить какие-нибудь соц. сети, например, но чем она тогда будет отличаться от остального инета?

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

P.S. Пардон. Что-то меня понесло.

# Re: gemini:// как дополнение idec
idec.talks
ake(ping,30) — Ordos
2021-11-16 11:42:55


> Потыкал я этот gemini, потыкал... Мысль-то хорошая, но интересных тамошних сайтов полторы штуки. Привлекает только простота и некий "возврат к изначальному" что ли.

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

# Re: gemini:// как дополнение idec
idec.talks
Andrew Lobanov(tavern,1) — Ordos
2021-11-16 11:31:29


Ordos> Потыкал я этот gemini, потыкал... Мысль-то хорошая, но интересных тамошних сайтов полторы штуки. Привлекает только простота и некий "возврат к изначальному" что ли.

Тут как с сектой. Чтобы было что почитать, нужно начать писать :)

# Re: gemini:// как дополнение idec
idec.talks
Ordos(tgi,1) — Andrew Lobanov
2021-11-16 06:59:28


AL> Вроде как Lagrange под виндой нормально себя чувствует. Пробовал?
Вышел из по положения по-другому. На винду ничего не стал ставить - она для игр в основном и прочих окно-зависимых вещей. Под линух - собрал lagrange, да. Хороший клиент, все красиво и удобно. Правда бывает графические артефакты иногда пролетают, но не критично. Под andriod - Ariane.

Потыкал я этот gemini, потыкал... Мысль-то хорошая, но интересных тамошних сайтов полторы штуки. Привлекает только простота и некий "возврат к изначальному" что ли.

# Re: Анонс станции
idec.talks
Andrew Lobanov(tavern,1) — ake
2021-11-15 18:17:38


ake> Новые станции это хорошо, добавил у себя для фетча. Странновато, что фетчер отрапортовал о 7 новых сообщениях, видимо, что-то из глубины времён.
ake> Небольшой оффтопик: что случилось и куда пропал idec.spline-online.tk?

Я в очередной раз провафлил домен. idec.spline-online.ml.

# Re: Анонс станции
idec.talks
ake(ping,30) — Esenin Pavel
2021-11-15 17:57:49


Новые станции это хорошо, добавил у себя для фетча. Странновато, что фетчер отрапортовал о 7 новых сообщениях, видимо, что-то из глубины времён.

Небольшой оффтопик: что случилось и куда пропал idec.spline-online.tk?

# Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — nvkv
2021-11-15 06:01:05


nvkv> Ну, то есть, для меня вообще А. В. Столяров не говорит ни о чем.

Буквально на прошлой неделе я объяснял одному человеку почему трёхтомник Столярова про введение в профессию "программист" это плохой учебник. И тут бац! Столярова в секточке обсуждают :)

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

Решил глянуть и, в целом, интервью не очень да. Но я на канале "АйТи Борода" приличных интервью особо и не видел. Правда и целью не задавался.

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

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

Короче говоря, на фон под работу интервью мне зашло. Особенно первая часть. Я люблю читать и слушать истории о том, как люди становились программистами в 80-90, в условиях информационного голода и проблем с литературой.

# Re: Си должен умереть?
std.hugeping
nvkv(ping,35) — hugeping
2021-11-13 13:33:04


hugeping> Всё, надо смотреть. Убедил. :) А harelang не смотрел?

Руки не дошли пока, не знаю про него ничего, кроме того, что его Девальт пилит

# Re: Си должен умереть?
std.hugeping
vvs(ping,12) — nvkv
2021-11-13 11:08:01


nvkv> В общем, на мой взгляд Zig это лучшее, что случалось с этим классом языков (C/C++/Rust) за много-много лет.

Интересно. В общем это то же, что и мне показалось, но своему мнению я в этом вопросе не доверяю, поскольку я ни разу не практик.

Пётр, ты явно непоследователен. Сначала ищешь C лучше, чем C, а потом говоришь, что он тебе скучен :)

P.S. А-аа! Вижу ты изменил своё мнение :)
P.S. Edited: 2021-11-13 11:08:33

# Re: Си должен умереть?
std.hugeping
hugeping(ping,1) — nvkv
2021-11-13 11:07:23


nvkv> В общем, на мой взгляд Zig это лучшее, что случалось с этим классом языков (C/C++/Rust) за много-много лет.

Всё, надо смотреть. Убедил. :) А harelang не смотрел?

# Re: Си должен умереть?
std.hugeping
nvkv(ping,35) — vvs
2021-11-13 10:57:02


Так, про Зиг. Я его не то чтобы сильно использовал, но использовал.
Это совершенно замечательный язык, который чувак конструировал именно как "C without a wart".

Киллер-фич зига три, на мой взгляд

1. Тотальный контроль работы с памятью, намного более гранулярный, чем в C (аллокатор из коробки не один, их много, они разные, можно делать свои и передавать их другим программам)
2. Минимум имплицитного поведения, то есть всё максимально явно описывается в языке
3. Compile Time metaprogramming, то есть компилятор во время компиляции может исполнять код, при этом само понятие "тип" это просто объект языка, с которым можно поступать так же как с числами, или структурами. Просто гляньте как в Zig сделаны дженерики https://ziglang.org/documentation/master/#Generic-Data-Structures

В общем, на мой взгляд Zig это лучшее, что случалось с этим классом языков (C/C++/Rust) за много-много лет.

# Re: Бегство от тишины
std.hugeping
nvkv(ping,35) — hugeping
2021-11-13 10:51:18


Ну и вдогонку, меня подкупило, что он кандидат философии, но от кандидата философии я ожидаю чуть большей глубины мысли, чем услышал от него, к сожалению.

# Re: Бегство от тишины
std.hugeping
nvkv(ping,35) — hugeping
2021-11-13 10:48:15


hugeping> Я посмотрел только те темы, что вызывают отклик. В основном про js и современный веб. Ну, мне было забавно и увлекательно. Не потому, что это мои мысли. Не потому, что я согласен. Не потому, что я получил какую-то новую информацию. А потому, что интересно слушать их диалог. Я не знаю. Я когда-то читал блог автора ion3. Он так критиковал линукс страшно. Я вообще не согласен был с его позицией, но интересно было следить за его увлечённостью. Тут что-то похожее.

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

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

Что касается его накатов на апдейты и джаваскрипт, я с ним не согласен и думаю, что моя позиция более подтверждена фактами, чем его. Грубо говоря, его нелюбовь к JS сводится к тому, что ему на компьютер приезжает программа и что-то делает. При этом он без проблем скачивает с интернета PDF/GS/PS файлы, которые, сюрприз, тоже программы. Он без проблем пользуется латехом, модули которого, на секундочку, тьюринг-полны и едут из сети. Он даже, о ужас, открывает OpenOffice документы, которые, угадайте что.

Выглядит это как попытка докопаться до столба. Вот JS в браузере плохо, PostScript это другое. Да нет, дорогой, не другое, это тоже самое.

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

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

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

Покритиковал, похвалю: книжки, кажется и правда неплохие!
P.S. Edited: 2021-11-13 10:49:44

# Re: Си должен умереть?
std.hugeping
vvs(ping,12) — vvs
2021-11-13 09:46:09


vvs> Есть элементы современных языков, но я не вижу принципиального какого-то отличия.

vvs> Впрочем, я плохой теоретик. Познакомиться поближе хотел, но пока на это не хвататет времени.

Потому и интересно мнение именно практика. Возможности кросс-компиляции и прямая совместимость с существующим кодом на C - это выглядит круто. Может это и есть его "киллер-фича"? Теоретически он действительно интереса для меня не представляет.

С другой стороны, какие новаторские идеи можно _сейчас_ найти в C?

# Re: Си должен умереть?
std.hugeping
vvs(ping,12) — hugeping
2021-11-13 09:38:41


Ха-ха. Вот я обалдел, когда увидел что я там написал :)

# Re: Си должен умереть?
std.hugeping
hugeping(ping,1) — vvs
2021-11-13 07:08:34


Ох, я кажется по ошибке нажал редактировать вместо ответа, прошу прощения @vvs!

# Re: Си должен умереть?
std.hugeping
vvs(ping,12) — hugeping
2021-11-12 21:29:54


> У тебя не первый раз проходит эта тема и я уже один раз ответил. Мне неудобно опять навязывать свои интересы, но если тебя это так волнует, то может всё же поделишься своим мнением о https://ziglang.org?

Вот как раз @nvkv этот язык использовал. Можно его попросить рассказать. :)

А я только читал про него, не не использовал. В целом, я воспринял его как "современный вариант Си". Но без каких-то характерных и принципиальных "киллер-фич". В Rust, как бы я к нему не относился, такая киллер фича есть. А в ziglang смотрю: defer, слайсы, типы опциональные и т.д. Есть элементы современных языков, но я не вижу принципиального какого-то отличия.

Впрочем, я плохой теоретик. Познакомиться поближе хотел, но пока на это не хвататет времени.

Кстати, есть ещё новый язык от Drew DeVault: https://harelang.org
Его вообще не смотрел.

# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — hugeping
2021-11-12 21:08:39


hugeping> Я когда-то читал блог автора ion3. Он так критиковал линукс страшно. Я вообще не согласен был с его позицией, но интересно было следить за его увлечённостью. Тут что-то похожее.

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

# Re: Бегство от тишины
std.hugeping
hugeping(ping,1) — nvkv
2021-11-12 18:46:23


nvkv> Ну, то есть, для меня вообще А. В. Столяров не говорит ни о чем.

А я тоже не знаю кто это. :) Собственно, смотрел я не применительно к личности. Просто разговор с технарём.

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

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

# Re: Бегство от тишины
std.hugeping
nvkv(ping,35) — hugeping
2021-11-12 04:45:32


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

Ну, то есть, для меня вообще А. В. Столяров не говорит ни о чем.

И вот я слушаю (не закончил еще), но желание бросить это дело уже есть. Чисто по типажу, но из уважения к его кандидатству в области философии, пожалуй, дослушаю. Но пока интервью выглядит прям плохо.
P.S. Edited: 2021-11-12 04:49:16

# Re: Бегство от тишины
std.hugeping
silverwing(ping,26) — vvs
2021-11-09 19:13:30


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

Задумывался об этом. В идеале -- получать ленту по тегам или ключевым словам. Все что есть сейчас генерирует тонны мусора.

vvs> Терпеть не могу видео. То, что в книге или статье можно увидеть за минуту, в видео может занять час.

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

# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — Andrew Lobanov
2021-11-09 19:10:48


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

# Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-11-09 18:49:58


vvs> У меня даже есть RSS лента, куда я засунул разных людей и проекты, за которыми непрерывно слежу. Зачем? Это синдром упущенной выгоды. Да, но не только. Ещё это информационный голод - я жажду новостей. Постоянно.
vvs> И вот тут я сообразил, что я выбрал плохой способ его утолить. Интернет набит мусором. Если я хочу что-то действительно ценное, то надо искать это в авторитетных источниках. Почему я не роюсь каждый день в библиотеке, вместо интернета? Неудобно. Если бы было возможно засунуть книги в RSS и даром получать оттуда все новости, то я бы так и сделал. В данный момент, усилия по извлечению информации - намного меньше при использовании интернета и это вызывает зависимость. Тот же эффект, что и при неумеренном употреблении сладостей - вредно, но много даровой энергии для мозга.

Я старательно пытаюсь отвлечься на книги вместо сайтов и чатов. Однако, постоянно срываюсь. Хотя, если бы я выкинул чаты и не смотрел ютуб, я бы наверняка развивался гораздо быстрее :)

+++ Caesium/0.4 RC1

# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — silverwing
2021-11-09 18:33:06


silverwing> Как ни странно, я практически не пользуюсь лентами. Как я узнаю новости? По запросу: "Что там с вот этим?"

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

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

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

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

Верно. Но это не отменяет тот факт, что книги - это более авторитетный источник, чем статья в блоге или, не дай Бог, чей-то твит.

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

silverwing> Что решает? А вот как раз библиотека и решает. Ведь кто-то эту библиотеку собирает, выбирает какие книги попадут в нее, а какие нет. Если в интернете появятся такого рода библиотеки, в которые попадает только проверенная информация, это и будет своего рода решением.

Скорее это утопия. Возьмём, например, https://flibusta.is/b/624340 Пример того, как не надо изучать математику. Увы, но СИ есть СИ. Впрочем я и не рекомендую именно эту библиотеку. Хотя анализ ошибок - это тоже полезная вещь. Например так написана книга Д.Кнута "Сюрреальные числа" (https://flibusta.is/b/617681 ) и даже в художественном стиле :) Ну да он и профессионал высокого класса.

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

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

Ну почему? Если бы в RSS я каждый день видел краткие аннотации ещё не прочитанных мною интересных книг, то это было бы уже здорово. Но это тоже утопия по ряду причин :(
P.S. Edited: 2021-11-09 18:38:33

# Re: Бегство от тишины
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-11-09 17:42:32


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

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

Пожалуй, пора пореже открывать чатики и почаще писать письма в idec. Ведь формат письма не удерживает внимание в течение всего дня и в то же время позволяет лучше сосредоточиться, отвлечься на проверку фактов, размышления, оценку. Короче говоря, почти автоматически поднимает качество общения :)

# Re: Бегство от тишины
std.hugeping
silverwing(ping,26) — vvs
2021-11-09 17:23:19


vvs> Это именно то, о чём я задумался вчера. В очередной раз. И задал себе вопрос: откуда у меня эта зависимость от интернета? У меня даже есть RSS лента, куда я засунул разных людей и проекты, за которыми непрерывно слежу. Зачем? Это синдром упущенной выгоды. Да, но не только. Ещё это информационный голод - я жажду новостей. Постоянно.

Как ни странно, я практически не пользуюсь лентами. Как я узнаю новости? По запросу: "Что там с вот этим?" Самая страшная сейчас для меня зависимость подобного рода -- ютуб. Хотя и он перестает меня насыщать, но нет-нет, да и всплывет интересное видео, открывающее новые грани какой-то темы. Наверное в этом основная проблема лент -- они иногда подкидывают что-то действительно интересное. Это как казино -- шанс выигрыша 0.01%, но он есть и это заставлять скроллить вниз. Тем более что в случае с лентой, в отличие от казино, затраты минимальны.

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

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

# Си должен умереть?
std.hugeping
hugeping(ping,1) — All
2021-11-09 17:14:26


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

https://www.yodaiken.com/2018/12/31/undefined-behavior-and-the-purpose-of-c/

http://cmustdie.com/

Скажу сразу, читается интересно. С некоторыми вещами сталкивался на практике. Правда, в статьях я не увидел "выхлопа", какого-нибудь позитивного вывода. Проблемы озвучены, но что предлагается в качестве решения?

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

Как программист на Си, я понимаю, что по современным меркам этот язык нарушает все мыслимые правила приличия. Но при этом я действительно НЕ ВИЖУ адекватной замены в той сфере где он применяется. Это как с самолётами. Неустойчивый самолёт -- маневренный и опасный. Устойчивый -- безопасный и неманевренный. Что выбрать? Что-то среднее? Чем мы готовы пожертвовать?

Представим себе, что нам нужно написать ядро ОС. Какой язык выбрать? C, C++... Rust?

Мои знания о Rust ограничены чтением книги, поэтому я недостаточно подкован для того, чтобы адекватно оценить его кандидатуру как замену Си. Субъективно, мне кажется, что Rust не сможет стать таким же массовым языком. В нём нет простоты Си. Его синтаксис многословен, а в некоторых задачах он выкручивает программисту руки. Я надеюсь, что идеи заложенные в Rust найдут реализацию в каком-то другом ЯП. Но это моё личное, субъективное мнение. Конечно, если индустрия перейдёт на Rust, я буду его использовать в любом случае. А пока, можно посмотреть на пример реализации драйвера на Си и Rust: https://lwn.net/Articles/863459/ который меня совсем не впечатляет.

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

Но не так давно я открыл для себя Си заново. Помогло мне в этом осознание:

> Код на Си прекрасен, когда он прост!

Но что значит простой код? Программисты всегда пытаются писать просто. Или нет? И можно ли писать современное ПО просто?

Посмотрите. Это реализация cat в Plan9: https://github.com/0intro/plan9/blob/master/sys/src/cmd/cat.c

А это, для сравнения, cat из coreutils: https://github.com/coreutils/coreutils/blob/master/src/cat.c

Я отдаю себе отчёт в том, что современное ПО так не пишется. Поддержка локалей и gettext. Учёт особенностей системных вызовов на разных ОС. Поддержка множества параметров. И вот, объём и сложность кода растут как снежный ком. А если вспомнить про полную поддержку Unicode (со всеми этими проклятыми эмодзи и сменой направления вывода), то становится совсем уж плохо. Мы так привыкли к универсальности "правильного" подхода, что когда ты видишь "наивный" код Plan9, то испытываешь шок. Что, так можно было?

Но если по чесноку, разве cat не должен быть именно таким, каким он остался в Plan9? :) Думаю, каждый программист чувствует здесь какую-то правду.

Си -- это портативный ассемблер. В этом его основная миссия, сила и слабость. И сегодня, когда разрыв между низким и высоким уровнем многократно увеличился, я не могу не признать, что он мало пригоден для написания сложного прикладного ПО. Но что с системным?

Системное ПО тоже стало сложнее. Как системный программист, я начинал с ядра Linux 2.2. Читать и понимать код современного ядра стало намного сложнее.

В качестве примера, посмотрите реализацию системного вызова open в ядре 2.2.
https://elixir.bootlin.com/linux/2.2.26/source/fs/open.c#L757
asmlinkage int sys_open(const char * filename, int flags, int mode)
{
	char * tmp;
	int fd, error;

	tmp = getname(filename);
	fd = PTR_ERR(tmp);
	if (!IS_ERR(tmp)) {
		lock_kernel();
		fd = get_unused_fd();
		if (fd >= 0) {
			struct file * f = filp_open(tmp, flags, mode);
			error = PTR_ERR(f);
			if (IS_ERR(f))
				goto out_error;
			fd_install(fd, f);
		}
out:
		unlock_kernel();
		putname(tmp);
	}
	return fd;

out_error:
	put_unused_fd(fd);
	fd = error;
	goto out;
}
Довольно наглядно и просто, не правда ли?

А теперь начните своё путешествие по ядру 5.10.

https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1200

Вам придётся пройтись по цепочке: do_sys_open -> do_sys_openat2

https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1193
https://elixir.bootlin.com/linux/v5.10.78/source/fs/open.c#L1164

SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode)
{
	if (force_o_largefile())
		flags |= O_LARGEFILE;
	return do_sys_open(AT_FDCWD, filename, flags, mode);
}

long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
{
	struct open_how how = build_open_how(flags, mode);
	return do_sys_openat2(dfd, filename, &how);
}

static long do_sys_openat2(int dfd, const char __user *filename,
			   struct open_how *how)
{
	struct open_flags op;
	int fd = build_open_flags(how, &op);
	struct filename *tmp;

	if (fd)
		return fd;

	tmp = getname(filename);
	if (IS_ERR(tmp))
		return PTR_ERR(tmp);

	fd = get_unused_fd_flags(how->flags);
	if (fd >= 0) {
		struct file *f = do_filp_open(dfd, tmp, &op);
		if (IS_ERR(f)) {
			put_unused_fd(fd);
			fd = PTR_ERR(f);
		} else {
			fsnotify_open(f);
			fd_install(fd, f);
		}
	}
	putname(tmp);
	return fd;
}

Необходимость изменений очевидна. Появилась подсистема fsnotify. Добавили новые системные вызовы -- пришлось нарезать функции и сводить open к openat...

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

Да, работая на индустрию не удастся вернуться в прошлое. Однако, Plan9 научил меня тому, что во многих случаях у меня, как у программиста, всё-таки есть свобода избежать сложного кода, в том числе ценой выбора более подходящей архитектуры. Например, написав небольшое ядро приложения на Си и функциональную часть на Lua. Если я вижу, что код на Си становится сложным, это повод остановиться. Стоп! Что-то не так!

Что касается судьбы Си... Я тоже хотел бы увидеть современного приемника, но в Rust я не смог его узнать. Возможно, это моя ошибка. Поживём -- увидим.

Интересно, сколько лет ещё продержится старичок Си? А то ведь и 70-летие не за горами. :)

P.S. Ещё одна "эмоциональная" статья на тему C и C++: Почему я всё ещё люблю C, но при этом терпеть не могу C++?

https://habr.com/ru/company/ruvds/blog/562530/

# Re: Бегство от тишины
std.hugeping
vvs(ping,12) — silverwing
2021-11-09 16:15:30


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

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

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

# Re: Бегство от тишины
std.hugeping
hugeping(ping,1) — silverwing
2021-11-09 15:33:43


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

Точно. Об этом я и писал. Правда, немного многословно.

silverwing> А самое страшное, что если хочется чтобы тебя заметили, приходится самому кричать еще громче...

В точку.

# Re: Бегство от тишины
std.hugeping
silverwing(ping,26) — hugeping
2021-11-09 14:40:06


Корень проблемы не в сервисе. Замена условного телеграма условным федиграмом исправит ситуацию с технологической стороны, но не исправит самой сути. Ждать день, до вечера, час, десять минут становится слишком долго. Все вокруг хотят получать все и сразу, и требуют мгновенной реакции. Почта неудобна, да. Она заставляет собирать хаос мыслей в кучу, формировать единственное осмысленное сообщение. Потому что иначе решение вопроса затянется на часы, а то и дни и недели уточнений(никто не гарантирует мгновенный ответ - собеседник может вернуться к почте и через час, а то и вовсе только следующим утром). А в чате можно написать "Привет", дождаться ответа и только потом задать вопрос(при этом не описав половину важных деталей, потому что все равно собеседник будет вынужден переспросить) -- иллюзия мгновенности, ведь человек тут, слушает и отвечает сразу же. Только вот вопрос, который мог бы отнять у одного человека 15 минут на сбор информации, а у второго минуту на решение, отнимает по полчаса у обоих.

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

Решение? Нет решения. Точнее есть -- навязывать свои условия, тем кому можешь навязать. А с остальными не общаться.

# Притча о неверном, но мудром управляющем
std.hugeping
hugeping(ping,1) — All
2021-11-09 10:57:46


В Евангелии от Луки есть притча, которую я я никогда не понимал.

Лк16:1-9

> Сказал же и к ученикам Своим: один человек был богат и имел управителя, на которого донесено было ему, что расточает имение его;
> и, призвав его, сказал ему: что это я слышу о тебе? дай отчет в управлении твоем, ибо ты не можешь более управлять.
> Тогда управитель сказал сам в себе: что мне делать? господин мой отнимает у меня управление домом; копать не могу, просить стыжусь;
> знаю, что сделать, чтобы приняли меня в домы свои, когда отставлен буду от управления домом.
> И, призвав должников господина своего, каждого порознь, сказал первому: сколько ты должен господину моему?
> Он сказал: сто мер масла. И сказал ему: возьми твою расписку и садись скорее, напиши: пятьдесят.
> Потом другому сказал: а ты сколько должен? Он отвечал: сто мер пшеницы. И сказал ему: возьми твою расписку и напиши: восемьдесят.
> И похвалил господин управителя неверного, что догадливо поступил; ибо сыны века сего догадливее сынов света в своем роде.
> И Я говорю вам: приобретайте себе друзей богатством неправедным, чтобы они, когда обнищаете, приняли вас в вечные обители.

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

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

Пропустив своё наблюдение через "рассудочный" аппарат, я понял, что даже не могу сформулировать "объяснение" словами. Получалось что-то неуклюжее вроде: "Да, я осознаю свою повреждённость. Я часто поступаю недостойно замыслу Бога. Тогда я хотя бы попытаюсь не требовать 'своего' с других людей. Попробую поступать по милости, а не по формальной справедливости. Даже если со мной поступили несправедливо. Разве я часто не поступаю хуже? Я хотя бы могу не затаить обиду, не 'встать в позу'. Не сказать ещё одно язвительное слово... Это малость, но я чувствую в этом правду. Как я смею уповать на милость Бога, если даже такой малости не делаю?".

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

# Бегство от тишины
std.hugeping
hugeping(ping,1) — All
2021-11-09 08:35:36


Смотрю интервью с Андреем Столяровым: https://www.youtube.com/watch?v=o111yYPqLHU

Увлекательно слушается.

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

Например, возьмём телеграм. Плохо, что это проприетарное решение. Плохо, что оно привязано к телефону и так далее. Но реальный ущерб, который я ощущаю на себе, носит скорее психологический характер. Это зависимость. Зависимость от получения потока информации в режиме 24/7 (зачастую, бесполезной и низкокачественной), от поиска социального одобрения, от эндорфинов полученных в битвах "кто-то не прав"...

Допустим, мы сделали федеративный Telegram и (невероятно!) он стал популярным. Пусть он будет работать на телефоне со свободной прошивкой. Что-то изменится в плане воздействия на психику? Безусловно, централизованный сервис -- хуже. Особенно, если говорить о соцсетях, где выдача определяется алгоритмом таким образом, чтобы повысить время удержания. Но кроме силы формируемой зависимости, будет ли какая-то принципиальная разница? Не думаю.

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

К сожалению, мы уже подсели на иглу мусорного общения, и нужно прикладывать очень много сил, чтобы плыть против течения. Конечно, если вы всё ещё чувствуете, что "что-то не так".

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

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

К сожалению, рабочий день начинается, и я беру телефон с непрочитанными сообщениями. Сколько их...

Я снова бегу от тишины...

# Re: Анонс станции
idec.talks
Andrew Lobanov(tavern,1) — Esenin Pavel
2021-11-08 13:20:53


EP> Вообще странно как я этот баг проглядел - ни один клиент не ругается на такое - просто молча игнорируют.

Рома Яковлев заложил идеи, что всё должно работать в самых неадекватных условиях. Мои фетчеры просто игнорируют корявые данные и продолжают работать. Надо будет в новой библиотеке сделать возможность или лог писать или ещё чего. Чтобы ловить такие моменты.

# Re: Анонс станции
idec.talks
Esenin Pavel(tgi,1) — hugeping
2021-11-08 07:21:11


> Скорее всего, присутствуют пустые строки в выдаче.
Абсолютно верно. Действительно в выдаче были пустые строки. Битых сообщений нет, это неправильная обработка списка перед выводом (у меня все генерируется на лету). Поправил, больше не должно такого быть. В любом случае буду посмотреть.

Вообще странно как я этот баг проглядел - ни один клиент не ругается на такое - просто молча игнорируют.

# Re: Анонс станции
idec.talks
hugeping(ping,1) — Andrew Lobanov
2021-11-08 05:58:47


AL> Хорошо, что я свой фетчер писал, ориентируясь на то, что аплинк может выдавать произвольный мусор :)

Мой тоже в итоге работает (пропуская эти строчки), но я старался делать его строгим, чтобы потенциальные проблемы ловить.

# Re: Анонс станции
idec.talks
Andrew Lobanov(tavern,1) — hugeping
2021-11-08 04:24:54


hugeping>> Попробовал сделать fetch с https://idec.textgamesinfo.ru/
hugeping>> Не получилось, часть сообщений как буд-то битые... Что именно, пока не разбирался.
hugeping> Скорее всего, присутствуют пустые строки в выдаче. Например:
hugeping> https://idec.textgamesinfo.ru/u/m//EzHkw1q46MIQgxvT6p5G/eQbQUoX5AMe2Lmz4zncF
hugeping> В выдаче встречаются пустые строки, на которые мой фетчер ругается.

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

# Re: Анонс станции
idec.talks
hugeping(ping,1) — hugeping
2021-11-07 21:16:52


hugeping> Попробовал сделать fetch с https://idec.textgamesinfo.ru/
hugeping> Не получилось, часть сообщений как буд-то битые... Что именно, пока не разбирался.

Скорее всего, присутствуют пустые строки в выдаче. Например:

https://idec.textgamesinfo.ru/u/m//EzHkw1q46MIQgxvT6p5G/eQbQUoX5AMe2Lmz4zncF

В выдаче встречаются пустые строки, на которые мой фетчер ругается.

# Re: Анонс станции
idec.talks
hugeping(ping,1) — Esenin Pavel
2021-11-07 20:56:09


Попробовал сделать fetch с https://idec.textgamesinfo.ru/
Не получилось, часть сообщений как буд-то битые... Что именно, пока не разбирался.

# Re: Анонс станции
idec.talks
Andrew Lobanov(tavern,1) — Esenin Pavel
2021-11-07 18:28:39


EP> P. S. Пользуясь случаем, выражаю благодарность Andrew Lobanov за разъяснения непонятных из документации вещей и помощи в тестировании.

Да не за что. Обращайся :)

# Re: gemini:// как дополнение idec
idec.talks
Andrew Lobanov(tavern,1) — Esenin Pavel
2021-11-07 18:28:39


EP> А можно поподробнее про кучу серверов и клиентов? На досуге ознакомился с этим делом. Пробовал найти хоть один нормальный клиент под, прости Господи, винду 10. Дак нет же. Всё в каком-то полусыром виде - то собирать с бубном надо, то ошибки сыпятся, то вообще не работает. Нет ли чего-то готового, чтоб просто запустил и работает?

Вроде как Lagrange под виндой нормально себя чувствует. Пробовал?

# Анонс станции
idec.talks
Esenin Pavel(tgi,1) — All
2021-11-07 12:29:03


Продолжаю славную традицию "каждому пользователю сети по станции". На днях увидела свет станция tgi (https://idec.textgamesinfo.ru/). Станция была создана исключительно из научного интереса и в целях более глубокого изучения idec. Так что глобальных планов на данный момент нет. Для начала предполагается держать несколько новостных конференций, касательно работы самой станции и всего с этим связанного, а так же небольшой блог для складывания в него умных и не очень мыслей.

На данный момент проверена работа станции с несколькими клиентами. В том числе и отправка сообщений. Веб интерфейс отсутствует как класс - руки ещё не дошли. Более подробно о ходе работ отписываю в tgi.station.

Буду рад замечаниям, предложениям и конструктивной критике.

P. S. Пользуясь случаем, выражаю благодарность Andrew Lobanov за разъяснения непонятных из документации вещей и помощи в тестировании.

# Re: gemini:// как дополнение idec
idec.talks
Esenin Pavel(tgi,1) — hugeping
2021-11-06 06:32:04


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

# Re: drawterm на 9front
plan.9
hugeping(ping,1) — hugeping
2021-11-07 12:14:06


Патч на drawterm, который включает fullscreen на X11
diff --git a/gui-x11/x11.c b/gui-x11/x11.c
index 74412f9..9dda3a5 100644
--- a/gui-x11/x11.c
+++ b/gui-x11/x11.c
@@ -190,6 +190,13 @@ flushmemscreen(Rectangle r)
 	XFlush(xdisplay);
 }
 
+void fullscreen(Display* dpy, Window win)
+{
+	Atom atoms[2] = { XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False), None };
+	XChangeProperty(dpy, win, XInternAtom(dpy, "_NET_WM_STATE", False),
+		XA_ATOM, 32, PropModeReplace, atoms, 1);
+}
+
 void
 screeninit(void)
 {
@@ -370,7 +377,8 @@ screeninit(void)
 			1); /* int nelements */
 		XFlush(xkmcon);
 	}
-	
+	fullscreen(xdisplay, xdrawable);
+
 	/*
 	 * put the window on the screen
 	 */

# drawterm на 9front
plan.9
hugeping(ping,1) — All
2021-11-05 09:14:03


Настроил себе drawterm на малинку с 9front.
Причём, сделал это не так, как положено, а просто с помощью запуска скрипта из lib/profile. :)
Потому что я использую малинку и как terminal. Так что мне важно, чтобы она оставалась графической.

Вот скрипт:
#!/bin/rc
#auth/factotum -n -- uncomment this if you want new instance
echo 'key proto=p9sk1 dom=rpi4 user=glenda !password=pass' > /mnt/factotum/ctl
aux/listen1 -t tcp!*!17019 /rc/bin/service/tcp17019 &

Запускаю его из lib/profile ветки terminal.
drawterm вариант от 9front.

# Re: Тарковский о деньгах и искусстве
std.hugeping.micro
vvs(ping,12) — hugeping
2021-11-04 20:53:01


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

Конгениально :) Недавно читал отзыв первого режиссера фильма "Контакт", где он вспоминает, что его первоначальной идеей было наличие у ГГ сына с какими-то проблемами, так что хотя она искала контакт с инопланетянами, но не могла найти контакт со своим сыном. Идея никому не понравилась и в фильм не вошла. Режиссера тоже поменяли.

Вкусы у всех разные. Кому-то больше нравится психология. Мне вот - философия.

# Re: Тарковский о деньгах и искусстве
std.hugeping.micro
hugeping(ping,1) — vvs
2021-11-04 19:47:18


vvs> "Солярис" я не принял, поскольку он слишком отличается от книги. Кажется и Лему он тоже не понравился.

Я не могу сказать, что я ценитель и знаток творчества Тарковского (его фильмы я начал понимать и принимать уже в зрелом возрасте), но в дневниках я нашёл много мыслей, которые совпали с моими собственными на 100%. А с Солярисом, что интересно, у меня инверсно. Вариант Лема меня не зацепил. Так что Тарковский сделал другое самостоятельное произведение, где роман Лема просто антураж.

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

# Re: Тарковский о деньгах и искусстве
std.hugeping.micro
vvs(ping,12) — hugeping
2021-11-04 17:24:38


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

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

Кстати, по поводу отношения Тарковского к деньгам. Насколько я понял, он остался в эмиграции в основном потому, что в СССР отказались финансировать его фильмы. Но можно, конечно, считать это и диалектическим единством противоположностей :)

# Тарковский о деньгах и искусстве
std.hugeping.micro
hugeping(ping,1) — All
2021-11-04 15:29:08


> Если убрать из человеческих занятий все относящиеся к извлечению прибыли, останется лишь искусство.

http://www.tarkovsky.net.ru/stalker/word/tarkov_last_interview.php

> Смотрел чудовищно омерзительный фильм «Possesions». Американская смесь фильма ужасов, дьявольщины, насилия, детектива и всего, чего угодно. Отвратительно. Деньги, деньги, деньги, деньги... Ничего настоящего, истинного. Ни красоты, ни правды, ни искренности, ничего. Лишь бы заработать... На это невозможно смотреть... Можно все, позволительно все, если за это «все» платят деньги.

https://www.litmir.me/br/?b=247480&p=99#section_112

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

> ...Если мы хотим, чтобы картины посмотрели большое количество народу, мы никогда не сможем сделать так, чтобы эти картины были высокого поэтического мастерства...

https://www.radioblago.ru/vremyakultury/intervyu-s-andreem-tarkovskim

# МЕТАПАРСЕР 2.3
std.club
hugeping(ping,1) — All
2021-10-23 09:06:59


Вышло большое обновление для всех проектов, связанных с метапарсером.

# МЕТАПАРСЕР 2.3

* исправление TakeAll (для частей объекта);
* экспериментальный режим mp.strict_mode;
* mp.inp_delim;
* исправление в mp:match;
* исправление в mp:post_action во время abort_cmd (snapshots);
* исправления в стандартной библиотеке.

# RE:INSTEAD 0.6

* перевод Urzi на английский (спасибо, canwolf!);
* новая игра "Краски октября:;
* Android: совместимость с настройкой rotate lock;
* исправление ошибок.

// Версия для F-Droid в пути!

# Сайт парсерного сопротивления https://parser.hugeping.ru

* обновлён МП;
* добавлены новые игры: Краски октября и перевод Urzi.

# instead-cli 1.6

* обновлён до новой версии МП.

# metaparser-js 2.3

* обновлён до новой версии МП.

#news

# Re: Аскетика в отладке
std.hugeping
vvs(ping,12) — hugeping
2021-10-19 13:56:56


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

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

# Re: Аскетика в отладке
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-19 12:00:18


vvs> А вообще интересный вопрос: существует ли экспериментальная математика? Да, существует. И здесь находится что-то общее с физикой. Этим и Стивен Вольфрам увлёкся. Думает, что так откроет законы, управляющие вселенной. Занимается ли он отладкой вселенского компьютера, находясь внутри него? Интересная аналогия, да?

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

+++ Caesium/0.4 RC1

# Re: Аскетика в отладке
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-19 12:00:17


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

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

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

+++ Caesium/0.4 RC1

# Re: Аскетика в отладке
std.hugeping
vvs(ping,12) — hugeping
2021-10-18 17:29:23


Ну надо же, как тесен мир. Я тоже пользовался SoftIce, а до него Periscope, ещё когда использовал DOS. И тоже был обескуражен, что в Линуксе нет ничего похожего. Правда сейчас и софтайса давно уже нет.

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

А вообще интересный вопрос: существует ли экспериментальная математика? Да, существует. И здесь находится что-то общее с физикой. Этим и Стивен Вольфрам увлёкся. Думает, что так откроет законы, управляющие вселенной. Занимается ли он отладкой вселенского компьютера, находясь внутри него? Интересная аналогия, да?

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — vvs
2021-10-18 17:15:39


vvs> А почему ты решил, что тебя сейчас читают меньше, чем "Компьютерру"? По крайней мере сюда ещё кто-то пишет, в отличие от неё :)

О, с такой стороны я ещё не заходил. :) Надо потом будет ещё pdf делать из лучших статей :)

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
vvs(ping,12) — hugeping
2021-10-18 17:13:15


А почему ты решил, что тебя сейчас читают меньше, чем "Компьютерру"? По крайней мере сюда ещё кто-то пишет, в отличие от неё :)

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — vvs
2021-10-18 16:31:50


А я всё хотел написать статью в "КОМПЬЮТЕРРУ". Всё хотел, хотел.. пока она не закрылась. :)
Теперь вот "тренируюсь" на играх и статьях здесь. Правда, непонятно кому и зачем это нужно. Хотя, как терапия, нужно мне самому. :)

# Аскетика в отладке
std.hugeping
hugeping(ping,1) — All
2021-10-18 16:29:58


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

Когда-то, разрабатывая драйверы ещё в Windows, я пользовался SoftIce. Это был такой легендарный отладчик уровня ядра. Когда я перешёл на Linux, отладчиков такого уровня я не нашёл. Это был удар. Я не мог понять как вообще можно отлаживать код без отладчика? Но шло время и постепенно я стал замечать, что основное затруднение вызывают баги такого рода, когда отладчик никак не поможет... Обычно это проблемы синхронизации, гонок, или фундаментальные проблемы (когда архитектурные решения основывались на ложных предпосылках). И вот для такого рода ошибок, как оказалось, отладчик бесполезен. Нужно только проводить эксперименты и думать, пытаться сложить все наблюдения в одну картину.

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

Учась в институте, когда мы-студенты уже считали себя крутыми программистами, сталкиваясь с необъяснимыми ситуациями, мы часто ссылались на "ошибки компилятора". Как же хочется и сегодня иногда свалить всё на "ошибку компилятора".

- Такого не может быть!
- Это проблема в тесте!
- Может быть, виноваты битые провода?

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

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

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

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

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

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
vvs(ping,12) — hugeping
2021-10-17 21:19:56


Круто, да? Оказывается, я ещё в детстве мечтал о собственной типографии, но уже давно об этом позабыл. Тогда это казалось невозможным. А вчера вдруг почему-то вспомнил и сообразил, что теперь c помощью компьютера та детская мечта уже исполнилась :)

# КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — All
2021-10-17 18:28:15


В 2015 году я, тогда ещё на МЕТАПАРСЕР2, написал игру "КРАСКИ СЕНТЯБРЯ". А так как для проекта Re:instead есть пока только 10 игр, я решил её портировать на новый метапарсер. Думал сейчас быстренько перенесу и будет 11 игр... Ага. Сейчас.

Нет, технически проблем не было. Проблемы начались тогда, когда я начал читать свой текст.

Он -- ужасен. Нет, он правда УЖАСЕН! Из этого я сделал интересный вывод. Я меняюсь. Практически каждое предложение заставляло меня морщиться и ужасаться. Загадки, конечно, тоже спорные. Поэтому их я частично переделал. Ну и графика была такого низкого качества, что пришлось нарисовать новые картинки... В итоге, получилась вроде бы не новая игра, но и уже не совсем старая. И я решил ей дать другое название. Оригинал из 2015-го назывался "КРАСКИ СЕНТЯБРЯ". Не долго думая, заменил название на "КРАСКИ ОКТЯБРЯ".

Но, возвращаясь к тексту. Похоже, мне лучше не смотреть свои старые проекты. Иначе придётся переписывать всё. Я раньше думал, что такое у меня только с кодом...

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

Так что, после тестирования, буду выпускать новый Re:instead с этой игрой.

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2021-10-14 13:25:21


Если кого-нибудь интересует практическая информация по языкам программирования, то проще начинать с википедии. Конкретно по Оберону там упоминается пару порталов на русском:

https://oberon.org/ru
https://oberoncore.ru/library/start

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

Lisp и Smalltalk - это отдельная песня. По ним я даже прочитал учебную литературу. Начинал с GNU Smalltalk, потом сразу перешёл на Squeak. Его пытался использовать на практике, в качестве рабочей системы. Пробовал разобраться с его виртуальной машиной, но меня отпугнула жутко запутанная система её построения. Еще у Squeak очень специфичная система управления версиями, в которой ведётся разработка. Поддержка Git там появилась только недавно и тоже довольно непривычная. Насколько я понял, Squeak больше ориентирован именно на конечного пользователя, чем Pharo. В своё время я постепенно переходил с Windows 98 на RedHat Linux несколько лет, когда использовал их параллельно и это был непростой опыт. На Smalltalk же перейти так и не удалось - не хватило мотивации и дальше отдельных экспериментов дело не пошло. Сейчас же я сижу на NixOS и там пока нет поддержки Squeek 5.x.

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

P.S. Кстати, Lean использует Emacs или VSCode в качестве интерфейса пользователя. В отличие от многих других языков, здесь это не просто удобство, а совершенно необходимая часть взаимодействия с языком.
P.S. Edited: 2021-10-14 14:43:45

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-14 05:45:53


Большое спасибо за отличную статью. Даже если я не начну использовать acme для почты, полезного и интересного почерпнул из неё не мало.

Вообще люблю твои статьи. Их и читать приятно и интересно, и зачастую полезно.

+++ Caesium/0.4 RC1

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
Andrew Lobanov(tavern,1) — vvs
2021-10-14 05:29:39


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
Andrew Lobanov(tavern,1) — vvs
2021-10-14 05:29:38


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

Я как материалист искал какую-либо базу или выкладки по теме, но так и не нашёл. Даже спрашивал, но везде встречалось только "это так, потому что это так" и ничего существенного. А это для меня сродни единорогам :)

# Re: Редактор acme: пишем почтовый клиент
std.hugeping
vvs(ping,12) — hugeping
2021-10-13 18:30:21


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
hugeping(ping,1) — hugeping
2021-10-13 17:48:36


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

# Редактор acme: пишем почтовый клиент
std.hugeping
hugeping(ping,1) — All
2021-10-13 17:46:59


Медленно, но верно, редактор 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 <cat email;
- выделил этот текст;
- нажал 2ю кнопку мыши.

Обратите внимание на цикл обработки событий. Мы просто ждём их, читая из event и реагируем нужным образом. Или снова перечитываем сообщения, или открываем текст нужного сообщения в новом окне.

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

# Версия на Lua

То, что в итоге получилось, можно посмотреть тут: https://github.com/gl00my/plan9hacks/blob/master/linux/mu-query

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

1. Для отправки почты используется msmtp.

defaults
auth on
tls on
logfile ~/.msmtp.log

account gmail
host smtp.gmail.com
port 587
tls_certcheck off
from user@gmail.com
user user@gmail.com
password password

account default : gmail

2. mu-query умеет показывать запросы mu. Например, вводим в tagline: mu-query from:ivanov, выделяем, нажимаем 2-ю кнопку мыши и видим нужный результат. Если не указывать запрос, показываются последние 100 сообщений. Можно листать по 100 сообщений командой Page.

3. При просмотре сообщения все аттачи распаковываются во временную директорию. Например, если я вижу, что это html письмо, я могу дописать firefox file:/// перед путём к файлу прямо в теле сообщения и нажать.

4. На данный момент поддерживается только Reply, составление нового сообщения, удаление и пометка сообщений как Seen. Forward и добавлений аттачей нет. Это несложно добавить, но пока я не стал этого делать. Может быть, будет третья итерация уже на go. :)

5. Чтобы удалить пачку сообщений или пометить их как прочитанные нужно выделить все нужные сообщения и нажать на соответствующую "кнопку".

На данный момент я пользуюсь mu-query на постоянной основе и очень доволен. Мне действительно это удобно. И главное, я понял что относительно просто могу писать под себя интерфейсы. Например, я уже задумываюсь о команде git-log.

# Опыт acme

Если говорить о практической пользе, то кроме "персонализации" инструментария я получаю с acme тот же эффект, что получаю от Plan9. У меня разгружается сознание. Когда я работаю в emacs, мой мозг перегружен информацией о множестве клавиатурных комбинаций и конкретных рецептах. Если брать другие редакторы, то в целом, ситуация повторяется. Acme в этом плане не похож ни на один из них. Его "базис" очень простой, единообразный и при этом всё ещё мощный. Настоящий Unix инструмент!

Когда я первый раз увидел acme, я не мог даже себе представить, что в _этом_ можно работать. Что же, ещё один повод напомнить себе, что встречать по одёжке не стоит.

Кстати, об одёжке. Уверен, у 99% людей пропадает интерес к acme как только они узнают, что в нём нет подстветки синтаксиса. Или, что в этом редакторе нельзя перемещаться по строкам вверх-вниз с помощью клавиатуры... Я зря это сейчас сказал, да? :)

# Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-13 14:41:57


hugeping> Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

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

P.S. Почему говорю о "вульгарном" материализме? Потому что далеко не все материалисты основываются исключительно на личном эмпирическом опыте.

# Re: Про собаку, мячик и сливную решётку
std.hugeping.micro
vvs(ping,12) — hugeping
2021-10-13 14:17:50


hugeping> Да в том-то и дело, что не знаю. :) Может быть, просто жалок? :) Шучу. Не знаю. Много каких-то ассоциативных образов, которые подсознательно действуют.

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

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

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

# Re: Про собаку, мячик и сливную решётку
std.hugeping.micro
hugeping(ping,1) — boscholeg
2021-10-13 11:03:36


boscholeg> Намекаешь на то, что тебя тащат куда-то против твоей воли? Или на беспочвенность своих страхов и сомнений?

Да в том-то и дело, что не знаю. :) Может быть, просто жалок? :) Шучу. Не знаю. Много каких-то ассоциативных образов, которые подсознательно действуют.

# Re: Про собаку, мячик и сливную решётку
std.hugeping.micro
boscholeg(ping,5) — hugeping
2021-10-13 09:41:14


hugeping> Может быть, я тоже как эта собака?
Намекаешь на то, что тебя тащат куда-то против твоей воли? Или на беспочвенность своих страхов и сомнений?

# Про собаку, мячик и сливную решётку
std.hugeping.micro
hugeping(ping,1) — All
2021-10-13 09:30:56


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

-- Ну не бойся, давай. Не бойся.

Оказалось, что пёс лег на пол, прижав голову и распластав лапы. Он отказывался пересекать узкую решётку слива. Ну, сантиметров 15.

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

Я не знаю почему, но этот эпизод прямо врезался в память, и я всё время к нему возвращаюсь.

Почему сливная решётка стала для пса непреодолимой проблемой? Травма, ассоциация, что-то ещё? Помогал ли мячик в зубах бульдога преодолеть страх? Что он чувствовал, когда хозяин волок его через "страшное" препятствие?

Может быть, я тоже как эта собака?

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-10-13 08:08:49


AL> Саму проблему я примерно понял, но не понял откуда вообще берётся этот вопрос.

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

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

...

> В этой связи можно было бы говорить о Великом Разделении, имеющемся в области исследований сознания. Если вы считаете, что решение «легких» проблем объясняет все, что нуждается в объяснении, то у вас получается один тип теории; если вы считаете, что кроме них есть и дополнительная «трудная» проблема, то у вас будет другой ее тип. В какой-то момент общезначимые аргументы становятся затруднительны, и обсуждения зачастую сводятся к ударам по столу.

> Мне кажется очевидным, что здесь есть некий дополнительный момент, нуждающийся в объяснении; другие же готовы принять, что ничего подобного не существует.

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

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

Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

# Re: 0 или 1
std.hugeping
Andrew Lobanov(tavern,1) — hugeping
2021-10-13 06:31:59


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

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

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

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

# Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-12 14:38:16


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

Если ещё не читал, рекомендую книгу Д.Хофштадтера "Гёдель, Эшер, Бах: эта бесконечная гирлянда".

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

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

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

P.S. Ещё говорят, что Билл Гейтс как-то сказал, что тот, кто полностью прочёл "Искусство программирования для ЭВМ" Д.Кнута может смело присылать ему своё резюме :)

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-12 11:15:18


vvs> Иногда даже возникает сомнение: а действительно ли многие люди говорят на одном со мной языке?

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

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

# Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-11 14:03:21


>> - Смотри, я тут игру написал Color Lines.
>> - Неплохо. Только цвета шариков мне не нравятся.
>> - А мне, кажется, красиво.
>> - Нет, слишком яркие.

hugeping> (сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру.

hugeping> (сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил.

Навеяло. Вариант номер три:

— Правда ли, что шахматист Петросян выиграл в лотерею тысячу рублей?
— Правда, только не шахматист Петросян, а футболист «Арарата» Акопян, и не тысячу, а десять тысяч, и не рублей, а долларов, и не в лотерею, а в карты, и не выиграл, а проиграл.

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

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

P.S. Смешной момент, возникший при чтении этого учебника - что эта логика понятна только тем, кто читает учебники и бесполезна всем остальным :)

# Re: Социальные эксперименты и работа
pipe.2032
Andrew Lobanov(tavern,1) — vvs
2021-10-11 05:50:31


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

А можно уточнить какая часть этого раздела математики нехорошая? Я с ней мало знаком и вообще концепция нехорошей математики не приходила мне в голову.

# Re: Социальные эксперименты и работа
pipe.2032
vit01(mira, 1) — btimofeev
2021-10-10 14:40:15


vit01>> Но в армию меня точно не возьмут, в этом уверен на 100%.

btimofeev> Всякое бывает. У меня врождённый порок сердца, ничего особо серьезного, но с ним в армию не берут. Я подготовил все документы, врач в военкомате сказал что не пойду в армию. Потом собрали целый автобус ребят под списание и отвезли на военную комиссию в областной центр. А комиссия приняла всех без исключения годными, нас тут же переодели в военную форму и отправили в ближайшую военную часть.

Блин, тебе реально не повезло.

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

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

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

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

# Re: Социальные эксперименты и работа
pipe.2032
btimofeev(tavern,13) — vit01
2021-10-10 05:48:50


vit01> Но в армию меня точно не возьмут, в этом уверен на 100%.

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

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

Конечно это исключение из практики наверное. Вроде бы говорили что в тот год у нас был жёсткий недобор, поэтому забирали таким вот образом.

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


vit01> Вполне вероятно, ты редко пишешь первый, потому что у тебя достаточно друзей в реальном мире, а не в сети, с которыми приятно общаться. Возможно, есть жена/девушка и.т.д.

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

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

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

# Re: Социальные эксперименты и работа
pipe.2032
vit01(mira, 1) — vvs
2021-10-09 15:55:17


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

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

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

В целом мне сейчас трудно мыслить адекватно

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

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

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

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

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


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

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

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

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

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


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


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

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

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

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

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

Минусов подобной авантюры можно перечислить сразу несколько:

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

Тем не менее, мне кажется, что польза от желания узнать правду сравнима с вышеперечисленными недостатками подхода. Грустновато получается, но хочу сказать спасибо тем, кто меня "терпел" ранее.

## Теперь об учёбе и работе

В магистратуре мы изучаем следующие предметы:

* Методы математической физики
* Физика плазмы
* Плазменная астрофизика
* Общая астрофизика
* История и методология физики

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

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

## На меня опять наехал военкомат

Даже несмотря на то, что поступил на учёбу и получил отсрочку от армии, категория годности у меня стоит "временно не годен". А это значит, что военкомату плевать на мою отсрочку, и они меня могут постоянно посылать по врачам на разные обследования. Что они и делают. Поэтому есть несколько вариантов развития событий:

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

Медицинские обследования для военкомата и прохождение медкомиссии очень долгие и утомительные. Это отъедает время и от учёбы, и от работы, привносит в жизнь огромное количество стресса и вселяет неопределённость. Будем надеяться, что в скором времени эта хрень закончится. Но в армию меня точно не возьмут, в этом уверен на 100%.

## Вторая решётка Сибирского Радиогелиографа

Перейдём к хорошим новостям. Отдел радиоастрофизики достраивает радиотелескоп в обсерватории Бадары, и не так давно получилось запустить в тестовом режиме решётку 6-12 ГГц на более чем 200 антенн. Хороших картинок пока не будет, но рано или поздно всё отправлю.

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

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

## Успехи в работе про гирорезонансные источники на 34 ГГц

После перенаполнения архива данных для радиогелиографа Нобеяма удалось найти ещё несколько оптически толстых гирорезонансных радиоисточников. Вот, например, один из них, апрель 2004 года:

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

Яркостная температура здесь порядка 150 000 К, размеры источника малы по сравнению с диаграммой направленности радиотелескопа. Среди найденных результатов есть ещё интересные события, пока думаю над наиболее эффективной их визуализацией.

## МГД-моделирование

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

Объявляем переменные и записываем уравнение:

import sympy as s
import numpy as np

k, a, Ci, C0, Vph, w, x, y, t = s.symbols("k a C_{\infty} C_0 V_{ph} omega x y t")
rho, rho_inf, rho_m = s.symbols("\\rho \\rho_{\infty} \\rho_{m}")

eq1 = s.Eq(k * a / C0**2 * (Vph**2 - C0**2) - 2 / k / a,  3 / Ci * s.sqrt(Ci**2 - Vph**2))
eq1_omega = eq1.subs(Vph, w/k)
eq1_omega

$$- \frac{2}{a k} + \frac{a k \left(- C_{0}^{2} + \frac{\omega^{2}}{k^{2}}\right)}{C_{0}^{2}} = \frac{3 \sqrt{C_{\infty}^{2} - \frac{\omega^{2}}{k^{2}}}}{C_{\infty}}$$

Возводим обе части уравнения в квадрат и записываем в формате полинома:

eq2_omega = s.Eq((eq1_omega.lhs**2).expand(), (eq1_omega.rhs**2).expand())
equation_poly = eq2_omega.as_poly(w)
equation_poly

$$\operatorname{Poly}{\left( \frac{a^{2}}{C_{0}^{4} k^{2}} \omega^{4} + \frac{9 C_{0}^{2} - 2 C_{\infty}^{2} a^{2} k^{2} - 4 C_{\infty}^{2}}{C_{0}^{2} C_{\infty}^{2} k^{2}} \omega^{2} + \frac{a^{4} k^{4} - 5 a^{2} k^{2} + 4}{a^{2} k^{2}} \right)}$$

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

solutions = s.solve(equation_poly, w)
solutions_simplified = []
for sol in solutions:
    solutions_simplified.append(sol.subs(Ci, (rho_m + 1) * C0))
    
# некоторые шаги были на этом моменте пропущены

solutions_k = []
for sol in solutions_simplified:
    solutions_k.append(sol.subs(C0, C0_computed).subs(rho_m, rho_m_computed).subs(a, 1))
    display(solutions_k[-1])
    
solutions_np = [s.lambdify(k, sol, modules="numpy") for sol in solutions_k]

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

Функция `sympy.lambdify` достаточно важная для вычислений, потому что она позволяет сконвертировать символьное представление sympy в питоновский код с использованием numpy, который будет быстро выполняться.

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

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

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

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

Из полезных функций в sympy:

* `s.print_fcode(expr), s.print_python(expr)` и подобные ему позволяют быстро получить код на Fortran и Python из полученных выражений
* `s.print_latex(expr)` выдаёт LaTeX разметку, чтобы быстро вставить результат в статью
* `expr.evalf()` вычисляет все константы в виде чисел и проделывают под капотом арифметику, чтобы упростить вид выражения

Всё остальное, конечно же, искать [в документации]( https://docs.sympy.org/latest/index.html )

## Контейнеры Singularity

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

Система работы с контейнерами Singularity [доступна]( https://repology.org/project/singularity-container/versions ) на большинстве дистрибутивов GNU/Linux и не только. Она позволяет работать с read-only SquashFS образами операционок, либо с chroot-окружениями в виде директорий (sandbox в их терминологии). Различные виды образов можно автоматически пересобирать, запаковывать, распаковывать и даже превращать в статические исполняемые файлы-приложения.

Найти подходящий для работы контейнер с любой нужной операционкой и софтом можно на [DockerHub]( https://hub.docker.com/ ). Кроме интеграции с каталогом Docker у Singularity есть возможность собирать образы из файлов-рецептов и из своего собственного каталога.

Допустим, сервер запущен на Ubuntu, но мы хотим пользоваться привычным Арчем. Скачаем образ командой

$ singularity build --sandbox ./archtest docker://archlinux:latest

В каталоге `archtest` после её выполнения создастся дерево файлов Archlinux, которое по факту уже готово для работы. Перед тем как заходить внутрь в командную оболочку, желательно настроить переменные окружения, чтобы не было проблем с запуском софта. В каталоге `archtest/.singularity.d` содержатся скрипты, которые выполняются перед входом внутрь песочницы. Рекомендую для начала поправить файл `archtest/.singularity.d/env/10-docker2singularity.sh` и установить там переменные `PATH` и `LANG`:

#!/bin/sh
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user/.local/bin"

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

Самое удобное решение - создать в файле `.bashrc` алиасы, где `si` - это вход в обычном режиме, а `si_root` - вход в fakeroot-режим, в котором можно запускать пакетный менеджер, править конфиги в /etc и делать остальные улучшательства. Параметр `-B` отвечает за проброс внутрь контейнера других каталогов кроме домашнего.

alias si='singularity shell -B /data,/usr/local/bin ~/archtest'
alias si_root='singularity shell -f --writable ~/archtest'

Про все остальные крутые штуки можно прочитать в [документации]( https://sylabs.io/docs/ ) на их сайте. По моим впечатлениям Singularity имеет гораздо больше полезных фич, чем аскетичный LXC или контейнеры systemd, но при этом он гораздо проще в работе и в настройке, чем громоздкий и переусложнённый Docker.

## В следующих постах

3D-моделирование плазмы, болезненная миграция сервера с MySQL на PostgreSQL и ожидаемый кинообзор (можете угадать, на что)

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

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


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

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

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

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

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

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

# Re: Деды и творчество
std.hugeping.micro
vvs(ping,12) — boscholeg
2021-10-06 16:04:07


boscholeg> Ну вот я уже двоюродный дед. А толку то?
boscholeg> Ни бороды, ни ума ни фантазии.

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

# Re: Деды и творчество
std.hugeping.micro
boscholeg(ping,5) — vvs
2021-10-06 14:10:08


vvs> Внуки есть? Тогда не дед ;)

Ну вот я уже двоюродный дед. А толку то?
Ни бороды, ни ума ни фантазии.

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


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

# Re: 0 или 1
std.hugeping
vvs(ping,12) — hugeping
2021-10-04 23:27:32


hugeping> Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги.

Самобичевание, конечно, делает честь :) Но не стоит преувеличивать свои грехи.

hugeping> Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём.

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

> Но, в общем, прими мои извинения за ситуацию.

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

P.S. В жизни мне себя сдерживать гораздо сложнее. Поэтому пожелаю всем нам побольше сдержанности :)