Портрет 4X_Pro
Был в Сети 27 июл. 2024 г., 06:24
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Сейчас специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Идеи и размышления

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

Размышления о накопителях данных

4X_Pro
Не раз думал о том, что жаль, что интерфейсы накопителей данных (HDD и SSD) остаются такими же низкоуровневыми, как в старые добрые времена: работа на уровне чтения записи отдельных секторов (или их блоков) вместо того, чтобы работать сразу на уровне файлов. Т.е. OS посылала бы команды не «считай сначала вот этот сектор, потом вот эти потом вот эти» (где в первый из этих секторов — это каталог, второй — таблица inodes или их каталогов, третий — собственно сами данные из файла), а сразу «считай файл такой-то по смещению такому-то», а вся работа с метаданными шла бы на стороне контроллера жёсткого диска, что давало бы больше возможностей по оптимизации хранения данных (правда, реализовать бы их могли только производители дисков).
Но потом в голову пришла другая идея: а что если сделать умную прошивку микроконтроллера, которая будет сама определять, какие типы файловых систем используются на диске, и приметить для самых типовых (в первую очередь, NTFS и ext4) какие-то оптимизации, например, дольше хранить в кеше те сектора, куда попадает таблица inodes или каталоги, чем сектора с обычными данными. Или что-то подобное и так применяется, просто из-за закрытости прошивок это мало кто знает?

О голосовом вводе и других методах

4X_Pro
Несколько раз сталкивался с точкой зрения, что со временем голосовой ввод полностью вытеснит привычные нам клавиатуры. У меня это вызывает большие сомнения: гладкий текст ещё можно надиктовывать (и иногда это даже помогает экономить время), но вот программировать или писать сложные формулы (например, химические или математические) достаточно проблематично. Поэтому, на мой взгляд, если что и способно потеснить клавиатуру, так это какие-то способы рукописного ввода. Таковых я вижу два: это либо фотографирование листа бумаги смартфоном с очень умными распознаванием нейросетью (в частности, умением отличить текст от рисунков и зачеркиваний), либо какая-то насадка на обычную ручку или карандаш с акселерометом и Bluetooth-модулем внутри, которая отслеживает движения верхнего конца ручкии по ним восстанавливает нарисованное. Но и тут есть ряд проблем — отслеживание того, касается ли ручка бумаги в данный момент, переход на новый лист и так далее.
А что касается голосового ввода, то сейчас на смартфонах (по крайней мере, в GBoard и Яндекс.Клавиатуре) главный недостаток — это почти полное отсутствие управления вводом. Вот если бы в режиме голосового ввода были кнопки вправо/влево/в конец для возврата к предыдущим словам, чтобы их можно было быстро продиктовать заново, если распознались неправильно, а также кнопки вставки знаков препинания, тогда бы голосовой ввод был бы реально эффективным средством.

Выборка фотографий с помощью машинного обучения

4X_Pro
Удалял ненужные фотографии с мобильника, и возникла мысль: а что если создать программу, которая с помощью методов машинного обучения и компьютерного зрения помогает быстро находить некачественные фотографии. По идее, вполне можно алгоритмизировать поиск типичных ошибок, например, плохую фокусировку, заваленный горизонт, слишком затемнённые или пересвеченные. Думаю, такое очень пригодилось бы тем, кто снимает сериями — сэкономило бы кучу времени на удаление лишнего.
Дальше можно развить эту идею — сделать какую-то общую оценку качества фотографии, чтобы программа помогала не только удалить плохие, но и отобрать лучшие.

Площадка для взаимодействия программистов и UI/UX-дизайнеров

4X_Pro
Недавно составлял обзор панелей управления хостингом и обратил внимание на то, что за редким исключением интерфейс open source приложений очень сильно проигрывает коммерческим. Причём это касается не только панелей хостинга, но и почти всего, где есть графический или Web-интерфейс, например, движков социальных сетей. (Из исключений могу вспомнить только Hestia, Mastodon и тему Lubuntu для LXDE, там реально приятные интерфейсы.)
Почему так происходит — достаточно понятно: дизайн интерфейсов и программирование требуют совершенно разных навыков, поэтому людей, которые хорошо справляются и с тем, и с другим, в Сети не так уж и много. Заказывать дизайн на платной основе для заведомо некоммерческих проектов тоже не вариант, поэтому обычно дизайн делается по принципу «не стреляйте в программиста, он дизайнит как умеет», и получаем то, что описано выше.
Поэтому возникла мысль: что если создать площадку, где могли бы находить друг друга программисты, разрабатывающие open source проекты, и дизайнеры UI/UX, готовые делать что-то полезное для общества за идею (или же просто ради наполнения портфолио). Или в UI/UX такие люди просто не идут? Или, может быть, такие площадки уже где-то есть, просто я об этом не знаю?

Сайты целиком на PDF

4X_Pro
Недавно на Хабре зашла речь о протоколе Gemini и других возможных альтернативах современному перегруженному Web. Один из участников высказал мысль, что раз для отображения Web-страницы нужен текст, картинки, шрифты и стили, то нужно передавать всё это в едином файле и в бинарном виде, а не собирать по кусочкам. И тут я подумал: а ведь есть формат, в котором всё перечисленное уже предусмотрено. Это PDF, который к тому же с 2008 года является открытым стандартом. Причём программы-просмотрщики для него гораздо менее требовательны к ресурсам, чем современные броузеры. И более того, уже сейчас поисковики умеют индексировать PDFы!
В общем, для чисто контентных сайтов типа моей личной страницы xxxxpro.ru или typologies.ru это могло бы стать отличным решением. Более того, как выяснилось, в PDFах также могут быть и формы, что даёт возможность сделать и базовую интерактивность типа формы обратной связи или комментариев. И такие страницы будет удобно сохранять к себе на компьютер!
Главный минус такого подхода — это непривычность для пользователя. Кроме того, не знаю, можно ли сделать в PDFе фиксированное меню сбоку или сверху, которое оставалось бы всегда доступным (аналог position: sticky в CSS), а также чтобы документ не разбивался на страницы, как книжка, а показывался единым потоком до конца текущего раздела.

Вычислительные облигации

4X_Pro
Пришла в голову мысль, что если уж неразумная часть человечества готова активно жечь ресурсы на майнинг криптовалют, то нужно сделать такую, добыча которой делалась бы с полезными вычислениями. Точнее, это должны быть некие «облигации на вычислительную мощность», если так можно выразиться. То есть сначала некто, у кого есть есть потребность в определённом количестве вычислительной мощности (назовём его эмитент) создаёт токен-запрос на выполнение определённого объёма нужных ему вычислений, причём в этот токен сразу закладывается программа для их выполнения и проверки корректности. Далее любой участник сети, который готов предоставить свои мощности, может взяться за эти вычисления. После их выполнения токен-облигация превращается в единицу криптовалюты, которой можно либо расплачиваться с другими участниками сети (на тех же принципах, что работают те же bitcoinы), либо предъявить эмитенту для обмена на живые деньги, после чего эмитент сможет эту «облигацию» погасить.
Причём поиск и передача вычислительных заданий должна быть автоматизирована. Ближайшие аналоги из того, что есть сейчас — это платформа распределённых вычислений BIONC и платформа облачного гейминга drova. (Только в первой — участие добровольное за идею участия в прогрессе человечества), то есть просто в фоне висит приложение и что-то считает/выполняет, беря столько процессорного времени, сколько разрешено в настройках.
К сожалению, не знаю, можно ли такое сделать на смарт-контрактах Etherium, или же потребуется полностью своя инфраструктура. К тому же возникают вопросы корректности вычислений и их безопасности, чтобы не превратить такую сеть в гигантский ботнет.

Подмножество HTML+CSS для приложений

4X_Pro
Сейчас всё чаще и для desktop и для мобильных появляются приложения, основанные на Web-технологиях. То есть по сути, представляют набор HTML+JavaScript, запускаемых во встроенном броузере. У этого подхода немало плюсов (дешевизна разработки, кроссплатформенность), но есть недостаток: потребление ресурсов существенно выше, чем у native-приложений. Во многом потому, что современный броузер — сам по себе очень технически сложный продукт (на Хабре видел даже точку зрения, что операционную систему написать проще, чем броузер).
Но с другой стороны, для приложений в большинстве случаев все возможности броузера и не нужны. Например, всякие WebGL, CSS animations, transformations и т.п. Возникла мысль, что есть смысл стандартизировать некое подмножество HTML+CSS, которое наиболее востребовано именно в типичных приложениях, и сделать лекговесную, быструю и экономную по памяти версию броузера, из которой убрано всё лишнее (а также всякие quirks mode, работа с невалидным HTML-кодом и т.п.) специально для использования именно в приложениях.

Диагностика с помощью мобильника

4X_Pro
Случайно наткнулся на статью про то, как болезнь Альцгеймера диагностировали с помощью акселерометра. И возникла мысль: а ведь можно сделать мобильное приложение, которое будет работать аналогичным образом. То есть распознавать такие отклонения в походке по встроенному в мобильник акселерометру (возможно, с обработкой нейросетью) и предупреждать, если появятся опасные признаки.

Политические координаты: альтернативная система

4X_Pro
Пару раз проходил в ВК приложение с тестом на политические взгляды, которое выдаёт результат в системе координат из двух осей: левый/правый, авторитарный/антиавторитарный. Подробнее эта система координат описана здесь: https://vk.com/@polmemes-kak-rabotaut-politicheskie-koordinaty.
Такая система хороша для характеристики различных партий, режимов и движений, но, на мой взгляд, не полностью отражает то, что лежит в основе выбора отдельной личности. Наблюдая за околополитической руганью на разных площадках Интернета (в первую очередь, в ЖЖ и на Дзене), я пришёл к выводу, что для этой цели подошла бы другая система координат: Справедливость/Семья в качестве вертикальной оси и Желание предсказуемости/Вера в себя по горизонтальной.
Дихотомия Справедливость/Семья проявляется в ситуациях наподобие такой: «Ваш близкий родственник (в идеале — сын или дочь), будучи слегка выпившим, сел за руль и совершил наезд на пешехода с нанесением ему тяжёлых травм. Существует возможность помочь ему уйти от ответственности, дав крупную сумму в качестве взятки.» Соответственно, те, кому ближе Справедливость, в такой ситуации откажутся, те, кому ближе Семья — согласятся. Второй пример выбора в сторону Справедливости — это знаменитая фраза, приписываемая Сталину — «я солдат на фельдмаршалов не меняю», сказанная по поводу возможного обмена его сына, попавшего в плен, на фельдмаршала Паулюса.
Вторая ось характеризует то, верит ли  человек в себя и готов рисковать в жизни ради крупных выигрышей (а также идти ради них на конкуренцию с другими) или предпочитает жить в условиях меньших свобод и возможностей, но бо́льших социальных гарантий. Оценить это можно по тому, насколько близка такая метафора: «Птица на дереве не боится, что ветка сломается, потому что она доверяет не ветке, а своим собственным крыльям.»
Если взглянуть на данные координаты с точки зрения типологий личности, то Семья/Справедливость будет коррелировать с менталитетами Переслегина: интелям и буржуа ближе всего Справедливость, варварам — Семья, аристократы — где-то посередине. А Желание предсказуемости/Вера в себя — с диагональю системы DISC: типу C ближе всего левая позиция («Желание предсказуемости»), типу D — правая («Вера в себя»).
P.S. Если у кого есть идеи, как дать название полюсам горизонтальной дихотомии из одного слова, пишите в комментарии.

Использование blockchain для оценки доверия сайту

4X_Pro
Давно интересуюсь вопросами доверия в Интернете, и пришла в голову мысль, что тут могла бы пригодиться blockchain-технология для создания отзывов и оценок. В результате придумал алгоритм, который выглядит так (если расписать с помощью традиционных для криптографии персонажей Алиса, Боб и Чарли): Читать далее…

Страницы:
Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.