Задать вопрос
  • Как заставить цепочку промисов в Node.js работать правильно?

    megafax
    @megafax
    CTO in MarTech
    return fs.outputFile(path, htmlString);
    Вы же работаете с асинхронщиной, и каждый следущий промис должен начаться после текущего. Также оберните fs.readFile в return new Promise(), чтобы конечный console.log отрабатывал верно
    Ответ написан
    3 комментария
  • Как подключить несколько 4g модемов к linux?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Эти модемы работают как роутеры, у каждого из них не только один и тот-же MAC, у них еще у каждого свой dhcp-сервер внутри, и один и тот же IP-адрес на встроенный usb-Ethernet. Другими словами, нужно еще поменять внутренний ip и подсеть dhcp какого-то одного модема.
    Ответ написан
    2 комментария
  • Как создать интернет-сервис для размещения объявлений?

    nonname
    @nonname
    1) Там не язык, а стек технологий, в который могут входить несколько языков. Используют тот стек технологий, который выбрала команда, зависит от того кого наймете.
    2) От дня до нескольких лет, от 0 рублей если делать самому макет на коленке (выхлоп будет в 99.9% случаев соответсвующий) , до миллионов долларов, которые уже вложили озвученные вами проекты.
    3) Собрать самому команду из программистов, аналитиков, пм, маркетологов, дизайнеров и т.д. убедить их всех что проект выстрелит, потратить кучу денег им на зарплаты, офис, налоги, рекламу. Через год у вас будет сырой продукт с 1% долей рынка, работающий в убыток и бесконечно жрущий деньги.
    Ответ написан
    1 комментарий
  • Как исправить ошибку в js?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    У вас с PHP приходит либо ошибка, либо неправильный JSON. Не генерируйте JSON ручками, есть же json_encode.
    Ответ написан
    Комментировать
  • Какие сертификаты для frontend-developer'а существуют?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Единственный вменяемый сертификат - крутое портфолио. Никому не интересны эти ваши ачивки. Работодатель будет смотреть на то что вы умеете, а не на эти фиктивные сертификаты.
    Ответ написан
    1 комментарий
  • Как заменить строки в массиве?

    0xD34F
    @0xD34F Куратор тега JavaScript
    words.replace(index, 1, word.charAt(0));

    Метода replace у массивов нет. Есть splice.

    как реализовали бы данную задачу вы?

    Собираем новый массив:

    const newWords = words.flatMap(RegExp.prototype.exec.bind(/.{0,1}/));
    
    // или
    
    const newWords = [];
    for (const n of words) {
      newWords.push(n[0] || '');
    }
    
    // или
    
    const newWords = (function get(i, n = words[i]) {
      return n != null ? [ n.slice(0, 1), ...get(-~i) ] : [];
    })(0);

    Обновляем существующий:

    words.forEach(([ n = '' ], i, a) => a[i] = n);
    
    // или
    
    words.splice(0, words.length, ...words.map(n => n.charAt()));
    
    // или
    
    for (let i = 0; i < words.length; i++) {
      words[i] = words[i].replace(/(?<=.).+/, '');
    }
    Ответ написан
    Комментировать
  • Проверка e-mail адреса через js, как дозволить регистрацию через определённые ящики?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Ну, допустим. После валидации
    var sps = mail.split('@');
    var domain = sps[sps.length - 1];
    var domains = ['main.ru', 'yandex.ru', 'gmail.com'];
    
    if (domains.includes(domain)) {
       // все ок
    }

    Но это некорректно. Вам придется составлять очень длинный список "популярных" почтовых доменов. У самого майла их штук 5 вроде. У меня вот почта на своем домене, и что мне теперь, закрывать вкладку с вашим сайтом?
    Ответ написан
    Комментировать
  • Вопрос о новых веяниях и требованиях во фронтенде?

    1. Если курс рассчитан на нулевой уровень, то вам и не будут давать фреймворки.
    2. На фреймворках никто не помешан, на нем просто быстрее можно решать задачи, а скорость для бизнеса - все.
    3. Требования к кандидату зависят от компании, в которую вы хотите пробиться. В шарашкиных конторах от вас нужно будет не только в фулстек, но и уметь варить кофе, печь блины и жонглировать шарами перед начальником. В нормальных компаниях есть четкая градация, однако, разбираться в том, чем занимаются ваши коллеги по цеху - полезно, без этого не стать хорошим специалистом.
    4. Планировать идти на курсы не нужно, нужно идти прямо сейчас, и сразу принять тот факт, что за 2 недели вы не станете "мастером фронтенда" и не сможете получать 100k+ в месяц.
    Ответ написан
    Комментировать
  • Что означает $this-> -> в PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Закопать Fuel обратно в его могилу и больше не беспокоить прах этого умершего в далекой древности старца.
    2. Вместо него учить Laravel
    3. Открыть для себя документацию РНР и в непонятных случаях обращаться к ней. В это трудно, конечно, поверить, но там всё написаною Эта ссылка находится в двух кликах по запросу "РНР ООП"

    Честно говоря, я и сам себя часто ловлю на такой "лености мозга". Когда ты 100% можешь сам найти ответ, но спросить у знающего человека проще. но тут важно не поддаваться, и сначала пытаться самостоятельно. Для этого в любом вопросе должна быть фраза - "я искал такм-то", но не нашёл. В процессе написания этой фразы ответ сам и сыщется. В итоге в будет сэкономлено время, приобретён опыт и в интернете будет будет меньше мусора.
    Ответ написан
    4 комментария
  • Можно ли упросить решение задачи с Promise?

    rockon404
    @rockon404
    Frontend Developer
    1. Ваши реализации выполняют не массив Promise, а массив вызовов:
    function(done) {
      setTimeout(function() {
        done('result');
      }, duration);
    };


    Скорей всего, вам надо было выполнять таски вида:
    new Promise(resolve => { 
      setTimeout(resolve, duration, 'result'); 
    });


    2. Называйте функции и аргументы по-человечески, а не array, newArray, funcArray.

    3. Для параллельного выполнения с вызовом колбека done, достаточно:
    function all(promises, done) {
      const results = [];
      let count = promises.length;
      const checkDone = () => {
        if (--count === 0) done(results);
      };
      
      promises.forEach((p, i) => {
        p.then(x => results[i] = x).then(checkDone);
      });
    }

    Для имитации Promise.all:
    function promiseAll(promises) {
      return new Promise(resolve => {
        const results = [];
        let count = promises.length;
        const checkDone = () => {
          if (--count === 0) resolve(results);
        };
      
        promises.forEach((p, i) => {
          p.then(x => results[i] = x).then(checkDone);
        });
      });
    }


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

    @SeaBreeze876
    Front-end разработчик
    вот так
    this.$store.dispatch(GET_ORDER, order).then(() => {
        let data = {};
        data.id = order;
        data.order = {
            status,
            comment,
            totalPrice,
            paymentMethod
        };
        return this.$store.dispatch(PATCH_ORDER, data);
    }).catch(() => {
        return this.$store.dispatch(POST_ORDER, {
            id,
            status,
            comment,
            totalPrice,
            paymentMethod
        });
    }).then(() => {
        if (this.responseServer) {
            this.$refs.modalSend.hide();
            this.status = 1;
        }
    });
    Ответ написан
    3 комментария
  • Как "обойти" шлюз?

    Jump
    @Jump
    Системный администратор со стажем.
    Как «обойти» шлюз?
    Никак.
    Можно ли как то откинуть шлюз и передавать данные на прямую комп 2 расположенному в другой сети?
    Можно - но вот этот вот канал передачи данных напрямую будет называться - шлюз.

    И привольно ли я понял что при прямом подключении кабеля к компьютеру (то есть без роутера), компьютер сам становится шлюзом?
    Нет. От того что вы кабель в компьютер воткнете шлюзом он не станет.
    А вот если он начнет передавать данные в другую сеть - тогда он будет шлюзом.
    Ответ написан
    2 комментария
  • Как отследить переходы из соц.сетей по ссылке конкретного пользователя?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    utm метки

    смотрите всякие "расшарить в фейсбук" как там УРЛы делаются
    Ответ написан
    Комментировать
  • Какие плюсы у PHPStorm перед Visual Studio Code?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    VS Code бесплатный, легкий (да-да, там электрон, но работает шустро). Это все, что я смог выжить. Остальное все индивидуально, все зависит от того, как вы настроите свою среду, как ее изучите. Можно использовать серьезную IDE, но знать ее функционал очень плохо, какой тогда смысл?
    Ответ написан
    Комментировать
  • CURL не получается отправить POST, дело в js, как определить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    откройте инспектор хрома, вкладка нетворк, переключите фильтр пакетов на XHR, поменяйте дату на нужную - смотрите что отправляет сайт в запросе к серверу(там много всего на самом деле), ищите где формируется аякс запрос и что формирует эти данные для отправки, эмулируйте курлом данный запрос - profit!
    Ответ написан
    Комментировать
  • Как заблокировать IP атакующего?

    bestking5236
    @bestking5236
    постоянно устраиваю необычные проделки
    apt install fail2ban
    --
    из коробки уже будет сам банить при нескольких попытках входа
    Ответ написан
    Комментировать
  • Как заблокировать IP атакующего?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Подбор пасов к серверу SSH это нормальная ситуация.
    Избавиться можете или запретом доступа извне к SSH серверу или использованием port knocking.

    Заблокировать можете в фаерволе, но лучше отключите парольную аунтентификацию (а рут вообще не должен по ssh ходить) и используйте ключи.

    P.S. это всё уже 100500 раз обслюнявленно в статьях, которые легко находяться по запросу "ssh security".
    К примеру на хабре их с десяток https://habr.com/post/179219/
    Ответ написан
    2 комментария
  • ООП в моём тестовом задании, code review?

    rockon404
    @rockon404
    Frontend Developer
    1. Вы инкапсулируете модуль Form, но при этом он зависит от глобальных переменных, а не получает нужные параметры при создании экземпляра.
    2. Сам объект Form это ни что иное, как наглядная демонстрация антипаттерна God Object . Почему, не имеющий никакого отношения к форме, список является ее частью остается загадкой. Как и то почему в модуле инкапсулировано состояние приложения.
    3. Насчет аргумента "e" уже не раз написали. Насколько я понимаю, вы видели на просторах интернета, что так часто называют аргумент функции, но, видимо, не поняли почему. Один аргумент имеет говорящее название user, но и оно вводит в заблуждение, так как на вход ожидается массив пользователей.
    4. Почему не использованы возможности ES6 остается загадкой.
    5. Попробуйте сами догадаться, что не так с этим отрывком кода.
    users.push(this.user);
    
    let lastUser = users[users.length - 1];

    6. У вас почти все переменные в методах объявлены свойствами объекта, при том, что в этом нет никакой необходимости и это может стать причиной ошибок в дальнейшем. Почему не использованы локальные переменные остается загадкой.
    Ответ написан
    Комментировать
  • ООП в моём тестовом задании, code review?

    // создание полей input
        Form.prototype.createInput = function createInput(e) {
            for (let i = 0; i < e.length; i++) {
                this.input = document.createElement('input');
                this.input.type = e[i].type;
                this.input.classList = 'js-input';
                this.input.name = e[i].name;
                this.input.placeholder = 'Введите ' + e[i].content + ':';
                this.input.id = e[i].id;
                this.input.value = '';
                this.formWrap.append(this.input);
            }
        }


    Тут вместо this.input нужна более локальная let input
    Ответ написан
    Комментировать