• Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Kovalsky,

    я бы написал "закомментировать"

    То и имелось ввиду. А почему вы отдаете предпочтение латинизмам против англицизмов? Чем они лучше? И пусть "заремарить" не признан и является жаргонным у доморощенных программистов, но в свое время тоже самое можно было сказать и про слово "комментарий". Почему бы вместо "комментарий" не использовать действительно русское слово "примечание", так сказать для чистоты Русского языка?

    ES6 классы реализованы прототипами, технически между ними нет разницы никакой.

    Напишите ES6 класс, с которым можно делать и так const a = new MyClass() и так const a = MyClass()
    Ну и еще напишите класс MyClass на прототипах, с которым можно было бы писать так class MyExtendClass extends MyClass {...}, ведь именно в этом контексте было сказано что Date классом не является.
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Kovalsky, реально придераетесь)))

    Конечно Date это класс,

    Не класс (во всяком случае не ES6 класс), а реализация прототипа (и не только) на функциях

    что значит слово заремарить?
    а вы бы как написали?
  • Как перевести base64 в значение пикселей?

    lastuniverse
    @lastuniverse
    vaselekk, примите как факт то что вы не понимаете сути вопроса.

    Karpion все верно написал, для того чтобы декодировать base64 вам нужно просто нагуглить функцию, которая это делает. Это не сложно, НО в вашем случае не поможет, потому что хоть пиксель и состоит из цветовых компонент rgb, но ваши данные, которые упакованы в base64 не датут эту информацию, потому что ваша картинка "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ ......... 8A/fyiiigD/9k=" это rgb данные упакованные в формат jpeg, который распаковать с помощью js вы вряд ли сможете, но вам это и не нужно.

    Для решения вашей задачи, как и написал Надим Закиров, достаточно просто кинуть эту картинку на канвас, который сам все распакует, а затем, уже из канваса вы можете доставать цвета. Пример от Надим Закиров вам в помощь
  • Как оптимизировать бота с нейросетью для нескольких пользователей?

    lastuniverse
    @lastuniverse
    Даниил Калинин, ну тут у вас все равно есть только один вариант - ковырять CUDA дальше.
  • Как оптимизировать бота с нейросетью для нескольких пользователей?

    lastuniverse
    @lastuniverse
    Запускайте несколько копий вашей ИНС в пуле потоков (параллельных процессов). Количество потоков сделайте равным например числу ядер на процессоре. При получении запроса на обработку фото, помещайте ее в очередь. При освобождении любого потока с ИНС доставайте из очереди фото и отправляйте ее на обработку в освободившуюся ИНС. Так же при получении фото на обработку, зная скорость обработки одной фото, количество потоков с ИНС и количество фото в очереди вы можете производить расчет времени, когда текущий запрос от пользователя сможет быть удовлетворен, и например если время ожидания окажеться слишком большим, предложить пользователю попробовать снова через некоторое время, не устанавливая его фото в очередь.
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Надим Закиров, вот могу такой вариант предложить. Время будет обновляться само при вызове любого метода у server_date созданного так const server_date = new ServerDate();.
    Только надо будет заремарить setTimeout, разреманить fetch и немного его изменить под свой сервер

    https://jsfiddle.net/lastuniverse/zd3b1p4o/2/

    const methodts = ["getDate", "getDay", "getFullYear", "getHours", "getMilliseconds", "getMinutes", "getMonth", "getSeconds", "getTime", "getTimezoneOffset", "getUTCDate", "getUTCDay", "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes", "getUTCMonth", "getUTCSeconds", "getYear", "setDate", "setFullYear", "setHours", "setMilliseconds", "setMinutes", "setMonth", "setSeconds", "setTime", "setUTCDate", "setUTCFullYear", "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth", "setUTCSeconds", "setYear", "toDateString", "toGMTString", "toISOString", "toJSON", "toLocaleDateString", "toLocaleString", "toLocaleTimeString", "toSource", "toString", "toTimeString", "toUTCString", "valueOf"];
    
    
    function ServerDate() {
        let server_time_offset = 0;
        const date = new Date()
        methodts.forEach(method => {
            this[method] = (...args) => {
                date.setTime(Date.now() - server_time_offset);
                return date[method](...args);
            }
        });
     
        // !!!!! заремарим пока эту часть
        // fetch("url роутера на сервере отдающего время в миллисекундах")
        //     .then((response) => {
        //         return response.json();
        //     })
        //     .then((data) => {
        //         server_time_offset = Date.now() - data.time;
        //     })
    
        // а для эмуляции задержки получения даты от сервера сделаем это
        setTimeout(() => {
            server_time_offset = 3000; // 3 секунды
    
        }, 1000)
    }
    
    
    const server_date = new ServerDate();
    
    // сразу после инициализации в date будет время клиента
    console.log(server_date.getTime());
    
    // но когда прийдут данные с сервера, то время в date измениться
    setInterval(() => {
        console.log(server_date.getTime());
    }, 1000)
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Надим Закиров, и делают они это каждый раз, при вызове функции drawBlock()
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    внезапно оказывается, что можно создавать копии объекта new Date() возвращающие время с твоей поправкой


    Надим Закиров, тут вы не правы)))

    поковырял сайт)))

    в файле https://etp.roseltorg.ru/min/js/auctions/code.js?_... время как раз вычисляется по разнице между серверным и клиентским временем:
    date.setTime(date.getTime() - server_time_offset); server_date = date;


    То есть они просто вычисляют серверное время по разнице между клиентским и серверным.
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Надим Закиров, ну стандартная new Date() возвращает дату, которая уже сама по себе никогда не измениться.
    Можно конечно создать свой класс, который спросит у сервера время и запомнит разницу со временем клиента, и добавить в этот класс методы (такие же как в стандартной date), которые будут выдавать текущее время сервера, вычисляемое как текущее время клиента с поправкой на разницу, полученную при инициализации (но вы и сами об этом писали в вопросе)
    Так же можно просто добавит сетинтервал, который скажем раз в секугду будет менять время, вычисляя его опять же как время клиента с поправкой на разницу и меняя его в date с помощью date.setTime(...) но этот еще хуже чем первый вариант.
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Надим Закиров, а разве date полученая как const date = new Date() ведет себя не точно так же???
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Kovalsky, а вообще, такие манипуляции так или иначе рано или поздно приведут к сложно отлавливаемым ошибкам, на что и был намек в ответе.
    А поскольку асинхронность и соответственно временную задержку в общении с сервером убрать то не получится никак, то и полностью прозрачно подменить Data на что то свое не выйдет
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Kovalsky, это я в своих исходниках порылся)))
    Сейчас автор скажет свое слово, и думаю что сумею выдать требуемый результат)
  • Как создать свой вариант конструктора Date?

    lastuniverse
    @lastuniverse
    Надим Закиров, порылся в исходниках, вот смотрите, вставил комментарии для понимания

  • Какой тип движка выбрать для ортографического 3D в браузере?

    lastuniverse
    @lastuniverse
    Человек по всей видимости говорит собрать картинку из div-ов с фоном. При таком подходе производительность будет гораздо меньше.
  • Как сделать ожидание ответа от пользователя?

    lastuniverse
    @lastuniverse
    1. перед тем как отправить пользователю сообщение вносите в БД информацию о нем, включающую в себя:
    - идентификатор пользователя
    - инвормацию об отправленном сообщении
    - указание на роутер/функцию/хандлер, которую необходимо вызвать при получении ответа от данного пользователя
    2. при получении сообщения от любого пользователя посмотреть в БД данные из пункта 1. Если мы не ждем ответа от пользователя, то обрабатывать сообщение стандартно. Если же ждем:
    - передаем сообщение на обработку роутеру/функции/хандлеру указанному для данного сообщения в пункте 1.
    3. сам роутер/функция/хандлер это некий програмный код, ориентированный на обработку сообщений определенного типа. При этом типов сообщений может быть несколько, например ожидание ответа на различные вопросы и предложения могут обрабатываться разными роутерами/функциями/хандлерами. Сам же хандлер обрабатывая сообщения может по необходимости желать следующее:
    - проверять, является ли данный ответ от пользователя действительным ответом на заданный вопрос/предложение
    - если является то выковыривать из ответа пользователя нужные данные
    - сохранять полученную информацию в БД для дальнейшего использования в контексте данного пользователя.

    Ну и https://vk.com/dev/messages - API для работы с сообщениями (все методы)

    А далее то что вам нужно
    messages.getLongPollHistory - Возвращает обновления в личных сообщениях пользователя.
    messages.markAsRead - Помечает сообщения как прочитанные.
  • В чем ошибка мат формулы?

    lastuniverse
    @lastuniverse
    ko1es
    var result = Math.abs( (a - b) / Math.floor( (a + b) / 2)  ) + "%";
    alert(result);
  • Расшифровать текст?

    lastuniverse
    @lastuniverse
    day I n|ucj,hh |vqakuc-
    2634175|2634175|2634175
    
    1234567|1234567|1234567
    Idy na |.......|.......
  • Как правильно посчитать кол-во символов в переменной?

    lastuniverse
    @lastuniverse
    Savelac, не существует символов абзацев, есть следующие символы считающиеся пробельными:
    пробел
    табуляция
    перевод строки
    возврат каретки

    при этом последние 2 зависят от операционной системы. Вам какие из этих символов не считать? Если последние 2, то нужно ли считать пробелы, стоящие прямо перед ними или прямо после них?

    А пока могу дать лишь такой вариант
    var str = `tes
    
    ttt`;
    
    var str1 = str.replace(/[\n\r]+/g,''); // удаляем все пробельные символы (переход на новую строку и возврат каретки)
    
    console.log(str.length);
    console.log(str1.length);