LINUX.ORG.RU
ФорумTalks

«Скучно», дайте баг или запилить куда-то фичу

 , , , ,


2

1

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

  • Киньте ссылку на проект tar.gz/гит/фигит или типа того.
  • Что не так или что надо
  • Как сейчас и как должно быть

Всё, больше меня ничего не интересует. C и/или Lua
Может утилита какая падает на C, или очередная шизанутая игра на Lua не запускается на новой версии Love2D. Понятия не имею что можно предложить :)

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

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

krasnh ★★★★★
()

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

Это мы с тобой обсуждали выше и в данном моменте yuki-iptv более продвинут, позволяя просмотреть сразу же всю телепрограмму с процентами просмотра, кратким содержанием и названием фильмов. Твои доводы о невозможности такого в mpv мной были приняты, я лишь напомню о чем речь:

Это как в yuki-iptv =) Но, там свои проблемы с этим, и это уже будет тяжёлой задачей для скрипта
«Скучно», дайте баг или запилить куда-то фичу (комментарий)

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 2)
Ответ на: комментарий от krasnh

Это возможно сделать, но тут уже надо нормальный полноценный GUI нахлобучивать, поиск с выпадающим списком по мере набора, вкладкой прокрутки каналов, вкладкой прокрутки телепередач канала и во время всего этого ещё отображать некие текущие данные, иконки подгружать каналов и прочее. Короче делать полноценное приложение внутри mpv, можно но у меня нет к этому интереса, это будет долго, сложно и в итоге получится ещё один yuki-iptv, но зачем, если он и так уже есть. EPGTV это же просто маленькая нашлёпка, которая, если EPG не весит пол гига, заведётся на любом тапке, оно и так тормозит уже хотя я старался сохранить что-бы всё было примитивное и просто поверх видео выводился текст разукрашенный в неком подобии как будто это интерфейс.

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

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

А ты мог бы например написать разработчице yuki-iptv, мол нет ли у неё желания сделать yuki-lite например, и не встраивать mpv в yuki-iptv, а встроить yuki-iptv в mpv если не всё, то может подмножество. Может ей будет интересно, а может и нет.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

но тут уже надо нормальный полноценныйGUI

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

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

krasnh ★★★★★
()
Ответ на: комментарий от krasnh

Имхо, это должно решаться без всяких gtk/qt и подобных.

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

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

Вот и я о том. Да.

Реально сделать? Да, кто-то займётся этим? ¯\(ツ)/¯

LINUX-ORG-RU ★★★★★
() автор топика
11 сентября 2025 г.
Ответ на: комментарий от krasnh

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

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

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

plan9port интересует? Есть один самый бесячий баг в GUI. Сишка, сам GUI довольно простой, не какой-нибудь огромный фреймворк а-ля GTK или Qt. Ну и конкурентность во всю через CSP.

У самого нет времени копаться и дебажить, но готов погрузить настолько глубоко, насколько возможно.

Спасибо скажут буквально все пользователи.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 1)
Ответ на: комментарий от kaldeon

plan9port интересует?

Фиг знает, может ничего и не пойму, ручки у меня коротенькие

но готов погрузить настолько глубоко, насколько возможно.

Я сейчас не представляю как смогу скооперироваться, ну там гарантировать что мол давай спишемся тогда-то.

Есть один самый бесячий баг в GUI. Сишка

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

А там отпишусь, я слился, лапки к верху или попрошу комментарии/консультацию по тому что не понял.

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

Чёнибудь тут напиши, а я чёнибудь попробую сделать ::)

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от ann_lortemp2

Tron и Ethereum

Йя понятия не имею как они работают в целом.

кошелек на луа

Бегло, по коду, как я понял это утилита для взаимодействия с trongrid и ещё там какой-то api сервис запроса данных из/в кубикчейна, там просто дёргать надо всё у них правильно, а сама суть в локальной работе с локальной фигулиной котрой делать подписи/кошелей так я понял.

Хрен знает, если только приспичит прост покопаться, как выше сказал понятия не имею об нюансах, а они там есть например строка

input = "0x70a08231" .. string.rep("0", 24) .. address:gsub("0x", "")

Почему 0x70a08231, почему оно дополняется 24 нулями, почему надо у адреса вырезать префикс 0x и приклеивать это в конец. Это такие нюансы, о которых специфичные для конкретной штуки, о которых надо просто знать, а если не знаешь то и суваться смысла нет, а такого там много. В целом, запросить у сервиса данные по токену, показать что там есть, сформировать запрос с транзикацией, подписать её (чем-то там) и отправить, насколько я понял тут вся суть.

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

Но, пусть висит. Как минимум может кто ещё заинтересуется, или я вернусь позже.


Для справки, стоит иметь в виду:

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

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Plan 9 может быть непривычным, но он практически во всех аспектах проще любого современного юникса. Ядро, юзерспейс, документация — всё написано очень ясно и коротко. Концепции необычные, но зато нет enterprise-scale абстрактной фабрики абстрактных фабрик, нет десятилетних легаси и техдолга, когда качество кода приносится в жертву функциональности, и нет башни из слоновой кости, когда порог входа не ниже PhD в computer science.

Одна из основных графических программ — Acme, текстовый редактор. Это настолько мощная программа, что один из разработчиков при переходе на Linux/macOS портировал весь юзерспейс Plan 9, чтобы получить Acme. Так и появился plan9port.

Если пакет есть в репозитории (например, в Arch Linux есть), можно ставить оттуда. Если нет, можно вручную склонировать git-репозиторий в /usr/local/plan9 и выполнить ./INSTALL (он не будет ничего трогать за пределами /usr/local/plan9).

После установки нужно добавить путь к бинарникам:

export PLAN9=/usr/local/plan9
PATH="$PATH:$PLAN9/bin"

Чтобы не возникло конфликтов (/bin/grep vs /usr/local/plan9/bin/grep), путь лучше добавить в конец PATH.

Установка более подробно описана здесь, но описанных инструкций должно быть достаточно.

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

Код Acme находится в src/cmd/acme. Заходим туда и выполняем команду mk (аналог make). Потом пробуем запустить o.acme.

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

Баг связан именно с автоматической механикой. Если в любом месте написать команду (условно echo hello world) и исполнить её, нажав на колесо мыши (если есть только тачпад, то нажатие на колесо мыши эмулируется нажатием на тачпад во время удержания клавиши Alt), то Acme автоматически создаст новое окно с названием +Errors, в котором будет напечатан вывод этой команды. Кроме того, курсор мыши сам встанет на место нового окна. И если мы его закроем (нажав на Del колесом мыши), то курсор мыши вернётся обратно.

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

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

В демо объясняется механизм возникновения ошибки, потому что его проще объяснить на примере. Но ключевые моменты нужно вынести в текст. Основной виновник — это поведение, при котором курсор ставится на окно, чьи размеры были изменены автоматически. +Errors некуда встать, другое окно отодвигается, на него ненадолго встаёт курсор мыши, появляется +Errors и курсор мыши встаёт на окно +Errors, запоминая предыдущее невидимое расположение. Когда +Errors удаляется, курсор встаёт на место пододвинутого окна, где курсор находился долю секунды.

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

Нет ничего плохого в том, что курсор встаёт на окно, чьи размеры были изменены. Это помощь пользователю со стороны интерфейса. Кстати, это поведение можно вызвать не только действием пользователя, последствия которого сложно отследить в коде (handleClick и дальше удачи), но и через API. Демо. Можно по коду проследить что делает Acme, когда кто-нибудь записывает строку show в файл ctl.

(echo show |9p write acme/2/ctl — это ничто иное как эмуляция того, что можно было бы выразить через echo show >/mnt/acme/2/ctl в настоящем Plan 9. Просто /mnt/acme был бы у каждого инстанса редактора свой. Это невозможно в юниксах, поэтому эмулируется через 9p write acme/2/ctl. Но в коде Acme это будет выглядеть как отслеживание записей в файл /mnt/acme/2/ctl. Это просто файл с точки зрения программы, ничего особенного.)

Как решить эту проблему? Не ставить курсор на окно с изменёнными размерами, если изменение было вызвано созданием нового окна. Даже если новое окно подвинет десять других окон выше, Acme не должен ни на одно из них ставить курсор мыши.

Как это реализовано сейчас программно? Увы, не знаю.

Источники, которые могут помочь:

  • ознакомиться с тем, что вообще такое Acme, чтобы не чувствовать себя как в тёмном лесу, можно здесь.
  • архитектура описана здесь, в секции Concurrency in the implementation (с тем отличием, что Acme с тех пор был переписан на язык C)
  • структуры данных хранятся в src/cmd/acme/dat.h
  • для конкурентности используется libthread, реализующий стиль CSP в языке C
  • для рисования используется libdraw
  • тонкие отличия диалекта C от ANSI подробно написаны здесь. Но, в целом, это всё тот же C в подавляющей степени.
kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 6)
Ответ на: комментарий от kaldeon

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

А сейчас, да, пора спать.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Если будут вопросы, проблемы, нужны дополнительные пояснения или примеры, сразу задавай, можно на kaldeon@yahoo.com, можно в t.me/spektrokalter, можно в другое удобное тебе место, даже простые вопросы, в любое время. Помогу чем смогу. Это незнакомый контекст (другая ОС, другой туллинг, другой UI) и не может не вызывать проблем, недопониманий и ложных следов. Я через это прошёл и постараюсь других провести. Хотя в коде я, к сожалению, ещё не разобрался.

Тебе спасибо, что решился взяться. Неожиданно. Доброго сна.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)