⚙️ Technology. Программирую больше 10 лет. Опыт человека-оркестра в проекте с нуля до миллиона ежедневных пользователей. Учу детскую математику. By the way I use Linux.
⁂ ⁂ ⁂
Хочу в социальных взаимодействиях функцию контроля объема потоков входящей информации. Например я подписан на 100 каналов. Для каждого из 80 я хотел бы получать не более 1 поста в месяц. Для 15 из них я хотел бы получать не более 1 поста в неделю. Для 5 из них я хотел бы получать не более 1 поста в день. <•> При кооперации канал, от которого я хочу получать один пост в месяц, сам выбирает какой пост я получу. <•> При конкуренции я устанавливаю фильтр, пропускающий только один пост в месяц. Фильтр использует алгоритм выбора ежемесячного поста, например выбирает пост с наибольшим количеством реакций подписчиков канала.
Социальные сети могли бы показывать статистику постов для каждого канала. Тогда решая подписываться или нет можно было бы оценить насколько канал шумный, будет там в среднем 1 или 10 постов в день.
* * *
Слово это указатель на смысл. На разные смыслы мы указываем с разной частотой. Для смыслов используемых в экстренных ситуациях важна скорость и удобство их передачи указанием. <•> Чем чаще мы хотим указывать на какой-то смысл и чем чаще указание на этот смысл может требоваться в экстренных ситуациях — тем более короткий и удобный указатель на этот смысл хотелось бы, то есть более короткое и удобное слово.
* * *
Больше всего я писал на Java, нормально понимаю C, иногда что-то делал на C++, сейчас переползаю на Kotlin. Пару раз в жизни тыкал в реверс-инжиниринг с машинным кодом и ассемблерами. Иногда играюсь с высокоуровневыми штуками. Рекомендую: Эндрю Таненбаум, "Современные операционные системы". Однажды я перейду с Ubuntu на NixOS, начну использовать Fediverse, Matrix и другое хорошее.
Выучил программирование где-то в 2011, потому что мне не нравился стандартный интерфейс World of Warcraft и я написал свой. Примерно тогда же я получил все интересовавшие меня достижения в игре, забрался наверх соревновательных рейтингов, мне стали скучны некоторые игровые механики и захотелось их автоматизировать.
Для автоматизации я сделал бота, состоящего из двух частей. Первая часть это мой внутриигровой интерфейс, который отображал в определённом месте экрана внутриигровую информацию, закодированную цветом пикселей. Вторая часть это отдельная программа, которая постоянно следила за содержимым экрана, формально никак не влезая в процесс World of Warcraft, считывала ту закодированную цветом пикселей внутриигровую информацию и исходя из неё генерировала нажатия клавиатуры, которые получала запущенная игра. Эта идея не оригинальна, видел статьи на Хабре с подобными ботами.
Позже, проходя курс ассемблера на первом курсе универа, я сделал другой вариант бота. Это была программа, которая находила запущенный процесс World of Warcraft, получала доступ к его памяти, находила там одну ассемблерную инструкцию и перезаписывала её, после чего я получал возможность управлять персонажем из своего внутриигрового интерфейса напрямую. Этот вариант бота тоже не являлся моей оригинальной идеей, основу для программы и базу данных реверс-инжиниринга World of Warcraft через IDA Pro я нашёл в сети.
Первый вариант бота можно было бы использовать на официальных серверах, второй вариант только на пиратских, так как на официальных античит увидел бы модификации процесса игры.
* * *
Учу математику на Khan Academy, начав с детского сада:
— https:
* * *
Intel Management Engine, AMD Secure Technology. "Zammit stresses that the ME has full access to memory, without the owner-controlled CPU cores having any knowledge, and has full access to the TCP/IP stack and can send and receive network packets independently of the operating system, thus bypassing its firewall".
— https:
* * *
#Trickery #Moloch https:
* * *
Изучал аналитику от приложения и увидел редкое дублирование одного события. В его нормальном названии была буква «i»: «event_item_buy». Но кроме него иногда приходило событие в названии которого вместо «i» была какая-то «ı»: «event_ıtem_buy». Аналитика показывала, что все эти странные события приходят из Турции.
Оказалось, что в английском есть только «I» и «i», а в турецком есть две разные буквы. Одна буква это «I» и «ı» без точек, а другая буква это «İ» и «i» с точками.
В моём случае, для формирования названия события, я переводил слово с английской «I» в нижний регистр, используя локаль по умолчанию. В большинстве случаев это работало нормально, ибо в большинстве локалей «I» уменьшается в «i». Но в турецкой локали «I» уменьшается в «ı» и на устройствах где по умолчанию бралась турецкая локаль я получал «event_ıtem_buy». Для меня проблема решилась явным указанием английской локали при изменении регистра строк.
Когда я всё это гуглил, то нашёл грустную историю связанную с подобными ошибками, типичными для софта в Турции.
Одна супружеская пара была в ссоре. Они разъехались и выясняли отношения через смс. Парень отправил безобидное сообщение, но из-за изменения регистра в софте передающем смс, смысл одного слова изменился и фраза стала смертельным оскорблением. Девушка показала это смс своей семье. Отец пригласил этого парня домой, и там эта девушка, вместе с отцом и двумя сёстрами, попытались парня зарезать.
Парень сумел вытащить из себя нож и смертельно ранил девушку, которая истекла кровью до приезда скорой. Через несколько дней, находясь в тюрьме, парень совершил самоубийство.
❝ [??.03.2018] <•> https:
* * *
https:
* * *