• Существует ли "карта программиста"? Что и за чем учить?

    dkutergin
    @dkutergin
    Java developer
    Ответ написан
    Комментировать
  • Как ограничить количество одновременно исполняемых Promise?

    @GrayHorse
    Это называется семафором (Semaphore).
    class Semaphore {
        constructor(max = 1) {
            if (max < 1) { max = 1; }
            this.max = max;
            this.count = 0;
            this.queue = [];
        }
        acquire() {
            let promise;
            if (this.count < this.max) {
                promise = Promise.resolve();
            } else {
                promise = new Promise(resolve => {
                    this.queue.push(resolve);
                });
            }
            this.count++;
            return promise;
        }
        release() {
            if (this.queue.length > 0) {
                const resolve = this.queue.shift();
                resolve();
            }
            this.count--;
        }
    }


    const semaphore = new Semaphore(10);
    for (const url of urls) {
        await semaphore.acquire();
        void downloadUrlSynchronized(url, semaphore);    
    }
    
    async function downloadUrlSynchronized(url, semaphore) {
        const resp = await fetch(url);
        const blob = await resp.blob();
        semaphore.release();
        // const name = new URL(url).pathname.slice(1);
        // downloadBlob(blob, name, url);
    }

    Загрузка (fetch) будет не больше 10 в один момент, что собственно и требовалось.

    ---
    На примере 3:
    61ee50a555b4a690601785.png
    Ответ написан
  • Вопрос про термопасту и термопрокладки?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Нет, термопаста не повредит транзисторам - они зачастую и сами через термопасту или термопрокладки на радиаторы приклеены. От пальца термопрокладке плохо тоже не станет.
    Ответ написан
    4 комментария
  • Как разделить содержимое ячейки?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Комментировать
  • Какую точку доступа с Wifi 6++ посоветуете для двухкомнатной в перспективе на 3ех комнатн.?

    Diman89
    @Diman89
    Ваши 5ггц зарежутся первой же стеной (ж/б), отсюда и скромные скорости
    Себе взял xiaomi ax6000 (не iot) и прошился под openwrt, обошлось в 6к за штуку (взял пару)
    Не забывайте, что WiFi- связь двусторонняя - «сильно» должно быть с телефонов тоже (недостижимо)
    Ответ написан
    3 комментария
  • Нарушает ли показ в боте данных из whois законы РФ?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Нарушает однозначно. Владельцы персональных данных не давали Вам разрешение на хранение, обработку и какое-либо использование их первональных данных. ФИО + телефон = персональные данные, т.е. данные, позволяющие однозначно идентифицировать конкретного гражданина.
    Если сделать бота, то это до первой жалобы. У читывая отсутствие анонимности в VK, дальше - вопрос желания Вас найти и наказать.
    Ответ написан
    2 комментария
  • Нарушает ли показ в боте данных из whois законы РФ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что будет если я сделаю бота в VK который будет смотреть айпи адреса и выводить ФИО владельцев и номера телефонов?

    Если предоставленный номер телефона сможет точно идентифицировать человека с указанным ФИО, то Вы попадаете под 153 ФЗ. Да и согласие субъекта на обработку его ПД у Вас имеется?
    Это по закону УК РФ запрещено?

    Это разрешено, пока Вы не стали объектом интереса.

    Можно добавить звёздочек в ФИО, но опять же, смотрите Выше.
    Ответ написан
    Комментировать
  • Как скрыть верхнюю панель со строками vs code 1.87?

    vhood
    @vhood
    Не забывайте отмечать решения
    Добавить в settings.json
    "editor.stickyScroll.enabled": false
    Ответ написан
    Комментировать
  • Как удалить аккаунт из списка Contributors?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега GitHub
    Автоматизатор
    Если в истории проекта есть коммиты этого человека, то мы увидим его в списке Contributors — тех авторов коммитов, кто внес свой вклад в проект.
    Имена авторов коммитов берутся из подписей коммитов и не всегда их можно сопоставить с конкретными аккаунтами гитхаба, так как люди не удосуживаются настроить подпись, а на гитхабе вообще скрывают своё мыло. В итоге не попадают в список авторов и их работа остаётся анонимной.

    Пытаться удалять человека из авторов (забывать его вклад) нет смысла. Достаточно забрать права на изменения, или вообще удалить из списка Collabolators.
    Ответ написан
    2 комментария
  • Отметить жирными посчитать ячейки с жирным шрифтом?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Это можно сделать с помощью макроса VBA.
    Нужно использовать функцию .Find с поиском по форматированию текста.
    Работать будет только на Windows (на MacOS этот макрос работать не будет).
    Ответ написан
    Комментировать
  • Как правильно работать в команде с GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Ветку надо создавать новую, а не пытаться переименовать main.

    Когда вы клонировали проект, то ваша локальная main автоматически связалась с внешней main на гитхабе. От переименования эта связь никуда не денется и при дальнейшем push вы будете отправлять всё равно в main, что запрещено у вас. Поэтому вы и получаете ошибку.
    Ответ написан
    2 комментария
  • ROS 6.49.11 и ROS 7.x capsman будут ли работать?

    b1ora
    @b1ora
    Контакты в профиле
    AX работает только на RouterOS 7
    Ответ написан
    4 комментария
  • Как получать обновления от родительского репозитория GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Репозиторий созданный из шаблона, не содержит истории «родительского» репозитория. По факту это совершенно другой репозиторий, но созданный на основе последнего состояния проекта в шаблоне. Поэтому не получится так просто получить обновления, как это делается в форках.

    Но можно склеить принудительно:
    # Сохранить адрес шаблона в переменную template 
    git remote add template https://github.com/OWNER/TEMPLATE.git
    # Скачать все обновления
    git fetch template
    # Попробовать сделать слияние ветки BRANCH-NAME шаблона с нашей текущей веткой
    git merge --allow-unrelated-histories template/BRANCH-NAME
    Опция --allow-unrelated-histories нужна, так как истории веток никак не связаны.
    Ответ написан
    Комментировать
  • Почему не работает screenshot в inspector для Firefox?

    @Firsy
    Полностью команда
    :screenshot --fullpage
    Ответ написан
    Комментировать
  • Как сделать скриншот всей страницы сайта (Ubuntu19)?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    в firefox встроена возможность фоткать полную страницу сайта без всяких расширений
    в адресном пространстве --> ... --> Сделать скриншот --> Сохранить всю страницу
    есть также возможность сделать это из Веб-консоли firefox-a, набрав
    :screenshot --fullpage
    или из командной строки:
    firefox --screenshot [url]
    тыц сюда

    п.с.
    сейчас в firefox нужно нажать правой клавишей мыши по сайту и в контекстном меню выбрать пункт "Сделать снимок экрана", ну а далее уже выбрать Сохранить всю страницу или Сохранить видимую область
    Ответ написан
    1 комментарий
  • Смерджил ветку с main, как отменить и вернуть как было?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    В интерфейсе GitHub есть специальная кнопка для этого.
    646ff3e1c8abf820618810.png
    Ответ написан
    3 комментария
  • Как отменить git rebase?

    @aol-nnov
    git reflog, далее по тексту

    а что не так в оригинальном вопросе - надо было интерактивный ребейз (-i) делать для склейки коммитов
    Ответ написан
    1 комментарий
  • Почему Youtube определяет страну даже при подключении через VPN?

    Bermut
    @Bermut
    Жертва домашней лаборатории
    Я сталкивался с такой проблемой.
    Причины может быть две: webrtc и грязные ip адреса, про второе сейчас поясню.
    Скорее всего вы брали vps сервер у русского провайдера, вы не первый, кто использует vps для vpn, и google через язык, maps, еще чего-нибудь выяснил, что пользователь в России, так как таких пользователей было много, то он и пометил вашу подсеть, как используемую в России.
    У меня так например на ipv6, я беру 52 подсеть из подсети 2001:470:/32 HE, и кто-то определяет мой адрес как американский, просто беря данные из ARIN, кто-то показывает как немецкий - именно там трафик выходит в интернет, google смог выяснить, и занес в ipdb мою подсеть как российскую.
    Ответ написан
    4 комментария
  • Почему работает DHCP у Mikrotik?

    @powerlift
    В RouterOS DHCP-пакеты попадают в DHCP-клиент и в DHCP-сервер до попадания в IP Firewall, если речь идёт об IPv4.
    Можно очень долго искать на форумах и в документации Mikrotik информацию про эту особенность, но не найти. Но выявляется эта особенность довольно легко на самом простом лабораторном стенде, что я и сделал во времена, когда только начинал администрировать оборудование Mikrotik.

    Выбранный вами в качестве решения ответ Victor вводит в заблуждение - Bridge Filter и IP Firewall не связаны между собой. Просто в случае когда DHCP-сервер/клиент находится на Bridge-интерфейсе, то есть DHCP-трафик проходит через Bridge, то появляются два возможных варианта фильтровать DHCP-пакеты в Bridge:
    1) использовать Bridge Filter для фильтрации
    2) включить прохождение всего трафика Bridge через IP Firewall /interface bridge settings set use-ip-firewall=yes , что позволит фильтровать DHCP-пакеты непосредственно в IP Firewall

    В IPv6 ситуация уже обстоит иначе - DHCPv6-пакеты сначала проходят через IPv6 Firewall прежде чем попасть в DHCP-клиент. С DHCP-сервером не проверял, но предполагаю, что аналогично.
    Ответ написан
    1 комментарий
  • Ошибка undefined и NaN при выполнение команды в Discord.js?

    Alexandre888
    @Alexandre888 Куратор тега discord.js
    Javascript-разработчик
    в документации к библиотеке показано, что .osInfo(), .cpu(), .currentLoad() и .mem() — это промисы.
    652b0a6ae29a1045791538.png
    результатом обычного указания si.osInfo() в коде будет объект Promise.
    объект Promise не содержит свойств platform, distroи kernel, которые вы пытаетесь получить.
    при попытке получить доступ к несуществующему свойству объекта результатом будет undefined.

    то же самое касается и других —si.cpu(), si.currentLoad() и т.д.

    касательно последних двух строк: любые математические операции с undefined будут давать NaN.

    вывод: сначала учим язык, а потом только пишем ботов и всё остальное — никак не наоборот.

    https://learn.javascript.ru/promise-basics
    https://learn.javascript.ru/async-await
    Ответ написан
    Комментировать