• Как подключить библиотеку?

    vool
    @vool
    Разработчик
    Для того чтобы в Node.js использовать import перейдите в файл package.json и добавьте вот это:
    "type": "module"
    но тогда вы уже не сможете ымпортировать через require, только через import,

    и тогда ваш код(при "type": "module"):
    import chalk from 'chalk';

    Но если вы хотите через require и у вас странная ошибка
    require() of ES Module /node_modules/chalk/source/index.js from /src/index.js not supported.
    то мне помогло вот это:
    просто в том же package.json измените тип модуля на cjs, вот так:
    "type": "cjs"

    Тогда вы сможете импортировать либы через require
    Ответ написан
    Комментировать
  • Пытаться изучить несколько технологий === стагнировать по обоим?

    DevMan
    @DevMan
    блин, откуда столько навоза в голове? ой, боюсь.
    не бойся, пробуй и делай. дальше сам поймёшь.

    я нашел сотни способов сделать неправильно, осталось найти правильный способ.
    эти слова, в другой форме, сказал один из величайших учёных.

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

    делай хоть чот.
    Ответ написан
    Комментировать
  • Подхватил стиллер, что делать?

    Vvvyg
    @Vvvyg
    Был админом, сейчас в ТП
    Есть большая надежда, что починится (в основном) этой утилитой.
    Скачайте, распакуйте и запустите AV block remove, следуйте инструкциям. Если не запустится - переименуйте файл. Не поможет - запустите из безопасного режима с поддержкой сети - это важно.
    После отработки утилиты и перезагрузки покажите содержимое файла AV_block_remove_дата_время.log из папки с программой.
    Ответ написан
    Комментировать
  • Подхватил стиллер, что делать?

    @Drno
    Поддерживаю насчет переустановки. задолбаетесь восстанавливать скорее всего
    Ответ написан
    Комментировать
  • Как научиться делать безшовные фоны?

    demon416nds
    @demon416nds
    Разработчик на чем попало
    а погуглить? в фоторедакторах для этого есть соответствующие инструменты
    https://www.youtube.com/watch?v=5FePd5PefB8
    https://www.youtube.com/watch?v=grsSMYsGMaE
    да и программы заточенные чисто под создание текстур тоже есть
    Ответ написан
    Комментировать
  • Как сделать такой текст?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Примерно так:
    Ответ написан
    Комментировать
  • Как научиться делать безшовные фоны?

    Stalker_RED
    @Stalker_RED
    Берешь квадратик, рисуешь посередине кирпичи, траву, или что ты там хочешь.
    Разрезаешь его пополам, по вертикали, например.
    Меняешь половики местами, видишь шов.
    Подрисовываешь так, чтобы шва небыло.
    Разрезаешь теперь по горизонтали, снова меняешь местами, убираешь шов.
    Ответ написан
    Комментировать
  • Подхватил стиллер, что делать?

    vabka
    @vabka
    Токсичный шарпист
    Лучше переустановить винду
    Ответ написан
    7 комментариев
  • Можно ли написать вирус на JavaScript?

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

    Если мы мельком полистаем список уязвимостей, то увидим, что во многих из них фигурирует JS. Вот график взятый с того же сайта:
    RXmc_1mXxXA.jpg
    На нем прекрасно видно динамику уязвимостей приводящих к удаленному выполнению кода (красная линия). Отсюда логичный вывод - js можно использовать как эксплоит.

    Некоторые предыдущие ораторы неверно отмечали - браузер, как и любое другое полноценное приложение, имеет доступ к файловой системе (тот самый обычный доступ, когда можно писать, читать, создавать не системные файлы) посредством API операционной системы (например: WinAPI для windows). Внутри это все выглядит как системный вызов - программа передает управление на уровень ядра, предварительно сказав, что нужно открыть\создать\записать такой-то файл. Значит, нам нужен ассемблерный (да-да, не удивляйтесь) код, на который наш эксплоит передаст управление.

    Ок. Теперь перейдем к самому эксплоиту. Есть такая техника - heap spraying: мы берем нашу полезную (вредную) нагрузку и заполняем ей всю память:
    var buf = new Array();
    // заполним 200МБ памяти
    for(var i = 0;  i != 200; ++i) {
      buf[i] = nop + shellcode;
    }


    И, вполне возможно, что мы перезапишем определенные области (не буду вдаваться в подробности) и сможем выполнить наш shellcode. И да, как сказал riot26 - браузер после такого, скорее всего, крэшнется ... но нам это уже не важно - код будет внедрен и выполнен. Конечно, это банальщина и есть еще 100500 различных вариантов, о которых вам никто не расскажет, но идея ясна.

    PS пользуясь случаем - передаю привет людям в погонах!
    Ответ написан
    2 комментария
  • Как сделать открытие страницы в новой вкладке в маленьком размере?

    @ragq1991
    Можно, например на кнопку, повесить событие onclick и прописаь небольшой скрипт с кучкой параметров. Источник с описанием кучки параметров.
    <!doctype html>
    <html lang="en">
     
        <body>
        <button id="search">Search with Google</button>
        </body>
     
        <script>
        document.getElementById("search").onclick = function() {
            var window = window.open("https://www.google.com", "_blank", "toolbar = yes, top = 500, left = 500, 
            width = 400, height = 400");
            window.focus();
        };
        </script>
     
    </html>
    Ответ написан
    1 комментарий
  • Какие минимальные требования к ноутбуку для веб разработки на Python?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Опыт показывает, что можно работать на хилом ноуте 2007-го года выпуска.
    Ответ написан
    Комментировать
  • Как сделать такую карусель?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Как-то так:
    Ответ написан
    2 комментария
  • CSS как сверстать вертикальное расположение? либо JS как правильно находить элемент в DOOM?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Зачем удалять? Просто делайте прозрачными (opacity: 0)

    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    В баш until и while отличаются только тем, что один проверяет на true, второй на false
    выбираешь что тебе нужнее
    Ответ написан
    Комментировать
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    @Akina
    Сетевой и системный админ, SQL-программист.
    PRIMARY KEY - первичный ключ. Поле, комбинация полей либо выражение (последнее MySQL не поддерживает), которое не может быть NULL и не допускает дубликатов (уникально для каждой отдельной записи в пределах таблицы). Поддерживается путём создания соответствующего уникального индекса и наложением ограничения NOT NULL на все используемые в выражении поля. По факту - однозначно идентифицирует запись. Кроме того, в MySQL выражение первичного ключа является кластерным индексом. См. Индекс -> Уникальный индекс -> Первичный индекс.

    CONSTRAINT - ограничение. Правило, которое не допускает создания записи, для которой значение выражения ограничения имеет значения FALSE (можно TRUE или NULL).

    FOREIGN KEY - внешний ключ. Ограничение, которое требует, чтобы указанное выражение для текущей записи присутствовало среди значений указанного выражения референсной таблицы (допускается и внешний ключ на ту же таблицу). Точнее, чтобы такая проверка присутствия не возвращала FALSE (можно TRUE или NULL).

    REFERENCES - определяет референсную таблицу и референсное выражение.

    INSERT INTO - запрос, вставляющий новые записи в таблицу.
    Ответ написан
    Комментировать
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    @grek_cheburek
    Программист самоучка
    1. Смотри, primary key нужен для того, чтобы таблица понимала, какой тут столбец самый главный.
    То есть, этот primary key может отсутствовать, но тогда у тебя не будет работать auto_increment. Auto_increment нужен для того, чтобы у тебя главный столбец мог автоматически увеличиваться. Это нужно для порядковой записи строк.
    2. Ключ, который ссылается на другую таблицу - это простое объединение. Нужно это для того, чтобы ты случайно не удалил связанные таблицы. Или настроить такой вариант. Если удаляешь главную таблицу или главную запись, то что должно произойти в момент удаления главной записи с записями, которые зависят от нее.
    INSERT INTO это простое добавление строки в базу. Пользователь добавляется через другую команду.
    Ответ написан
    Комментировать
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    New_Horizons
    @New_Horizons
    Бред:
    Просто ещё один примерчик:
    Когда нужно из апи получить какие-то данные постранично, но ты не знаешь сколько там вообще их, может быть 0, а может быть миллион. Т.е. тебе в любом случае нужно сделать хотя бы один запрос в апи, чтобы узнать сколько товаров, сколько страниц и т.п. Тут и пригождается do-while. Далем первоначальный запрос, а дальше уже в зависимости от ответа либо продолжаем цикл, пока не получим все страницы, либо выходим из цикла, если данных вообще нет или не более одной страницы.
    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    @res2001
    Developer, ex-admin
    Например, функции ввода/вывода в POSIX возвращают EINTR, если во время их работы в приложение пришел сигнал.
    Сигнал вы можете перехватить, обработать и можно продолжать дальше. Но функция (например write) вернет EINTR. Если эту ситуацию не обрабатывать отдельно, то это может вызвать, например, завершение приложения (из-за ошибки ввода/вывода), тогда как приложение могло бы дальше работать.
    В этом случае удобно вызов функции заключать в do while:
    int ret;
    do {
      ret = write(...);
    } while(ret == EINTR);

    Это один из вариантов, когда надо выполнить действие, и по результатам действия будет понятно надо ли еще раз его запустить или уже достаточно.
    В этот же цикл можно добавить и другой функционал.
    В случае неблокируемых операций ввода/вывода операция может завершится не записав или не прочитав все что нужно или вообще вернуть EAGAIN, если ничего нет. Можно эти проверки добавить в этот же цикл do while вместе с проверкой на EINTR.
    Вариантов использования, на самом деле много. Вы это увидите, когда столкнетесь с таким вариантом в своей практике.

    Но самый популярный вариант у Си программистов, это использование в макросах:
    #define MACRO(x)      do { тут что-то делаем } while(0)

    Этот фиктивный цикл служит двум целям:
    1. внутри цикла можно объявлять локальные переменные, которые не будут видны вне цикла
    2. При использовании макроса можно в конце ставить точку с запятой, не нарываясь на предупреждения компилятора: MACRO(val);. Компилятор в итоге уберет цикл, но все побочные эффекты сохранятся.
    В плюсах этот вариант практически не используется, т.к. тут есть шаблоны и т.п. и от макросов в основном отказываются. Но в Си макросы вполне актуальный инструмент.

    Но циклы for и while применяются чаще, чем do while.
    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    do-while удобно применять когда например есть пользовательский ввод и есть реакция на ошибу. Где нужно ввод
    повторить. Например

    do {
      s = input("Enter your bidthday: ")
    } while(!isValidDate(s));

    Еще я использовал для простого I/O когда надо что-то по-символьно читать и проверять
    что файл не закончился (результат не отрицательный).

    В последних версиях Scala (3.x) мусье Одерский внезапно зобанил оператор цикла с постусловием.
    Я уж не помню как он это аргументировал.

    В качестве альтернативы предлагалось делать такой композитный предикат который делает
    сначала действие а потом проверяет.

    while ({ <body> ; <cond> }) ()

    Еще дальше пошел Дейкстра. Он придумал специальный вид do-while для конечных автоматов.
    Такой себе гибрид do-switch-case-while. Где можно как в DSL описать исходящие переходы.
    Правда я не помню где он его реализовал.

    UPD: Ошибочка. Не Вирт а Дейстра. Путаю их.
    Ответ написан
    Комментировать