• Как правильно вставить в регулярку переменную?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    const regex = new RegExp('(?<=^|\s)'+l.name+'(?=$|\s|[,\.!?])', 'gi')
    Ответ написан
    3 комментария
  • Как правильно вставить в регулярку переменную?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Собрать паттерн и просто передать его параметром в RegExp
    Ответ написан
    Комментировать
  • Как отображать mp4 видео без ос?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Работа без ОС с железом заключается в том что вы делаете свою "ОС на минималках" и компилируете
    ее в ваш софт. Поэтому мне кажется что тут более важный вопрос - а что вам нужно от ОС ?
    Загрузчик? Файловая система? Драйвера для экрана? Для звука? Это все очень сложные
    инжереные вопросы и чтобы их решать - нужно сначала уметь их решать вместе с ОС и уже
    потом как-то придумать как избавиться от ОС.

    Иначе выглядит что вы просто хотите странного.
    Ответ написан
    Комментировать
  • В какой момент можно использовать функции из другого скрипта?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Разве мы можем использовать скрипт до того, как добавили его в HTML-документ

    Так а где там использование скрипта до того как он загрузился?

    1) функция loadScript принимает на вход 2 аргумента - адрес для скрипта(src) и функцию, которая выполнится после загрузки скрипта из указанного адреса(callback).
    2) Функция loadScript создаёт элемент скрипт, в src которого передаёт одноимённый аргумент. Таким образом, происходит загрузка скрипта браузером.
    3) Задаётся обработчик события onload - то есть когда скрипт загрузится нужно выполнить колбэк - второй аргумент функции. В данном примере это 2 алерта.
    4) т.к. событие onload неизвестно когда произойдёт (оно асинхронное) то выполняется следующая строчка - добавление скрипта в шапку.
    5) Скрипт загрузился, выполнился коллбэк. Т.к. скрипт уже в шапке - доступна функция лодаша.
    Ответ написан
    3 комментария
  • Можно ли TCP ускорить при помощи TCP via UDP tunnel?

    @dronmaxman
    VoIP Administrator
    TCP пакет>UDP tunnel>TCP пакет >

    В некоторых случаях это поможет. Например, если использовать VPN сервер c поддержкой UDP на площадке крупного хостера у которого хороший пиринг с соседями, то в некоторых случаях можно получить прирост скорости и уменьшить latency, но причиной улучшения будет изменение маршрута, то есть маршрут станет более коротким или пройдет через более скоростной канал.

    На рынке есть крупные игроки которые предлогают решение SD-WAN под ключь, которое позволяет повысить качество интернета, но за все надо платить.
    Ответ написан
    2 комментария
  • Можно ли TCP ускорить при помощи TCP via UDP tunnel?

    Нельзя, потому что пинг зависит от маршрута (грубо говоря расстояния до сервера) и времени обработки пакетов на каждом промежуточном устройстве.

    Завернув TCP в какой-то туннель, оставив тот же маршрут, или даже удлинив его - ты только увеличишь пинг.

    есть какой-то TCP Fast Open но как его задействовать для туннеля\iptables?

    Никак. TCP Fast open должен быть поддержан на уровне приложения. Если сервер не готов к tcp fast open, то в любом случае придётся в какой-то точке обойтись без него.

    Есть методы уменьшения пинга у TCP?

    Обозначим твой компьютер буквой A, а сервер игры буквой B.
    В некоторых ситуациях может быть так, что твой провайдер имеет какой-то странный/ненадёжный/не самый хороший, короче, медленный маршрут из A в B.

    Тогда мы можем попробовать найти такой узел C, до которого у твоего провайдера будет оптимальный маршрут, и из этого узла C в B будет тоже более оптимальный маршрут, чем из A в B.

    Но это достаточно редкая ситуация (мне кажется), тк должно совпасть несколько вещей:
    1. Крайне неэффективный маршрут из A в B (на самом деле не редкая вещь. Например есть Ростелеком, который пакеты из Москвы в Европу шлёт через Азию)
    2. Должен быть такой узел C, который находится в таком ДЦ, у которого есть прямое подключение к твоему провайдеру и прямое подключение к провайдеру, у которого есть маршрут в B (на самом деле тоже не редкость, тк у многих хороших ДЦ есть как минимум два подключения к разным магистральным провайдерам)
    3. Выигрыш от добавления узла C должен превышать оверхед от использования туннелей.

    PS: повторюсь, что если у тебя и так уже оптимальный маршрут, то добавление любых туннелей только увеличит пинг.
    Ответ написан
    Комментировать
  • Можно ли TCP ускорить при помощи TCP via UDP tunnel?

    @Strabbo
    У TCP и UDP нету пинга.
    Можно ли TCP ускорить при помощи TCP via UDP tunnel?

    Нельзя
    Ответ написан
    4 комментария
  • Как дождаться ответа функции?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Судя по исходникам (если я нашёл достаточно старую версию, как у вас), метод get() вызывает переданную в него функцию, и первым параметром в неё – уже готовый хэш (строку). И только вторым параметром массив компонентов. Так что зря вы затеяли бездумно копировать чужой код со всяких форумов самостоятельно собирать строку.

    Попробуйте как-то так:
    Fingerprint2.get(hash => {
      $.ajax({
        type: 'post',
        url: 'https://api.example.com/log',
        dataType: 'json',
        data: { hash },
        success: res => console.log('OK!', res),
        error: console.error,
      });
    });
    Но вообще, переходите на поддерживаемую и обновляемую версию пакета @fingerprintjs/fingerprintjs
    Ответ написан
    Комментировать
  • Какие есть бесплатные программы для создания одного exe файла (упаковки в него всех dll)?

    Adamos
    @Adamos
    Упакованные в exe библиотеки должны быть не динамическими (Dinamic Link Library - DLL), а статическими. И присоединяться во время компиляции. Если это вообще нужно.
    А собрать в один экзешник-инсталлятор кучу нужных программе файлов можно, например, бесплатным NSIS.
    Ответ написан
    2 комментария
  • Поиск точного вхождения?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Ответ написан
    Комментировать
  • Програма для синхронизации ГуглДрайв (Линукс), есть такое?

    @pfg21
    ex-турист
    р-клоун !! :) и синхронизация и монтирование по моему всех существующих видов облачных хранилищ.
    плюс куча других проектов.
    Ответ написан
    6 комментариев
  • Как правильно создавать иерархию категорий при импорте в mysql api?

    YBB
    @YBB
    У Вас стоит проверка существования по слагу, а insert делается с жестко заданным id. Даже если бы таблица wp_terms содержала только импортируемые данные (что не так), такая проверка, по большому счету, некорректна.

    Таблица wp_term_relationships связывает записи (object_id) с термами (term_taxonomy_id), а Вы зачем-то пытаетесь туда внести $parent - id родительского терма.

    См. Описание структуры базы данных « WordPress Codex
    Ответ написан
    Комментировать
  • Как редактировать отдельные страницы в многостраничном сайте?

    @HARDOOPS
    Можно использовать чистый PHP, а можно использовать библиотеки, фреймворки и CMS. Можно хранить маршруты статично в файле, а можно динамично в БД. Можно HTML-контент выводить строками в коде, а можно писать код между HTML-контентом. Можно придерживаться подхода MVC, а можно не придерживаться. Можно подключать JS-скрипты статично в HTML-контенте, а можно динамично в других JS-скриптах. За реальный проект можно считать сайт крупнейшего в стране интернет-магазина, а можно считать и интернет-магазин Танечки, сделанный на коленке.

    Столько неопределённости и столько желания, чтобы кто-то дал ответы на все вопросы. Увы, оно так не работает. В 21 веке можно воспользоваться поисковиком, а чтобы быть как все, в тренде, можно воспользоваться ChatGPT.
    Ответ написан
    Комментировать
  • Docker в Windows, Linux переводы строк, как правильно?

    mrusklon
    @mrusklon
    Не получается? Яростно гугли!
    Вариант три: не использовать windows
    Ответ написан
    3 комментария
  • Как передать переменную из html в sql запрос python?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вам надо на время оставить программирование и изучить две гораздо более важные вещи:
    Во-первых, надо научиться структурно мыслить. В частности, разобраться, что ваш вопрос состоит из двух совершенно разных, никак не связанных между собой частей:
    1. как в Flask получить данные формы
    2. как передать переменные в sql запрос

    А во-вторых, научиться пользоваться интернетом. Потому что ответов на оба эти вопроса, в том числе и на данном сайте, просто миллионы.
    На первый (ссылка из ответа на qna.hab.com): https://flask.palletsprojects.com/en/1.1.x/quickst...
    На второй: https://qna.habr.com/q/1002781
    Ответ написан
    Комментировать
  • Как понять, что пользователь долистал до конца страницы?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Вам поможет IntersectionObserver
    Ответ написан
    4 комментария
  • Почему не срабатывает данный блок кода?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    strtr идеально подходит для этой задачи

    <?php
    $associative_chars = array(
            "й"=>"y", "ц"=>"c", "у"=>"iy", "к"=>"k", "е"=>"e", "н"=>"n",
            "г"=>"g", "ш"=>"sh", "щ"=>"sh", "з"=>"th", "х"=>"h", "ф"=>"ph",
            "ы"=>"i", "в"=>"v", "а"=>"a", "п"=>"p", "р"=>"r", "о"=>"o",
            "л"=>"l", "д"=>"d", "ж"=>"j", "э"=>"e", "я"=>"ya", "ч"=>"ch",
            "с"=>"s", "м"=>"m", "и"=>"i", "т"=>"t", "б"=>"b", "ю"=>"yu" 
    );
    
    $to_transcript = function($base_name, $associative) {
        $base_name = mb_strtolower($base_name);
        $result = strtr($base_name, $associative);
        print_r($result);
    };
    
    $to_transcript("Виталий", $associative_chars);


    Не забывайте обработать кирилические символы с акцентами, так как например легко можете встретить украинскую Ї ї или белорусскую І і

    https://en.wikipedia.org/wiki/Cyrillic_script
    А	А́	А̀	А̄	Ӓ	Б	В	Г
    Ґ	Д	Ђ	Ѓ	Е	Е́	Ѐ	Е̄
    Ё	Є	Є́	Ж	З	З́	Ѕ	И
    І	І́	Ї	Ї́	И́	Ѝ	Ӣ	Й
    Ј	К	Л	Љ	М	Н	Њ	О
    О́	О̀	Ō	Ӧ	П	Р	С	С́
    Т	Ћ	Ќ	У	У́	У̀	Ӯ	Ў
    Ӱ	Ф	Х	Ц	Ч	Џ	Ш	Щ
    Ъ	Ъ̀	Ы	Ы́	Ь	Ѣ	Э	Э́
    Ю	Ю́	Ю̀	Я	Я́	Я̀
    Ответ написан
    Комментировать
  • Как правильнее вешать события?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Как правильнее вешать события?
    Зависит. Общее поведение и динамическое добавление новых элементов - однозначно делегирование. В других случаях нужно смотреть есть ли в этом смысл, так как делегирование больше нагружает приложение, дергаясь на каждый прописанный паренту евент.
    Ответ написан
    2 комментария
  • Как работает asyncio.sleep?

    Vindicar
    @Vindicar
    RTFM!
    Идея простая.
    Асинхронные приложения - это набор пар "операция - обработчик", где операция - это некоторый длительный процесс (скажем, вводы/вывод), который не требует постоянного внимания со стороны кода. Когда операция завершается, выполняется её обработчик. Этот обработчик может планировать другие операции, и так далее.

    Корутины - это такие функции, которые умеют сохранять своё состояние, и восстанавливать его. Т.е. когда корутина делает await-вызов, она начинает длительную операцию, а обработчик этой операции просто восстанавливает контекст корутины и продолжает её выполнение.

    Соответственно, await-вызов сохраняет текущий контекст корутины, и планирует новую длительную операцию. Какую - зависит от того, что идёт после await. Эта операция представлена тем или иными awiatable значением (Future, Task и т.п.).

    Рабочий цикл (loop, его также называют реактор) просто проверяет текущие операции. Как только одна из них завершилась, он выполняет её обработчик. А потом продолжает проверять остальные активные операции.

    Ключевой момент - выполняет обработчик, а только потом проверяет остальные операции. Т.е. если обработчик планирует операцию через await - это не проблема, она будет выполняться наравне с остальными. А вот если обработчик просто делает что-то длительное, он не возвращает управление циклу, и не даёт выполняться остальным операциям.

    asyncio.sleep() планирует ничего не делающую операцию, которая завершится успехом через заданное время. Поэтому её выполнение не мешает циклу-реактору. Просто ещё один await вызов, который приостанавливает текущую корутину и возвращает управление реактору.

    time.sleep() ничего не знает о реакторе и асинхронных операциях. Она приостанавливает выполнение обработчика, не прерывая его и не отдавая контроль реактору. Поэтому на время time.sleep() (или любой длительной синхронной операции) спит вся программа.
    Ответ написан
    5 комментариев