Задать вопрос
  • Как автоматически очищать кэш у клиента на странице?

    @rPman
    Глобально - через отправку клиенту заголовка, фича относительно новая (прошли годы как приняли) но по уму должна поддерживаться уже всеми. Чистит все, для веб сайта и его поддоменов, не думаю что это красиво делать регулярно, но как фосмажор - почему нет.

    Ну а исторически, проблема кеширования при обновлении веб приложений решается заранее, имя файла (или добавлять ?xxx к ссылке) должно содержать хеш от его содержимого, т.е. все файлы проекта (те что в html коде, т.е. js и css) перед деплоем должны пройти переименование и соответствующую правку когда/шаблонов в местах, где переименованные файлы используются.
    Ответ написан
    1 комментарий
  • Как реализовать факторизацию для числа больше 300 символов?

    @rPman
    Вы хотите разложить на множители 1024бит число? за 20 минут?
    https://ru.wikipedia.org/wiki/RSA-числа
    RSA-240 имеет 240 десятичных знаков (795 бит) и было успешно факторизовано 2 декабря 2019 года Эмманюэлем Томе и его коллегами[6][7]. Для выполнения задачи было использовано несколько кластеров компьютеров в разных странах.
    Ответ написан
    1 комментарий
  • Какой формат у ограничений на cookie?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Все эти "странные" числа уходят корнями в документ RFC 2109, актуальная версия которого датируется 1997 годом. В исторической перспективе это ненамного позже крылатого выражения "640 кб памяти хватит всем", так что 300 печенек на всех - это реалии того времени. Интернета еще толком не было. Браузеры, которые были тогда, уже вымерли. Не стоит воспринимать эти числа как актуальную информацию и вчитываться в написание слов.

    На текущий момент нам нужно читать RFC 6265. Там в лимитах значится, что бразуеры должны как минимум обеспечить:

    • At least 4096 bytes per cookie (as measured by the sum of the length of the cookie's name, value, and attributes).
    • At least 50 cookies per domain.
    • At least 3000 cookies total.

    Здесь трактовки конкретные, поясняется, что есть размер в 4096 bytes. Домен здесь - это домен, про пути в документе везде говорится отдельно. Если возникают сложности с трактовкой терминов, то стоит пролистать документ в начало и почитать, там весь механизм подробно расписан. По поводу общего количества кук - скорее всего современные браузеры делают больше, чем минимально необходимо по стандарту, но это гадание на кофейной гуще, точно мы не знаем, вероятно у всех по-разному.
    Ответ написан
    Комментировать
  • Как на JavaScript расшифровать строку с помощью ключа?

    @ab1
    Key лучше обрезать до qEExPE+jkJxQUt8fSO+XwzXgRGh6kLHy
    и установить padding в None тогда работает в обе стороны
    6723ee70cea23058961837.png
    6723ee79b6a60901668459.png
    Ответ написан
    2 комментария
  • Почему при добавлении процента делением результат больше, чем умножением?

    780 - это (100 - 3)% от 804
    803 - это (100 + 3)% от 780
    Следовательно, если вам нужно к X добавить 3%, то правильно умножать на 1.03.
    Если же у вас есть "цена со скидкой" (780) и "процент скидки" (3) и вам нужно посчитать "оригинальную цену" (804), то нужно делить.
    Ответ написан
    Комментировать
  • Как в шрифте pacifico сделать при бордере, чтобы не было линий при пересечении букв?

    IvanU7n
    @IvanU7n
    nothing interesting here
    да, drop-shadow тут не помощник, но SVG-фильтры оказались очень даже в деле
    единственный нюанс — параметры (толщина, цвет обводки) задаются напрямую в фильтре
    Ответ написан
    2 комментария
  • Multer почему req.file undefined?

    Alexandroppolus
    @Alexandroppolus
    кодир
    не делай JSON.stringify от formData и не указывай 'Content-Type': 'application/json'.

    https://learn.javascript.ru/formdata#otpravka-form...

    и добавлять файл через formData.append не нужно, он там уже есть, потому что форма передана в конструктор FormData
    Ответ написан
    1 комментарий
  • Почему выводится только одна единица?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    echo -e "\n"PC-{001..150}


    for i in {0..150}; do printf "%03d\n" $i; done


    for i in $(seq -w 1 150); do echo "PC-$i"; done

    ну или сравнение чисел делается через спец. операторы -gt, -ge, -lt, -le, -eq, -ne
    #!/bin/bash
    
    for ((i=1; i < 150; i++)); do
        if [[ $i -lt 10 && $i -ge 0 ]] ; then
            out="00$i"
        fi
        if [[ $i -lt 100 && $i -ge 10 ]] ; then
            out="0$i"
        fi
        if [[ $i -lt 1000 && $i -ge 100 ]] ; then
            out="$i"
        fi
        echo PC-$out
    done
    Ответ написан
    2 комментария
  • Вычислить площадь фигуры, ограниченной графиками функций. Как решить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если вам так легче:
    Вводим преобразование поворота и отражения осей без изменения масштаба.
    xa = -y или y = -xa
    ya = x или x = ya
    Тогда уравнения преобразуются в
    xa2 = ya + 1 или ya = xa2 - 1
    xa2 = 9 - ya или ya = 9 - xa2
    Дальше решаем относительно новых осей.
    Ответ написан
    Комментировать
  • Почему не получается отфильтровать массив строк?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Предлагаю сделать следующее:

    • Прочитать сообщение об ошибке и попытаться осознать, что в нём сказано
    • Посмотреть, какие значения принимает key при переборе p
    • Открыть документацию и разобраться, что делает цикл for...in
    • Погуглить, какие ещё бывают способы перебора

    UPD. Ну что, никак?

    В сообщении об ошибке сказано, что невозможно прочитать свойство у undefined (ну, так язык устроен). Т.е., массива строк у вас нет. Массив строк - это когда всё его содержимое является строками. Откуда в массиве взялись undefined (да, у вас их там несколько)? Цикл for...in обрабатывает не только собственные свойства объектов, но и те, что доступны через цепочку прототипов. Значения которых уже не являются элементами и, соответственно, не имеют запрашиваемого вами свойства textContent. Раз свойства нет, получаете undefined.

    Как собирать массив текстов (const getText = el => el.textContent;), чтобы туда не попадал всякий мусор - лучше бы вообще отказаться от применения for...in, варианты разные есть:

    const list = Array.from(p, getText);
    
    // или
    
    const list = Array.prototype.map.call(p, getText);
    
    // или
    
    const list = [];
    for (const n of p) {
      list.push(getText(n));
    }
    
    // или
    
    const list = [];
    for (let i = 0; i < p.length; i++) {
      list[i] = getText(p[i]);
    }
    
    // или
    
    const list = [];
    p.forEach((n, i) => list.splice(i, 0, getText(n)));

    Если же хотите и дальше использовать for...in, то прежде чем что-то делать с конкретным свойством, убедитесь, что оно является собственным, методы Object.hasOwn и Object.prototype.hasOwnProperty вам в этом помогут.
    Ответ написан
    Комментировать
  • Как создать свой образ Arch Linux?

    @akimdi
    То о чём Вы говорите уже давно существует в связке archinstall + chezmoi. Я сам пользуюсь. Система ставится за 10-15 минут и уже вся настроенная и со всеми вашими конфигами.
    Ответ написан
    3 комментария
  • Возможно ли подделать хеш сумму?

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

    thewind
    @thewind
    php программист, front / backend developer
    Просто popup, нажмете там «Включить» - появится стандартное окно браузера
    Ответ написан
    2 комментария
  • Как скрыть трафик не подключаясь к удаленному серверу?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Выражайтесь грамотно :)

    Что значит "скрыть трафик"? Скрыть содержимое пакетов? Скрыть адреса назначения? Скрыть обьем трафика? Скрыть сам факт того, что ходили туда-то? Провайдеру, еслиф че плевать на Ваш трафик, он его в СОРМ слил и все.
    Ответ написан
    Комментировать
  • Как удалить символ разделителя из значений?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Примерно так

    $ cat tt.csv
    one;two;three
    one;"hi; there";three
    "123 main st.; Apt 22";"New York; NY";90023
    $
    $ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(";", "", $i) } 1' tt.csv
    one;two;three
    one;hi there;three
    123 main st. Apt 22;New York NY;90023
    $


    PS ребят что выше отписались. Вы что реально не слышали про awk sed grep ?
    Ответ написан
    8 комментариев
  • В чем отличие ngnix от golang?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    На самом деле эта путаница по-человечески очень понятна и объяснима.
    Вы, как фронтендер, воспринимаете "веб-сервер" как такой черный ящик, "то место, откуда фронт запрашивает данные".

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

    И вот на Го (или РНР, Питоне, JS, C#) как раз и пишется эта программа, которая, к примеру, обращается в БД, получает нужные данные и отдает их Nginx-у, который уже и возвращает их клиенту
    Ответ написан
    14 комментариев
  • Почему console.log(isNaN( )) выводит true, если под капотом пустая строка преобразовывается к 0?

    @pddev
    Потому что isNaN() то же самое, что isNaN(undefined)
    Если ты не передаёшь в функцию параметр, то он будет считаться неопределённым (т.е. undefined).
    Number() без параметров по-умолчанию возвращает 0. А вот Number(undefined) уже NaN.

    В Javascript есть некоторые особенности при сравнении элементарных типов
    "" === 0 ---> false
    "" == 0 ---> true
    " " == 0 ---> true
    "0" == 0 ---> true
    isNaN("") ---> false
    isNaN("0") ---> false
    isNaN(0) ---> false
    isNaN(123) ---> false
    isNaN("123") ---> false
    isNaN("abc") ---> true
    undefined == "" ---> false
    undefined == 0 ---> false
    isNaN(undefined) ---> true
    isNaN() ---> true

    Кстати, поэтому нужно быть максимально осторожным при проверке значений переменных в if или в выражениях. И лучше использовать === вместо ==, и не полагаться на преобразование значений по-умолчанию.

    P.S. В комментариях ответить не могу, т.к. исчерпан суточный лимит.
    Ответ написан
    5 комментариев
  • Есть ли запрещённые имена для адресов ящиков у гугл?

    @apppostol
    Всё просто
    64de2c62917b1134850390.jpeg
    Ответ написан
    Комментировать
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю можно. Поищи такие компилляторы как Watcom C, Borland C.
    Они умеют генерить код для DOS. На ваткоме кажется была написана
    игра Doom for DOS.

    UPD +Линка www.openwatcom.org
    Ответ написан
    Комментировать