RSS
Pages: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16
[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 00:58:08


vvs> Результат-то практически тот-же, только вместо -dpi 144 я тогда пишу scr.dpi = 67 (72 тоже пойдёт, но несколько мельче).

Возможно, стоит попробовать 72 как "умолчательный" dpi. Тогда по кр мере дефолтные темы будут везде выглядеть более правильно.

vvs> И всё-равно в "Кнопке" слишком большое окно, графические глюки и тормозит курсор.

Это всё-таки уже особенностями конкретной игры.
Большое окно, значит нужно scr.dpi в теме для кнопки другое выставить и перезалить в репозиторий.
Графические глюки - не видел никогда, не знаю. Нужно воспроизведение. Пока этого нет я ничего ответить не могу. Ради интереса, можно выставить -software, если пропадут - то глюки скорее всего относятся к SDL+драйверы. Если не пропадут, возможно, к самой кнопке.

А курсор рывками, думаю, потому что игра сама отрисовывает свои кадры, в таком режиме курсор тоже отрисовывается с частотой кадров игры. То-есть, стоит скажем 25 fps и курсор рисуется так же. Так что, я думаю, это "фича" "кнопки". В прочем, там такое было только в заставках. Если не изменяет память. В INSTEAD есть режим использовать системный курсор, кстати.


Единственное отличие - в главном меню INSTEAD теперь тоже нормальный шрифт (если последней была загружена нормальная тема).

vvs> И сразу видно, что если на моём мониторе коэффициент 1.5, то на твоём мониторе тогда будет уже двойное масштабирование. Не уверен, что это всем понравится.

vvs> Кстати, курсор тормозит явно из-за отсутствия его аппаратной поддержки. В остальных (не INSTEAD) играх и приложениях такое не наблюдается.

hugeping>> На практике это даёт возможность разработчику темы написать scr.dpi = и тот dpi на котором они её разработали (на котором она хорошо смотрится). Это всё что нужно.. Вот я тебя и прошу - найди такой хороший dpi для стандартных тем, сообщи мне - и я попробую на своих мониторах..

vvs> А вот в игре "Переход" ни этот параметр, ни -dpi 144 почему-то не действуют.

vvs> Надо потестировать и в других играх, но сегодня уже поздно.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2024-01-31 01:08:14


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

Проверил 72 на разных мониторах. Я считаю что 96 как стандартный dpi лучше, всё-таки. В общем, не знаю даже, пока проблемы я не увидел. Поддержку highdpi можно выключить если она мешает сняв HQ в настройках. Вообще, предполагается что она нужна в основном для 2K и 4K мониторов.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2024-01-31 01:10:04


Загрузка процессора в самой игре - 3%. В общем, не знаю. Нужно отлаживать конкретно на твоей системе.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 01:44:00


vvs> У меня-то будут, а, например, у тебя?
vvs> Не поможет. Там либо окно слишком большое, либо шрифт слишком мелкий.

Я не понимаю, почему ты считаешь что это какое-то частное решение? Смотри, если автор игры сделал игру такой, какой ему нравится видеть на своем мониторе, ему достаточно вбить честный dpi. Соответственно, на другой системе, картинка будет выглядеть примерно так, как хотел автор. На 4к мониторе она увеличится так, чтобы размер физический окна был примерно такой же (с учетом расстояния до глаз итд). Я не понимаю почему это не должно работать? Оно именно работает.

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

vvs> А вот "Переход" - совсем не реагирует на масштабирование. А это, по-моему, одна из лучших игр на INSTEAD.

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

vvs> Выглядит так, как будто после переключения режима буфер не в фокусе и не обновился, а после переключения окон внезапно отображается.

У меня подобные проблемы были с nvidia + gnome. Правда не только в инстеде. Я не помню, как я их решил. Попробуй -software.

vvs> Явно OpenGL не используется

Да нет, используется. Спрайты грузятся заранее и потом блитятся SDL2, который ускорение должен использовать. Чтобы его отключить, пишешь -software. В общем, мне все-таки кажется что с SDL2 что-то не так. Кстати, иногда я встречал проблему когда люди собирали инстед как-то странно, и там была сместь SDL2 и SDL1 библиотек. Проверь на всякий случай ldd sdl-instead.

vvs> а INSTEAD тоже вроде не AAA видео игра.

Инстед очень нетребовательное приложение. Оно разрабатывалось с учетом того, чтобы работать даже по vnc протоколу (и хорошо кстати работает), потому что оно отрисовывает только изменения. Грубо говоря, когда ты ведешь курсор - ничего кроме курсора не меняется. Надо ли говорить, что даже в софтварном режиме производительности на это любого процессора достаточно? А ведь инстед хорошо работал и на АРМ КПК с 100-400 мгц.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 19:42:12


vvs> ни физический размер экрана, ни расстояние, на котором он находится

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

vvs> выдаёшь желаемое за действительное.

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

vvs> размер окна "Кнопки" примерно равен 31 см, но на моём компьютере он равен примерно 33 см.

Это прекрасный результат, на мой взгляд. Я думаю что на xp кстати dpi не берется.

> торый в Windows равен 1.0, а у меня - 1.058333.

Вот и подтверждение. dpi где-то может не работать. А на win 10, например, он работает.

vvs> А кто вообще сказал, что при масштабировании TrueType шрифтов используется DPI?

Код INSTEAD.

Про дробность dpi даже нечего сказать. Этл совершенно непринципиальная погрешность.

vvs> Теперь насчёт "честного" dpi, а где его взять?

Если оч. интересно, надо изучать код SDL. Мои факты: работает на всех моих линуксах и Win10. Те. откуда то, берет. Как написано в мануале сдл, так и работает.

vvs> Курсор перестаёт тормозить если указать -nocursor, причём загрузка процессора остаётся совершенно такая же: за 30% для opengl и до 100% -software. При разрешении монитора 1280x720 торможение не заметно. В чём тут загвоздка мне неизвестно.

Да, 100% - это явная аномалия. У меня нп eepc даже близко такого нет. Проблема не в коде инстеда. Либо ты смлтришь анимации кнопки, там мб что угодно.

vvs> Более того, я проверил это и на Windows XP и там то же самое. А видеокарта там совсем другая и даже OpenGL 3.3. Это особенно хорошо заметно в окне, когда курсор пролетает через весь экран и проходит то десктоп, то окно INSTEAD попеременно.

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


vvs> Я тут проверил список требуемых библиотек с помощью ldd и получил следующий список. "Нетребовательность" - понятие относительное, а так вообще INSTEAD немного похож на маленькую операционную систему. Только без обид ;)

Инстед собирается с SDL. SDL можно собрать по разному. Кроме того, можно собрать с gtk3 для файлового диалога. Но в любом случае, это не антидовод на мой тезис о том, что во время отрисовки курсора меняется маленькая область. Буквально десятко пикселей на десятлк пикселей. Даже на питоне я бы не смог написать такой код, чтобы жрать 100% при этом.

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

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2024-01-31 20:01:50


Гм, например, ты пишешь что смена -dpi не влияет на шрифт. Можно 2 скриншота с -dpi 72 и -dpi 150, например?

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 20:25:14


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

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

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 20:28:29


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

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-01-31 22:37:15


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

1) Если в настройках инстеда стоит HQ опция, разрешение стоит как "тема" и не стоит полный экран то:
2) Смотрится dpi в теме игры, если dpi не задано - то это принимается за 96
3) Выбирается масштабирование как: dpi системы/dpi темы
4) Масштабирование влияет как на шрифт так и на само изображение (одинаково), но масштабируется не картинка целиком, а "векторно" - масштабируются шрифты, картинки и координаты - тем самым 100% идентичности может не быть, но в целом -- будет близко
5) В некоторых системах/сборках получить dpi системы невозможно.
6) В таком случае можно задать -dpi через опцию
7) Разработчику игры с собственной темой в scr.dpi в теме нужно указать dpi (или диапазон) своего экрана на котором он разрабатывал тему

В процессе нашего обсуждения я проверил следующие утверждения:
1) При изменении -dpi масштабируется картинка, но не масштабируется шрифт - НЕ ПОДТВЕРЖДЕНО
2) В Гноме dpi всегда 96 -- НЕ ПОДТВЕРЖДЕНО (xdpyinfo показывает 96, но SDL возвращает честный dpi), проверено на разных системах с разным dpi, DPI всегда совпадает с реальным.

Проблему тормозов курсора объяснить я не смог. Мне нужна воспроизводимость, которой нет ни на одной из моих систем (bsd, несколько linux, windows, смартфон).

Я считаю, что даже не смотря на проблемы, фича с масштабированием dpi решает конкретную проблему - готовность работать на 2k/4k экранах. Если она не устраивает - ее можно
1) отключить
2) прислать другие решения - но конкретные

Больше я ничего писать на эту тему не буду.
P.S. Edited: 2024-01-31 18:38:32

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-02-02 22:38:14


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

Курсор отрисовывается по координатам событий от мышки в окне. Пришло событие от SDL с указанием координат - рисуем курсор. Так что "скорости" движения не причём.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-02-02 23:53:18


> У тебя есть другое объяснение?

Мне сложно объяснять то, что я не видел.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — vvs
2024-02-03 01:10:27


Когда в программе баг, его можно исправить. Но если баг у меня не воспроизводится, какой смысл гадать? Я уже написал что объяснений 100% загрузки процессора при движении мышки у меня нет. Причем тут верю тебе или нет? У меня нет версий. Никаких, кроме той, что SDL как то странно работает на твоих машинах.

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2024-02-03 01:14:37


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

[>] Разработчик токсик или неоправданные ожидания
std.club
hugeping(ping,1) — hugeping
2024-02-03 13:08:23


# Оправдания

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

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

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

# Откровенность за откровенность

Бесплатно, деньги, суд... Добро пожаловать в опенсорс! Что сказать? Я уже 1000 раз видел "перегоревших" людей, которые ожидали чего-то от меня, от сообщества или кого-то ещё. Так это не работает. Я делал INSTEAD для удовольствия и не ожидал "награды". Но и делать из меня "должника" -- не красиво.

Да, твой "багрепорт" бесполезен. Потому что:
1) Слишком много текста, иногда частично противоречивого. Описание бага должно быть:
- конкретным, лаконичным и формально точным.

Когда я получаю противоречивые и непонятные сообщения, в которых свалено сразу несколько вещей. Я не занимаюсь "докапыванием". Это бесперспективно. Я одно обдумываю сообщение, одну деталь. А мне в ответ - охапка новых впечатлений. Это тупик. Начали с того, что dpi в системах не настоящий. Начал проверять, получил несколько новых выводов -- насчёт тормозов, глюков итд. В итоге я даже уже не понимаю что именно мы обсуждаем. Кривая какая-то вылезла гнома про ускорение. Функция какая-то SDL...

2) Часть вещей о которых ты говорил оказались не тем, что я думал в начале.
- Начали с DPI которое в гноме 96, но оказалось что это всё-таки не так и масштабирование работает так, как написано. Для меня это "звоночек"-- проблема не в том, что что-то не работает технически, а в том, что тебе не нравится как это работает. А что именно не нравится - я так и не понял. Например "шрифт слишком мелкий" -- ну, что это значит конкретно? Я такое утверждение просто пропускаю, оно для _диагностики_ -- бесполезно. Наверное стоило бы хотя бы скриншоты ситуаций привести с размерами. Типа - размер этого изображения на моем мониторе AxB.

3) Навязывание своих правил игры при ведении дискуссии

Да, я оставляю за собой право не объяснять свои мысли и выводы. Во-первых -- чтобы не обижать. Во-вторых -- я знаю SDL2 и INSTEAD лучше, но чтобы объяснять свои выводы я должен написать кучу всего. Вопрос -- зачем? Если я считаю, что данных недостаточно - я никогда не гадаю -- я просто говорю -- версий нет. Что касается твоих репортов, я пробовал воспроизводить, конечно, нечто подобное. Я даже спрашивал в чате инстед. Но никто мне ничего такого не вспомнил. Я обязан был отчитаться тоже за проделанную работу, чтобы не получить порцию негатива? :)

4) Да, я потратил своё время. Которое мог бы отдохнуть, например. И я его ценю. Оно драгоценно.

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

# Гипотезы по тому, что я понял

Ты просил написать о том, что я думаю по проблемам. Чтобы это обсуждать. Думаю я вот что:

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

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

# Заключение

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

P.S. Давно подумываю о том, что Клуб себя изжил. Возможно, стоит оставить только станцию в gemini. Время форумов - ушло, пора и мне уже на покой.

P.S. Edited: 2024-02-03 09:13:22

[>] Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — All
2020-09-09 00:45:01


Думал думал, и всё-таки не выдержал.

Купил малинку, взял статический адрес у провайдера и постепенно перетаскиваю свое барахло с Digital Ocean.

Да, идеологически неправильно, но железка под боком это как то... Ближе. :) Сразу понимаешь, что вот оно. :)

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

В качестве dns-hosting на яндекс смотрю. Вроде бы бесплатно? Не хотелось бы ещё платить за это...

P.S. Кто то ещё здесь гоняет малину для этих целей?

[>] Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — btimofeev
2020-09-10 12:31:45


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

Ого, интересно. Уже делаю бекап...

[>] Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — boscholeg
2020-09-10 13:05:30


> Помнишь я тебе рассказывал про флэшки для промышленного применения?
> Их не зря советуют брать для одноплатников.

Да уж, ну, будем смотреть. Бекапов мало, важность ресурса - низкая. Так что не так страшно, надеюсь...

Все INSTEAD ресурсы я уже давно перенаправлял на github. Так что на малине только этот личный проект + боты для метапарсерных игр и чата.

[>] Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — boscholeg
2020-09-10 13:28:29


> Вот кстати вопрос доверия Гитхабу. Ты уверен что он не рухнет в одночасье?

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

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

[>] Re: Пётр шевелит секту
pipe.2032
hugeping(ping,1) — Andrew Lobanov
2020-09-13 11:03:01


> Этак скоро скрипт статистики снова будет иметь смысл :)

Наверное надо где-нибудь писать про idec, все-таки. Думаю все присутствующие узнали про ii из постов на лор или чего-то подобного? Ну или организовывать тематические сообщества: инстед, план9 итд.

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

[>] Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — johnbrown
2020-09-20 01:48:19


> Слабая, знаю, но надеялся, что греться хотя бы будет меньше.

Кстати, тоже думал о 3й. Боялся перегревов, а мощность мне не так уж и нужна. Но рискнул. 40C обычно температура, что очень неплохо. Правда, я корпус взял зверский-алюминевый. Как радиатор действует. Вообще, очень рад. Правда, народ пугает выходом из строя sd карт... Ну, посмотрим...

[>] Re: Малинка, как домашний веб сервер
pipe.2032
hugeping(ping,1) — boscholeg
2020-09-22 14:18:09


> Петр расскажи насколько равномерно корпус прогревается?
> Пробовал измерять температуру в разных частях корпуса?

Температуру смотрел только такими командами:

$ cat /sys/class/thermal/thermal_zone0/temp
$ vcgencmd measure_temp

На ощупь, верхняя часть нагрета равномерно.

> GUI и прочие десктопы ты на малинке поднял? Или работаешь через терминал?

Ничего, кроме ботов, ssh и ii-go не кручу там. Первый раз запускал графику, но потом сразу снёс. Возможно, буду экспериментировать с 9front, но не сейчас.

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

Да, правда мне по ошибке привезли корпус, в который можно ставить вентиляторы (идут в комплекте). Из-за этого, там не везде есть рёбра. Но, похоже, это не так уж и важно. Сейчас t == 39C :) Летом будет повыше, наверное.

[>] gemini: ещё одна сеть эскапистов
pipe.2032
hugeping(ping,1) — All
2020-10-19 16:59:28


Натолкнулся тут на очередное "подполье".

Похоже, перегруженные современными технологиями гики-эскаписты -- это распространённое явление.

Встречайте: GEMINI ( https://gemini.circumlunar.space/ )

Гуглится тяжело. По факту -- что-то среднее между gopher и базовым http. Технологически возможен CGI. Нужен свой клиент (которых есть масса). Есть поисковики (gemini://gus.guru).

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

https://portal.mozz.us/gemini/gemini.circumlunar.space
Но, конечно, из нативного клиента это выглядит аутентичней.

Вот такой вот, заповедник.

P.S. Сам пишу этот пост из Plan9 ;)

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-23 23:21:51


> Идеализм на то и идеализм, что с реальностью имеет мало общего.

Если в философском смысле, то как раз мир идей более реален (идея первичней). Если ты идеалист, конечно.

> Физики делят материю, но конца не находят, а если найдут, то сразу возникнет вопрос: а что же дальше?.

Идея? :)

> Хорошо быть романтиком в молодости, а с возрастом становишься циником.

Становиться циником или нет, всё-таки, зависит в том числе и от нас.

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-25 22:40:16


> Задача-то у всех одна - познание мира, а вот философия разная. Наука опирается на материализм, а религия - на идеализм.

Ну тоже не так просто. Во первых, среди учёных были и есть верующие. А так-же просто идеалисты. Например, Пенроуза, похоже, можно отнести к идеалистам.

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

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

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-25 23:57:55


> Ну, тут, как раз, все просто. Ученые - это еще не наука. Все мы люди и полны противоречий. Приведу другую аналогию: коррумпированный юрист. Разве он - это закон?

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

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-26 20:17:10


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

А я пока запилил более нормальное квотирование, а то непонятно уже было кто что написал и кто кого зацитировал. :)

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-27 12:27:10


vvs> Боюсь, что и сравнение науки с религией тоже слишком искусственно.

Ну, беседа уже зашла в дебри. Я вообще спорю только против нападок со стороны "научного мировоззрения" на религию. Причём против "грубых" и "вульгарных" форм материализма. Даже писал на эту тему: ii://CVvGRZBv7ZzMIm0TFWeY

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

[>] Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-27 16:57:13


vvs> Поэтому меня крайне удручает тот факт, что я не вижу способа объективно оценить философские критерии, такие как материализм и идеализм.

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

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

[>] Re: Механические клавиатуры
pipe.2032
hugeping(ping,1) — Difrex
2020-11-09 20:02:35


Difrex> За это время понял, что хочеться тактильных свичей. Заказал себе Anne Pro 2 на Kailh Box Brown. Эти свичи еще и водонепроницаемые.

Я вот тоже задумался. Дома - красные. На работе - синие. Понял, что синие рулят больше! (У меня бюджетный вариант на Kailth).

Покупать ещё одну клавиатуру не планирую, но если выбираете между красными и синими/коричневыми -- подумайте ещё. =)

[>] Re: Механические клавиатуры
pipe.2032
hugeping(ping,1) — Difrex
2020-11-10 14:13:58


Difrex> Поздно, уже едет посылка из китая с коричневыми свичами :)

А, я думал brown тоже щёлкают. Сейчас прочитал, что нет. Ну, короче, лично я теперь хочу только синие. Но дома - красные. Тоже неплохо, но "не то". :)

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


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

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


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

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

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


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

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

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


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

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

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


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

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

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

[>] Re: тест
pipe.2032
hugeping(ping,1) — oldpc
2022-05-05 21:23:50


oldpc> О, работает. А на сайте как залогиниться? :)

Справа вверху login. Если не помнишь пароль, его можно восстановить вроде бы: https://club.hugeping.ru/reset

oldpc> И почему-то не совпадают записи в блоге в gemini и на веб-сайте.

Вообще, должны. https://hugeping.ru должен совпадать в целом с gemini://hugeping.ru

oldpc> (это тест ответа на сообщение, пишу из горящего ii-txt)

Passed!

[>] Re: тест
pipe.2032
hugeping(ping,1) — oldpc
2022-05-31 21:31:59


oldpc> А откуда у меня пароль, у меня только authstr? Помнится, у меня можно было просто в поле пароля, даже без логина, запихнуть, и всё равно пускало :)

oldpc> Ладно, iitxt спасёт :)

Вот по этой сыслке ( https://club.hugeping.ru/reset ) зная authstr можно создать новый пароль и заходить через web.

[>] Re: Везение
pipe.2032
hugeping(ping,1) — Andrew Lobanov
2023-04-23 16:52:39


AL> А то, что не может быть прикручено, нужно просверлить и прикрутить %)

Вот прям на днях как раз просверлил в корпусе ноута отверстие и прикрутил болтом матрицу к креплению. Ибо родное крепление было выломано (хлипкий ACER). Тепепрь прямо приятно на ноутбук смотреть. :)

[>] Re: ...
pipe.2032
hugeping(ping,1) — vit01
2020-09-26 11:49:01


Сил семье и близким. :( Поддержал тоже.

[>] Re: Что меня раздражает
pipe.2032
hugeping(ping,1) — Anotheroneuser
2020-09-26 11:49:01


Anotheroneuser> 2. Крик.

Ох, особенно детский. Только тут не раздражение, а какая то боль с паникой. Иногда кажется, что по

[>] Re: idec
pipe.2032
hugeping(ping,1) — Difrex
2020-09-26 11:49:01


Difrex> Как со стороны клиента должен выглядеть аплоад?

Тут, скорее всего, не получится сделать это 2м независимым запросом. Так как запросы разделены во времени и нам нельзя писать его в базу (или отдавать другим нодам) пока все не будет залито.

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

[>] Re: А уже 2019 на дворе
pipe.2032
hugeping(ping,1) — Peter
2020-09-26 11:49:01


Н

[>] Gemini на микроконтроллере
std.hugeping
hugeping(ping,1) — All
2024-11-24 17:37:00


Моим первым компьютером был БК0010-01. 16Кб памяти. 300 тысяч операций в секунду. Два бита на цвет. Он дал мне первое опьянение (чувство эйфории смешанное с деперсонализацией). С тех пор меня тянуло к компьютерам и ко всему, что было на них похоже.

Когда появились первые мобильные телефоны, меня тянуло к телефонам.

Когда появились КПК, я собрал себе коллекцию КПК.

На ipod nano я написал прошивку, которая позволяла мне читать книжки на крошечном экране. Зачем? Потому что это тоже был компьютер.

А потом пришли смартфоны.

Сначала казалось, что это те же самые КПК только лучше.

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

Хотелось вернуться к старым друзьям. Устройствам с простой прошивкой которые делают именно то, что ты говоришь им делать и не следят за тобой. К настоящим "компьютерам", которые не требуют твоего рабства как плату за мнимый комфорт.

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

# Technointeres Arduino клавиатура на ESP32 C3

Клавиатура для ардуино (UART) и ПК (bluetooth) на ESP32 C3. Русская + английская раскладка. -- так назывался лот на aliexpress.

https://aliexpress.ru/item/1005005764316991.html -- больше нет в продаже.

Можно сказать что это тот самый мини-КПК на контроллере с клавиатурой и маленьким (но всё же не крошечным) экраном 240x240. С wifi и bt. Питается от 18650. Прошивается напрямую через usb type-c. Отличная платформа для опытов!

Пока устройство ко мне шло я начал было читать даташит на контроллер, но быстро понял, что писать всё на низком уровне я не буду. Время БК0010-01 ушло. Современные микроконтроллеры - те же процессоры. В рамках экосистемы Arduino создан слой абстракции с которым действительно проще "сразу взять и написать" не занимаясь написанием ОС. Например, когда в Arduino IDE создаётся прошивка для ESP32 на самом деле в неё прошивается и FreeRTOS. А наша прошивка - лишь задача, запускаемая в этой ОС.

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

https://github.com/technointeres/V3-ESP_KEYBOARD_RU_EN

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

Код пишется на C++. Я много раз встречал упоминание, что это НЕ C++. Возможно, когда люди говорят подобное они имеют в виду отсутствие stl библиотеки и поддержки современных стандартов. Но для системного программиста это настоящий С++ в режиме "Cи с класами"... ;)

В итоге появилась прошивка, которая содержала в себе:

- клиент gemini;
- просмотрщик картинок с zx-art.ee;
- irc клиент.

https://github.com/hugeping/arduino-technointeres-fw

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

Вторая проблема - tls. Из коробки для esp32 был только tls 1.2. Большинство капсул работает и по 1.2, но, например gemini://gemlog.stargrave.org похоже жёстко требует 1.3. Впрочем, даже когда я собрал со сторонней библиотекой, которая поддерживает tls 1.3, капсула stargrave по-прежнему рвала соединение. Так что причина может быть в чём то ещё. Например, в каких то жёстких настройках. Не знаю.

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

И тут на глаза подвернулся другой девайс...

# Cardputer

Устройство можно купить на aliexpress. Внутри ESP32-S3 контроллер. Хороший корпус. Игрушечная, но всё-таки клавиатура. И... экран в 1.14" :)

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

Штатная прошивка полностью бесполезна и её можно воспринимать только как технологическую демку. Я начал портировать свою прошивку с прошлого устройства заодно пытаясь отвязаться от кучи ненужных библиотек и лишних слоёв. Сделал подобие многозадачности (например, можно запускать irc-клиента в фоне) и функции "органайзера" - когда по netcat можно заливать и считывать текстовые заметки. Добавил repl питона -- теперь устройство можно было использовать в качестве калькулятора. В целом, вышло симпатично.

https://github.com/hugeping/cardputer-fw

Кстати, тут я уже использовал arduino-cli чтобы не запускать Arduino IDE и просто вызывать make. Конечно, это не лучший способ разрабатывать под Arduino, но так было проще "сразу начать".

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

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

Если бы только размер экрана был хотя бы в 2 раза больше...

# r36s

На том же aliexpress можно купить множество "игровых" linux консолей. Все они идут из коробки с прошивками в которых есть эмуляторы различных ретро-платформ, а на флешках лежит множество rom-файлов с играми для этих платформ.

Меня эти консоли не сильно привлекают именно в плане retro-gaming. Эти устройства мне интересны с точки зрения любительского софта. Конечно, формат устройства предполагает, что это будут главным образом игры.

Когда я изучал ассортимент этих устройств я понял, что они не одинаковы именно с точки зрения любительской разработки. Например, miyoo mini очень неплоха с точки зрения потребительских свойств, но по определённым причинам для неё мало именно любительского ПО. С другой стороны, есть устройства которые работают под управлением ArkOS (фактически, Ubuntu для arm), что делает портирование игр крайне простой задачей. Существует проект, который предоставляет возможность грубо (но эффективно) делать сборки с "портируемым" ПО. Фактически, мы запускаем виртуалку, собираем проект и кидаем бинарник на устройство. Потом обвязываем его скриптом запуска.

https://portmaster.games/games.html

Я бы сказал, что по наполнению там уже больше портов, чем было в своё время для canoo и подобных устройств. Обратите внимание, что в разделе Devices нет miyoo.

Для miyoo тоже есть возможность создавать порты, но их гораздо меньше. Вероятно, это связано с особенностями портирования.

https://github.com/OnionUI/Ports-Collection

Конечно же, я сразу "портировал" свой движок rein и запустил на r36s свою игру.

https://github.com/hugeping/rein

Работает отлично. Изменений в кодовую базу практически не вносил, кроме мелких настроек в Lua части (более гибкий масштаб экрана к разрешению).

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

# Другие устройства

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

## playdate

Очень стильная игровая самобытная консоль с монохромным экраном. Но очень дорого.
https://play.date/

## arduboy

Забавная миниатюрная игровая консоль с монохромным экраном 128x64.
Как выглядят игры можно посмотреть здесь: https://arduboy.ried.cl/
Можно купить на aliexpress за вменяемые деньги. Предпочёл cardputer.

## uConsole

Прикольный маленький linux компьютер. Иногда можно купить на aliexpress. https://www.clockworkpi.com/uconsole
Не очень интересно, потому что там просто Linux. И не думаю что удобен в "практическом" смысле.

## T-Deck-ESP32 S3 Blackberry

Конструктор в виде контроллера + экрана + клавиатуры от BB. Интересный вариант. Если бы не заказывал до этого cardputer, возможно, поиграл бы с этой штукой.

https://aliexpress.ru/item/1005007938506565.html

# Заключение

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

А я _точно_ знаю -- мы должны чувствовать свои компьютеры.

[>] О чтении
std.hugeping
hugeping(ping,1) — All
2024-11-30 16:07:34


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

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

Неужели дело лишь в наличии более доступных "развлечений"?

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

Инструкции в виде клипов. Обучение по сериалам вебинаров. Везде ролики, картинки. И смартфоны вместо компьютеров. Когда я вижу беднягу "работающего" с текстом или сложным сайтом на смартфоне я всё ещё чувствую снисхождение. Да не мучайся ты! Доберись до ноутбука и сделай всё за 10 минут! А потом оборачиваюсь и понимаю, что компьютеры остались нужны только программистам. Пока. Cмартфоны созданы не для того, чтобы создавать. Они -- "телевизоры" нашей эпохи.

Компьютерные игры стали нашей виртуальной жизнью (говорю в основном о MMORPG). Эскапизм приключенческих книг и даже игр вроде DOOM образца 1993 года и рядом не стоял по влиянию на нашу _реальную_ жизнь. Они прочно подсаживают нас на эндорфиновые качели и ты уже сам не понимаешь, нравится ли тебе эта "виртуальная жизнь" или ты -- её заложник, вынужденный подключаться снова и снова...

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

Ворчание -- признак старости. :) А стареть -- не хочется. Так или иначе, мир продолжает меняться и это невозможно не замечать (и не анализировать). Когда-то я думал, что новые системные программисты легко заменят старых. Но сейчас я вижу что этим новым просто не откуда взяться! Как ушло поколение радиолюбителей, так и уходит поколение системщиков. Интересно, что будет с проектами вроде NetBSD? В скорую смерть "C" я не верю, но будет ли достаточно свободных "C" программистов чтобы наследие осталось живым?

Когда в интернете стали появляться торренты (тогда ещё) либрусека, я был впечатлён объёмом. Мне казалось очень горьким, что такое количество книг невозможно прочитать за жизнь. Значит, надо не терять времени, искать! Искать лучшее и читать. Где лежит тот скачанный архив я даже не помню.

Надо всё-таки добить "Дон Кихота"...

donquixote.png

[>] Re: О чтении
std.hugeping
hugeping(ping,1) — boscholeg
2024-11-30 20:39:46


boscholeg> Как поживает твоя малина? Сколько она уже работает без перерыва?
boscholeg> 3 года или больше?

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

[>] Re: О чтении
std.hugeping
hugeping(ping,1) — boscholeg
2024-11-30 20:41:45


boscholeg> Мода прошла. Останутся только те для кого это действительно призвание. И те кто смогут состояться в жизни занимаясь этим.

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

[>] Снова про отладку
std.hugeping
hugeping(ping,1) — All
2024-12-07 11:29:05


На работе произошёл забавный случай во время отладки.

В какой-то момент работы с дебаг-прошивкой менялся файл /etc/passwd. Вернее, ссылка /etc/passwd ведущая в rw-область заменялась настоящим файлом /etc/passwd. И мы не понимали какой компонент это делает.

В итоге я решил просто поискать в бинарниках прошивки всё, что содержит строку "/etc/passwd".

Обнаружился elf-файл 'zellij' ( https://zellij.dev/ ) которого в прошивке быть не должно. Это разработчик положил для своего удобства. После запуска zellij действительно ссылка /etc/passwd заменялась файлом. Радости не было предела! Ведь zellij написан на Rust! Хотел тут же писать статью на эту тему (очерняющую Rust, естественно).

Но реальность оказалась прозаичней. Запуск zellij выполнялся скриптом с машины разработчика, скрипт помимо прочего делал по ssh sed на /etc/passwd (связано с особенностями удобства отладки прошивки). sed убивал ссылку, так как был запущен без параметра --follow-symlinks. То, что /etc/passwd находился в прошивке zellij - оказалось лишь совпадением.

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

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

[>] Re: Снова про отладку
std.hugeping
hugeping(ping,1) — boscholeg
2024-12-09 11:50:06


boscholeg> У вас что-то на подобии OpenWrt? Очень интересно как устроены такие крохотные системы.
boscholeg> Можешь порекомендовать что почитать? Или может сам расскажешь чего или статью напишешь?
boscholeg> Было бы очень интересно почитать.

Что читать -- не знаю что посоветовать. Слышал, кто-то Linux From Scratch хвалил в этом плане. https://www.linuxfromscratch.org/ Позволяет понять как всё работает в Linux-системах вместе.

А так, существуют "готовые" конструкторы. Тот же buildroot, yocto и openwrt. Но в принципе, Linux и Linux. :)

[>] О systemd
std.hugeping
hugeping(ping,1) — All
2024-12-14 13:55:45


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

Для начала, оригинальное сообщение из 2020 года.

## Удаление IPC при logout

Привет!

До последнего относился к деятельности Поттеринга с пониманием. Прогресс дело такое. Linux давно уже сложная система, systemd неизбежен -- думал я.

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

Помог гугл. Оказалось, что systemd стирает объекты IPC при log-out пользователя из системы. А на систему сборки периодически ломились наши боты, проверяя статус сборки итд.

В общем, RemoveIPC=no в /etc/systemd/logind.conf помог. По крайней мере, три дня уже всё чисто.

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

Как вообще могло придти в голову стирать что-то там при logout? Удивительно, что /tmp не затирается...

В общем, признаюсь себе честно -- Linux больше не система моей мечты. Я разочарован и удручён. Похоже, Plan9 и BSD системы -- это мой удел на старости лет. Linux -- система для выполнения утилитарных вещей и это моя работа. Но сказать, что мне нравится выбранный курс развития -- категорически не могу. Linux стал слишком "взрослым". Sad but true...

## Удаление "временных файлов"

> "Удивительно, что /tmp не затирается..."

Как наивен я был!

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

Разрабатываемая embeded-система работала около месяца, а потом у неё отваливалась подсистема конфигурации. Когда это произошло во второй раз я сразу подумал о systemd. Ведь работало это удаление "как часы". Заглянул в /etc/systemd/tmpfiles.d и... чего только там нет! Я не помню что именно он стирал, но сам факт, что на работающей автономно системе какой-то компонент начинает вдруг стирать чужие файлы (например, в /var/tmp) по ему одному ведомой причине -- это просто за гранью добра и зла.

Если вы по прежнему считаете, что это "правильное направление" (ведь речь идёт о "временных" файлах) то... вот: https://www.opennet.ru/opennews/art.shtml?num=61403

> ... опция "--purge" удаляет все файлы и каталоги, созданные через настройки tmpfiles.d, но название "tmpfiles" в названии утилиты вводило в заблуждение и создавало впечатление, что удаление касается только временных файлов. При этом настройки tmpfiles.d не ограничиваются временными файлами и также используются для автоматического создания несуществующих каталогов с данными. В частности, удаление содержимого домашних каталогов объясняется тем, что при помощи файла "/usr/lib/tmpfiles.d/home.conf" создавался раздел "/home" и, соответственно, команда "systemd-tmpfiles --purge" приводила к его удалению.

То-есть, tmpfiles это уже не временные файлы. :)

Кстати, в 257 приладили "костыль" чтобы сгладить проявления своего архитектурного пути: https://www.opennet.ru/opennews/art.shtml?num=62380

> В systemd-tmpfiles во избежание ошибочного удаления не тех файлов опция "--purge" теперь применяется только к настройкам в tmpfiles.d/, для которых явно выставлен флаг "$"


## Встроенные fallback-сервера

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

## Старт с ro-раздела

systemd не рассчитан на старт с ro-раздела. В systemd есть код, который адаптирован к этой ситуации (например, делает bind /etc/machine-id на файл в /run), но в целом - он не готов. Причём просто так поменять-задать местоположение rw-данных мы не можем -- все эти "/etc" зашиты прямо в код. В итоге в embeded-среде принят подход (рекомендован Поттерингом) с монтированием rw-оверлея /etc/ в initramfs _до_ запуска systemd, что снова выглядит дикой дичью. Неужели сложно было параметризовать эти вещи с самого начала? Снова патчим systemd...

## Баги и эффект чёрного ящика

Баги в реализации. Я встречался с некоторыми багами, которые ведут в .c часть. Например, некорректное слежение за состоянием интерфейса по netlink (код не был рассчитан на "нестандартную ситуацию" и принимал один тип сообщений за другой). Не помню уже как именно это проявлялось, скорее всего что-то связанное с dns серверами и маршрутами полученными по dhcp. Понятно, что "C" код для администратора это чёрный ящик и исправить что-то "на месте" практически нереально. В отличие от систем, где каждый компонент может быть заменён и их взаимодействие прозрачно. Здесь же есть "вещи в себе" которые или работают или нет.

## Заключение

Не могу сказать что в systemd присутствует только плохое. Когда компоненты работают без ошибок (и сюрпризов!), в целом, пользоваться этим удобно. Сложность "запрятана" в сам systemd. Мне в целом нравится тот же journald -- возможностью выборки по unit, а не только по facility/priority.

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

Тем не менее, не зависимо от того любите ли вы systemd или нет, если вы работаете с Linux - вам придётся с ним познакомиться (рано или поздно).

[>] Re: О systemd
std.hugeping
hugeping(ping,1) — doesnm
2024-12-15 15:44:42


doesnm> Читая пост возник только один вопрос: а почему systemd вообще используется в embedded? Каких-то своих узкоспециализированных решений нет?

Смотря что понимать под embedded. Ведь часто это "обычный линукс" работающий на спец. железе. И там тоже нужен тот же udev, например. Который давно есть часть systemd. :) Вообще, systemd постепенно всё глубже проникает в экосистему и с определённого момента проще расслабиться и плыть в струе мейнстрима... ;)

Pages: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16