• Можно ли написать такой селектор, который будет реагировать на НЕ вложенные элементы при псевдоклассах?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    .block-1:hover + .block-2 - непосредственно следующий блок
    .block-1:hover ~ .block-2 - все следующие сиблинги
    Ответ написан
    Комментировать
  • Как определить, что у пользователя включен vpn?

    @AlexVWill
    Есть подозрение, что из-за него некорректно работает форма авторизации / регистрации на сайте.

    Надо бороться с причиной, а не с явлением как таковым. Если форма криво работает из-под VPN, то виновата форма, а не VPN. Половина мира уже сидит в интеренет под VPN, поэтому стоит задуматься о том, что у тебя не так реализовано. Тем более, что каких то объективных причин нарушения работы web-сервера если на него поступают запросы от VPN нет.
    Я бы скорее предположил, что в форме реализованы какие то скрипты (возможно даже сторонние JS библиотеки), который блокировщики рекламы считают спамом, и режут их, отсюда и проблема. Надо конкретно смотреть, что не так.
    ак определить, что у пользователя включен vpn

    Ну определишь ты, и что дальше? Как это тебе поможет реализовать исправление ошибки формы? Лучше задуматься о том, как исправить форму, чтобы все могkи ей пользоваться независимо от VPN.
    Ответ написан
    4 комментария
  • Можно ли заставить VS Code считать доллар буквой?

    WblCHA
    @WblCHA
    Удали из настройки editor.wordSeparators ненужные знаки разделения слов.
    Ответ написан
    Комментировать
  • Как узнать процент похожести текста?

    Stalker_RED
    @Stalker_RED
    Частично проблема решается алгоритмом шинглов, который неплохо находит похожие тексты. Но хороший рерайтер легкло сделает текст отличающимся на 40-60% при сохранинеии смысла. А в последнее время можно вообще сделать магию: "чатгпт, перепиши этот текст другими словами добавив тоски о былом величии римской империи", и все это за считанные секунды и бесплатно.
    в качестве примера перефразированный ваш вопрос
    Каким образом можно определить процент схожести между текстом, который только что был написан, и текстом, который уже хранится в базе данных MySQL? Это необходимо для того, чтобы исключить повторения текстов. Например, если кто-то создает новость о происшествии, а она была опубликована два дня назад другим человеком, то это будет считаться дублем. Я знаю, что можно сравнивать тексты посредством перебора, но это займет много времени и будет нагружать MySQL. Есть ли какие-то другие методы, кроме использования Sphinx Search, чтобы достичь этой цели?

    По расчетам вот этого сервиса процент схожести менее 30%

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    "Вчера на площади Свердлова попал под лошадь извозчика 8974 гр. О. Бендер. Пострадавший отделался легким испугом."
    "Сегодня на площади Свердлова попал под лошадь извозчика 1234 гр. О. Иванов. Пострадавший отделался легким испугом."
    Схожесть по словам 81% (13/16), но новости то разные.
    Вам надо выделять ключевые слова - тип происшествия, даты, фамилии, адреса, номера и модели автомобилей и т.п. и сравнивать по ним.
    Ответ написан
    Комментировать
  • Почему ругается на свойство в типе?

    @vshvydky
    const a = {age:18, name:"alex"}
    type T =  {
      [K in keyof typeof a]: typeof a[K];
    } & {
       test: number;
    };
    
    // больше свободы 
    type TT<OB> = {
     [K in keyof OB]: OB[K];
    } & {
       test: number;
    };
    
    
    const t1: T = {test: 1, age: 1, name: 1} // ошибка
    const t2: T = {some: 1, name: "Fewfwefw" }; // ошибка
    const t3: T = {age:19, name: "ivan", test: 1 }; // корректно
    
    const tt1: TT<typeof a> = {test: 1, age: 1, name: 1} // ошибка
    const tt2: TT<typeof a> = {some: 1, name: "Fewfwefw" }; // ошибка
    const tt3: TT<typeof a> = {age:19, name: "ivan", test: 1 }; // корректно
    Ответ написан
    Комментировать
  • Как открыть консоль браузера на Андроид смартфоне?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    https://developer.chrome.com/docs/devtools/remote-...
    Подключаем телефон к компу, открываем на телефоне сайт и на компьютере видим что в консоли телефона.
    Ответ написан
    Комментировать
  • Почему цикл if внутри цикла for который находится в цикле while не работает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    С чего вы взяли что у вас там что-то не работает?
    Во-первых:
    Почему цикл if внутри цикла for который находится в цикле while не работает?

    if - это не цикл.
    Во-вторых, в ытам накосячили с отступами.
    В-третьих, в таком спагетти коде не мудрено наделать ошибок, а у вас еще и break встречается то и дело. Нарисуйте блок-схему вашего алгоритма, тогда станет понятнее. А сейчас этот код вообще не читаем, отчего просто бесполезен и должен быть удален и переписан заново.
    Попробуйте разбить весь этот код на функции. Функуии должны быть короткие, читабельные и "чистые" (то есть зависеть только от аргументов, а не от внешних и глобальных факторов)
    Ответ написан
    8 комментариев
  • Чем отличаются нативные модули от ванильных и в чем проблематичность нативных?

    Lynn
    @Lynn
    nginx, js, css
    Почему нативные модули не так просто скомпилировать под любой контроллер?

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

    В нативных модулях добавлены куски из других языков или как это происходит?

    Да. Обычно на C/C++, но может быть что угодно, Rust, Go, да хоть ассемблер.

    И как в npm понять, какие модули ванильные, а какие нативные?

    Обычно это в документации написано, но формально никак пока не попробуешь поставить.
    Ответ написан
    1 комментарий
  • Как написать свой компилятор?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Трансляторы
    Седой и строгий
    Содержимое этой книги в ответ не вместится.
    60b76e70c748b529799442.jpeg
    А ваш вопрос на столько общий, что короче не получится.
    Ответ написан
    3 комментария
  • Как аннотировать неявные атрибуты класса?

    @kalsc12345
    Неизвестный человек.
    from typing import Any
    
    class MyClass:
        def __init__(self, param: str):
            self.param = param
    
        def __getattr__(self, attr: str) -> Any:
            # Здесь можно создать любой атрибут в зависимости от переданного имени
            if attr == 'name':
                return 'John Doe'
            elif attr == 'age':
                return 30
            else:
                raise AttributeError(f"'{type(self).__name__}' object has no attribute '{attr}'")
    Ответ написан
    3 комментария
  • Что быстрее и меньше занимает памяти: dict или Redis?

    Вы сравниваете теплое с мягким.
    Dict - это внутренняя структура данных которая хранится только в рамках запущенной программы. И по этой причине доступ к данным внутри него будет быстрее, при одинаковом хранении. И при перезапуске все данный потеряются.
    Redis - это внешнее хранилище данных, при перезапуске программы данные не потрутся, но так как это внешнее хранилище то и доступ к данным будет медленнее.
    Но они решают разные задачи, и служат для разных целей
    Ответ написан
    3 комментария
  • Почему в функциях вычисления суммы чисел до миллиарда через цикл и по арифметической формуле разные?

    Fragster
    @Fragster
    помогло? отметь решением!
    Если есть возможность - используйте в этом случае https://developer.mozilla.org/en-US/docs/Web/JavaS... и погрешности не будет. Но есть, конечно, особенности при использовании в других случаях.
    Ответ написан
    1 комментарий
  • Как защитить админку?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Любая авторизация должна выполнятся на строне сервера, всё что на стороне клиета обходится на раз!
    Как именно - дело Вашею Есть десятки систем авторизациию Имя + пароль - самая распостраненная
    Ответ написан
    1 комментарий
  • Как инициализировать декоратор в классе, а внутри использовать этот декоратор?

    Vindicar
    @Vindicar
    RTFM!
    Ты хочешь поместить хэндлеры в класс?
    Я в таких случаях делаю немного иначе.
    Делаю свой декоратор, который принимает те же параметры, что и ботовый, но просто сохраняет их в отдельном атрибуте декорируемого метода. Благо методу можно создать новый атрибут через setattr() или простым присваиванием.
    При конструировании экземпляра класса через dir() перечисляю содержимое класса, ищу методы, среди них ищу методы с моим атрибутом (т.е. те, которые были декорированы). Для каждого такого метода получаю bound method (через getattr(self, method_name)) и вызываю оригинальный декоратор на нём с сохранёнными параметрами. Ведь декоратор - это функция, его можно вызывать как функцию.
    Часть, связанную с конструированием, можно спрятать или в родительском абстрактном классе, или в метаклассе, чтобы не повторять для каждого класса с обработчиками.
    Ответ написан
    Комментировать
  • Почему is работает не так, как ожидается?

    ElonMask2
    @ElonMask2
    Autor of Tesla Machini and SpaxeX
    Ладно
    a = 'af' Инициализируем ПЕРВУЮ переменную А = АФ  идентиф=1
    b = 'a' Инициализируем ВТОРУЮ переменную Б= А     идентиф=2
    b += 'f' Инициализируем ТРЕТЬЮ переменную Б = А + Ф  идентиф=3
    # А все почему? Строка - НЕИЗМЕНЯЕМЫЙ ТИП
    print(a is b)
    >>> False
    a = 5
    b = 2
    b += 3
    # Тоже самое но, в питоне числа до 255 КЕШИРУЮТСЯ и 50 is 50 и 255 is 255
    print(a is b)
    >>> True


    А тут,
    a = 'af'       #Инициализируем ПЕРВУЮ (ОНА ИДЕТ В КЕШ) А = АФ
    b = 'a' + 'f'  #Инициализируем ВТОРУЮ интерпретатор не тупой и Б = ТОЖЕ АФ (а так как аф есть в кеше Б получает ссылку на ту же память)
    
    print(a is b)
    >>> True


    Где читать? Гугл-
    Изменяемые неизменяемые типы,
    Ответ написан
  • Как реализовать многопоточность в Си?

    @serhiops
    Python/JavaScript/C++
    Ответ написан
    Комментировать
  • Как Уменьшить пинг в linux для игр?

    @Wexter
    Так же как и в Windows/MacOS, переездом как можно ближе к серверу
    Ответ написан
    1 комментарий
  • В JS && проверяет левую и праву сторону в незначимости от 1 значения?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Все просто. Допустим у вас в массиве 1 элемент, а i равен единице, такого индекса нет, выражение Data[i] равно undefined.

    Можно проверять допустимость значения i
    i < Data.length && Data[i].name == obj[2]

    Или проще

    Data[i]?.name == obj[2]
    Ответ написан
    3 комментария
  • В JS && проверяет левую и праву сторону в незначимости от 1 значения?

    Lynn
    @Lynn
    nginx, js, css
    Ты что-то делаешь не так. В JS оператор && тоже заканчивает работу если левая часть ложная.

    Непонятно как Data.length != 0 должна гарантировать существование Data[i].
    Ответ написан
    4 комментария