• Как исправить ошибку "is not a valid parameter annotation" слэш-команды в когах?

    @angeloffy
    Для слеш-команд используется disnake.ApplicationCommandInteraction.

    async def _play(self, inter: disnake.ApplicationCommandInteraction, *, search: str):
    Ответ написан
    2 комментария
  • GitHub, GitLab или BitBucket?

    тут всё просто
    делать вклад в опенсорс, соц.сеть - это гитхаб
    свои личные проеты - гитлаб, причины озвучил автор ответа выше
    на работе - в чём скажут, вероятнее всего это будет гитлаб
    Ответ написан
    Комментировать
  • GitHub, GitLab или BitBucket?

    Я рекомендую Gitlab
    - Можно хостить весь Gitlab у себя. Вначале это может показаться лишним, но многие работодатели так делают, поэтому навыки по работе с Gitlab пригодятся.
    - Отличный CI. Как по мне, гораздо лучше чем Github actions
    - Проекты в Gitlab можно спокойно и очень просто синхронизировать с тем же самым Github прямо из интерфейса Gitlab, таким образом мы получаем преимущества обеих систем.

    bitbucket всё, забудьте о нём.
    Ответ написан
    7 комментариев
  • Применение ai ассистентов на работе?

    DevMan
    @DevMan
    разумное сомнение - критерий истины.

    если ссышь, дай в .env локальные креды, а в проде давай реальные отдельно.
    кагбе дев и деплой - немного много разное.
    Ответ написан
    4 комментария
  • Нужен ли большой монитор для разработки?

    @Drno
    Каждый работает так как ему удобно, вот и всё
    Ответ написан
    Комментировать
  • Почему 0,5 округляется до чётного числа?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Это банковское округление называется.
    Нужно оно для повышения точности при обработке большого количества околослучайных чисел (когда количество чётных и нечётных +0.5 примерно равно)

    Если тебе такое поведение не нужно, то тогда просто передавай третий аргумент - там можно выбрать, как стоит округлять в такой ситуации.
    Ответ написан
    1 комментарий
  • Почему не работает код?

    @dim5x
    ЗИ, ИБ.
    Потому что len_pass_numbers.lower() (и прочие) возвращает вам строку 'да', а вы сравниваете с 'Да'.
    Соответственно ваш "алфавит" - chars - пустой.

    Ну и, вероятно, удобнее пользоваться встроенными коллекциями, чем вручную набивать:
    from string import digits, ascii_lowercase, ascii_uppercase, punctuation
    Ответ написан
    3 комментария
  • Как передать параметр из события?

    IvanU7n
    @IvanU7n
    объявление хоть и считается "old-fashioned", но должно работать (ПС2), использование нормальное, но я бы сделал современный вариант:
    var rMyEvent = new CustomEvent('appTabsGroupOpen', { detail: { rElem: 'DDDDD', }, });
    document.dispatchEvent(rMyEvent);

    а вот jQuery не факт, что работает с событиями из первого блока, т.е. работающим вариантом должно быть
    document.addEventListener('appTabsGroupOpen', e => { console.log('Событие ' + e.detail.rElem); });


    ПС. ловить событие стоит после добавления обработчика, до этого они уйдут в никуда
    ПС2. да, с имеющим кодом обращение должно быть e.detail.detail.rElem
    Ответ написан
    4 комментария
  • Как передать параметр из события?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    rMyEvent.initCustomEvent( 'appTabsGroupOpen', false, false, { rElem: 'DDDDD' });
    то что посылается последним аргументом, это и есть event.detail

    Ну а правильнее конечно делать так:
    new CustomEvent("appTabsGroupOpen", {
      detail: {
        rElem: 'DDDDD',
      },
    });
    Ответ написан
    2 комментария
  • Как удалить запись в таблице MySQL по трём параметрам?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Чтобы правильно удалить запись в таблице по трём параметрам, надо указать все три параметра в условии WHERE
    DELETE FROM table_name WHERE col_1=val_1 AND col_2=val_2 AND col_3=val_3


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

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

    Во-вторых, блокировать ботов через правила .htaccess - это как стрелять по воробьям зубочистками из карманного арбалета. Можно, но какой смысл?

    В-третьих, среди этих ботов и поисковые боты будут попадаться. Ну, тут вообще без комментириев.

    P.S. Капча именно на скачивание программы защитит от "простейших" скриптов.
    Ответ написан
    1 комментарий
  • Как реализовать эффект печатающегося текста?

    0xD34F
    @0xD34F Куратор тега React
    Состояние компонента должно содержать три значения - индекс печатаемой строки, количество отображаемых символов, направление печати (печатаем или стираем, т.е., в какую сторону надо изменять количество отображаемых символов, увеличивать или уменьшать). Дальше понятно что - setInterval или рекурсивный setTimeout, изменяем количество отображаемых символов, если дошли до конца строки - меняем направление, дошли до начала - меняем направление и индекс строки. Вот как-то так:

    const defaults = {
      index: 0,
      length: 0,
      step: 1,
    };
    
    function Typewriter({ strings, delay }) {
      const [ state, setState ] = useState(null);
    
      useEffect(() => {
        setState(() => ({...defaults}));
      }, [ strings ]);
    
      useEffect(() => {
        const timeoutId = setTimeout(setState, delay, ({...state}) => {
          state.length += state.step;
          if (state.length === strings[state.index].length) {
            state.step = -1;
          } else if (state.length === 0) {
            state.step = 1;
            state.index = (state.index + 1) % strings.length;
          }
          return state;
        });
    
        return () => clearTimeout(timeoutId);
      });
    
      return <div>{strings?.[state?.index]?.slice(0, state?.length)}</div>;
    }
    Ответ написан
    8 комментариев
  • Почему код не может записать в БД определённое строковое значение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ошибка, скорее всего, возникает из-за символов в $description, не попадающих в кодировку поля `description`. Такой эффект, например, дают новые эмодзи, требующие utf8mb4.
    Также стоит включить режим выброса исключений для всех ошибок Mysqli, перейти на драйвер mysqlnd, если ещё не сделали этого, и использовать подготовленные выражения.
    Рекомендую прочитать статью: https://habr.com/ru/articles/662523/
    Ответ написан
    Комментировать
  • Как заполнить форму налогоплательщика?

    ZERGE
    @ZERGE
    спрашивай у местних бухгалтеров
    Ответ написан
    1 комментарий
  • Как составить сложную выборку из двух таблиц?

    @Akina
    Сетевой и системный админ, SQL-программист.
    SELECT address, 
           office, 
           t1.fio, 
           t2.counter, 
           CASE t2.counter
               WHEN 'counter1' THEN t1.counter1
               WHEN 'counter2' THEN t1.counter2
               WHEN 'counter3' THEN t1.counter3
               END value,
           t2.num,
           t1.date       
    FROM table1 t1
    JOIN table2 t2 USING (address, office)
    Ответ написан
    2 комментария
  • Персональный гугл, если ли?

    Daemon23RUS
    @Daemon23RUS
    Краулер, который ходит по интернетам и ищет сам, то о чём я его попросил

    Боюсь, что ответ Вашего частного поисковика придется долго ждать. Обратимся к цифрам: сейчас порядка 2 млрд. сайтов ( обратите внимание на то что это сайты, а не страницы, коих на многих сайтах десятки, сотни, тысячи а на части на порядки больше) предположим, что ваш краулер пожирает сайты по 10 шт в секунду (со всеми страницами), так вот ждать ответа придется лет 7.
    И это мы опустили трафик, который сожрет краулер. А там все за гранью не то что домашнего сервера, а не все страны потребляют такой объем.
    P.S. Тут вопрос не в алгоритмах или коде, вопрос в объеме "перевариваемой" информации
    Ответ написан
    3 комментария
  • Как сделать скрипт для вывода массива json форматом?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Делать самостоятельную генерацию json - категорически не правильное решение.
    Вы по любому где-нибудь пропустите экранирование и получите на выходе невалидную структуру.
    Тем более что для абсолютно любого парсера json все эти переносы строк и пробелы не значимы, поэтому я в принципе не понимаю зачем вы хотите это сделать.

    PS
    Если уж очень хочется - можно наколхозить что-нибудь типа
    echo '[' . PHP_EOL;
    $count = count($data);
    $i = 0;
    foreach ($data as $item) {
       $i++;
       echo '    ' . json_encode($item, JSON_UNESCAPED_UNICODE) . ($i < $count ? ',' : '') . PHP_EOL;
    }
    echo ']';

    Но повторюсь, это плохое решение как с точки зрения производительности, так и вообще.
    Ответ написан
    Комментировать
  • Если ли PHP-библиотека для конвертации HTML c CSS Grid в PDF?

    dyuriev
    @dyuriev
    A posteriori
    shell_exec + chromium с флагами headless disable-gpu и print-to-pdf отрисует вам что угодно, что может отобразить chrome.
    у решения есть изъян - на большинстве хостингов даже не пытайтесь запустить, себе дороже, только виртуальные/физические сервера подходят идеально.

    https://github.com/chrome-php/chrome - примерно так
    Ответ написан
    3 комментария
  • Как сделать так, чтобы prettier не переносил каждый метод на новую строчку в JS?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Prettier использует определенную логику для определения ситуаций, когда такие вещи должны быть разделены. Ее нельзя выключить. Этот инструмент в целом имеет очень мало настроек, он изначально очень строгий и нацелен на то, чтобы навязать свой стиль форматирования везде. В этом его философия. Не нужно спорить, как лучше форматировать. Робот все решит за нас.

    Можно игнорировать какие-то конкретные штуки с помощью комментария // prettier-ignore. Но нужно ли?
    Ответ написан
    1 комментарий
  • Возможна ли sql инъекция?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Возможна.

    Почему не стоит использовать mysql_escape_string
    https://www.php.net/mysql_escape_string
    Warning
    This function was deprecated in PHP 4.3.0


    https://www.gosecure.it/blog/art/483/sec/mysql_esc...

    Не хотите SQL-инъекций используйте подготовленные выражения (prepared statements)
    https://www.php.net/manual/en/mysqli.quickstart.pr...

    а был бы с нами FanatPHP он бы ещё дал ссылку почитать https://phpfaq.ru/mysql/slashes
    Ответ написан
    1 комментарий