• Как решить проблему с could not convert string to float?

    Vindicar
    @Vindicar
    RTFM!
    А с чего ты взял, что ты обрабатываешь только колонки mpg и weight? astype(float) ты применяешь ко всему датасету.
    Ты бы и сам догадался, если бы не пытался засунуть всю команду в однострочник - у тебя exception бы вылетел как раз на строке с astype().
    Ответ написан
    Комментировать
  • Как предотвратить имитацию запросов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Здесь в вопросе - 2 разных вопроса. Мне кажется так:
    1) Как защититься от любого мусора который прилетает с клиента. Скорее всего никак.
    Нужно реагировать только на HTTP запросы которые имеют смысл в контексте пользовательской
    сессии. Тут - как-бы бизнес логика и FSM для сессии должен все решать. Хакеры с помощью
    wget, curl, python могут генерировать фаззингом миллионы самых вариативных запросов
    в поиске вашего слабого места в этой части защиты.

    2) Как защититься от атаки man-in-the-middle.. Это если легальный пользователь
    зашел в свой клиент банк, а некто, кто физически сидит на канале может перехватывать
    IP пакеты. Изменять их. Удалять. Задерживать на какое-то время или делать повторы.
    Здесь коробочное решение это https (TLS/SSL) протокол по идее помогает.
    Ответ написан
    Комментировать
  • Возможно ли выполнить JavaScript код в Rust при помощи NodeJS?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Хоть и вопрос несколько сумбурный и не совсем понятно, что автор хочет на самом деле...
    Но краткий ответ: да, возможно, но есть нюансы...

    Самый простой вариант - запускать node как отдельный процесс. Можно просто запускать на каждый чих, а можно заморочиться и организовать общение между приложением на Rust и приложением на Node.js

    Вариант поинтереснее - Node.js можно собрать как библиотеку (есть даже готовые бинарные сборки такого), линкуем с приложением на Rust. Всё живёт в одном процессе, но node будет запускать свои потоки.

    Есть и обратный последнему вариант. Можно из Rust кода собрать бинарный аддон к Node.js
    Правда тут уже JS код будет запускать код на Rust.
    https://napi.rs
    https://neon-rs.dev

    Можно пойти дальше. Если задача просто исполнять JS код из приложения на Rust, то можно слинковаться с одним из JS движков. Приколюх предоставляемых платформой Node.js здесь не будет (вроде fs или http), хотя никто не мешает реализовать это самостоятельно.
    https://crates.io/crates/v8
    https://crates.io/crates/quickjs_runtime
    Ответ написан
    3 комментария
  • Шифрование уникальной ссылки для пользователя. Как реализовать?

    Можно вообще отказаться от базы, и использовать JWT токен. В нём можно указать идентификатор пользователя в зашифрованном виде, время жизни ссылки и любую другую необходимую информацию. В базе данных ничего хранить не надо. Однако учтите, информация в JWT токене не зашифрована по умолчанию, любой может её из него вытащить. Прелесть JWT токена в том, что его нельзя изменить, потому что он подписан ключом шифрования. Это на случай, если база данных - драгоценный ресурс, который вы не хотите использовать.
    Ответ написан
    Комментировать
  • На каком фреймворке написана документация laravel?

    delphinpro
    @delphinpro
    frontend developer
    Источник документации – markdown-файлы (лежат на гитхабе). А движок вполне может быть самописным. Он достаточно прост: md-парсер, роутер, и поисковый индекс. Основное меню строится по файлам, оглавление - по заголовкам, плюс немного javascript для поиска и капелька css для красоты.

    Аналогов полно, первое что нагуглилось: https://www.mkdocs.org
    Или вот https://app.gitbook.com/
    Ответ написан
    Комментировать
  • Как наложить друг на друга два элемента с ::before?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Сначала нужно узнать, зачем для этого два элемента div и button. Достаточно одной кнопки. Если что, у неё есть два псевдо. В вашем случае не видно зачем второй псевдо.

    Но в современном мире эта задача легко решается вообще без псевдо с помощью background-origin
    https://sitist.ru/gradient-border.html
    Ответ написан
    4 комментария
  • Почему нет нормальной работы с svg в css?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Есть.
    Практически все способы вставки svg в html не позволяют менять цвет при помощи css.

    При вставке в разметку вообще нет проблем менять цвет.
    fill: red;
    stroke: green;

    и т.д.
    Альтернативный вариант, а разметке задаем в заливку или обводку currentColor, в CSS меняем свойство color.

    Ещё один - использование кастомных свойств.

    При вставке прямо в CSS
    Маски и фильтры.

    mask: url(img.svg) no-repeat center / contain;
      background: red;
      
      &:hover {
        background: green;
      }


    Один из вариантов - инлайнить SVG прямо в CSS (в кастомные свойства, чтобы не мусорить в селекторах).
    Другой вариант - собираем стек из SVG и используем в url в маске.

    Собственно, стеки можно использовать где угодно, в отличие от устаревшего спрайта.
    https://telegra.ph/Stack--sprajt-zdorovogo-chelove...
    Ответ написан
    3 комментария
  • Как создать исполняемый файл с помощью make?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Make старый инструмент и он рассмотрен со всех мыслимых углов.

    Вот самый простяцкий, топорный без всякой автоматизации Makefile:
    # Which do you want install the program
    INSTALLDIR=/usr/local/bin
    MANDIR=/usr/local/man
    HEADERS=extern.h vary.h
    TESTS=bsddate
    SRCS=date.c netdate.c vary.c
    OBJS=date.o netdate.o vary.o
    LIBS=-lbsd
    MAN=bsddate.1
    
    CC=gcc
    
    # Flags for Linux
    CFLAGS=-pipe -funsigned-char -ggdb -g3
    
    RMF = -/bin/rm -f
    
    all: $(TESTS)
    
    .c.o:
            $(CC) -c $(DEFS) $(CFLAGS) $<
    
    $(OBJS): $(HEADERS)
    
    install:
            strip $(TESTS)
            install -d -m 755 -o root -g root $(INSTALLDIR)
            install -d -m 755 -o root -g root $(MANDIR)/man1
            install -c -m 755 -o root -g root $(TESTS) $(INSTALLDIR)
            install -c -m 644 -o root -g root $(MAN) $(MANDIR)/man1
    
    clean:
            $(RMF) $(OBJS) $(TESTS) *~ *.core *.bak *.BAK
    
    bsddate: $(OBJS)
            $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)

    Этот файл соберет бинарь bsddate из трех файлов исходников date.c, netdate.c и vary.c и двух файлов заголовков extern.h и vary.h, используя библиотеку libbsd, при установке раскидает по каталогам. Берешь приведенный в ответе AlexVWill ман и разбираешь по нему этот пример (если не хватит тяму его просто поправить под себя).
    Ответ написан
    Комментировать
  • Почему сервис не запускается в контейнере докер?

    black1277
    @black1277
    Вольный стрелок
    Он же пишет 'Connection refused' - значит когда он стартует БД еще не готова принять соединение. Если думали, что это:
    depends_on:
          - main_db

    спасает от этого - увы нет. Чтобы сервис стартовал нормально нужно проверять готовность БД:
    services:
      mysql:
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "mysql", "-p${DB_PASSWORD:-secret}"]
          interval: 10s
          timeout: 5s
          retries: 5
          start_period: 10s

    а сервис стартовать по готовности БД:
    main_queue:
        depends_on:
          mysql:
            condition: service_healthy
            restart: true
    Ответ написан
    2 комментария
  • Какая есть библиотека React для таких скролл табов?

    black1277
    @black1277
    Вольный стрелок
    Ответ написан
    Комментировать
  • Может ли, во время чтения файла одним скриптом, другой скрипт начать записывать в этот файл новые данные?

    @rPman
    первым, кто открывает файл, должен использовать функцию flock над идентификатором файла fopen
    $file = fopen('filename.txt', 'r');
    // пробуем установить эксклюзивную блокировку
    if (flock($file, LOCK_EX)) {
        // выполнение операций чтения
        // ...
        
        // освобождаем блокировку
        flock($file, LOCK_UN);
    } else {
        echo "Не удалось установить блокировку на файл.\n";
    }
    fclose($file);


    это системная фича posix, не привязанная к языку программирования

    p.s. аналогичные механизмы есть у windows, при открытии файла указывается тип блокировки shared...
    Ответ написан
    5 комментариев
  • Next 14 как связать layout.tsx c index.tsx?

    Никак.
    Ответ написан
    Комментировать
  • Почему не работает медиа запрос через picture?

    Wispik
    @Wispik
    source и img местами надо поменять, source сверху должно быть
    Ответ написан
    1 комментарий
  • Как в Notepad++ заменить одно значение на ряд других поочередно?

    @AVSomov
    Не совсем ясно наличие ограничений на список "B, C, D, ..." - он бесконечный? Есть какие-то правила получения очередного значения?
    В случае, когда список замен ограничен, то могу предложить 2 способа:
    1. Через регулярные выражения - вариант сложный, т.к. не все понимают как с ними работать (собственно комментарий про этот способ).
    2. Макросы - включаете запись, находите первое значение (тут лучше явно вызвать окно поиска и вставить значение "A") - заменяете на "B", находите следующее - "C" и так до конца списка замен, останавливаем запись и запускаем через "Многократный запуск".
    Ответ написан
    Комментировать
  • Можно ли собрать пк с 256гб озу на Ryzen/Intel?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    99% что нельзя. Обычно, если заявлена поддержка такого-то объема памяти - оно столько и будет. Кроме того, в материнских платах обычно 4 слота памяти и надо будет вам искать планки памяти на 64 гигабайта. А то, что материнские платы поддерживают больше памяти, чем процессоры - так это с запасом сделано, на случай, если выйдет процессор с поддержкой указанного объема памяти.
    Так что если надо много памяти - берите сразу риппер/эпик или зион. Меньше проблем с подбором железа. Если финансы ограничены - то вам остаётся только вариант покупки Б/У сервера. Ну или риппер первых поколений: 12 ядер за 9к рублей и лимит памяти в 2ТБ - вполне адекватное решение (правда, все остальное вот вряд ли будет так дешево).
    Ответ написан
    Комментировать
  • Как скрыть токены и пароли в python?

    С чего вы взяли, что в .env можно писать JSON (да ещё и невалидный)?
    https://pypi.org/project/python-dotenv/#file-format
    Ответ написан
    4 комментария
  • Какая причина ошибки "TypeError: Cannot destructure property 'store' of 'useReduxContext2(...)' as it is null"?

    @HealSpirit
    переименуйте папку pages

    и еще, так нельзя делать (вызывать хуки по условию)
    i === 0 && useAuth()
    Ответ написан
    2 комментария
  • Динамическое создание тега на JS, почему не сработает обработчик событий?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Ведь мы создаем новый li при клике на btn, и он попадает в DOM
    Ну да, попадает. А чтобы что-то с ним делать, нужно навесить обработчик события. Совершенно непонятно, что вас в этом процессе удивляет.
    Вы можете делегировать обработку события родительскому контейнеру (<ol />) и тогда навешивать отдельные обработчики на создаваемые элементы не придётся.
    Ответ написан
    3 комментария
  • SQLite не хочет добавлять данные, введенные пользователем в тг боте в базу данных, что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    INSERT INTO result(name) VALUES (ilya)
    Вы пытаетесь вставить в колонку name значение из колонки ilya. Строки должны быть в кавычках.
    Для защиты от SQL-инъекции нужно использовать плейсхолдеры
    - cur.execute(f'INSERT INTO result(name) VALUES ({data["Name"]})')
    - db.commit()
    - cur.execute(f'INSERT INTO result(name) VALUES({data['School_class']})')
    + cur.execute('INSERT INTO result(name, class) VALUES (?, ?)', (data["Name"], data['School_class']))
    Ответ написан
    Комментировать
  • Как изменить язык интерфейса у International Telephone Input на js?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    ваш скрипт, в котором вы пишете импорт сам должен быть модулем.Условно примерно так:

    <script src="main.js" type="module"></script>

    main.js

    import ru from "./ru";
    const input = document.querySelector("#phone");
    
    intlTelInput(input, {
      i18n: ru,
      initialCountry: "ru",
    });


    Или прямо в html

    <script type="module">
    import ru from "./ru";
    const input = document.querySelector("#phone");
    
    intlTelInput(input, {
      i18n: ru,
      initialCountry: "ru",
    });
    </script>
    Ответ написан
    Комментировать