• Как транспонировать матрицу не используя циклы?

    @pekc83
    const transpose = matrix => matrix[0].map((col, i) => matrix.map(row => row[i]));
    
    const baseMatrix = [[1, 2], [3, 4], [5, 6]];
    const transposedMatrix = transpose(baseMatrix);
    // [ [ 1, 3, 5 ], [ 2, 4, 6 ] ]
    Ответ написан
    3 комментария
  • Как нажать Enter в Selenium?

    @timmydiego
    Нужно понять, почему не работает .sendKeys(Key.ENTER), вполне возможно, что теряется фокус с инпута = неявно теряется курсор. Попробуй указать курсору на место явно. типа такого:
    ```
    driver.get('www.example.com');
    var element = driver.findElement(webdriver.By.xpath('//div[yourInputXpath]'));
    element.sendKeys('your text is here');
    element.click;
    element.sendKeys(Keys.ENTER);
    ```
    За синтаксис извини, не пишу на js.
    Решение костыльное конечно, нужно смотреть почему пропадает фокусировка и переопределить событие sendKeys, например. Но если нужно, так сказать "По быстрому" то должно сработать.
    Ответ написан
    Комментировать
  • Как открыть веб-сервер на Node.js для доступа из Интернета?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Как вариант для экспериментов и хомяков:
    1. Купить доменное имя (например тут, хотя выбор конечно за вами. В зоне .ru примерно 600 руб в год)
    2. Получить статический IP (купить у провайдера, примерно 50р в месяц), либо настроить чтото типа ddns (умеют почти все современные роутеры через свою вэбку).
    3. В случае статического IP настроить привязку купленного доменного имени к вашему статическому IP. Для этого порывшись по сайту конторы, продавшей вам доменное имя найти сервис DNS для их клиентов. У большинства пользование таким сервисом бесплатно.
    В случае ddns и ему подобных настроить привязку купленного доменного имени к вашей учетке в сервисе ddns
    4. Купить что то типа raspbery PI или orange PI, установить на него чтото типа armbian, nodejs, подключить к роутеру, настроить IP в локалке (пункт не обязательный, но удобства неоспоримы, висит себе бесшумно на стене возле роутера, прибитый гвоздем и раздает ваши сайты в нет :).
    5. Прокинуть необходимые порты в роутере на IP вашего сервера (raspbery PI или orange PI) (учтите что внешний порт будет 80 а внутренний на сервере скорее всего 3000. Номер внутреннего порта зависит только от того на каком порту вы запустите ваше nodejs приложение)
    6. Профит!!! Как только обновятся DNS записи (от пары минут до суток, в зависимости от выбранного DNS сервиса) вы, и весь мир вместе с вами сможет посетить ваше nodejs приложение по адресу http://ваш_домен.зона/

    PS: Далее вам останется только:
    1. Озаботится https (Let's Encrypt вам в помощь)
    2. Зарегать в вашем домене несколько поддоменов (например forum.ваш_домен.зона, game.ваш_домен.зона, chat.ваш_домен.зона, cloud.ваш_домен.зона). Хорошая новость в том, что у большинства сервисов, содержание вашего доменного имени и регистрация поддоменов бесплатны (если конечно вы их клиент - купили доменное имя у них)
    3. Установить на серв nginx и настроить его, чтобы перекидывал http запросы на https, сам проверял сертификаты и чтобы раскидывал входящие запросы по соответствующим сервисам уже в локалке и через http. (можно конечно озадачится чтобы сервисы на node сами свои сертификаты проверяли, но на мой взгляд это бессмысленно, потому что если кто взломает ваш сервер, ему будет глубоко наплевать зашифрованными или нет ходят пакеты между вашим nginx и сервисами на ноде через lo0.
    Ответ написан
    2 комментария
  • Как использовать Selenium webdriver вместе с phantomjs?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    Подними selenium hub, c пулом нод (инстансов chrome / ff / opera)
    Далее просто подлючаешься к хабу и берешь первую свободную ноду

    var SELENIUM_HOST = 'http://localhost:4444/wd/hub';
    var URL = 'https://instagram.com';
    
    var browser = new webdriver.Builder()
       .usingServer(SELENIUM_HOST)
       .withCapabilities({ browserName: 'chrome' })
       .build();
    
    browser.get(URL);


    запускаешь лайкер в количество потоков = количеству нод в пуле
    Ответ написан
    1 комментарий