Задать вопрос
  • Какая есть достойная литература по Vue.js?

    awesome-vue просматривали?
    Это модерируемый список ресурсов, относящихся к Vue: книг, уроков, блог постов, библиотек, и всего остального, невероятно крутого.
    Ответ написан
    1 комментарий
  • Чем лучше ваша нейросеть решает какую-либо задачу тем она хуже как нейросеть вцелом. Как так?

    Может, вопрос про генерализацию и оверфиттинг?
    Чем лучше сеть подгоняет ответы под учебную выборку, тем хуже она справляется с задачами вне этой выборки, с «реальными» задачами.
    Ответ написан
    Комментировать
  • Как добавить дополнительный стиль к этому js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Попробуйте так:
    var scrollCoef = 0.0035;
    var masthead = $('#masthead');
    
    $(window).on('scroll', function() {
      var scrolltop = $(window).scrollTop();
      masthead.css({
        opacity: 1 - scrolltop * scrollCoef,
        transform: "scale(" + (1.5 - scrolltop * scrollCoef) + ")"
      })
    });
    Ответ написан
    3 комментария
  • Как складывать два числа без задействия кнопок?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    При изменении содержания текстовое поле «излучает» (emit) событие "input".
    Можно слушать это событие и по нему обновлять сумму:
    Ответ написан
    1 комментарий
  • Как уменьшать каждую минуту число?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно и чуть по-другому: при запуске определять момент «Ч», и по таймеру показывать, сколько осталось до него минут. При этом таймер можно запускать как угодно часто, например, дважды в секунду – так точность момента переключения составит пол-секунды.



    Тут практически сразу же покажет не 44 а 43, т.к. сразу же остаётся уже чуть меньше, чем 44 минуты. Если надо, чтобы 44 продержалось первую минуту, придётся чуть изменить код. Вы справитесь.
    Ответ написан
    Комментировать
  • Сумма произвольного количества скобок?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    const sum = a0 => a1 => Number.isFinite(a1) ? sum(a0 + a1) : a0;
    
    // Tests
    console.log(sum(1)(2)(3)(4)()); // 10
    const a = sum(4)(3);  
    console.log(a); // function
    const b = a(1)(2)(5); 
    console.log(b); // function
    const c = b();
    console.log(c); // 15
    Ответ написан
    Комментировать
  • Как в php разбить 12ти-значное число на определенные блоки?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Есть специально для этого в PHP функция sscanf() – разбирает строку по формату.

    $str = "111222772019"; // строка из БД
    
    list($unit, $employee, $serial, $year) = sscanf($str, "%3d%3d%2d%4d");
    // 3 цифры, 3 цифры, 2 цифры, 4 цифры
    
    printf("Unit: %d, man: %d, id: %d, year: %d<br/>", $unit, $employee, $serial, $year);
    // Unit: 111, man: 222, id: 77, year: 2019
    Ответ написан
    Комментировать
  • Как безопасно обновить nginx?

    Команда nginx -V покажет, с какими модулями был сконфигурирован ваш nginx.
    Конфиг-файлы все остаются в силе.

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

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    Бот «сломается» при большом числе запросов. Прежде, чем отдать ожидаемое «ok», он выполняет ещё два веб-запроса: users.get() и messages.send()– это съедает время и память. Будье готовы переключиться на схему с очередью и отдельными рабочими. Приняли запрос, сохранили, отдали "ok". Другой процесс, рабочий, неспеша разбирает задачи из очереди, отправляет ответы. Стали популярнее, добавили рабочих с других серверов.

    Не проверяете user text на минимальную длину. Пришлют одну букву - получат весь FAQ. По мере роста FAQ'а, можете столкнуться с дубликацией: на запрос "hi" найдётся, скажем, ключ с "high load".
    Ответ написан
    1 комментарий
  • Как исправить ошибку?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    забыли подключить JS плагина scrollspy
    Ответ написан
    Комментировать
  • Почему vk_api python долго обрабатывает с stand alone приложением?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Поверхностный взгляд
    На первый взгляд, косяк в числе запросов в одной "пачке" - их можно 25, а у вас всего 11.

    И подозрение на тормоза из-за частоты запросов. Библиотека vk_api, если используется именно она, с ошибками превышения частоты запросов (3 в секунду) поступает просто: откладывает следующую попытку на пол-секунды. См. too_many_rps_handler

    Разумнее считать время самостоятельно и точно укладываться в 3 запроса в секунду.

    Вы пишете про 1200-1800 в секунду, это как-то совсем медленно, учитывая, что первые 33 тысячи то уж точно должно были бы вернуться за первую секунду с тем кодом, что в примере.


    Upd. Попробовал безо всяких питонов прямо на странице приложения ВК создать хранимую процедуру и в ней получать список участников группы. Та же картина. Если только id пользователей – выполняется быстро.
    Стоит добавить поля city и can_write_private_message, как долго думает и вылетает с ошибкой.

    Видимо, надо «понять и простить» ВК, не справляющийся с такой нагрузкой в установленных лимитах времени/ресурсов и бить на меньшие партии, или выполнять доп. запросы.

    Например, если такой парсинг требуется не однократно, а снова и снова, есть смысл кэшировать у себя данные пользователей (надеясь, что они не станут менять город и закрывать/открывать сообщения каждый день) и при повторных запросах сначала получать только id, а потом запрашивать city и can_write_private_message только для новичков.
    Ответ написан
    8 комментариев
  • Как переписать данный скрипт?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Если я правильно понял задачу, чтобы основная кнопка мыши имитировала нажатие W, а вторая кнопка мыши - пробел с автоповтором:
    const buttonChars = {
      1: 'W',  // левая (основная) кнопка мыши
      2: ' ',  // правая (второстепенная) кнопка
    };
    /* коды кнопок см. в https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons
        0 : No button or un-initialized
        1 : Primary button (usually the left button)
        2 : Secondary button (usually the right button)
        4 : Auxilary button (usually the mouse wheel button or middle button)
        8 : 4th button (typically the "Browser Back" button)
        16 : 5th button (typically the "Browser Forward" button)
     Могут быть нажаты одновременно несколько кнопок мыши - их коды суммируются.
    */
    
    let timer;
    const clearTimer = () => {if (timer) clearInterval(timer);}
    const root = window;
    
    root.addEventListener("mousedown", e => {
      if (buttonChars.hasOwnProperty(e.buttons)) {
        const func = () => e.target.dispatchEvent(
          new KeyboardEvent('keydown',{
            'key': buttonChars[e.buttons],
            'bubbles': true,
            'cancellable': true,
          })
        );
        
        func();
        clearTimer();
        timer = setInterval(func, 80);
      };
    });
    
    root.addEventListener("mouseup", clearTimer);


    Ответ написан
    Комментировать
  • Как получить id человека по screen_name?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Метод ВК API utils.resolveScreenName() принимает единственный параметр screen_name и возвращает два поля:
    type тип объекта:
    • user — пользователь;
    • group — сообщество;
    • application — приложение.
    и object_id (integer)— идентификатор объекта.
    Ответ написан
    Комментировать
  • Как можно получить id человека, переслав его сообщение в беседе?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Зависит от реализации бота, ссылку на которого вы не привели, поэтому можно только гадать.
    Но, вероятно, message имеет тот же формат, что и в документации ВК.

    В таком случае message.from_id будет содержать идентификатор отправителя.

    Если сообщение переслали, то исходное будет где-то внутри поля fwd_messages
    Ответ написан
    3 комментария
  • Какого размера числа способен сосчитать js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Наибольшее «безопасное» целое 253-1 или 9007199254740991
    Числа больше будут записываться неточно, в экспоненциальной нотации, и возможны косяки, например
    var a = 9007199254740991 + 1;
    var b = 9007199254740991 + 2;
    a === b; // true

    См. MAX_SAFE_INTEGER

    В вашей задаче стоит работать не с целыми, а со строками.
    Ответ написан
    4 комментария
  • Как найти исходное число?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    только нейронными сетями надо решать!

    X = 0.7 * Y Что здесь сложного? Найдо найти все пары (X, Y), где оба целые ?

    То ли лыжи не едут..
    function search_start_value($price, $sale) {
      return $price * 100 / (100 - $sale);
    }
    echo search_statr_value(1499, 30); // 2141,4285714286
    Ответ написан
    3 комментария
  • Сделать список дел на Javascript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    - Не понимаю, как оставить класс first у первого item?

    Для чего этот класс вообще понадобился? Если для нахождения темплейта блока для последующего копирования, то так не очень. Дайте ему отдельный id, например. А для создаваемых дел назначайте уникальный id при клонировании.attr('id',new_id) Вообще достаточно один раз при запуске приложения сохранить где-то узел образца, убрав его из DOM. И дальше работать с той константой.

    - Почему массив item: undefined?

    ПОтому, что item не массив, а единственный узел. querySelector() возвращает первый найденный DOM-узел.

    - Почему в массиве first 1 элемент (так-то оно и должно быть по идее, но он же удаляется у первого item)

    first определяется только один раз в начале скрипта, когда такой только один. И более не переопределяется.

    - Почему кнопка "удалить" которая должна окрасить в желтый цвет item в котором она находится, не окрашивает его

    Первым делом, не вешается слушатель события клика, потому, что deleteThis у вас это коллекция узлов. У неё нет метода addEventListener(). Он есть у каждого её элемента. Надо пройтись циклом и навесить слушателя на каждого.

    Откройте консоль браузера - там есть несколько интересных строк с ошибками.
    Вставляйте повсюду console.log(), чтобы посмотреть, когда что срабатывает и какие там значения у переменных.
    Ответ написан
    3 комментария
  • Как зашифровать якорь в URL на JS?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно примитивно XOR'ить «секретный» пароль и строку. Очень ненадёжно, как и вся затея с хранением ключа шифрования в клиентском скрипте. Тем не менее, вот пример. При смене хэша он заменяется на шифрованную строку. начинающуюся с восклицательного знака - отличительный признак. Если так же вставить хэш с воскл. знаком - он дешифруется и заменится исходной строкой:
    ((w) => {
    
      function superpooper(secret) {
        const pass = encodeURIComponent(secret);
        return function onHashChange(){
          var hash = w.location.hash.replace(/^#/,"");
          if (!hash.length) return;
          
          const xor = s => s.split('').map((c,i)=>String.fromCharCode(c.charCodeAt(0)^pass.charCodeAt(i%pass.length))).join('');
      
          if (hash[0]==='!') {
            hash = hash.substring(1);
            const decoded = decodeURIComponent(xor(atob(hash)));
            history.replaceState(null, null, document.location.pathname + '#' + decoded);
          } else {
            const encoded = btoa(xor(encodeURIComponent(hash)));
            history.replaceState(null, null, document.location.pathname + '#!' + encoded);
          }
        }
      }
    
      w.addEventListener("hashchange", superpooper("abrakadabra"), false);
      
    })(window)


    Если запустить через консоль и в текущей вкладке добавить, например, хэш
    #Моё секретное сообщение оно тут же заменяется на
    !RFBHJVtEVlRbMURTVzZRTlNRIydXU1QmQ0RZVF1QR0BUU1JXU14lVURQR1lQR0BUL1FBU1cwVERQRyVbRFZUIDNEU1c2UE5TUVlSV1NUJkJEWVQmVEdAVCVTV1NeWVZEUEclUUdAVCklQVNXNlFEUEcjLkRWVCZCRFNXMFROU1FTUldTVCZDRFlUXFBHQFQlUldTXiMhRFBHJVFHQFQpJEFTVzZRRFBHI1pEVlQmQ0RTV0pYTlNRJVJXU1QgR0RZVCBRR0BUIyZXU14lVERQRyNZR0BUL1FBU1cwVA==

    И наоборот, если в странице добавить этот длинный хэш, он заменится на «Моё секретное вот это вот всё».
    Ключ шифрования тут abrakadabra
    Увеличение длины получается из-за того, что прогоняю через encodeURIComponent(), чтобы нормально работало с кириллицей, смайликами и emoji.

    Исходный пример это простой binhex
    у вас похоже на binhex: btoa('youtext') // "eW91dGV4dA==" – тут никаких ключей не требуется.

    atob("eW91dGV4dA==") // "youtext"
    Ответ написан
  • Как сделать таймаут в цикле Map?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Чтобы уважить требования одного API отправлять не более 3 запросов в секунду, я писал обертку, типа очереди задач. Задания хранятся в массиве. И сохраняются метки времени последних трёх запросов.
    Перед исполнением очередного задания текущее время сравнивается с нулевым в массиве (если в массиве уже есть 3 отметки) и либо можно выполнять запрос, либо надо подождать – запускается таймаут на разницу времен.

    Вам такого плана вариант нужен, или просто, чтобы один-за-другим, без ограничений по времени?
    Ответ написан
    5 комментариев
  • Как найти единомышленников для проекта, или влиться в стартап?

    Поищите инкубаторы, акселераторы, конкурсы, где собирают специалистов разных профилей и предлагают им объединяться в команды. Как, например, Цифровой Прорыв (уже поздно записываться) — это калька с довольно успешного рецепта.
    Ответ написан
    Комментировать