LINUX.ORG.RU

Интерфейсные идеи и их быстрая проверка

 , , , ,


0

1

Введение

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

Вот ИИ, может очень быстро набросать скрипт строчек на 300 по абзацу описания и это очень на самом деле помогает.

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

Проигрыватель

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

Питон скрипт использует curses для вывода. Ищет рекурсивно mp3/ogg, играет их в случайном порядке, умеет добавлять/удалять в список любимых (который - простой список файлов с названием «best.m3u8»).

Скрипт выбора файла

Ещё с момента обсуждения скриншота с neparsy я подметил в том своём экспериментальном интерфейсе редактирования программы одну по-настоящему ценную идею.

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

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

Скрипт разделения кода

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

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

Выбор из списка и центрированный курсор

К сожалению выбор из списка мышью не очень позвлоляет сделать какой-то элемент «по умолчанию».

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

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

Движение влево-вправо становится своего рода постраничным перемещением, просто страницы видны сразу в соседних столбцах.

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

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

Можно сделать перемещение пальца слева - как перемещение мышью с нажатой левой кнопкой, а справа - с не нажатой.

Всё это я попытался снова воплотить на имитации на 4-м скриншоте. Это html/javascript и вы можете попробовать это.

Там 200 элементов, первые 50 - типа директории. Левой кнопкой мыши можно зайти в директорию, правой - выйти из неё. И по умолчанию выбран последний выбранный ранее элемент (cookies скрипт не хранит и все выборы сбрасываются при перезагрузке страницы).

Репозиторий со всеми исходниками.

В качестве бонуса, о состоянии проекта neparsy

Вообще в 2022-м году моё первое описание проекта neparsy было воспринято с интересом. Однако после начала бума нейросетей вскоре, я долгое время думал, что если уж они могут писать код с нуля, то и с переписыванием кода с языка на язык у них проблем быть не должно.

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

И кстати я нашёл-таки способ вмещать информацию о расположении лексем (строка, столбец), не портя наглядности. Теперь я просто пишу второй файл с расширением .inp, которая представляет собой такое же дерево с теми же самыми скобками, но вместо лексем там только координаты вроде (:10:5-:10:8).

Перемещено dataman из screenshots

★★★★★

Проверено: hobbit ()
Последнее исправление: dataman (всего исправлений: 6)

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

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

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

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

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

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

Спасибо! Насчёт подробнее не знаю, подумаю, но может быть всё же заведу репозиторий с этими скриптами и дам ссылку.

unDEFER ★★★★★
() автор топика

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

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

Предлагаете каким-то образом сделать палец прозрачным?

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

Ну всё, отредактировал. Думаю уже окончательный вариант.

unDEFER ★★★★★
() автор топика

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

Не все. DeadBeef и QMMP ориентированы на работу с плейлистами из файловой системы. Второй по умолчанию винампоподобный, но для него есть Simple UI, где ничего лишнего.

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

В дедбифе есть «Удалить с диска», думаю, это оно.

В QMMP навскидку не нашёл. Возможно, плохо искал. Если действительно нет – можно Илье фичреквест предложить или даже патч. Обычно добавлять в проект нужное проще, чем выбрасывать. :)

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

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

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

gagarin0
()

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

виндовый 1by1

для линукса был directory player, но он давно все чуть ли не вместе с гитом. лучше искать в репозиториях старых версий debian’а

upd. а вообще хватает audacious (не путать с audacity). На пару кликов больше, но для быстрого знакомства с торрентом сойдет. И, в отличие от directory player, жив.

router ★★★★★
()
Последнее исправление: router (всего исправлений: 2)

Если не секрет, почему DeepSeek, а не Gemini/Claude? По личным ощущениям, это как с моей Тойоты на китайца пересесть, но почему-то многие люди используют именно его, и мне реально интересно - какая в этом причина? (если что, не пытаюсь никого обидеть, мне действительно интересна причина выбора конкретного инструмента)

rr
()

Мне понравилось. Спасибо.

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

Если не секрет, почему DeepSeek, а не Gemini/Claude?

  1. Цена апи раз в 10-20 меньше, хотя у гугла есть возможность дёшево купить подписку на гемини и использовать антигравити.
  2. Каким дипсиком в последний раз пользовались? Последняя про по апи с максимальной думалкой более чем хороша, особенно, глядя на цену.
mamina_radost
()
Последнее исправление: mamina_radost (всего исправлений: 1)

И вот на первом скриншоте, результат того какой проигрыватель мне сварганил DeepSeek (исходник)

Лет 15 назад я писал похожий код... Неужели эта туфта действительно работает?

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

На самом деле я разные проигрыватели пробовал. В основном использовал простой mplayer. Копировать путь до файла и приписывать «rm» для чистки коллекции было не так сложно.

Некоторое время и mpd пользовался. Но что там с удалением с диска, я не помню.

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

DeepSeek был первой приличной бесплатной моделью доступной без обходов блокировок в России.

А как заплатить за иностранные сервисы в условиях блекаута я не разбирался.

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

Ну как сказать «работает»? Как раз в проигрывателе я по-моему ни одной ручной правки не делал.

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

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

unDEFER ★★★★★
() автор топика

Проигрыватель

Под твои запросы попадает orpheus. Не знаю, правда, жив он ещё или нет. Когда-то, лет двадцать назад я тоже был минималистом и вот как раз orpheus'ом тогда и пользовался.

Сейчас я вырос, стал старым и ленивым и хочу удобства.

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

  • перекодирую всё в нужный мне формат.
  • заполняю теги(не руками, через id3tags)
  • на основе тегов перемещаю в нужное место на файловой системе(тоже не руками, через id3tags).

Так как я довольно привередлив в музыке, заниматься этим приходится довольно редко.

Далее плеер всё делает за меня. Выкачивает обложки, тексты, инфу о группе и т.п, если это мне понадобится. Функция удаления с диска тоже есть, но ни разу не пользовался. Главный плюс - это поиск и группировка. Чтобы я мог выбрать, например, «Такой-то жанр, с такого-то по такой-то год, не включая таких-то исполнителей». В общем, удобные критерии поиска и формирования динамических плейстов. У меня Amarok, если что.

Суть остальных скриптов и идей я не понял. :) Т.е. я не понял область их применения. Видимо, это что-то совсем мимо меня.

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от unDEFER

А кнопка «удалить с файловой системы» там есть?

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

асиль патчи, ну.

Rastafarra ★★★★
()

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

А на самом деле, самое главное, это - НАПИСАТЬ ГРАМОТНОЕ ТЕХНИЧЕСКОЕ ЗАДАНИЕ на проект. А уже потом бежать и что-то там проверять и делать.

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

Покажите кстати кто-нибудь пример грамотного технического задания. Ни разу в глаза не видел :-(

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

У меня на одном копе audacious, на другом deadbeef. Оба не создают всяких там «баз данных» и оба умеют удалить ненужный файл из файловой системы.

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

А с эстетической точки зрения я увы все еще скучаю по красивым визуализациям в древних плейерах типа например Winamp под виндами. Ни в audacious ни в deadbeef ничего похожего нет. И вообще не знаю где сейчас есть. Подключить бы дешевый «не модный» видеопроектор в качестве второго монитора и выводить эти картинки на потолок в темноте. Но сам я такое точно не напишу.

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

почему DeepSeek, а не Gemini/Claude?

Например в моем случае удалось зарегистрировать аккаунт именно в DeepSeek на мою электронную почту. И интерфейс его чата не глючит в непоследних браузерах.

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

Клауде нереально зарегаться, если у тебя российский номер, там надо НАТОвский, хотя бы😅

REDDERa
()

Теперь я просто пишу второй файл с расширением .inp, которая представляет собой такое же дерево с теми же самыми скобками, но вместо лексем там только координаты вроде (:10:5-:10:8).

Кстати пример как выглядит всё это безобразие уже можно увидеть например здесь:

https://github.com/unDEFER/neparsy/blob/neparsy/src/parser.np

https://github.com/unDEFER/neparsy/blob/neparsy/src/parser.inp

И тот же код на D:

https://github.com/unDEFER/neparsy/blob/with_iface/src/parser.d

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

А в интерфейсе плейера мне больше не хватает физических кнопок и крутилок

Это есть на многих клавиатурах. Например, «BY Tech AQIRYS AGENA Mechanical Keyboard». Тут есть крутилка громкости и есть кнопочки prev/next/pause/play.

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

Это есть на многих клавиатурах.

Крутилку громкости видел, правда на не продающихся в России клавиатурах. Крутилок тембра нет. Да и сами клавы показались весьма неудобными из-за существенного отличия от классической клавиатуры ibm pc at к которой я за несколько десятков лет привык на уровне мышечной памяти. Имитировать HID-устройство на микроконтроллере AVR не сложно, есть даже пример исходников которые можно использовать https://geekhack.org/index.php?topic=14618.0 Я из этого когда-то паял переходник для ps/2 клавиатуры для подключения к arm-одноплатнику у которого только usb. Несколько сложнее научить плейер в линуксовом компе взаимодействовать с таким устройством. В готовом виде встречал только очень кривой способ с запуском программы для переустановки громкости буквально по каждому щелчку энкодера. Естественно это работает плохо если громкость надо изменить быстро. Придется писать к плейеру свой плагин примерно также как есть плагины для управления через инфракрасный пульт (lirc). Вобщем - решаемо, но повозиться надо.

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

В этом случае собственно плейер вообще может быть «безголовым» демоном.

Совсем безголовый, наверное, неудобно. Хотя бы плейлист/коллекцию отображать как? Как ты будешь этими кнопками между музыкантами и альбомами переключаться? Между альбомами одной группы я ещё понимаю.

Хотел ещё про клавиатуры с доп.кнопками написать, но ты уже про это ответил.

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

Крутилку громкости видел, правда на не продающихся в России клавиатурах.

Таких много. Но чаще всего на механике, почему-то. Да, у меня механика, но особого профита по сравнению с хорошей мембраной я не заметил.

Да и сами клавы показались весьма неудобными из-за существенного отличия от классической клавиатуры ibm pc at

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

Модель своей клавы я озвучил выше. Из недостатков только один, производитель решил, что LED-индикаторы Num/Scroll не нужны. Мне это не очень удобно, так как я туда вешал раскладку. Но это терпимо по сравнению с другими преимуществами.

Крутилок тембра нет.

Такого не видел, да. И вряд ли такое получится найти за вменяемую цену.

Я из этого когда-то паял

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

shell-script ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.