• Как работают пиксели ретаргетинга?

    lastuniverse
    @lastuniverse
    Антон Морозов, учитесь формулировать вопросы)

    1. Q. почему пиксель?
    A. потому что прозрачный пиксель не видно на странице и его можно вставить в любое место страницы.

    2. Q. Что дает вставка пикселя?
    А. Тут все просто, пиксель грузиться со специальной страницы (ВК, ОК и т.д.). При этом, скрипт этой страницы не просто отдает картинку, но также и обрабатывает запрос картинки, вычисляя и запоминая с какого сайта пришел запрос, какой пользователь ВК, ОК и т.д. Посетил сайт с пикселем (если конечно посетитель авторизован в ВК, ОК, и т.д.

    3. Q. Каким образом ВК, ОК и т.д. узнают, с какого сайта пришел запрос на пиксель?
    А. Очень просто: referer заголовок, передающийся вместе с запросом

    4. Q. Каким образом ВК, ОК и т.д. узнают, какой пользователь посетил сайт с пикселем?
    А. Очень просто: Cookie (Если пользователь в настоящий момент авторизован в ВК, ОК и т.д., то соответственно ВК, ОК и т.д. отдают ему некий токен, соответствующий его текущей сессии в ВК, ОК и т.д., При запросе пикселя, так как запрос идет на домен ВК, ОК и т.д., в теле запроса передается и этот токен, по которому скрипт на сайте ВК, ОК и т.д. отдающий пиксель и определяет пользователя посетившего сайт с пикселем)
  • Как работают пиксели ретаргетинга?

    lastuniverse
    @lastuniverse
    Антон Морозов, опять же, вы пишите:
    вопрос был о технической части работы абстрактного пикселя ретаргетинга.

    Теперь скажите, описание по моей ссылке рассказывает о "психической части" или о "философской части" или еще о какой то (не технической) части?

    Да возможно по ссылке раскрыто не все, что можно отнести к технической части, но извините, вы что и правда верите, что на столь общий вопрос получите детализированный ответ на 3-4 листа?
    Хотите нормальный ответ, выражайтесь яснее (конкретизируйте вопрос).
  • Как работают пиксели ретаргетинга?

    lastuniverse
    @lastuniverse
    Антон Морозов, вы сами свой вопрос читали?

    Вот вы пишите:
    Подскажите, пожалуйста, как работают пиксели ретаргетинга (ОК, ВК, ФБ)?

    А на мой взгляд это вполне адекватный ответ на данную часть вопроса. Разве нет?
  • Как с помощью bcrypt зашифровать в строку?

    lastuniverse
    @lastuniverse
    Адель Халитов, этого нельзя сделать с помощью bcrypt, разве что брутфорсом. Модуль bcrypt не шифрует данные а вычисляет хэш от текста без возможности последующей расшифровки.

    документация к модулю BCrypt
    API модуля BCrypt
    genSaltSync(rounds, minor)
            rounds - [OPTIONAL] - the cost of processing the data. (default - 10)
            minor - [OPTIONAL] - minor version of bcrypt to use. (default - b)
        genSalt(rounds, minor, cb)
            rounds - [OPTIONAL] - the cost of processing the data. (default - 10)
            minor - [OPTIONAL] - minor version of bcrypt to use. (default - b)
            cb - [OPTIONAL] - a callback to be fired once the salt has been generated. uses eio making it asynchronous. If cb is not specified, a Promise is returned if Promise support is available.
                err - First parameter to the callback detailing any errors.
                salt - Second parameter to the callback providing the generated salt.
        hashSync(data, salt)
            data - [REQUIRED] - the data to be encrypted.
            salt - [REQUIRED] - the salt to be used to hash the password. if specified as a number then a salt will be generated with the specified number of rounds and used (see example under Usage).
        hash(data, salt, cb)
            data - [REQUIRED] - the data to be encrypted.
            salt - [REQUIRED] - the salt to be used to hash the password. if specified as a number then a salt will be generated with the specified number of rounds and used (see example under Usage).
            cb - [OPTIONAL] - a callback to be fired once the data has been encrypted. uses eio making it asynchronous. If cb is not specified, a Promise is returned if Promise support is available.
                err - First parameter to the callback detailing any errors.
                encrypted - Second parameter to the callback providing the encrypted form.
        compareSync(data, encrypted)
            data - [REQUIRED] - data to compare.
            encrypted - [REQUIRED] - data to be compared to.
        compare(data, encrypted, cb)
            data - [REQUIRED] - data to compare.
            encrypted - [REQUIRED] - data to be compared to.
            cb - [OPTIONAL] - a callback to be fired once the data has been compared. uses eio making it asynchronous. If cb is not specified, a Promise is returned if Promise support is available.
                err - First parameter to the callback detailing any errors.
                same - Second parameter to the callback providing whether the data and encrypted forms match [true | false].
        getRounds(encrypted) - return the number of rounds used to encrypt a given hash
            encrypted - [REQUIRED] - hash from which the number of rounds used should be extracted.


    Если у вас возникает вопрос зачем такое вообще надо, то вот вам простой пример использования:

    У вас есть некая авторизация пользователей принимающая логин и пароль. При этом в целях безопасности вам нельзя хранить пароль в БД или файле в открытом виде (вдруг злоумышленник сможет получить доступ к такому хранилищу и узнает пароли всех пользователей, включая администраторов). Для решения этой задачи и используются хэш-функции.
    1. при установке нового пароля пользователю в БД записывается не сам пароль а его хэш
    2. при авторизации, веденный пользователем пароль хэшируется тем же алгоритмом что и на шаге 1
    3. хэш введенного пароля сравнивается в хэшем из БД. если совпали, то пользователь ввел верный пароль, если не совпали - пользователь посылается куда подальше )

    PS: для реализации вашей задачи вы можете использовать одну из следующих библиотек:
    RSA Javascript encryption
    RSA and ECC in JavaScript
    cryptico
    или любую другую, реализующую принцип открытого/закрытого ключей. Таких библиотек множество
  • Как ребенка 12лет ввести в it?

    lastuniverse
    @lastuniverse
    Если ребенку нравится minecraft то ему можно подсунуть это:
    https://www.youtube.com/watch?v=g4jflepmqhY
    https://dev.bukkit.org/projects/scriptcraft
    https://github.com/walterhiggins/ScriptCraft
    https://medium.com/free-code-camp/how-to-mod-minec...

    Есть шанс что возникнет интерес к программированию.

    ЗЫ: вот еще на эту же тему, только от хозяев minecrafta https://www.minecraft.net/en-us/article/scripting-...
  • Как определить, кто говорит на данный момент?

    lastuniverse
    @lastuniverse
    Идеальным вариантом для вас будет использовать Voice Activity Detection

    ЗЫ: сам я этот вопрос так и не победил. У скриптовых ЯП на момент написания этого поста просто нехватало быстродействия)))

    ЗЫЗЫ: вот чутка погуглил и нашел такую либу:
    https://www.npmjs.com/package/voice-activity-detection
    https://github.com/kdavis-mozilla/vad.js/tree/master

    Ну и на коленке сделал рабочий пример. Перейдите во вкладку Result, разрешите временный доступ к микрофону, подождите пару секунд и начинайте говорить.

  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, надо тестировать, но думаю что голанг даст в вашей ситуации незначительное ускорение
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, в вашей ситуации я бы пошел по пути, раскрытому в моем предыдущем комментарии)
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    мне нужно намного быстрее отправить запрос на сервер (в сравнении с другими людьми)

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

    lastuniverse
    @lastuniverse
    Nikolay37, ведь по факту можно кинуть необходимое для текущего момента количество запросов сразу (параллельно) и через Promise.all() дождаться всех ответов и продолжить выполнение задачи. При таком подходе общее время ожидания будет не намного больше чем время ответа самого медленного запроса
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, тоже не подскажу. Лучше расскажите причину по которой вы хотите все ускорить, ведь "от 50 до 200 мс" это достаточно быстро если речь идет о получении ответов от стороннего сервера. Возможно вам и ускорять ничего не надо, просто правильно организовать отправку запросов.
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, все же попробуйте мультизапросы.
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, по всей видимости да, не сможете. потому и написал "в ряде случаев", то есть не во всех ))
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Nikolay37, тут конкретики не подскажу.
    Мультизапрос, в ряде редких случаев может так же и замедлить прохождение запроса/ответа.
    Если вы не имеете возможности повлиять на сервер, отвечающий на запросы и канал прохождения то в ряде случаев возможно ускорить отклик за счет кэширования полученных данных.
  • Как устроена система ответов на запросы?

    lastuniverse
    @lastuniverse
    Все дело в том, что запрос на пути от клиента к серверу проходит через кучу разного сетевого оборудования, начиная от роутеров/маршрутизаторов, межсетевых экранов и прочего и кончая различными прокси с nginx или чем то подобным, распределяющим клиентскую нагрузку между серверами и сервисами (это упрощенно). На каждом из этих устройств есть собственные системы/механизмы распределения трафика, а также различные оптимизации, нацеленные на общее ускорение прохождения информации. Каждый из них может влиять на скорость прохождения запроса в зависимости от множества факторов, таких как общая нагрузка на канал, загруженность памяти устройств и их процессоров и многих других. В результате каждое из этих устройств может вносить некоторую задержку в прохождении каждого конкретного сетевого пакета, при этом для разных пакетов задержка может быть разной. Данное описание является очень упрощенным, но дает общее понимание ситуации. Таким образом, ситуация, когда ответы на запросы могут приходить не в том порядке, в каком эти запросы были сделаны является нормальной.

    Если же вам требуется обеспечить строгую последовательность обработки ответов на запросы используйте Promise или другие механизмы, позволяющие управлять последовательностью асинхронных операций, такие как async await.

    по теме:

    Полное понимание синхронного и асинхронного JavaSc...
    Конструкция async/await в JavaScript: сильные стор...
  • Как определить, кто говорит на данный момент?

    lastuniverse
    @lastuniverse
    xmoonlight, хотя вру. В моей организации (мо рф) такие проблемы решают просто и в лоб, с помощью оператора)))