RSS
Pages: 1 2 3 4 5 6 7
[>] Re: Игры
pipe.2032
vvs(ping,12) — Andrew Lobanov
2023-07-27 12:32:13


AL> Я честно пытаюсь каждый раз, но ты пока что успешно игнорируешь любые объяснения %)

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

[>] 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й раз написал.

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

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


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

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

И если всё так и есть, то почему же при -dpi 102 я вижу одно и то же слово в разных строках на разных системах? Где логика?

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

То есть? Теперь уже я ничего не понимаю. Я переключаю разрешения на одном мониторе и сравниваю результаты. Весь же разговор и начался с того, что я перешёл с разрешения 1280x720 на 1920x1080 и что из этого вышло. А почему я предпочитал меньшее разрешение я тоже упоминал неоднократно: потому что там шрифт крупнее, а моё зрение мне дорого, как память и читать мелкий шрифт - глазам больно. Ты же в последних сообщениях уже говоришь, что это всё не имеет значения. Ну извини, но для меня имеет, ещё какое. Хотя ты сначала доказывал, что размер изображения должен везде совпадать при "честном" dpi. Отсюда и вопросы: что это такое, где его взять и почему размер всё равно разный?

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

P.S. Было бы странно если бы Птолемей набросился с бранью на Галилея, за то, что тот утверждал, что Солнце вращается вокруг Земли, а не наоборот.

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


hugeping> В процессе нашего обсуждения я проверил следующие утверждения:
hugeping> 1) При изменении -dpi масштабируется картинка, но не масштабируется шрифт - НЕ ПОДТВЕРЖДЕНО

А я и не это утверждал, а совсем другое: шрифт и картинка имеют разное масштабирование. Это видно уже потому, что при одинаковом dpi одно и то же слово находится в разных строках. EDIT: Был не прав, проблема в точности дробного DPI.

hugeping> 2) В Гноме dpi всегда 96 -- НЕ ПОДТВЕРЖДЕНО (xdpyinfo показывает 96, но SDL возвращает честный dpi), проверено на разных системах с разным dpi, DPI всегда совпадает с реальным.

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

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

Объяснить я её тоже не могу. Но у меня это на всех системах наблюдается. Запишем в загадки.

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

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

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

И я тоже ещё раз повторю свои проблемы:

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

Всё это у меня происходит только в видеорежиме 1920x1080, а в 1280x720 - всё работает более-менее нормально (я не утверждаю, что там совсем нет проблем, но я их обычно не замечаю).

P.S. Edited: 2024-01-31 23:52:12

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


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

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

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

Сейчас делал скриншоты и нарвался на этот самый факт. На Linux я на самом деле раньше при проверке не задал -dpi 102, поскольку тоже посчитал это "непринципиальной погрешностью", а напрасно. Если задать целый dpi, то никакой разницы в положении слова не будет совершенно (но можно ведь задать и 101 :)). Так что слово "кран" (и даже из целых четырёх букв) было там в разных строках именно из-за разности между 102 и 101.6. Ну кто бы мог подумать :/

Так что своё утверждение о разном масштабировании окна и шрифтов я беру обратно - был не прав. Вот и проводи тестирование в таких условиях, может хоть это убедит тебя добавить поддержку дробных аргументов? Кстати, это в полной мере справедливо и для тем с scr.dpi, где для точного масштабирования нужно было указывать 67.73333. Вот тебе и "честный" DPI ;)

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


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

vvs> Объяснить я её тоже не могу. Но у меня это на всех системах наблюдается. Запишем в загадки.

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

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

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


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

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

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


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

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

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

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

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

[>] Re: Установка Etch с 8(?) CD дисков : дневник путешественника
retro.talks
vvs(ping,12) — oldpc
2020-10-26 17:07:41


oldpc> freecraft работает, эх blizzard, забанили такую игру: сейчас был бы нормальный второй warcraft.

Не понял этот пассаж. А как же https://github.com/Wargus/wargus ? Есть еще куча интересных модификаций, например http://andrettin.github.io/

Pages: 1 2 3 4 5 6 7