Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Леонид Каганов ([info]lleokaganov)
@ 2023-10-06 07:21:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:программирование

identicon
взято отсюда: https://lleo.me/dnevnik/2023/10/05


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


d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d
8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48
90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22
306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20
e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e
1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c

А вот задачу свою выполняли крайне плохо — с технофричеством и без понимания мирских задач. Ведь задача этой штуки — дать человеку (а вовсе не машине) образ, максимально запоминающийся среди прочих. С точки зрения именно человека. Вместо этого нам рисуют кружочки, засеянные хаотичными точками. Это самый скудный вариант из всех возможных. Ведь с тем же успехом можно использовать даже QR-код. Для машины все QR разные, но для человека-то одинаковые. Не спорю, я знавал людей, которые могут различать QR-коды и даже читать письмо в HEX-кодировке. Но это не повод держаться за антинаучные разработки. Обычному человеку опознать по виду «какое-то число» даже проще, чем «какой-то QR-код». Тогда в чем смысл? Человек довольно хорошо различает графические образы, но не хаотичные точки, а довольно специфические образы. Распознаванием занимаются специально заточенные нейроны затылочной коры и ТПО. По сути весь сука затылок человека и вся теменновисочная часть мозга заняты огромным процессором, который расшифровывает простые символы. Но не наборы точек. Кому интересно — читаем труды нобелевских лауреатов Хьюбел, Визель «Глаз мозг зрение». Точки идут мимо мозгового процессора, он спроектирован и оптимизирован не для запоминания узоров калейдоскопа. Делать идентикон нужно при помощи того, что человек распознает лучше всего. Что? В первую очередь — лицо. Человек идеально настроен на распознавание лица, это включается из коробки даже у младенца. НА втором месте знакомые узнаваемые образы: ну там аист, слоник, молоток, шляпа...

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

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

И пришлось мне делать унылое. В итоге у меня сегодня смастерилась JS-библиотечка (использует wasm, Раст же блин). Самое простое ее применение — после загрузки ищет на странице все DIV с прописанным параметром identicon и рисует в нем идентикон. Ну и заодно input type=radio отслеживает:

<html>
<script type='module' language='JavaScript' src='https://lleo.me/extended/identicon/identicon.js'></script>

...

<div style="font-size:16px" identicon="d43593c71527d">d43593c71527d</div>

<div class='identicon'>
<div><label><input name='a' type='radio' value='ALICE'>ALICE</label></div>
<div><label><input name='a' type='radio' value='BOB'>BOB</label></div>
</div>



GitHub: https://github.com/lleokaganov/identicon-js

Ну а раз уж так нарисовалось, я привинтил заодно это уныние и себе на сайтик, теперь посетители видят свой собственный уникальный кружочек. У тебя, lleo, он такой: