Задать вопрос
  • Можно ли отследить текст нажатой инлайн кнопки в телеграмм?

    shurshur
    @shurshur
    Роман Бурч, название на кнопке не содержит информацию, которая передаётся в бота.

    9 функций делать не надо. Достаточно одной функции, которая будет обрабатывать разные значения.
  • Влладалаьаьыджввла?

    shurshur
    @shurshur
    Не существует универсального способа поимки читов, как и не существует универсального способа обмана игры. Это может быть весьма творческим процессом с обеих сторон, сильно зависящим от конкретной игры.

    Читал где-то недавно, что один товарищ написал очень умного бота, который активно мочил NPC, но если в близкой окрестности появлялся живой игрок, то он останавливался, как будто игрок AFK. Но админы игры всё же заметили в его поведении и статистике что-то неладное, а чтобы поймать его на горяченьком, просто слегка сдвигали его на очень короткое расстояние во время боя. Короткие перемещения себя бот не замечал и в вычислениях не учитывал, на том и погорел.

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

    Через год капчу решили заменить на интеграцию с соцсетями, и там тоже было много интересного. Куча голосов с аккаунтов, страницы которых выдавали 404 или имели имена типа Sljlffffq Ufewfhr. Распределение по странам у накрученных показывало 20-50% иностранцев, а распределение по времени суток было весьма нетипичным (специфичность конкурса означала, что 99% голосов будут не просто от русских, а вообще от москвичей в UTC+3). В общем, кто накручивал, тех было прям очень сильно видно. Более того, поиском в гугле по честным лидерам голосования можно было найти море упоминаний "прошу проголосвать" на тематических форумах, в аккаунтах соцсетей заинтересованных поддерживающих, а по накрутчикам вообще ничего не находилось, вообще никакого источника подобной активности нельзя было увидеть.

    Так что укрыться от пристального внимания и детального анализа достаточно сложно, особенно если данные анализирует достаточно внимательный и дотошный человек.
  • Что означает символ @ в правах макос?

    shurshur
    @shurshur
    TemaKam, ну значит реально есть что-то ещё. К слову, макось создаёт на неродных файловых системах файл .DS_store с какими-то данными, а при штатном создании zip-архивов в них ещё помещается какой-то мусор.

    На самом деле в Linux тоже бывает POSIX extended attributes, возможно что-то подобное.
  • Что означает символ @ в правах макос?

    shurshur
    @shurshur
    TemaKam, я лет 10 уже не щупал макось, да и тогда не особо в ней ковырялся, только решал спонтанные задачи. Поэтому не разбираюсь в её особенностях. Может, в ней acl просто через @ и показываются?
  • Как использовать вк для предачи данных?

    shurshur
    @shurshur
    Выглядит как какое-то извращение, потому что проще написать свой сервер, например, на вебсокетах, и использовать его для обмена данными.
  • Что означает символ @ в правах макос?

    shurshur
    @shurshur
    TemaKam, в Linux может отображаться @ как признак того, что это симлинк, при некоторых ключах ls, например, ls -F. Но у имени файла, а не около прав. При наличии нестандартных acl там будет +, а не @
  • Как посчитать метрику предсказательной функции дифференцируемыми методами?

    shurshur
    @shurshur
    Вероятность p <=0,5 значит что событие не случится.


    Почему?
  • Как проверить работает ли бот или нет?

    shurshur
    @shurshur
    Asriel, я думал речь об общении между ботами, а не о проверке токена. Ну так можно просто дёргать /getMe у бота по url или создав объект бота в любимой библиотеке и вызвать от него bot.get_me(). Но глубокого смысла такого действия не понимаю.
  • Как пинговать сайт скриптом, запущенным на хероку?

    shurshur
    @shurshur
    Думается мне, что на Heroku и текст будет английский, и формат вывода будет из Linux, и кодировка cp866 не при делах... Не говоря уже о том, что и самого ping может не быть в песочнице, в которой запускается приложение.
  • Как сделать чат бота вк который будет присылать данные из БД?

    shurshur
    @shurshur
    Можно и даже разумно класть информацию в какой-нибудь менеджер очереди типа rabbitmq (не вместо базы, а совместно с ней). Можно класть информацию об изменениях в отдельную таблицу в самой базе. Можно версионировать записи в таблице, поднимая version при каждом изменении (если используемая база поддерживает триггеры, это можно даже автоматизировать), тогда бот будет запрашивать записи с version больше последней известной.
  • В чём разница между S3 CEPH и S3 HCP?

    shurshur
    @shurshur
    Любой "аналог" это всегда условность. Дело в том, что S3 - это 1) протокол 2) функционал 3) конкретная реализация.

    В своё время тестировал riak cs и в нём не было поддержки S3 SIGv4. К счастью, большинство клиентов S3 поддерживают принудительное использование SIGv2, поэтому было решаемо, но всё же. Это довольно простой и в то же время реальный пример отличий.

    Поддержка протокола S3 означает, что сервис умеет отвечать на запросы в соответствии с протоколом, но насколько глубоко он поддерживается? Там можно назначать метаданные файлам, генерировать preshared url или поддерживается lifecycle policy?

    С точки зрения функционала вообще есть ли в этом сервисе то, что нужно? Например, умеет ли он вообще удалять файлы по истечении TTL, даже если формальное назначение lifecycle policy проходит без ошибок?

    И с точки зрения реализации не факт, что всё будет работать так же, как в AWS. Например, если в AWS положить миллион файлов, то он прожуёт спокойно. А если положить в minio миллион файлов на один уровень вложенности, то будет очень грустно. Всё потому, что minio хранит каждый файл в виде каталога с шифрованным blob и метаданных в json. Запрос списка файлов вызывает миллион вызовов stat, и это ни фига не быстро, особенно на HDD. Причём ни фига не очевидно, что так будет, если исходить только из наличия поддержки S3 и формальной информации о том, что миллион туда положить можно (да, можно, но если класть неправильно, будут нюансы).

    Конкретно с Ceph не имел дело, а про HCP вообще первый раз слышу. Привёл общие соображения. Надо смотреть официальную информацию о поддержке фич (что поддерживается и насколько полноценно), гуглить опыт реальных пользователей, ну и, конечно, тестировать в своих условиях.
  • Почему не используют NoSql решения на каждого пользователя?

    shurshur
    @shurshur
    Причём тут упоминание NoSQL применительно к реляционной sqlite?

    Иногда делают очень специфические решения для необычных задач. Например, Internet Archive хранит данные в виде архивов на диске - никакой базы.

    Или вот если вспомнить почту, то dovecot хранит каждый ящик отдельно от других. Ещё бывают почтовики, у которых mailbox (все письма одним файлом длинной портянкой) или maildir (письма отдельными файлами с timestamp в имени).

    Но в целом это неудобно для больших масштабируемых решений.
  • Свой почтовый сервер сложно поддерживать?

    shurshur
    @shurshur
    Да, чтобы это работало нормально (актуально резался спам, ничего не отваливалось итд), нужно постоянно следить и прикладывать усилия.

    Когда какое-нибудь письмо о регистрации на Нужном Сайте не доходит до mail.ru - Нужный Сайт напряжётся и что-нибудь сделает. Когда оно не доходит на маленький сервачок - сайт пошлёт пользователя самого искать подходящих тараканов в своей конфигурации. Придётся осваивать навыки чтения логов, изучения документации по конфигам итд.

    Но если всё же хочется, то рекомендую посмотреть на проект MailCow.
  • Почему программа «шифрования» не работает с русским алфавитом?

    shurshur
    @shurshur
    Данил, умные слова типа "колцо вычетов по модулю p" - это не так страшно. Это когда мы берём не все числа вообще, а только остатки от деления на p. И переопределяем основные операции: сложение берём по остатку, умножение тоже. Например, если p=7, то 2*4 mod 7 = 1.

    В python так:

    (2*4) % 7

    Определённые подобным образом "сложение" и "умножение" обладают рядом свойств: коммутативность (a+b=b+a, a*b=b*a), ассоциативность (a+(b+c)=(a+b)+c) и некоторыми другими. Собственно, такое вот множество с двумя операциями и некоторыми особыми свойствами называют в алгебре кольцом.

    Но всё это для задачи не очень важно. Тут достаточно просто брать остаток по длине словаря:

    newposition = (position + shiftAmount) % len(a)

    Так будет более разумно.
  • Почему mono в ubuntu не находит .so?

    shurshur
    @shurshur
    Klucva, да, только вряд ли "рядом с программой" означает в /lib, скорее надо LD_LIBRARY_PATH=/path/to/your/program
  • Почему inline функция не компилилируется?

    shurshur
    @shurshur
    jcmvbkbc, нет, inline-функция это не макрос и не может содержать ошибок. Изначально inline-функции в C означали именно то, что они никак не вызывались (call/ret), а просто копировались в целевую функцию, чтобы избежать относительно дорогой операции вызова (особенно far call, когда вызов осуществлялся не в пределах сегмента по смещению, а с переходом в другой сегмент) для очень простых функций. Разумеется, это также означает, что экспорт inline-функции как символа в принципе лишён смысла.

    Но в итоге всё стало совсем запутано: https://ru.stackoverflow.com/questions/747334/inli...
  • Почему inline функция не компилилируется?

    shurshur
    @shurshur
    inline-функция не должна компилироваться, её тело должно вставляться в нужное место программы и компилироваться каждый раз заново. Соответственно, ld её и не сможет увидеть никогда в принципе. Кстати, inline-функции надо описывать в h-файлах, а не c-файлах.