RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12
[>] Re: Секретный проект: rein
std.hugeping
hugeping(ping,1) — hugeping
2023-08-06 12:04:38


Записали с true-grue первый ролик про работу со звуком в rein.

https://www.youtube.com/watch?v=F5-IFaDAxXo

[>] Укры атакуют станцию :)
ping.local
hugeping(ping,1) — All
2023-08-09 23:40:22


Ха! Сегодня была атака на мою маленькую малинку. Похоже, написали скрипт который постит сообщения непрерывно, успели загадить базу на 9Гб.

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

IP адреса атакующих:

104.28.155.206
104.28.192.94
104.28.222.238
104.28.224.94
104.28.254.238
104.28.156.60

[>] Re: Атака бота
idec.talks
hugeping(ping,1) — Andrew Lobanov
2023-08-10 07:17:45


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

[>] zvon в rein, встречи
std.rein
hugeping(ping,1) — All
2023-08-10 07:21:31


Пётр Советов (true-grue) записал 1й ролик о звуковой подсистеме zvon (используется в rein). Демонстрируется работа в редакторе голосов voiced.

https://www.youtube.com/watch?v=F5-IFaDAxXo
P.S. Edited: 2023-08-10 19:45:20

[>] Мова
std.hugeping
hugeping(ping,1) — All
2023-08-10 08:32:47


Вчера на станцию ping была снова проведена спам-атака.

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

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

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

Получается что и не ставят они перед собой цель -- донести что-либо. И сообщение на "мове" следует воспринимать как "плевок". Поэтому я перестал их читать. Из сообщений последней атаки я ухватил только ключевое слово: Умань. Значит, эта атака -- реакция на мою заметку "Никто не забыт, ничто не забыто" ii://Sr7pL59F9OV2OimsWQTx

Это даже лестно! Получается я(и моя малинка) внесли какой-никакой, но вклад в информационную войну. :)

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

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

Моя бабушка разговаривала на суржике. Часто вспоминаю этот мягкий говор. Тогда, в Умани, я говорил бабушке: "Я хочу быть украинцем! Можно?". Никакие мова-плевки не смогут забрать у меня этих воспоминаний детства. Воспоминаний о времени, когда все мы жили в одной стране.

[>] Re: Мова
std.hugeping
hugeping(ping,1) — vvs
2023-08-10 14:56:39


vvs> У меня тут есть своё мнение. Мне кажется, что вклад в какие-то реальные события вносят только настоящие профессионалы

Ну тут всё индивидуально. И вообще, сложно не покривить душой когда столько всего намешано. Поменьше рефлексии! :)

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

vvs> в соседней теме ТС опускается до неспровоцированных личных оскорблений

Я могу удалять сообщения на этом узле, которые пришли с других узлов. Но в целом, это практика которая не приветствуется. И вообще модерирование слабо работает в idec, так как все ноды - независимы. Обычно я удалял сообщения в каких то тяжёлых случаях. Я чуть чуть посмотрел вашу "дискуссию", показалось что не такая уж она страшная и агрессия не такая уж и не спровоцированная :). Но за других людей не могу говорить, так что если надо, могу заблокировать что-то.
P.S. Edited: 2023-08-10 14:57:09

[>] Re: Мова
std.hugeping
hugeping(ping,1) — vvs
2023-08-10 15:53:06


vvs> Это уже о другом: чужая душа - потёмки и человека не узнаешь, пока не съешь с ним пуд соли :)

Я в данном контексте про себя самого, скорее.

vvs> Обидно, конечно, что на этой площадке общаться стало практически не с кем.

Да, сеть еле жива. Но мой узел все равно играет свою роль как хранилища моих заметок.

[>] zvon в rein, встреча №2
std.rein
hugeping(ping,1) — hugeping
2023-08-10 19:45:11


Встреча 2
Различные типы осциляторов
Работа в трекере

https://www.youtube.com/watch?v=dPi6Kq5McnU

[>] rein: Фаза 1.5
std.rein
hugeping(ping,1) — hugeping
2023-08-15 10:50:06


Вернулся к разработке rein. Поводом послужили записи true-grue по звуку ii://PwbZN2b4jRkK1XjVCoMd , которые выявили некоторые ошибки - недоработки. Из основных изменений:

- теперь редактор поддерживает вертикальное выделение блоков (alt модификатор);
- редактор поддерживает режиме вставки overwrite (ins);
- shift-f2 - в редакторе, "сохранить как";
- множество улучшений в voiced, в том числе работа с вертикальными блоками и проигрывание ноты во время вставки (не для режима ins);
- исправления ошибок;
- sys.window_size() - позволяет получать реальные размеры окна в системе и адаптироваться под них;
- в редакторе можно включить режим scalable. В этом режиме он будет использовать ttf шрифт (нужно положить в data/) и адаптироваться под размер окна при изменении размера окна;
- новый boot. Теперь при запуске rein он показывает доступные приложения, а также .lua файлы из текущего каталога. Каждый такой файл можно запустить (z) или открыть на редактирование (x)
- добавлен 07 tutorial (музыка).

P.S.
Последние 256 сообщений из irc #rein теперь можно смотреть в gemini: gemini://hugeping.ru/reinlog.gmi

[>] Re: Краткая информация по этому узлу
ping.local
hugeping(ping,1) — hugeping
2023-08-23 17:07:50


Внимание!

При регистрации на станции указывайте свой настоящий e-mail. Я периодически удаляю подозрительные аккаунты, а неправильная почта -- это один из признаков.

[>] Re: Мова
std.hugeping
hugeping(ping,1) — kot-av121
2023-09-04 14:48:07


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

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

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

[>] Re: Мова
std.hugeping
hugeping(ping,1) — helpingherring
2023-09-05 15:29:37


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

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


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

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

[>] Re: Мова
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2023-09-06 15:15:28


AL> Какой же он секретный, если ты его уже давно в курилке так вкусно презентуешь?

Да, ну на то она и курилка :)

Вообще, мне самому нравится то, что получается. Правда, не всё прям так просто как я думал в начале. Но всё-равно, программировать интересно.

[>] Re: Победа будет Za нами!
std.hugeping
hugeping(ping,1) — hun19867
2023-09-07 11:59:28


hun19867> Слава России!

Согласен, бро! Слава России!

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


Решил написать небольшую заметку про свой новый проект. Интересно, что как и остальные, он стал эволюцией моих прошлых экспериментов. Занимаясь INSTEAD я полюбил Lua. Играя с Plan9 я сделал парсерный re:instead (в том числе и для того, чтобы можно было писать парсерные игры прямо в Plan9). Развил re:instead в rein, который стал уже скорее "платформой" приложений.

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

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

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

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

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

Я начал проводить всё больше времени в acme, написал для него e-mail клиент, но всё-таки нельзя сказать, что он стал моим единственным редактором. Он является естественным в своей родной среде обитания - Plan9, но для работы в Linux/Bsd* необходимо собрать plan9ports. Я не чувствовал, что инструмент "принадлежит" мне в полной мере.

Так что мысль о собственном _простом_ редакторе стала приходить мне всё чаще. Наверное ещё во время работы над re:instead (который был написал под вдохновением от редактора Lite) я увидел, что это возможно.

Потом, в rein я написал простой "традиционный" редактор edit и пользовался им при разработке под rein. Ощущение инструмента в котором ты знаешь каждый "болтик" было непередаваемым!

В edit (редактор rein) в начале было много багов. Файл в edit был представлен в виде массива строк. Это удобно для навигации и отображния, но совсем неудобно для редактирования. Пока я его дописывал и фиксил баги я подумал, а что если файл представлять не массивом строк, а просто -- одной строкой? И тут же снова вспомнил acme, где изменения высоты скроллера явно намекает на то, что в качестве позиции используется смещение, а не номер строки. Стало интересно попробовать. И в этот раз я не смог погасить свой порыв. Так я и начал писать свой мини-acme.

Многие фишки acme раскрываются в полной мере в Plan9. Например, файловая система, через которую можно управлять редактором. Да, в Linux тоже можно монтировать её через fuse, но есть нюансы, которые делают этот метод не рабочим. Поэтому я был настроен делать именно "мини"-acme редактор, в котором мог бы делать свою повседневную работу. В качестве механизма расширения - конечно Lua!

Сейчас редактор доведён до полу-готового состояния и смержен в master ветку проекта rein. Редактор делается под мои предпочтения, поэтому он не будет демонстрироваться "широкой" публике, но я всё-таки решил написать этот текст на случай, если им заинтересуется кто-нибудь ещё.

Итак, особенности редактора red.

# RED -- Rein Editor

## Клавиши

В отличие от acme в red работают многие привычные комбинации клавиш:

- ctrl-c/x/v - копирование, удаление, вставка;
- ctrl-z - undo;
- ctrl-k - удаление до конца строки;
- стрелки курсора - перемещение по тексту во всех направления;
- page down/up - перемещение по тексту по странично;
- home/end - начало и конец строки;
- ctrl-w - умное выделение;
- ctrl-s - сохранение буфера (окна).
- shift-движение - выделение клавиатурой.

Как в acme (или почти как в acme) работают:

- escape - выделение последнего блока, удаление;
- ctrl-f - автодополнение путей (правда, если варинтов несколько - выдаётся первый);
- ctrl-a - начало/конец строки.

## Мышка

- аккорды acme - должны работать похоже;
- правая кнопка мыши - простой поиск как в acme;
- alt+правая кнопка мыши - простой поиск назад;
- shift + правая кнопка мыши - эмуляция средней кнопки мыши.

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

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

В acme открытие файлов и передача в plumber делается по пкм, однако это меня всегда немного раздражало. Потому что иногда клик приводит к поиску, а иногда - к действию. Захотел поискать https://... в коде, а открылся браузер. Поэтому в red все активные действия висят на средней кнопки мыши. А открытие каталогов, файлов - это тоже активные действия. Возможно, я сделал ошибку, но пока решение кажется удобным.

- умное выделение

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

## Окна

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

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

Если имя файла начинается с "+", то такой файл не сохраняется на диск. Поэтому информационные окна называются: +Errors, +Output, +Help и т.д. Вы можете любое окно сделать информационным просто добавив + в начало имени активного файла (первый файл в списке файлов в меню).

Скроллеры в отличие от acme работают традиционно - левая кнопка мыши "таскает" скроллер.

## Вызов программ

Поддержки win (запуск шелла) на данный момент нет. Это связано с тем, что полноценную поддержку процессов нужно делать через fork. Это привяжет red к Unix. К тому же, red - это lite-acme. :) Расширения red можно делать на Lua, но для запуска полноценного shell этого недостаточно.

### Возможности по запуску программ

- >cmd - запуск cmd с передачей в качестве параметра временного файла с данными;
- <cmd - запуск cmd с чтением stdout;
- !cmd - запуск cmd

Кроме того для Linux всё-таки доступна:

- |cmd - работает примерно как в acme. На вход через пайп передаётся текст или выделение и ждём выхода.

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

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

### Встроенные команды

Основной механизм расширений редактора всё-таки не через запуск внешних команд, а за счёт написания процедур на Lua. Процедуры находятся в файле data/lib/red/proc.lua и на данный момент включают следующие команды:

- sub - поиск или поиск/замена построчно;
- gsub - поиск или поиск/замена глобально;
- select - синоним gsub без замены;
- find - синоним sub без замены;

Внимание! Все регулярки - регулярки на Lua!

Примеры:

select ^.*$ - выбрать всё
sub /^/ / - построчно добавлять в начало строки 4 пробела.

Во втором примере на каждые 2 клика вы получите одну итерацию: поиск-замена. Но если хотите произвести манипуляции не интерактивно - выделите текст, с которым работаете. Например:

gsub ^.*$ - выделили всё (тот же select)
sub /^/ / - отработали по выделению.

Доступна форма записи поиска с / - если нужно работать с пробелами:

select / / - выбрать 2 пробела.

Другие встроенные команды:

- Getline - добавляет справа от себя текущий номер строки. Удобно для составления "закладок" в файле;
- fmt [ширина] - аналог утилиты fmt;
- grep выражение - рекурсивный поиск по содержимому файлов каталога. Каталог - dirname открытого в данный момент файла;
- Run [программа] - запуск программы rein (интеграция для разработки под rein) или текущего файла.

## Dump

При нажатии средней кнопки мыши на Dump - в текущем каталоге создаётся конфигурация сессии (файл red.dump). В сессии сохраняются все данные открытых файлов. Даже если вы сотрёте сами файлы, при восстановлении сессии они будут показаны в окнах. Если red находит в текущем каталоге red.dump он всегда его загружает. Возможно, в будущем появится опция для загрузки Dump.

## Параметры командной строки

Запуск red:

$ rein red [-fs <размер шрифта>] [файлы]

Чтобы немного ускорить запуск можно воспользоваться опциями:

$ rein -platform-nosound -platform-nojoystick ...

Для удобства я делаю себе скрипт вида:

-- red
#!/bin/sh
/home/peter/Devel/rein/rein -platform-nosound -platform-nojoystick red -fs 19 "$@"

И запускаю редактор из любого места.

## Открытие файлов по средней кнопке мыши

В файле data/lib/red/uri.lua вы можете прописать вызов внешних программ. Например, запускать просмотрщик pdf если вы нажали на строчку, которая заканчивается на .pdf.

## Настройки для типов файлов

В файле data/lib/red/presets.lua вы можете настроить поведение редактора в зависимости от типа файла (расширения). Пока доступны только размер табуляции и режим табуляции (пробелы или \t). Скорее всего появятся и другие настройки.

## Цвета

В начале red.lua в таблице conf.

# Что дальше?

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

У Линуса есть https://github.com/torvalds/uemacs у Роба Пайка -- acme, у Столмана emacs. А у меня теперь есть red и мне больше не нужно выбирать!

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

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


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

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

vvs> И всё же большие и сложные проекты я бы на нём делать поостерёгся.

red меньше 2000 строк в общей сложности. Lua конечно хорош как встраиваемый язык.

[>] Re: ii-net.tk
idec.talks
hugeping(ping,1) — Andrew Lobanov
2023-09-11 08:21:51


AL> Где найти apk-файл с мобильным клиентом даже и не знаю сейчас. Увы, он основательно забил на idec.

А исходники где-то лежат?

[>] Re: Атака бота
idec.talks
hugeping(ping,1) — Andrew Lobanov
2023-09-11 16:38:36


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

P.S. Интересная игра. :)

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


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

Я не потянул бы такое. Хотя мне уже тут советовали посмотреть Оберон. :)
Но пока я решил чисто утилитарную проблему - испытал сегодня на работе - пока всё отлично!

[>] Re: Победа будет Za нами!
std.hugeping
hugeping(ping,1) — kct-ac12
2023-09-11 18:47:56


kct-ac12> Слава России!

Да, бро! Только вперёд!

[>] Re: Документация
idec.talks
hugeping(ping,1) — Andrew Lobanov
2023-09-12 08:22:26


AL> Зачем это нужно?

AL> Я планирую сделать полноценные пакеты ПО для работы с IDEC-сетями. Серверную часть и клиентскую часть. В них, помимо документации по ПО хочу добавить и документацию по IDEC в целом. И, может, непосредственно по секте плохих парней.

Это просто отлично! Если нужно, для дальнейшей переработки бери фрагменты ii-go.

[>] Re: Документация
idec.talks
hugeping(ping,1) — neonxp
2023-09-12 15:04:10


neonxp> И я пилить сел :) на трех живых пользователей сети будет три гошных реализации 🤣

Я считаю, это прекрасно. :))

[>] Re: Новости с полей
idec.talks
hugeping(ping,1) — Andrew Lobanov
2023-09-12 18:16:45


AL> Думаю, ещё скомунизжу у Петра из ii-go его текстовую базу до кучи. Правда там с поиском надо покумекать как сделать, чтобы оно не кушало ресурсы как не в себя.

Если поиск по идентификаторам, subj и так далее, то он реализован за счёт загрузки в память индекса целиком. Я посчитал, что это не такое уж узкое место. Например, сейчас весь индекс моей базы 700Кб.

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

Но вообще, ii-go на удивление шустро работает, я даже не ожидал.

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


Довольно сильно продвинулся с red!

Основные отличия будут видны, если он используется не в Windows среде:

- Теперь есть win почти как в acme, в котором можно выполнять команды и есть даже ввод-вывод через fifo;
- Запуск процессов теперь осуществляется через потоки red, что должно исключить "зависания".

Ядро rein в плане потоков было немного переработано (для поддержки ThreadDetach), но в целом - движок не пришлось менять. Пока очень доволен. Вижу как red медленно (но верно) превращается в мой личный инструмент.

P.S. Ещё бы логотип какой-то придумать... Сейчас это просто красный квадрат с рамкой, который генерируется прямо внутри кода red. Хотя, может и не плохо.

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


vvs> есть один редактор с поддержкой Lua первого класса - Neovim. Может тебе это будет интересно для сравнения.

Да, я в курсе. vim (который не neo) я использовал одно время (пару лет), но потом перешёл на emacs. К режимам я привык, но не полностью. Хороший редактор, и neovim хвалят очень, думаю я его ещё посмотрю.

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


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

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

А дописал всё-таки к red механизм подсветки синтаксиса (сейчас есть поддержка: Си, Lua, markdown и diff) и вовсю использую его на работе. Правда, всё время что-то дописываю, а это немного отвлекает собственно от самой работы. :) Да, уже вижу что написан он грязновато, но это вечная проблема.

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


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

vvs> А ты видел Skein в Inform 7? Вообще, у этих систем много общего:

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

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


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

[>] Re: ii-net.tk
idec.talks
hugeping(ping,1) — ahamai
2023-11-05 15:04:27


ahamai> Сабж мёртвый? И сеть тоже мёртвая?

Привет! Да, сеть сложно назвать живой. Хотя кто-то всё-таки есть. А ты откуда узнал про idec?

[>] Re: ii-net.tk
idec.talks
hugeping(ping,1) — ahamai
2023-11-05 15:12:32


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

[>] Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — All
2023-11-05 18:28:02


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

За это время пробовал разное, в том числе и matrix, но в итоге не был удовлетворён. А на днях почти случайно вернулся к "традиционным" irc и jabber. И был приятно удивлён! О чём и решил написать эту заметку.

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

Сначала по наводке посмотрели на ircv3 ( https://ircv3.net/ ). Как я понял это инициатива по развитию irc. Стандарт содержит расширения, которые приближают пользовательский опыт к тому, к чему привыкли люди сегодня. Попробовал. Вообще -- понравилось! Но к сожалению клиентов которые поддерживают набор нужных стандартов очень мало и они часто сырые.

Затем вспомнили Jabber, и... Оказалось, что и там тоже есть кое-какое движение. Не вдаваясь в подробности напишу, что следующая комбинация оказывается вполне годной и комфортной для "обычного" пользователя:

- Мобильное приложение: conversations (бесплатно в F-Droid, платно в google play);
// есть мнение, что бесплатный "c0nnect messenger PRO" в google play это тот же conversations, но я не проверял, я давно пользуюсь F-Droid;
- Linux/BSD приложение: dino (В Debian - назвается dino-im), на худой конец - gajim;
- Windows: gajim
- Веб приложения: https://github.com/movim/movim или https://conversejs.org
- Публичный сервер с нужными возможностями: 404.city

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

Понятно, что выбирая сервер 404.city мы меняем шило на мыло (я вообще не знаю, кто этот сервер поддерживает, с какими целями и т.д., и вообще - whois интересное выдаёт :))

> whois 404.city
> Registrant Street: REDACTED FOR PRIVACY
> Registrant City: REDACTED FOR PRIVACY
> Registrant State/Province: Capital Region
> Registrant Postal Code: REDACTED FOR PRIVACY
> Registrant Country: IS

И дальше подобное... А что, так можно было? :)

Но при реальном внедрении, например, на работе - стоит поднять свой сервер (тот же ejabberd или prosody), movim и... по идее наступает счастье. Осталось только самое сложное, убедить сослуживцев :)

Если вы тоже решите попробовать вернуться в jabber, то мой jid: hugeping@404.city
Адрес чата "Флудилка луддитов": instead@chat.404.city

P.S. На jabber.ru есть проблемы с регистрацией аккаунтов, да и сервер не поддерживает нужные расширения, к сожалению.
P.S. Edited: 2023-11-06 11:01:56

[>] Re: Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — btimofeev
2023-11-06 09:23:39


>>> REDACTED FOR PRIVACY

btimofeev> На моем домене в зоне org такое тоже появилось, а раньше там была личная инфа. Вот тут пишут что это из-за GDPR https://www.vice.com/en/article/vbpgga/whois-gdpr-europe-icann-registrar

Ничего себе! Куда катится мир. :)

[>] Re: ii-net.tk
idec.talks
hugeping(ping,1) — ahamai
2023-11-06 09:25:03


ahamai> Я ее создал, Петр. :) И я до сих пор оказывается маинтайнер instead в openbsd. С версией 3.0.1

Когда уже обновишь до 3.5.1 ? :)

[>] Re: Есть ли жизнь без Telegram?
std.hugeping
hugeping(ping,1) — hugeping
2023-11-06 11:01:43


Для тех, кто это прочитает.
Адрес нашей группы "Флудилка луддитов" в jabber: instead@chat.404.city

[>] Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2023-11-13 17:20:33


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

https://www.youtube.com/watch?v=5fflaYGf9cY

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


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

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

Спасибо!

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

Потому что не знал! Почитал, прикольно.

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

Спасибо, не знал!

> Музыка в игре временами заглушала речь, да и голос, бодрый и выразительный в начале, несколько увял к концу :(

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

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


Про инстед всё-таки лучше в соответствующем разделе, например ii://std.club

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

P.S. Да, в настройках инстеда надо указать в разделе графика - hidpi ил

[>] Re: Последний день лета
std.hugeping.micro
hugeping(ping,1) — hugeping
2024-01-27 13:20:28


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

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

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


В настройках инстеда при этом разрешение должно стоять: тема.

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


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

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

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

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

P.S. Edited: 2024-01-28 22:07:21

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


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

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

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

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

vvs> Вообще, в современных версиях Windows и Linux DPI вообще нигде не используется, а есть другие API для определения масштаба изображения.

В SDL2 API предоставляет именно горизонтальный и вертикальный dpi. Я использую горизонтальный.

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

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

> Например, в последних версиях Gnome этот параметр всегда принудительно устанавливается 96 DPI для любых мониторов.

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

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

Это возможно только в reinstead. Там изначально масштабируемый интерфейс. А вот в INSTEAD это невозможно.

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


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

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

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

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

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

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


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

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

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


vvs> Странно. А это точно SDL?
Да, я вывожу printf dpi из C кода в момент взятия:

157.825241 -- это НАСТОЯЩИЙ dpi
DPI scale: 1.644013
Video mode: 1315x986@32bpp (opengl)
peter@t480:~/Devel/instead$ xdpyinfo | grep 96
  resolution:    96x96 dots per inch -- это ФИКТИВНЫЙ о котором ты говоришь 

vvs> У меня в гноме установлено масштабирование шрифта 1.5 и все приложения гнома имеют нормальный масштаб и даже Firefox.

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

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

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

vvs> Просто DPI - это достаточно окольный и ненадёжный параметр для масштабирования.

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

1) Нативные темы НОРМАЛЬНО смотрятся на ЧЕСТНЫХ dpi 96
2) SDL2 даёт верный dpi

Пп1 - возможно, я не прав. Но тогда нужно взять конкретную тему и предложить тот dpi в которой она нормально смотрится. Я попробую у себя и сравним ощущения.

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

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

Потому что INSTEAD поддерживает другую парадигму -- игра жёстко привязана к определенным пропорциям и выглядит одинаково вне зависимо от масштаба. Все игры уже написаны так что привязаны к своему разрешению виртуальному. На лету это не меняется в принципе. Если это менять -- то это уже INSTEAD4. Есть другие мои движки где по другому: reinstead и rein-- если и будет инстед4 то он будет на rein.

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


vvs> Запускаю Tutorial: масштаб 1.058333, режим 846x634, окно, шрифт - мелкие. Выхожу, указываю -dpi 144: масштаб 1.5,

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

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

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

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


https://instead-games.ru/forum/discussion/comment/13852/#Comment_13852

На всякий случай ещё раз укажу на сообщение в котором это написано.

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


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

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

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

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

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


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

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

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

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

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

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

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


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

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

Pages: 1 2 3 4 5 6 7 8 9 10 11 12