- PVSM.RU - https://www.pvsm.ru -
Вот вам карты «возможного» местоположения разработчиков Telegram и React для затравки.
Параметры:
масштаб +/- страна;
промах до тыс. км.;
вероятность ошибки, по ощущениям, пока ~20%;
Факты:
время коммита сохраняется с timezone пользователя;
мы можем извлечь историю коммитов вызывав git log;
Текущий алгоритм:
смотрим часовой пояс в метке времени коммита;
в некоторых часовых поясах расположен лишь один крупный город (например: +4:30 Кабул, +5:45 Катманду, +10:30 Аделаида);
в некоторых часовых поясах расположена лишь одна страна (например: +05:30 Индия, +12:00/+13:00 Новая Зеландия);
имея зону с N странами учитываем только те, где большая вероятность IT (например: в зоне Буркина Фасо / Великобритания исключаем Буркина Фасо)
проверяем домен первого уровня у почтового ящика (например: mil в основном используют военные США);
проверяем почтовый сервер (например: китайцы предпочитают qq.com)
проверяем уникальные символы в текстах коммитов (например: ł для Польши, ß для Германии, ñ для Испании);
проверяем популярные фамилии (например: Ким и Пак это ~15 млн. корейцев из зоны Корея/Япония, а Судзуки и Сато ~4 млн. японцев)
Что можно ещё:
сохранить ТОП 100 IT-компаний и их адресов. Из email узнать компанию (например: для ivan@luxoft.com [1] это, скорее всего, Luxoft). Сопоставить почту, офисы и текущий диапазон стран.
если человек долго и много коммитил, можно составить гистограмму и сопоставить провалы в ней с гос. праздниками (например: рождество у католиков, фиеста и сиеста у испанцев, день независимости в Папуа — Новая Гвинея).
сопоставить местоположение с другими метриками и выделить на карте работающих и уволенных (или основной состав). Далее корректировать местоположение отдельных ребят по позиции большинства.
Минусы:
много мест с «если», поэтому будут ошибки. Моя задача угадать не 100% случаев, а верно предположить «для большинства».
алгоритм легко обмануть, но «для большинства» это бессмысленная задача.
Да, метод не самый точный. Но текущая реализация (с багами) уже неплохо угадывает, а если добавить правильные переходы на летнее и зимнее время, а также расширить метрики, станет ещё лучше. Исходники тут [2], онлайн демо тут [3].
Python:
установка:pipx install assayoсоздать отчёт:assayo
Ruby:
установка:gem install assayoсоздать отчёт:assayo
JS:
создать отчёт:npx assayo
PHP:
установка:composer require bakhirev/assayo
создать отчёт:vendor/bin/assayo
Docker:
образ: https://hub.docker.com/r/bakhirev/assayo [4]
P.S.: Когда я писал это, новости про Linux ещё не было. А теперь как-то странно выходит, ведь это потенциально можно использовать для массовых баннов. Но с другой стороны, причина банов не в инструменте составления списков. Странно будет удалять это.
UPD: Снял лог [5] c Linux [6]:
Автор: bakhirev
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/bezopasnost/400484
Ссылки в тексте:
[1] ivan@luxoft.com: mailto:ivan@luxoft.com
[2] тут: https://github.com/bakhirev/assayo
[3] тут: https://assayo.online/demo/
[4] https://hub.docker.com/r/bakhirev/assayo: https://hub.docker.com/r/bakhirev/assayo
[5] лог: https://disk.yandex.ru/d/MCszAW2hA50J3Q
[6] Linux: https://github.com/torvalds/linux
[7] Источник: https://habr.com/ru/articles/852782/?utm_source=habrahabr&utm_medium=rss&utm_campaign=852782
Нажмите здесь для печати.