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

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


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

t.me/4x_pro

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

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

Инфохаб

4X_Pro
Давно задавался вопросом, что придет на смену социальным сетям, и, кажется, нашел на него ответ. На смену социальным сетям в их нынешнем виде придет то, что я назвал инфохабом — некая площадка, которая позволяет собрать в одно место все важные для человека информационные потоки и управлять ими. Базовые функции — те же, что и в социальных сетях, но есть несколько принципиальных отличий:
  1. наличие переключаемых статусов с разграничением доступа (во многом аналогично тому, как это было в ICQ в свое время), например «готов общаться» — доступ открыт всем, «работаю» — доступ только набору контактов по работе, остальным приходит автоответ, что пользователь сейчас не доступен, ждите, «отдыхаю» — доступ имеет только другой набор контактов, и т.д. Статусы пользователь может создавать сам.
  2. возможность собирать информацию из множества источников. Как минимум, в инфохаб должны быть встроены клиенты к уже существующим соцсетям + RSS-клиент (еще одна вещь, которой мне крайне не хватает ВКонтакте). Причем видимые источники тоже зависят от выставленного статуса, так, например, при переключении статуса в «работаю» становятся недоступными ленты, помеченные как развлекательные.
  3. возможность пометить материал для того, чтобы прочитать/посмотреть позже (сейчас она, к сожалению, есть только в YouTube), причем в идеале еще с возможностью задать приоритет (сейчас мне этого очень не хватает ВК).
  4. разделение лайков как выражения одобрения, согласия и т.п. и оценки полезности материала.
  5. наличие возможности выкладывать больше количество своих материалов, которые не будут «уезжать» со временем (аналог Заметок, которые были ВК, кажется, до 2012 года).
  6. более развитые блоговые возможности (что у FB, что у ВК с этим весьма печально).
Как это может быть реализовано? На мой взгляд, есть два варианта:
  1. Web-приложение, которое будет работать в режиме децентрализованной социальной сети, так, что каждый сможет держать свой инфохаб на собственном сервере с полным контролем над ним
  2. мобильное приложение, которое, по сути дела, будет мульти-клиентом для социальных сетей (аналогично тому, как как QIP и Pidgin являются мульти-клиентами для мессенджеров первого поколения). К сожалению, в этом случае непонятно, как реализовать функции хранения собственных материалов из пункта 5.

Социальный поиск

4X_Pro
Около года назад мне пришла в голову идея социального поиска, который мог бы решить три проблемы: проблему поискового спама, проблему достоверности информации в Интернете, и проблему нечеткого поиска (когда есть желание найти информацию по какой-то достаточно широкой теме, но нет конкретного запроса). Социальный поиск сочетает в себе функции поисковика, каталога сайтов и социальных закладок.
Суть его в следующем: создается сайт, по функционалу близкий к социальной сети, где каждый пользователь, может сделать подборку сайтов по определенной теме, которые считает надежными, и опубликовать ее . Поиск осуществляется в два этапа: на первом выбирается подходящая подборка, на втором — вводится запрос, который передается обычному поисковику с указанием искать только на сайтах из этой подборки. Каждую подборку можно рейтинговать и комментировать, а также просматривать все имеющиеся в ней сайты. Еще может быть функция «предложить сайт в подборку». Таким образом, получаем, что доверие к результатам социального поиска основывается не на доверии к поисковым алгоритмам, отбирающим информацию из всего Интернета (которые, по сути, представляют собой «черные ящики», а на доверии к пользователям, составляющим подборку, а поисковик выступает в роли исключительно технического средства, подбирающего нужную страницу в пределах уже отобранных сайтов.
В принципе, у Яндекса уже есть готовая технология для реализации этой идеи — конструктор форм поиска по сайтам (возможно, у Google тоже есть что-то подобное), и все сводится к тому, чтобы создать сервис, на котором эти формы публиковались бы (и был реализован прочий функционал типа рейтингов). Вопрос в том, как набрать и замотивировать критическую массу людей, которые занялись бы составлением этих подборок. У кого-нибудь есть идеи?

Сенсорный экран с распознаванием пальцев

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

Клеточные автоматы и распространение идей в обществе

4X_Pro
Прочитал сегодня на Хабре про клеточные автоматы, и пришла в голову мысль, что если совместить их с социальным графом (в смысле, использовать его в качестве решетки для клеточного автомата), то они окажутся идеальным средством моделирования распространения какой-либо идеи в социуме.
Для этого граф надо сделать взвешенным, где вес узлов — это коэффициент убежденности в идее (kубежд), причем он лежит в диапазоне от -1 до +1 (условно назовем тех, у кого коэффициент больше нуля — "верующими", а тех, у кого он отрицателен — "атеистами"), а вес ребер — интенсивность взаимодействия между двумя людьми. Начальное состояние системы — вес всех узлов равен нулю, кроме одного — начального носителя этой идеи ("верующего"), у которого он равен единице.
Далее, на каждом шаге работы алгоритма любой узел с ненулевым коэффициентом убежденности определяет, будет ли он с кем-то взаимодействовать на этом шаге (рассказывать про идею). Вероятность взаимодействия равна модулю коэффициента убежденности. Если узел решил, что будет, он выбирает один из соседних узлов (выбор делается случайно, вероятность выбора определяется весом ребра графа) и пытается с ним провзаимодействовать. В ходе этого взаимодействия определяется коэффициент убежденности соседа на основе следующих данных: его предыдущего уровня убежденности (kсосед.пред), уровня убежденности того, кто инициировал взаимодействие и некоего диапазона возможных изменений kизм.min и kизм.max, причем kизм.min может быть меньше нуля, то есть неудачная попытка донести идею может привести к обратному эффекту — человек сделает шаг в сторону "атеизма". Самый простой вариант формулы kсосед = kсосед.пред + kубежд*random(kизм.min,kизм.max), но в общем случае возможен учет и других параметров, скажем, возраста (у более старших людей меньше вероятность изменить убеждения), социотипа (в первую очередь, ценностных функций) и нонкомфорности (т.е. установки "если все делают так, что я буду не как все").
В результате с помощью такой модели можно оценивать во-первых, сколько времени может занять распространение идеи естествнным образом, во-вторых, решить, кому в первую очередь должен рассказывать идею ее первый носитель, чтобы добиться для себя максимально положительного эффекта (либо максимум "верющих" и минимум "атеистов" вообще, либо в пределах какой-то определенной целевой аудитори).
Также можно использовать эту модель для изучения борьбы двух противоположных идей.

Электронный нотариус

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

Наукометрия: индекс "хвоста кометы" для публикации

4X_Pro
Сегодня вспомнился вдруг индекс Хирша, и я задумался над тем, почему в нем (и дргуих подобных системах) совершенно не учитывается такой фактор как время. Ведь чем большее влияние оказала та или иная публикация на развитие науки, тем дольше о ней будут помнить и на нее ссылаться. Кроме того, на мой взгляд, еще важно учитывать, насколько значимыми оказались статьи, ссылавшиеся на данную статью, то есть аналиировать дерево ссылок (хотя бы на три-четыре уровня).
В результате у меня возникла идея, которую я назвал "индексом хвоста кометы" для публикации. Рассчитывать его можно тремя способами:
1) простой вариант:
I = ΣΔTi⋅ki,
где ΔTi — промежуток времени, прошедший между выходом исходной статьи и i-ой публикации со ссылкой на нее (полагаю, удобнее всего брать его в годах, причем значение может быть не целым), ki — весовой коэффициент ссылки (равен 1/Ni, где Ni — общее число ссылок в i-ой статье), суммирование ведется по всем ссылающимся статьям, которые не являются тупиковыми (т.е. на них тоже есть ссылки).
2) древовидный вариант: отличается от предыдущего, что суммирование ведется по всем статьям, которые ссылаются на исходную без учета тупиковости (назовем их статьями первого уровня), а также по статьям, которые ссылаются на статьи первого уровня и т.д. (число уровней выбирается исходя из количества данных, которые требуется обработать для расчета, думаю, больше трех-четырех рассматривать не имеет смысла). При этом для статей m-ого уровня (начиная со второго) коэффициент ki считается как ki=kj*1/Ni, где kj — коэффициент статьи m-1 уровня, на которую ссылается i-ая статья.
3) нормированный вариант: считается простой или древовидный коэффициент, после чего он делится на T — время, прошедшее с момента публикации.
Пожалуй, основной недостаток данного метода — это то, что для его эффективной работы нужен достаточно большой промежуток времени. Но с другой стороны, ничего удивительного здесь нет: зачастую для того, чтобы значимость той или иной работы стала понятна (или наоборот, отсеялись малозначимые работы), тоже необходимо время.

Бизнес-идея: приложение "Знакомства на прогулке"

4X_Pro
Недавно пришла в голову идея мобильного приложения "Знакомства на прогулке". Как видно из назнвания, оно предназначено для знакомств во время прогулок по городу или парку, атакже на массовых мероприятий, на которых находится множество незнакомых между собой людей (например, празднование дня города или концерт какой-нибудь музыкальной группы). Приложение работает следующим образом: пользователь запускает его, делает фотографию камерой, указыает о себе базовую информацию (имя, пол, возраст, что-то аналогичное статусу ВК) и задает радиус, в котором его должно быть видно. После этого ему на карте показываются лица противоположного пола, находящиеся в этом радиусе, у которых тоже запущено это приложение, после чего можно вступить с ними в переписку или сразу пойти знакомиться вживую.
Если пользователь выходит за пределы указанного радиуса, приложение автоматически отключается (это позволяет избежать случайного "засвечивания" домашнего адреса — одной из основных причин, почему многие не решаются воспользоваться знакомствами по карте) и он пропадает с карты. Положение пользователей на карте обновляется в режиме реального времени. Остальные функции — такие же как у обычных приложений знакомств: переписка, список друзей или черный список, подарки. Как вариант, вместо всего этого просто предусмотреть возможность отправлять запросы на показ номера мобильного или другой контактной информации.
Возможные варианты монетзизации:
1) традиционный (реклама + платные подарки) — не уверен, будет ли работать, так как есть возможность сразу же перейти к общению вживую
2) платный режим невидимки, когда самого пользователя не видно, но он имеет возможность видеть окружающих и выбирать, кому написать. 
В принципе, изначально хотел сделать такое сам, но не имею ни малейшего представления, как раскрутить подобное, а без массовости оно просто не будет работать. (Кроме того, нет опыта написания под Android, а также желания вкладываться в сервер, способный выдержать нагрузку, если приложение станет действительно популярным.) Поэтому решил просто подарить эту идею любому желающему, который сможет ее реализовать.

Датацентры в Арктике

4X_Pro
Недавно вспомнил книжку Паршева "Почему Россия не Америка" и задумался над вопросом, а можно ли использовать холодный климат России как преимущество, и если да, то в чем именно. И сразу же подумалось об охлаждении серверов: если разместить датацентр в Арктике (скажем, в районе Архангельска, к которому, скорее всего, подведены достаточно широкие каналы связи), то, по идее, большую часть года можно использовать естественное воздушное охлаждение, что может очень значительно снизить затраты как на создание системы кондиционирования, так и на расход электроэнергии при ее эксплуатации. Кроме того, участок земли под ДЦ в той же Архангельской области будет стоить существенно дешевле, чем в Московской. Соответственно, возник вопрос: неужели никто раньше до подобного не додумался? Или же экономия слишком незначительна?

Язык смайликов

4X_Pro
Недавно прочитал новость про добавление в Unicode новых символов-смайликов. Это навело меня на мысль, что рано или поздно возникнет "язык смайликов", то есть возможность общаться только ими, причем язык этот будет международным, так как смайлики будут пониматься одинаково всеми. Фактически, все что для этого нужно — это выработать некие правила построения сложных понятий на основе группирования смайликов, и способы обозначения абстрактных понятий, например, временных и причинно-следственных связей.
Интересно, как использование такого языка скажется на мышлении?

Mindmap как средство навигации по сайту

4X_Pro

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

Но все эти противоречия можно устранить, если использовать для навигации mindmap (иногда их еще называют "ассоциативными картами"). Mindmap — это изображение, показывающее между собой связь различных понятий, используемая для облегчения изучения и запоминания чего-либо нового. Как правило, в центре его располагается ключевое понятие (тема сайта), от которого расходятся связи к более частным (разделам сайта), а от них к еще более частным (подразделам или конкретным статьям). Каждое понятие можно обозначить как просто словом, так и добавить к нему небольшую картинку для большей наглядности. Нарисовать такой mindmap можно сначала от руки еще на самом начальном этапе проектирования сайта. Это, помимо всего прочего, поможет лучше продумать его структуру.

Техническую реализацию этой идеи я вижу так: изначально в правом верхнем углу сайта находится уменьшенная картинка mindmap, причем она выводится с position: fixed, то есть даже при прокрутке сайта вниз остается на экране на том же самом месте и доступна в любой момент. По щелчку мыши по ней разворачивается полная версия mindmap, содержащая кликабельные области, щелчок по которым приводит к переходу в соответствующий раздел. (Области могут быть произвольной формы, это легко реализуется с помощью тегов map и area.)

Из недостатков такой идеи можно выделить три:

  • немного увеличивается объем работы над сайтом, а также возникает необходимость использовать специальные программы для генерации тегов area;
  • при добавлении новых разделов mindmap придется дорисовывать, поэтому такое решение подходит, в основном, сайтам, структура которых особо не меняется;
  • неудобство для пользователей, заходящих с мобильных устройств с низким разрешением (но таковых можно отслеживать с помощью JavaScript и показывать им уменьшенную и упрощенную версию картинки).

Но с другой стороны, хорошо продуманный и красочный mindmap не только покажет пользователю все что есть на сайте, но и станет одним из самых запоминающихся элементов, выделяющих его среди прочих, своего рода лицом сайта. Но помните: mindmap — это расширение традиционной навигации, но не полная ее замена, и не следует полностью отказываться от таких элементов как указатель текущего местоположения ("хлебные крошки") или главное меню.


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

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