RSS
Pages: 1 2 3 4 5 6
[>] Re: Координата Z // Захар Прилепин
std.hugeping.micro
vvs(ping,12) — hugeping
2023-06-03 17:34:37


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

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

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

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

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-05 16:28:01


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

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

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

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

vvs>> У меня никогда не было цели просто пообщаться.

AL> То есть у тебя была цель общаться сложно? Тогда да - превращение трактовки твоих слов в угадайку отличная политика.

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

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

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

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

AL> Ну, раз общение это не то, что ты хочешь тут делать, то я не стану мешать тебе заниматься своими делами. Просто IDEC задумывался именно для общения, поэтому я и ориентируюсь тут на него :)

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

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

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-05 16:45:08


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

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 13:30:35


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

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

AL> А не надо сводить к трём числам. Я как раз максимально расширял понятие компьютера, а не сужал его до одного только ПК.

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

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

AL> То есть у тебя не было цели общаться. На площадке для общения. Ты странный.

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

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

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

AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

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

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

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

Если ты чего-то не понял, то это не значит, что я не пытался тебе это объяснить. Это лишь означает, что попытка оказалась неудачной. Но из этого не следует, что я не пытался. Ну, тебе опять кажется, что я сделал недостаточно. А у меня другое мнение.

AL> Не нужно никуда лезть. Нужно всего лишь попытаться сказать что ты думаешь, а не что получится.

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

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

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

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

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

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 17:37:21


AL> А не надо сводить к трём числам. Я как раз максимально расширял понятие компьютера, а не сужал его до одного только ПК.

AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

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

AL> Не нужно никуда лезть. Нужно всего лишь попытаться сказать что ты думаешь, а не что получится.

Мне кажется, ты путаешь неформальное общение с философской конференцией. Для общения достаточно неформального утверждения, которое всем представляется очевидным. Если же на самом деле это не так, то возникает большая проблема. Надо формально выяснять, что на самом деле имеется в виду под 64-битным компьютером? То ли это ILP32LL, а может LP64 либо LLP64, а может ещё что-то другое? Не говоря уже о том, что тут имеется в виду под самим "компьютером"? Это ПК или мэйнфрейм, а может смартфон или контроллер, а может это машина Тьюринга? В итоге всё становится каким-то бессмысленным и туманным. И это не я его таким сделал, а твоё упрямое желание обязательно докопаться до самой сути.

Если утверждение не кажется очевидным, то, боюсь, что попытки дальше разложить его на части для анализа ничего не прояснят, а только всё запутают. И это не моя вина, а так устроен этот мир. Это всё та же самая старая философская дискуссия о противоречиях между редукционизмом и холизмом. А оно кому-то здесь нужно? Горгий вот так и говорил: «Ничего не существует; но даже если нечто существует, то оно не познаваемо; но даже если и познаваемо — то необъяснимо для другого». Ну, по крайней мере я так всё это вижу, как агностик :)

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-06-06 17:57:11


AL> Ты не пытался её максимально прояснить. Ты пытался её максимально запутать.

По поводу общения и философии.

Анекдот:

Приехал в деревню философ. Его дед встречает и спрашивает, ты кто такой? — Я философ. А чем занимаешься? — Диалектикой. Что такое диалектика? — Ну, дед, что ты спрашиваешь? Нет, говорит дед, мы люди образованные, в школе занимались, книги читаем, телевизор смотрим, радио слушаем, а ты как образованный человек должен нам объяснить. Ты зачем образование получал? — Ну ладно, говорит философ, объясню. Вот баня есть у вас в деревне? Есть, и мужское, и женское отделения. — Хорошо. Вот идем мы с тобой в баню, ты грязный, я чистый. Кому надо мыться? Дед говорит: «Ну, ясно, я грязный, мне надо мыться». — Нет, дед. Я чистый, мне чистоту поддерживать надо, а ты все равно грязный, чего тебе мыться? Понял дед? Дед говорит: «Сильная у вас диалектика. Понял, чего тут не понять». — Так вот это — тезис, запомни, дед. Но это, дед, не все, идем мы с тобой второй раз в баню, ты — грязный, я — чистый. Кому мыться? «Да понял я вашу диалектику, — говорит дед, — Ты чистый, тебе чистоту поддерживать надо, тебе надо мыться, а мне чего мыться, я грязный». — Нет, дед, что ты мелешь? Посмотри на себя, ты же грязный. Тебе надо мыться, а мне-то чего мыться, я чистый. Понял дед? «Понял». — Вот это, дед, антитезис. Но это не все, дед. Третий раз мы идем с тобой в баню. Ты грязный, я чистый. Кому мыться? Дед говорит: «Ничего не понимаю». Вот, дед, это и есть диалектика — синтезис.

Тоже слыхал от М.В.Попова у Д.Пучкова "Гоблина" на разведопросе.

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-13 01:49:11


vvs> Для общения достаточно неформального утверждения, которое всем представляется очевидным. Если же на самом деле это не так, то возникает большая проблема. Надо формально выяснять, что на самом деле имеется в виду под 64-битным компьютером? То ли это ILP32LL, а может LP64 либо LLP64, а может ещё что-то другое? Не говоря уже о том, что тут имеется в виду под самим "компьютером"? Это ПК или мэйнфрейм, а может смартфон или контроллер, а может это машина Тьюринга? В итоге всё становится каким-то бессмысленным и туманным.

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

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

Кстати, размер кода является является одной из мер сложности (колмогоровской сложности) алгоритма. Разумеется, существуют разные модели для такой меры, например двоичная комбинаторная логика или даже FRACTRAN, но они не могут считаться практичными. Но, вообще, сойдет и компилятор с Си или Лиспа. С этой точки зрения Форт, Лисп, Бейсик и Си - одни из самых простых практичных формальных языков. И что считать более эффективным: простой или сложный алгоритм? Является ли ответ на этот вопрос очевидным и однозначным? Кто-то тут ранее очень много говорил о сложности? ;)

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — vvs
2023-06-14 14:10:59


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

До меня вдруг дошло, что я сам в своё время стал жертвой такого же заблуждения :)

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

Другая проблема с редукционистским подходом - это экспоненциальный рост предложений языка. В итоге конструкции вроде 2+2=4 могут превратиться буквально в миллиарды более примитивных логических высказываний. Чтобы этого избежать как раз и приходиться прибегать к абстракции и созданию очень сложных синтетических понятий. Но такие понятия требуется предварительно изучать и воспринимать в контексте.

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

[>] Re: Солярисы
std.hugeping
vvs(ping,12) — Reprise
2023-06-16 10:16:54


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

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

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

Я сам виноват: ввязываюсь в споры о смысле слов. Очевидно, что в этом случае у всех будут очень разные понятия о "моде" и смысле использования вычислительной техники. А это реально неинтересная мне тема для обсуждения.

[>] Re: Plan 9: экстремальный KISS #1
std.hugeping
vvs(ping,12) — hugeping
2023-06-17 20:21:29


Сейчас подсел немного на эксперименты с СВМ ЕС и невольно сравниваю с другими ОС. Есть много аналогий, в частности, и с Plan 9. Для тех, кто не в курсе: СВМ ЕС это был советский аналог IBM VM/SP для S/370. Я в своё время ей воспользоваться не мог, поскольку наша ЕС-ка не имела терминалов ЕС-7920 (IBM 3270). Сейчас это всё стало возможным в эмуляторе и впечатления очень приятные.

Во-первых, это простота ядра. Никаих тебе процессов, а всё - виртуальная машина. Нет, это не похоже на Intel, где виртуализация это достаточно сложно и накладно. На мэйнфрейме это очень просто :) Можно, конечно, запускать и более тяжёлые ОС, но по умолчанию для программиста доступна ПДО (CMS у IBM). Это однозадачная и однопользовательская 32-битная ОС со встроенными средствами поддержки программиста, например довольно мощный текстовый редактор и отладчик. Короче PC DOS на стероидах. Но никакой графики, хотя для кого-то и это плюс :) Есть и текстовая оконная система и свой аналог Norton Commander (Far, Midnight commander) :)

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

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

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

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

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-08-10 13:29:05


hugeping> Когда началась СВО и многие IT-шники открыто заявили: "нам стыдно, нет войне", я не хотел высовываться. Хотел отмолчаться. Ну, это как говорят -- "моя личная позиция". Зачем о ней трубить всем на свете? Зачем заниматься пропагандой?

hugeping> Но в глубине души я знал. Если я не скажу прямо, что поддерживаю наших солдат, свою Родину в тяжёлое для неё время, то это будет такое-же предательство. Сейчас вижу, что написав ту первую заметку "Точка Z": ii://RZlA1xAFOxQMrrPRYC13 я всё-таки запустил какую-то цепную реакцию. Значит, всё-правильно сделал.

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

P.S. Кстати, для демонстрации неадекватного поведения совсем необязательно жить на Украине. Вон, в соседней теме ТС опускается до неспровоцированных личных оскорблений, причём делает это далеко не в первый раз и не только здесь. Что только в очередной раз подтверждает моё мнение о нём самом: горбатого могила исправит.

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-08-10 15:37:09


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

Это уже о другом: чужая душа - потёмки и человека не узнаешь, пока не съешь с ним пуд соли :) Поэтому меня всегда и коробит, когда я слышу о "друзьях" по интернету. Но и о "врагах" - тоже. Кстати, а ты не думал, что во всей этой спам-атаке есть какие-то странности? А была ли вообще Украина? Кроме украинского языка об этом ничего и не говорит, а это слишком уж очевидно. Ну да, теория заговора напрашивается (и паранойя) :)

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

Да Бог с ним - слишком много чести :) Цели такой не было, чтобы обязательно банить.

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

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

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 14:18:14


kot-av121>> Интересно.

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

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

Это таки бот был, похоже. А тебя действительно адресно атакуют и это вряд ли случайный прохожий.

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

P.P.S. Ещё одна деталь: сообщения появляются только в темах, где предварительно бот отметился безобидным комментарием.

P.S. Edited: 2023-09-05 14:24:06

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 16:11:53


hugeping> Ха-ха! Ты слишком высокого о себе мнения, мой украинский недоброжелатель. :)

Террорист - это не звание, а ругательство (назидательно).

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

P.S. Чтобы привлечь именно моё внимание, надо написать книгу на интересную мне тему. Ну или хотя бы какую-нибудь игру :) А иначе - зря потраченное время.

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

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 17:12:30


hugeping> У меня просто новый секретный проект! Но, возможно, скоро я его покажу :)

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

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

P.S. Edited: 2023-09-05 17:13:09

[>] Re: Мова
std.hugeping
vvs(ping,12) — hugeping
2023-09-05 18:23:26


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

Анекдот:

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

[>] Re: Победа будет Za нами!
std.hugeping
vvs(ping,12) — hugeping
2023-09-07 21:13:29


:)

Вспоминается Райкин: "Футбол — двадцать два бугая один мяч перекатывают! А вы выдайте каждому ну это… каток! Так они, 22 бугая, 22 бугая, да на полтора часа…. да на полтора часа и на 22 бугая… два пишем, семь на ум пошло. Они всё поле заасфальтируют!".

Следующий этап - заставить спамеров биткойны майнить?

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 12:46:14


Удалено. Случайно зацепил не ту клавишу.

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 12:47:01


hugeping> Всё это реализовано за счёт io.popen временных файлов и coroutine (переключение после чтения пачки строк). Поэтому - ненадёжно. Если вы запустите программу которая висит и ничего не выдаёт, red зависнет. Поэтому реализацию нельзя считать полноценной замену acme. Тем не менее, я пользуюсь этим механизмом для проверки орфографии.

https://luvit.io ? Дисклеймер: найдено в интернете, я не специалист по Lua и т.п.

P.S. Я долгое время относился к Lua пренебрежительно за его "игрушечность". Однако в какой-то момент мне зачем-то понадобилось ознакомиться с ним глубже и на меня произвели впечатление элегантность и минимализм языка, напомнило Лисп. И всё же большие и сложные проекты я бы на нём делать поостерёгся.

P.S. Для меня редактор - это ещё и интерфейс со средой исполнения, например CAS или ITP. Но для многих достаточно и меньшего. Emacs - это крайний пример, к тому же его может оказаться и недостаточно если интерфейс нетекстовый по природе.

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-10 16:40:20


hugeping> Если сделать специализированный код, то - можно, конечно. Я просто старался остаться в рамках API rein. Ну и вообще, хотел сохранить простоту.

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

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — vvs
2023-09-10 17:41:14


vvs> Ты, когда говоришь о простоте, всегда, на самом деле, подразумеваешь только самое необходимое

Кстати, я тоже замечал, что если у меня под рукой есть привычный инструмент, то я всё пытаюсь делать им. Ну, действительно, зачем плодить лишние сущности и изучать всё новые способы делать одно и то же, если у меня уже и так всё для этого было? А в расходы запишем необходимость в постоянном усложнении "простого" инструмента. Вот так и появились на свет Vim и Emacs (и luvit с emilua, Smalltalk и кто его знает что ещё :)

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-11 12:32:49


hugeping> У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

hugeping> - это приложение на основе браузера;
hugeping> - vscode пришёл из недр корпорации.

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

hugeping> Как я обхожусь без "фишек" современных редакторов? Наверное, мне они не так уж и нужны. Даже наоборот, вылезающие подсказки во время набора раздражают. А после acme я осознал, что и "раскраска" текста -- какая-то ненужная нелепость. Играет роль и то, что в моей области деятельности не нужно запоминать бесчисленное число методов и классов. Я могу писать код просто "из головы".

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

Мои претензии к VSCode - текстовый редактор, который даже не работает в текстовом режиме, а текстовый процессор программисту не нужен, к тому же здесь он всем уступает.

hugeping> Я не чувствовал, что инструмент "принадлежит" мне в полной мере.

Тогда жду, что следующим проектом станет свой язык программирования :) Нет, ну серьёзно, у Пайка были свои ОС (Plan 9 и Inferno), свой редактор Acme и свои языки - Limbo и Go. Правда он это делал не один, да и, к тому же, не бесплатно.

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

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-11 13:19:44


VSCode может служить интерфейсом к самым разным веб приложениям. Например, он является клиентом GutHub Codespaces и Copilot. Я знаю и другие проекты, где он используется для интерактивных документов, где вместе присутствуют код, данные и документация, как в Jupyter. Если кто видел Wolfram Mathematica, то там такой же подход, только на основе интерактивного блокнота: https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BD%D0%BE%D1%82

Использование чисто текстовой среды, как в Emacs, затрудняет создание таких интерфейсов, особенно при использовании сети и интернет протоколов. Хотя и в Emacs можно пытаться такое реализовать, но он тут явно уступает по своим возможностям. Большинство людей не станет использовать Lynx вместо Firefox, да и не везде он будет работать правильно (в банке).

P.S. Edited: 2023-09-11 13:20:01

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-12 14:12:38


vvs>> Тогда жду, что следующим проектом станет свой язык программирования :) Нет, ну серьёзно, у Пайка были свои ОС (Plan 9 и Inferno), свой редактор Acme и свои языки - Limbo и Go. Правда он это делал не один, да и, к тому же, не бесплатно.

hugeping> Я не потянул бы такое. Хотя мне уже тут советовали посмотреть Оберон. :)

Смотря что иметь в виду. Изобрести оригинальный универсальный язык - это искусство. Придумать же практичный прикладной язык для личного пользования - не сложнее, чем написать свой текстовый редактор. Ну пользуются же люди URQ :) Вот и подтверждение практичности такого подхода: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5

Разработать же транслятор - вообще дело техники и желания почитать соответствующую литературу. Короче, главное - не дрейфить :)

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — vvs
2023-09-12 17:59:38


Кстати, напомнило. Когда Hewlett-Packard запустили линейку первых программируемых калькуляторов со встроенной CAS, то для них был специально придуман язык RPL (Reverse Polish Lisp). Собственно почти все дальнейшие их калькуляторы, совместимые с этими и являлись реализацией RPL с кучей ПО.

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-09-25 20:06:07


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

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-26 14:39:53


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

По опыту здесь чаще всего доминируют VSCode, Emacs и, в меньшей степени, Vim/Neovim. Я тут говорю именно о "редакторах", а не IDE типа Eclipse или IntelliJ IDEA, хотя граница там достаточно размыта. Использовать же какой-то специализированный редактор отдельно, только для редактирования текста, в таком случае уже избыточно, КМК. Кстати, ведь и Acme задумывался именно для такого применения.

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

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-09-26 19:15:33


AL> Я уже давно рассматриваю редактор не столько как редактор. Emacs ибо. Хотя напрямую как интерфейс к ОС его рассматривать не совсем правильно, но вот как вычислительную среду с интерфейсом доступа к ОС уже корректнее.

Смотря какая ОС. В GNU Scheme в качестве интерфейса по умолчанию есть Edwin - тот же Emacs. Сассман - который (со)автор Scheme - использует его как интерфейс в своих курсах/книгах, таких как "Структура и интерпретация компьютерных программ" и в своей CAS Scmutils (Scheme Mechanics). У него, кстати, есть книги и по математике и по физике с той же CAS. Она сама вот тут лежит: https://groups.csail.mit.edu/mac/users/gjs/6946/installation.html

AL> Как раз acme офигенный пользовательский интерфейс. По крайней мере в родной для него ОС. Но и в GNU/Linux весьма себе вкусная вещь. А вот vi/vim/neovim мной только как редакторы воспринимаются. Хорошие, но редакторы. Не прижилось у меня более широкое их использование.

У меня все редакторы используются так, как задумано авторами приложений. Я только пользователь.

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-10-02 14:24:34


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

Если ОС это и есть реализация какого-то языка, то и выбора особого нет. Например HP 48, в которых RPL - это и есть вся ОС. На z/OS - это часто ISPF, поскольку там обычно есть только блочные терминалы. Или какой-нибудь Smalltalk, MIT Scheme, Wolfram Mathematica или другая интерактивная среда, которые от ОС мало зависят. В Lisp или OCaml использовать голый REPL - тоже не самый удобный вариант. Поэтому и Emacs. Да и в Plan 9 я Gnome что-то не заметил.

Но для Linux, Windows, какой-нибудь Sony PlayStation, где среда разработки для большинства пользователей совершенно не нужна, есть специализированные GUI. Так сложилось исторически.

А зачем, например, Пётр делает Red? Ну тоже есть у него на то свои причины :)

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — Andrew Lobanov
2023-10-02 19:59:18


AL> Но зачем мне из вима делать интерфейс к ОС

Может я неправильно понял вопрос? Если имеется в виду, что Emacs - это интерфейс, а Vim - нет, то это вовсе не так. Vim и Emacs отличаются очень поверхностно, т.е. это дело привычки. Я пользуюсь обоими и разница для меня только в языке реализации: elisp в Emacs и vimscript в vim. Модальный режим не в счёт. Neovim ещё добавляет нормальную поддержку Lua.

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

Ну вот многие ли в DOS пользовались командной строкой? Большинство перешли на Norton Commander и были довольны. Тем более, кто сейчас пользуется терминалом в Windows? Потому что их устраивает данный разработчиками GUI и о большем они не мечтают. Это инерция мышления и привычка. Я ещё раньше называл это данью моде, но это уже вызвало споры. Тогда использование редактора в качестве интерфейса тоже определяется привычками и целесообразностью перемен. Зачем что-то менять если всё и так устраивает?

GUI тоже ведь зародился не на пустом месте, а сначала продвигался, как интерфейс к системам типа Xerox Alto, а потом Smalltalk или Oberon. Потом к нему просто привыкли и первоначальные мотивы уже утратили значение. Эти системы, в свою очередь, тоже продвигались просто, как более интуитивный интерфейс для неспециалистов. Тогда даже появился модный термин "рабочая станция", а в качестве ОС там обычно фигурировал какой-то язык программирования. Сейчас эталоном GUI можно считать смартфон, где это его визитная карточка. И действительно, пользоваться текстовым интерфейсом там было бы совсем затруднительно. На серверах же традиционно прижился интерфейс командной строки, но это просто традиция, как показывает тот же Plan 9. Кстати, Inferno - это попытка сделать Plan 9 переносимым на разные платформы и он мало чем, по сути, отличается от того же Smalltalk.

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-23 20:04:40


hugeping> У кого-то может возникнуть вопрос. А почему я не использую vscode? Потому что моя профессия приносит мне удовольствие и я разборчив в своих предпочтениях. Что касается vscode:

hugeping> - это приложение на основе браузера;
hugeping> - vscode пришёл из недр корпорации.

Я могу тебя понять :)

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

Кстати, VS Code - это единственный из уже упоминавшихся редакторов, который сохраняет изменения непосредственно в сам редактируемый файл (дата создания файла не меняется). Остальные же меняют только его копию. Зато ему не нужны и дополнительные права на создание, удаление и переименование файлов на сервере :)

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 13:29:54


hugeping> Правда, всё время что-то дописываю, а это немного отвлекает собственно от самой работы. :)

Я ещё много лет назад хотел себе интерактивную визуальную систему для работы. Нашёл тогда только Smalltalk и Oberon. Потом, правда, ещё познакомился с Plan 9 и Inferno. Так там _всегда_ надо что-то дописывать, в этом и суть интерактивного программирования :) Сейчас, кстати, читаю "Squeak by example 6.0": интерактивная среда там никем не превзойдена до сих пор! А ты видел Skein в Inform 7? Вообще, у этих систем много общего: интерактивная динамическая среда, текст программы похож на обычный английский язык, мощные средства отладки, исследовательское программирование.

hugeping> Да, уже вижу что написан он грязновато, но это вечная проблема.

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

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 17:10:21


hugeping> Skein не видел. Про сам Inform 7 знаю и смотрел на "код программ".. В итоге, правда, настроен довольно скептически. Может быть кому-то проще писать на таком как бы человеческом языке, но мне показалось что это принесёт больше проблем. Хотя сам неоднократно думал над DSL который бы компилировал в код INSTEAD игры, но там я думал о специализированном синтаксисе.

А как тогда тебе этот код (фрагмент большой)?
import Game.Metadata
import Game.MyNat.Multiplication


World "Tutorial"
Level 1
Title "The rfl tactic"

Introduction
"
# Read this first

Each level in this game involves proving a mathematical theorem (the \"Goal\").
The goal will be a statement about *numbers*. Some numbers in this game have known values.
Those numbers have names like $37$. Other numbers will be secret. They're called things
like $x$ and $q$. We know $x$ is a number, we just don't know which one.

In this first level we're going to prove the theorem that $37x + q = 37x + q$.
You can see `x q : ℕ` in the *Objects* below, which means that `x` and `q`
are numbers.

We solve goals in Lean using *Tactics*, and the first tactic we're
going to learn is called `rfl`, which proves all theorems of the form $X = X$.

Prove that $37x+q=37x+q$ by casting the `rfl` tactic.
"

/-- If $x$ and $q$ are arbitrary natural numbers, then $37x+q=37x+q.$ -/
Statement (x q : ℕ) : 37 * x + q = 37 * x + q := by
  Hint "In order to use the tactic `rfl` you can enter it in the text box
  under the goal and hit \"Execute\"."
  rfl

TacticDoc rfl
"
## Summary

`rfl` proves goals of the form `X = X`.

In other words, the `rfl` tactic will close any goal of the
form `A = B` if `A` and `B` are *identical*.

`rfl` is short for \"reflexivity (of equality)\".

## Example:

If the goal looks like this:

```
x + 37 = x + 37
```

then `rfl` will close it. But if it looks like `0 + x = x` then `rfl` won't work, because even
though $0+x$ and $x$ are always equal as *numbers*, they are not equal as *terms*.
The only term which is identical to `0 + x` is `0 + x`.

## Details

`rfl` is short for \"reflexivity of equality\".

## Game Implementation

*Note that our `rfl` is weaker than the version used in core Lean and `mathlib`,
for pedagogical purposes; mathematicians do not distinguish between propositional
and definitional equality because they think about definitions in a different way
to type theorists (`zero_add` and `add_zero` are both \"facts\" as far
as mathematicians are concerned, and who cares what the definition of addition is).*
"

NewTactic rfl

Conclusion
"
Congratulations! You completed your first verified proof!

Remember that `rfl` is a *tactic*. If you ever want information about the `rfl` tactic,
you can click on `rfl` in the list of tactics on the right.

Now click on \"Next\" to learn about the `rw` tactic.
"

Это уже DSL для реального языка программирования. Эту игру уже реально используют в некоторых университетах для введения в формальную математику :)

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-24 18:51:04


hugeping> Skein не видел. Про сам Inform 7 знаю и смотрел на "код программ".. В итоге, правда, настроен довольно скептически. Может быть кому-то проще писать на таком как бы человеческом языке, но мне показалось что это принесёт больше проблем. Хотя сам неоднократно думал над DSL который бы компилировал в код INSTEAD игры, но там я думал о специализированном синтаксисе.

Кстати, совсем забыл - есть же ещё Dialog:
Dialog is a domain-specific language for creating interactive fiction. It is heavily inspired by Inform 7 (Graham Nelson et al. 2006) and Prolog (Alain Colmerauer et al. 1972), and substantially different from both.
https://linusakesson.net/dialog/

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-26 20:19:12


hugeping> Про диалог тоже слышал. А вот твой пример не понял прям совсем. :) Даже специально паузу взял, думал изучу на досуге. Загадочно и непонятно. Как ФП :)

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

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

Ты ведь сказал, что уже думал о DSL для INSTEAD, но со своим специальным синтаксисом, а это ведь такой DSL и есть, только для другого языка. Но ты почти угадал - это действительно ФП :)

Сама игра в браузере тут, можешь попробовать поиграть и увидеть результат такого подхода на деле:
https://adam.math.hhu.de/#/g/hhu-adam/NNG4
Там и хостинг для других подобных игр, типа itch.io

[>] Re: Каждый программист должен написать свой редактор
std.hugeping
vvs(ping,12) — hugeping
2023-10-26 20:43:52


Да, ещё код сервера для реализации этого DSL - 3k строк. На функциональном языке :) Клиент, отвечающий за UI - на JS (точнее TypeScript).

https://github.com/leanprover-community/lean4game

Там ещё одна девочка недавно спрашивала: а нельзя ли поменять в игре менюшный интерфейс на парсерный :)

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2023-11-13 21:13:05


hugeping> Записал и выложил новый видеоподкаст. INSTEAD и парсерные игры.

Браво! Мне понравилось.

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

Небольшие замечания на будущее. Элизы в моем emacs вообще-то нет, требуется специально её устанавливать, зато везде есть dunnet, который почему-то не упоминается вовсе. Так же не мешало бы упомянуть и SHRDLU, которая являлась настоящей реализацией ИИ для своего времени, тоже в MIT. Музыка в игре временами заглушала речь, да и голос, бодрый и выразительный в начале, несколько увял к концу :(

В целом же всё было изложено весьма познавательно. Спасибо большое!

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2023-11-14 14:08:17


vvs>> Небольшие замечания на будущее. Элизы в моем emacs вообще-то нет, требуется специально её устанавливать

Нашёл-таки у себя doctor - это, похоже, клон Элизы, но только безымянный.

hugeping> Там много проблем было со звуком. Я даже выложил 2й ролик https://www.youtube.com/watch?v=el2Dh2HwB3s где пытался исправить звук, но возможно сделал ещё хуже. Не так просто без опыта это делать.

Я и не думал, что это легко, просто сообщил для сведения. И я и не заметил, что опыта не хватает - мне наоборот показалось, что весьма профессионально снято :)

[>] Re: Последний день лета
std.hugeping.micro
vvs(ping,12) — hugeping
2024-01-13 21:31:54


hugeping> Всё-таки выпустил в последний день лета INSTEAD 3.4.0. Этот релиз сильно задержался и несёт в себе долгожданную поддержку HiDPI.

Долгое время я избегал видеорежима 1920x1080, поскольку настроить все приложения для нормальной в нём работы было непросто. Однако зрение давно не радует, старость - не радость :) Сегодня случайно попробовал масштабировать шрифты в терминале. Результат понравился, потом одно за другим и вот - свершилось :) Моё счастье, что я использую достаточно мало прилосжений, поэтому возиться пришлось не так много.

Наконец добрался и до инстеда и решил, что впечатления могут кого-то заинтересовать. Во-первых, я уже пробовал раньше пользоваться параметром dpi в режиме 1280x720 и, вроде, всё работало из коробки. Теперь же возникло много проблем. Инстед берёт dpi от SDL и сейчас он всегда 96dpi, независимо от монитора и видеорежима. Я у себя поменял его на реальный dpi монитора, но инстед тогда выбирает режим 846x634 в окне и с очень мелким шрифтом. Эксперименты с разным dpi однозначного результата не дали по ряду причин. Почему-то окно вообще не появляется с первого раза, а только после переключения между терминалом и обратно. Во-вторых, чем больше разрешение, тем заметнее начинает тормозить курсор мыши. Причём это наблюдается только в окне инстеда. Можно, конечно, задать конкретный видеорежим, но тогда его придётся менять для каждой игры, где нестандартная тема, чего хотелось бы избежать. Можно менять размер шрифта, но тогда каждый раз при замене видеорежима придётся менять и его тоже. В общем куда ни кинь - всюду клин. Я так понимаю, что лучше всего пользоваться полноэкранным режимом, но хотелось бы всё-таки в окне.

Всё это я пишу вовсе не с целью что-то покритиковать, а в надежде, что у кого-то появится идея, как можно было бы добиться лучшей независимости от видеорежима и монитора с наименьшими усилиями :) Да, и остаётся ещё проблема с широким экраном 16:9 - инстед, вроде всегда масштабирует в предположении, что отношение сторон жестко зафиксировано 4:3.

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2024-01-27 17:59:49


OK, перебрался в эту тему :)

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

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

А основной вопрос был там такой: при запуске инстеда в окне шрифт по умолчанию слишком мелкий. В настройках стоят: тема и HQ. Версия инстеда 3.5.1, откомпилированная с исходников, ОС Linux (NixOS), видеорежим 1920x1080. Инстед выбирает коэффициент масштабирования 1.058333, поскольку у моего монитора DPI 101.6. Это ещё одна косметическая проблема: я не могу указать дробный DPI, но если инстед берет его от SDL, то реально использует именно это дробное значение.

Но основная проблема, как я уже сказал в мелком шрифте. Коэффициента 1.058333 просто недостаточно на таком мониторе.

P.S. Edited: 2024-01-27 17:59:54

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — vvs
2024-01-28 14:35:59


hugeping> Вот обсуждение на форуме на эту тему:
hugeping> https://instead-games.ru/forum/discussion/766/podderzhka-dpi-v-instead-chto-delat

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

В Windows XP таки масштабируется нормально :)

С моей точки зрения проблема здесь в том, что основная единица измерения, от которой выполняется масштабирование, выбрана произвольно. Согласно википедии, для первоначального значения DPI Apple выбрала 72 типографских пункта, что было вызвано размером экрана, соответствовавшего тогда размеру листа бумаги. Microsoft увеличила это значение ещё на треть и получилось 96. В настоящий момент оно не соответствует никакому физическому явлению и является историческим артефактом.

Если просто вычислить размер экрана, соответствующего разрешению 800x600 и DPI 96, то получается 10" по диагонали - это очень маленький экран. У меня нормальный размер шрифта получается только если исходить из размера экрана 15", что соответствует 67-68 DPI или коэффициет масштабирования 150% (что, кстати, и было реально задано мной в DPI у Windows XP).

Вообще, в современных версиях Windows и Linux DPI вообще нигде не используется, а есть другие API для определения масштаба изображения. Особенно мешает тот факт, что реальный DPI монитора не имеет ничего общего с 96 DPI. Тем не менее я понимаю, чем было вызвано такое решение в INSTEAD - это кажется простым и независимым от платформы способом определения масштаба, но на практике это вовсе не так. Например, в последних версиях Gnome этот параметр всегда принудительно устанавливается 96 DPI для любых мониторов. Ожидать, что среднестатистический пользователь будет знать, как рассчитывается DPI изображения - достаточно нереалистично, особенно если учитывать, что этот параметр даже недокументирован в INSTEAD.

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

Просто мысли вслух :)

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2024-01-29 16:27:18


Опять зацепил не ту клавишу

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2024-01-29 16:49:57


hugeping> Кроме видеорежима хорошо бы сказать размеры монитора, тогда бы мы проверили действительно ли dpi равен 101 :)

Не веришь джентльмену на слово? Это же смертельное оскорбление :)

Согласно данным производителя, диагональ экрана 21.5", отношение сторон 16:9. Рассчёт показывает 476ммx268мм, xdpyinfo говорит 480ммx270мм - почти не врут. Значит DPI или 102.4x102.4 или 101.6x101.6, смотря кому доверять больше. RandR берет DPI из EDID монитора, лень сейчас туда лезть и смотреть, что там прописано - и так ясно.

hugeping> А вообще, в таком случае можно указать параметр -dpi число -- чтобы инстед брал именно его, а не тот, что стоит в системе. То-есть, например -dpi 150 -- коэффициент масштабирования станет 150/96

hugeping> Эту настройку можно записать в профиле инстед. Я сейчас точно не скажу где он лежит (это зависит от ОС и от сборки) но в Linux думаю проще опцию добавить (командной строки).

Это мне как раз известно и указать -dpi 144 я могу. Вопрос, что делать остальным, кто окажется в моём положении? Я тут уже высказывал мнение, что это слишком косвенный и непонятный способ задать просто коэффициент масштабирования 1.5. И, кстати, опять вопрос, что тогда всё-таки делать с дробным DPI?

hugeping> Мы исходим из того, что сегодня DPI всё-таки указывается верно. Ну по кр мере, я вижу на своих Linux системах что действительно в зависимости от размера экрана картинка масштабируется корректно (в оконном режиме!).

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

vvs>> Если просто вычислить размер экрана, соответствующего разрешению 800x600 и DPI 96, то получается 10" по диагонали - это очень маленький экран.

hugeping> Это если ты меряешь dpi по диагонали. В инстеде используется "горзонтальный" dpi.

Нет: 800 / 96 = 8.33" и 600 / 96 = 6.25", по теореме Пифагора диагональ - 10.42".

vvs>> Особенно мешает тот факт, что реальный DPI монитора не имеет ничего общего с 96 DPI.

hugeping> Вот тут я не понял. Реальный DPI монитора должен быть реальным DPI. Ну то-есть, честным DPI. Если у тебя монитор 96 dpi (горизонтальный) то предполагается что SDL2 вернет именно его и промасштабирует как dpi/dpi-темы. dpi-темы можно указать, но если она не указана - то считается что тему разработали на 96 dpi, что не очень далеко от правды, если говорить о стандартных темах.

У меня честный DPI - 101.6 (см. выше). Для темы 800x600 и DPI 96 - это значит, что она была разработана для 10" монитора, где шрифт нечитаем.

Как я уже упоминал, DPI 96 не соответствует никакому реальному монитору и был рассчитан на мониторы Apple в незапамятные времена, с поправкой Microsoft на то, что мы сидим от экрана на треть дальше, чем от книги. Давай сначала зададимся вопросом, для какого разрешения и диагонали экрана был это DPI? Ну уж точно не для 800x600 10".

hugeping> Я на gnome сейчас вот в браузере пишу этот текст и у меня масштаб INSTEAD разный на двух системах. От 0.96 до 1.6. Забавно, что xdpyinfo во всех случаях показывает 96x96, но вот SDL api всё-таки возвращает откуда то "честное" dpi.

У меня и xdpyinfo, и SDL, и INSTEAD видят то, что я им укажу. По умолчанию 96x96, я специально меняю на DPI монитора с помощью `xrandr --dpi from-output`, но это даёт 101.6, т.е. 101.6 / 96 = 1.058333, а не 1.5, как я бы ожидал в реальности.

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


hugeping> Мы исходим из того, что сегодня DPI всё-таки указывается верно. Ну по кр мере, я вижу на своих Linux системах что действительно в зависимости от размера экрана картинка масштабируется корректно (в оконном режиме!).

Ты мне сейчас кое-что напомнил: действительно, некоторые дистрибутивы линукса патчат гном. Так что я не удивлюсь если где-то до сих пор DPI отличается от 96.

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2024-01-30 15:32:05


hugeping> У меня xdpyinfo показывает 96, но SDL2 возвращает что-то иное, так что масштаб становится 1.5.
hugeping> Что именно берет SDL2 я не знаю, но это честный какой-то DPI.

Странно. А это точно SDL? Может ты раньше прописал масштаб в профиль инстеда и забыл? Если удалить файл конфигурации тоже масштабирует 1.5:1? А какая версия SDL? Нет ли там каких-то патчей специфичных для дистрибутива?

У меня в гноме установлено масштабирование шрифта 1.5 и все приложения гнома имеют нормальный масштаб и даже Firefox. Индивидуальных настроек требуют все не GTK-приложения, как INSTEAD, mupdf, wine, RetroArch или DOSBox. Но кроме INSTEAD никто больше не использует DPI. В wine есть свой собственный DPI, но он совсем какой-то другой масштаб даёт и не связан с монитором вообще.

hugeping> А какие темы-игры? В принципе, можно поменять dpi с 96 на 72.

Я тестировал только на Tutorial. Кстати, я там случайно заметил баг в описании командной строки: написано "-windows", а должно быть "-window" - это на русском, на английском всё правильно.

Менять на 72 я особого смысла не вижу. А почему тогда именно 72? Это опять какая-то магическая константа. Мне так больше подходит 67, а кому-то может и нет.

hugeping> Какие решения ещё тут могуть быть?

hugeping> Ты предлагаешь настройку "масштаб" сделать в меню?

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

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

Кстати, я заметил, что Tatham's puzzles имеют нормальный размер шрифта, хотя сами вроде используют только x.org. Похоже, что гном что-то меняет и для сервера шрифтов x.org тоже: http://www.chiark.greenend.org.uk/~sgtatham/puzzles/

P.S. А-а, теперь вижу, что там GTK используется.

P.S. Edited: 2024-01-30 15:41:20

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


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

Ну тут всё совсем плохо :(

Запускаю Tutorial: масштаб 1.058333, режим 846x634, окно, шрифт - мелкие. Выхожу, указываю -dpi 144: масштаб 1.5, режим 1200x900, окно, шрифт - нормальные. Выбираю в меню игру "Кнопка": масштаб 1.5, режим 1920x1080, окно не помещается на экране, глюки, ни текста, ни курсора нет вообще. Переключаюсь между окнами и обратно: текст появляется нормального размера, окно так и не умещается, курсор тормозит. Выхожу, не указываю -dpi: окно нормальное, текст мелкий. Выбираю в меню опять Tutorial: всё, как и раньше - всё мелкое.

hugeping> Пп2 можно проверить. Воткни в graphics.c в функции gfx_get_dpi() в конце printf("%f\n", hdpi) и сравним с твоим реальным dpi;

Да, ты прав. SDL действительно видит настоящий DPI - 101.599998, хотя xdpyinfo и показывает 96x96, т.е. для инстеда менять его нет необходимости. Но это ничего не даёт на практике :(

[>] Re: Новости с INSTEAD фронта
std.club
vvs(ping,12) — hugeping
2024-01-30 20:32:15


hugeping> А надо было сделать не это, надо было сделать _другое_.
hugeping> А именно - открыть тему которую ты используешь (.ini файл) и в теме написать
hugeping> scr.dpi = 72 (или другое число)

Результат-то практически тот-же, только вместо -dpi 144 я тогда пишу scr.dpi = 67 (72 тоже пойдёт, но несколько мельче). И всё-равно в "Кнопке" слишком большое окно, графические глюки и тормозит курсор. Единственное отличие - в главном меню INSTEAD теперь тоже нормальный шрифт (если последней была загружена нормальная тема).

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

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

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

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

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

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


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

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

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

hugeping> Это всё-таки уже особенностями конкретной игры.
hugeping> Большое окно, значит нужно scr.dpi в теме для кнопки другое выставить и перезалить в репозиторий.

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

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

Нет, у меня такие глюки были и в других играх INSTEAD, только я не всегда могу их воспроизвести. Возможно зависит от размера окна? Выглядит так, как будто после переключения режима буфер не в фокусе и не обновился, а после переключения окон внезапно отображается.

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

Там есть когда рывками, а есть когда он начинает ползти с запаздыванием. И не только в "Кнопке" и только в большом разрешении. Явно OpenGL не используется, а отрисовывается процессором и производительности ему не хватает. У меня 3 ГГц, если что. А вот OpenGL только версии 2.1. Но в традиционных приложениях и играх ничего такого не ощущается, а INSTEAD тоже вроде не AAA видео игра.

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


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

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

Я только что пошёл и запустил INSTEAD на Windows XP, где другой компьютер и графическая карта, но такой же точно монитор и видео режим. И я вижу, что во-первых размер окна "Кнопки" примерно равен 31 см, но на моём компьютере он равен примерно 33 см. Дальше я вижу, что в душе слово "кран" находится в начале второй строки, а у меня в конце первой, т.е. размер шрифта тоже разный. Это легко объяснить если посмотреть даже на коэффициент масштабирования, который в Windows равен 1.0, а у меня - 1.058333. Это при том, что я ничего не меняю и использую DPI по умолчанию (96).

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

Теперь насчёт "честного" dpi, а где его взять? В Windows нет ничего, кроме dpi экрана, который может быть любым, какой я укажу или 96 по умолчанию. В Linux у меня есть xdpyinfo, который показывает 102 если я использую для его установки xrandr --dpi, несмотря на то, что на самом деле он вообще-то тут равен 101.6. Если я переключаю видеорежим с помощью xrandr из 1280x720 в 1920x1080, то он тогда равен 144. Если же я переключаю видеорежим из управляющей панели гнома, то он всегда будет равен 96. А вот SDL всегда видит "честный" dpi: 101.6 на Linux и 96 на Windows XP. Кстати, википедия утверждает, что DPI вообще нет в Windows 8 а в остальных версиях у него косметический характер.

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

А как мне поменять размер шрифта для отдельно взятой игры? Ведь это глобальный параметр и его придётся менять каждый раз заново.

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

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

Для "Кнопки" и "Перехода", из-за большого размера окна, не остаётся никакой другой возможности масштабирования, кроме масштабирования шрифта. К сожалению это глобальный параметр и для каждой игры его приходится настраивать каждый раз заново. Это, разумеется, справедливо для всех игр с большим окном на мониторе с не очень большим DPI. И если для темы 800x600 изменение DPI обычно помогает, то тут это бесполезно. При этом на экране 1280x720 шрифт с -dpi 96 (по-умолчанию) будет выглядеть нормально, а на 1920x1080 - уже нет. Замечу, что это может быть один и тот же монитор. Изменение умолчания scr.dpi = 67.7 поможет в обоих случаях, однако рассчитать масштаб для командной строки становится уже совсем затруднительным, например даже -dpi 96 уже может означать самый разный коэффициент масштабирования для разных тем. Но даже смена уже заранее известного DPI выполняется только методом проб и ошибок, пока результат не будет удовлетворительным. Текущее умолчание 96 работает нормально по-видимому только на экранах с достаточно большим DPI (мониторы 21.5" оказываются в невыгодном положении). Хотя что тогда говорить про смартфон с DPI 480? Пользоваться виртуальным экраном?

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

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

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

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

hugeping> Да нет, используется. Спрайты грузятся заранее и потом блитятся SDL2, который ускорение должен использовать. Чтобы его отключить, пишешь -software.

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

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

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

В NixOS такое обычно невозможно, только если специально постараться.

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

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

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

linux-vdso.so.1 libz.so.1 liblua.so.5.3 libm.so.6 libSDL2-2.0.so.0 libSDL2_mixer-2.0.so.0 libSDL2_image-2.0.so.0 libSDL2_ttf-2.0.so.0 libgtk-3.so.0 libgdk-3.so.0 libpangocairo-1.0.so.0 libpango-1.0.so.0 libharfbuzz.so.0 libatk-1.0.so.0 libcairo-gobject.so.2 libcairo.so.2 libgdk_pixbuf-2.0.so.0 libgio-2.0.so.0 libgobject-2.0.so.0 libglib-2.0.so.0 libc.so.6 libdl.so.2 libreadline.so.8 libncursesw.so.6 ld-linux-x86-64.so.2 libX11.so.6 libXext.so.6 libXcursor.so.1 libXi.so.6 libXfixes.so.3 libXrandr.so.2 libXss.so.1 libpthread.so.0 librt.so.1 libmodplug.so.1 libfluidsynth.so.3 libopusfile.so.0 libtiff.so.6 libwebp.so.7 libsharpyuv.so.0 libgmodule-2.0.so.0 libpangoft2-1.0.so.0 libfontconfig.so.1 libfribidi.so.0 libepoxy.so.0 libatk-bridge-2.0.so.0 libtracker-sparql-3.0.so.0 libxkbcommon.so.0 libwayland-client.so.0 libwayland-cursor.so.0 libwayland-egl.so.1 libXdamage.so.1 libXcomposite.so.1 libXinerama.so.1 libthai.so.0 libfreetype.so.6 libgraphite2.so.3 libpixman-1.so.0 libEGL.so.1 libpng16.so.16 libxcb-shm.so.0 libxcb.so.1 libxcb-render.so.0 libXrender.so.1 libGL.so.1 libjpeg.so.62 libmount.so.1 libselinux.so.1 libffi.so.8 libpcre2-8.so.0 libstdc++.so.6 libmvec.so.1 libgcc_s.so.1 libgomp.so.1 libgthread-2.0.so.0 libsndfile.so.1 libpulse-simple.so.0 libpulse.so.0 libasound.so.2 libjack.so.0 libogg.so.0 libopus.so.0 liblzma.so.5 libdeflate.so.0 libbz2.so.1 libbrotlidec.so.1 libexpat.so.1 libatspi.so.0 libdbus-1.so.3 libjson-glib-1.0.so.0 libxml2.so.2 libsqlite3.so.0 libdatrie.so.1 libGLdispatch.so.0 libXau.so.6 libXdmcp.so.6 libGLX.so.0 libblkid.so.1 libpcre.so.1 libFLAC.so.12 libvorbis.so.0 libvorbisenc.so.2 libmpg123.so.0 libmp3lame.so.0 libpulsecommon-16.1.so libcelt0.so.2 libbrotlicommon.so.1 libsystemd.so.0 libcap.so.2

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


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

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

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

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

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

Это субъективно. Мне, например, требуется очень сильно напрягать зрение, пытаясь разглядеть мелкий шрифт на 1920x1080. А вот 1280x720 для меня вполне комфортно. Причём монитор один и тот же и ограничение выглядит искусственно.

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

И? То есть механизм далеко не универсален и его результат во многом зависит от удачи.

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

hugeping> Код INSTEAD.

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

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

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

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

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

Вопрос был о разработчике игры. Он тоже должен изучать код SDL, чтобы указать правильный DPI в своей теме? А какие у него сегодня альтернативы? Как этот механизм должен работать на практике?

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

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

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

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

Это и не был никакой "антидовод" ни на что - это была шутка. И я специально указал смайлик, чтобы это было очевидно.

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

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

Pages: 1 2 3 4 5 6