• Какое максимальное питание можно подать на кабели БП для питания устройств?

    hint000
    @hint000
    у админа три руки
    Правильно ли я понимаю, что их все можно нагружать одновременно нагрузкой до 132*3=396W?
    Гуглим зависимость номинального тока от толщины провода, бонусом натыкаемся на калькулятор:
    https://www.powerstream.com/Wire_Size.htm
    Задаём напряжение 12V, длину провода... ну пусть будет 1 фут. Ток 33 ампера (396W/12V=33A). И видим, что падение напряжения будет в пределах допустимых 5% при проводе стандарта 18AWG. На более тонком 20AWG (чем больше число, тем тоньше) напряжение выходит за пределы нормы.
    Ответ только с точки зрения провода: если маркировка провода 18AWG, то 396W можно снять без чрезмерной просадки напряжения при длине провода 1 фут (~30,5 см). Больше длина - ниже упадёт напряжение, в ущерб стабильности работы железа.
    Эти провода от нагрузки 396W не сгорят, и не расплавится изоляция. Вопрос именно в падении напряжения.
    Отдельно ещё надо рассматривать разъёмы - на них тоже падение напряжения. Но для простоты это мы опустим. :)

    Чтобы разглядеть маркировку на проводах, нужно хорошее зрение или увеличительное стекло.
    601911e96ca61366899747.png
    Ответ написан
    5 комментариев
  • Что значит такой код?

    vabka
    @vabka
    Токсичный шарпист
    Документацию читать пробовали?
    expressjs.com/ru/api.html#res.redirect
    А в сочетании с return это делает то же самое, что и
    res.redirect('/');
    return;

    В сумме с условием и res.render в конце это даёт:
    Если пользователь залогинен, то перенаправляем его на страницу /, иначе отдаём ему страницу для логина.
    Ответ написан
    3 комментария
  • Существует ли плагин подобного слайдера?

    swert-tech
    @swert-tech
    Держи

    Тебе нужно будет писать стили под эти нужды:
    кружки, который сам крутится каждые секунд 10, и который можно стрелочкой крутить
    Ответ написан
    Комментировать
  • Как включить Flash?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нужно качать что-то древнее, потому что в Adobe Flash Player 32(5 декабря 2018) заложена тайм бомбочка(привет фсб)).
    Я скачал opera 15 - /pub/opera/desktop/
    И Flash Player 11.1.102.55(в самом конце).
    Получилось запустить:
    6015d2c2d4548384673496.png

    Chrome 49 - тоже получилось запустить.
    Все делал на виртуалке с Windows XP.

    Дополнено:
    По вашей ссылке кроме flash есть ещё и исходники в формате fla. Они отлично открываются в Macromedia Flash Professional v8.0:
    6015ec08b51f3461313640.png
    Можно обойтись вообще без браузера. Идем современным браузером про вашей ссылке easing function generator Далее смотрим исходный код страницы и ищем файл "easing_function_generator.swf". Скачиваем его.
    Далее по ссылке https://www.my-old-version.com/flash-player/ можно скачать архив с разными версиями flash player. В папке WindowsXP-2008/fp_32.0.0.142_archive/32_0_r0_142 будет файл flashplayer32_0r0_142_win_sa.exe(sa - Standalone). С помощью его можно флешку запустить в Windows XP - 10 и в Linux через wine(может кому пригодится):
    6015edd0cd73b102626831.png
    6015eddb89986606090688.png
    Ответ написан
    1 комментарий
  • Как бороться со статическим электричеством в офисе?

    Jump
    @Jump
    Системный администратор со стажем.
    Так вот, у меня в кабинете очень жесткое статическое электричество. Постоянно бьёт током, когда берусь за металлические предметы.
    Это не статическое электричество!
    Статическое электричество это накопленный телом заряд - например автомобиль, самолет во время движения, из-за трения накапливает статический заряд.
    К проводам оно не имеет никакого отношения. Для сброса заряда нужно заземлять тело.
    Но к вашему случаю это никак не относится.

    В вашем случае неисправная электропроводка в производственном помещении.
    Нет заземления или оно работает неэффективно, идет ток через металлоконструкции, и когда вы к ним прикасаетесь, он идет через вас.

    Обратитесь с проблемой к руководству, или к ответственному по охране труда.
    Это просто опасно, и может кого-нибудь прибить.
    Ответ написан
    1 комментарий
  • Как составить регулярное выражение для поиска {{param}}?

    @dodo512
    {{.*?}}

    const s =  "Это какой-то тексст {{param1}} дорогие пупсики {{param2}} и нужно из него {{param3}} выдернуть параметры"
    console.log(s.match(/{{.*?}}/g))

    https://regex101.com/r/eOj0fJ/1
    Ответ написан
    3 комментария
  • По какой формуле вычислять сумму BTC из RUB?

    vabka
    @vabka
    Токсичный шарпист
    Количество рублей * Количество долларов за 1 рубль * количество BTC за 1 доллар
    Арифметика, второй класс начальной школы, тема "умножение"
    Ответ написан
    2 комментария
  • Как первоначально компилировали сами компиляторы написанные на яву?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    См. "Раскрутка компилятора". Кратко - создаётся (в машкодах, ассемблере, или другом языке) компилятор минимального подмножества языка, пригодного для разработки. Затем на этом подмножестве пишется компилятор, способный скомпилировать само это подмножество. Ну и дальше процесс продолжается итеративно, добавляются фичи в язык, дописывается компилятор и тд.
    Ответ написан
    Комментировать
  • Как первоначально компилировали сами компиляторы написанные на яву?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Дополню. Вот тут хорошее описание как все происходит.
    Все делается в 3 фазы.
    https://gcc.gnu.org/install/build.html
    Ответ написан
    Комментировать
  • Поможет ли функциональный ЯП (например, Haskell) лучше понять ООП (С++)? Если да, то чем конкретно он поможет?

    vabka
    @vabka
    Токсичный шарпист
    ФП - очень крутая парадигма. В теории, может помочь понять ООП, через взгляд со стороны, но не факт.
    Знание в принципе полезное и оправдывает затраченное время.
    Но я бы посоветовал взять какой-нибудь более простой язык, чем хаскель - например F# (тем более он объединяет ООП с ФП).
    Или раст - он тоже имеет черты обоих парадигм, но с ним тоже есть свои нюансы.
    Хотя если хочется совсем мозг сломать - берите Idris и погружайтесь в доказательное программирование.
    Ответ написан
    Комментировать
  • Сode review, как улучшить функионал?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Добавление класса перевёртыша выполняется мгновенно, но отображается анимацией в течение 1 секунды (см. стиль .active:
    console.log(`Card ${key + 1} start!`);
    el.classList.add('active');
    console.log(`Card ${key + 1} end!`); // выполнится почти одновременно с предыдущими строками

    Поймать конец CSS-анимации можно примерно: установив setTimeout на то же время, что длится анимация:
    console.log(`Card ${key + 1} start!`);
    el.classList.add('active');
    setTimeout(() => console.log(`Card ${key + 1} end!`), 1000);

    Более грамотный вариант слушать событие окончания анимации. См. transitionend и animationend
    el.addEventListener('transitionend', () => {
      console.log(`Card ${key + 1} end!`);
    });


    spoiler
    setTimeout(() => {
            console.log(`Card ${key + 1} start!`);
            const onTransitionEnd = () => {
              console.log(`Card ${key + 1} end!`);
              el.removeEventListener('transitionend', onTransitionEnd);
            }
            el.addEventListener('transitionend', onTransitionEnd); 
            el.classList.add('active');
          }, ms);
    Ответ написан
    4 комментария
  • Как работает эта часть алгоритма?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Пусть S = 1 + 2 + ... + n.
    Тогда, по условию задачи,
    a · b = S - a - b
    Зафиксируем a и решим уравнение относительно b:
    a · b + b = S - a
    (a + 1) · b = S - a
    b = (S - a) / (a + 1)
    Вот и получилась ваша формула.
    Ответ написан
    1 комментарий
  • Как обновить вывод данных после ajax?

    @Creed1234 Автор вопроса
    Решено
    Ответ написан
    Комментировать
  • Как разбираться в огромных исходниках?

    @TheAthlete
    Perl 5, C, C++, компьютерные сети
    В программировании есть такое понятие как модульность - большие системы делятся на модули, каждые из которых отвечают за свою часть работы - ядро linux, графическая подсистема, драйвера. Если взять ядро линукс, то там есть много модулей - драйвера на оборудование - видеокаты, звуковые карты и т.д. на самом нижнем уровне, подсистема для мултиплексирования ввода-вывода (select/poll/epoll) и т.д. Каждый разработчик занимается своей задачей, своим модулем в ядре Linux. Например, если ты пишешь на Node.js можно начать интерисоваться, что же внутри. И найти цепочку, которая ведет в ядро Linux (упрощенно): Node.js -> libuv -> epoll и далее разбираться, как этот системный вызов работает на уровне ядра и начать изучать исходный код ядра Linux для этого системного вызова.
    Ответ написан
    Комментировать
  • Как улучшить программу с помощью ооп?

    Tim-A-2020
    @Tim-A-2020
    Просто отрендерить данные достаточно этого
    Ответ написан
    4 комментария
  • Как правильно прописать несколько событий onclick?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала, лучше использовать addEventListener().

    Ну а так, смотрите, здесь:
    id1.onclick = Place('Вода');
    вы присваиваете в onclick результат функции Place().
    Так как функция ничего не возвращает (а только производит действия), то получается так:
    Place('Вода');
    id1.onclick = undefined;

    Чтобы функция стала обработчиком, нужно присвоить её саму, а не результат её вызова:
    id1.onclick = Place;
    Но так, конечно, тоже работать не будет. Теперь нужно прочувствовать этот момент, разобраться до полного понимания, чтобы двигаться дальше.
    Ответ написан
    Комментировать
  • Могу ли я в чистом javascript в асинхронной функции подождать возникновения события?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Первое что нужно понимать, что async/await - это всего лишь синтаксический сахар над промисами, а значит имеет все особенности работы с ними:
    Во-первых, промис может разрешится (или отклонится, но в этой задаче reject не нужен) только единожды. Это сильно отличает их от событий, которые могут происходить многократно.
    Во-вторых, промисы обрабатываются на особой фазе event loop называемой microtasks, что опять же отличается от событий, которые выполняются на другой фазе (tasks). Это означает, что обработка промиса (колбэк метода then, или сахар над ним в виде await оператора) всегда произойдет асинхронно от возникновения события. Это накладывает ряд ограничений, например не получится сделать preventDefault у объекта или не получится запустить действия требующие синхронной работы из trusted события (play не muted video/audio, вход в фулскрин и тд).

    В простом варианте можно слушать событие разово, для чего можно использовать параметр once. Так же для оптимизации можно использовать параметр passive, так как нам все равно поздно вызывать preventDefault, а в некоторых случаях это может дать нам оптимизацию. Ну и управлять параметром capture попросту бесполезно, так как обработка будет в любом случае после обеих фаз. В итоге для этого можно пользоваться такой функцией хелпером:
    function listenOnce(target, event) {
        return new Promise(resolve => {
            target.addEventListener(event, resolve, {
                once: true,
                passive: true
            });
        });
    }
    
    // использование
    const event = await listenOnce(document, 'DOMContentLoaded');
    console.log(event);


    Если же нужно слушать событие многократно, то разумно обернуть прослушивание события в асинхронный итератор. Здесь так же присутствуют все ограничения связанные с промисами, но за счет того, что у нас будет итератор по множеству промисов, мы сможем слушать событие многократно. так же тут нужно предусмотреть возможность отписаться от события. Хелпер для данного случая получится такой:
    function listen(target, event) {
        let currentResolve = () => {};
        const handler = event => currentResolve({value: event, done: false});
        return {
            [Symbol.asyncIterator]() {
                target.addEventListener(event, handler, {passive: true});
                return {next: () => new Promise(resolve => {
                    currentResolve = resolve;
                })};
            },
            stop() {
                target.removeEventListener(event, handler);
                currentResolve({done: true});
            }
        };
    }
    
    // использование
    for await(const event = listenOnce(window, 'scroll')) {
        console.log(event);
    }
    
    // с отпиской
    const eventIterator = listenOnce(window, 'scroll');
    let count = 10;
    for await(const event = eventIterator) {
        console.log(event);
        if(--i === 0) {
            eventIterator.stop();
        }
    }
    Ответ написан
    4 комментария
  • Что скажете про курсы веб-разработки Скиллбокса?

    @Vladneim
    Начинающий верстальщик
    Я на данный момент прохожу курс от этой школы(Веб верстка) это очень удобно, курс полностью оправдывает свою цену, преподаватель подскажет, если не в телеграмм? то на самой платформе, так что если есть денежные средства и ты хочешь поступить, то советую поступать
    Ответ написан
    5 комментариев