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)
Ответ на: комментарий от X512

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

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

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

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