Ответы пользователя по тегу JavaScript
  • Как распознать картинку с камеры на javascript и найти её в базе?

    @rPman
    Потому что задача не такая простая как хотелось бы, да, перцептивное хеширование и opencl верное направление, но ваша проблема именно в том что вы работаете с камерой а не типличными условиям и готовыми картинками.

    Камера - это повороты и перспективные искажения, проблемы с неравномерной яркостью и мерцанием освещения, инертностью матрицы и глюки алгоритмов пост обработки в смартфонах.

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

    @rPman
    Никак, только пересозданием объекта
    Ответ написан
    Комментировать
  • Как найти одинаковые значения в двух массивах?

    @rPman
    Создаем на основе одного массива индекс (инвертируем ключи и значения), преобразуя массив в объект.
    А затем простым перебором элементов второго массива проверяем наличие по ключу в инвертированным.

    т.е. итоговая трудоемкость просто линейная (на самом деле там умноженное на логарифм но работа с ключами в javascript очень эффективна, на столько что этот логарифм вы заметите только на ОЧЕНЬ БОЛЬШИХ массивах, в крайнем случае можно использовать Map, он точно быстрый.
    Ответ написан
  • Как я могу получить историю google chrome из electron?

    @rPman
    Первая же ссылка в гугле на тот же stackoverflow, уж адаптировать код для nodejs будет не сложно?

    Коротко - история хранится в sqlite файле, есть правла риски что формат полей и таблиц будет меняться но не думаю что это фатально.
    Ответ написан
  • Как реализовать отношение многие ко многим в хранилище расширения браузера?

    @rPman
    key-value это обычно документ-ориентированный подход, т.е. когда вся необходимая информация хранится в виде объекта.

    В вашем случае это будет
    comment_1:{data:comment_data,tags:[tag_1,tag_2,tag_3]}

    справочники храните как отдельные объекты
    tag_1:tag_data

    И не заводите прослойку из id, это лишнее,.. точнее старайтесь чтобы идентификатором была сама строка (если она уникальная) тогда вам не придется городить целый уровень абстракций.

    Да, в документ-ориентированных базах сложнее контролировать целостность, самим надо заниматься индексами и прочее.. такова селяви
    Ответ написан
    2 комментария
  • Как имитировать действия пользователя с помощью Javascript?

    @rPman
    Плагин к браузеру greasemonkey/tampermonkey позволит дергать ваш javascript по условию открытия страниц по regexp с полными правами доступа (т.е. включая iframe). Есть нюанс по одновременно открытым вкладкам, так как вкладки не в фоне работают с меньшим приоритетом и скоростью (а некоторые веб-приложения сами отслеживают что не в фоне и отключают часть активности), это решается вообще своим браузером на базе готового контрола типа webkit или .net WebBrowser (для любой платформы такой есть, код браузера строчек десять получается).

    Кликать либо симулируя события либо дергая метод $('селектор').click(); Встречаются нюансы с работой тега select или поддержкой посимвольного ввода данных в умные input но решаемые.
    Ответ написан
    Комментировать
  • Можно ли запоминать варианты поля input в браузере без прямого сабмита формы?

    @rPman
    если на уровне браузера то плагинами, их миллион - formvault, form history, autofill и прочее, поиграйтесь с ключевыми словами и выбьирите тот что вам удобен
    Ответ написан
  • Как можно внедрить мой js код в страницу в браузере на этапе загрузки?

    @rPman
    Браузер на твоей машине (контролируемой тобою) - плагином, тьма их, популярный greasemonkey (или аналог tampermonkey если нужен и хром)

    Чужая машина - никак, только получив доступ к чужому бакэнду или скриптам, которые он подгружает (например рекламная площадка)
    Ответ написан
    Комментировать
  • Как получить текущее местоположение пользователя Telegram?

    @rPman
    никак, и надеюсь никогда такой возможности не будет
    Ответ написан
    Комментировать
  • Как с помощью js получить ссылку запроса?

    @rPman
    В общем случае - никак, если пользователь кликнул по iframe то вы ничего не сможете сделать, для страницы с чужим контентом - он черная лошадка.

    Так же вы не можете симулировать клики по содержимому чужого iframe (так как есть способ узнать, куда кликал пользователь, если разместить над iframe свой прозрачный блок, кстати с помощью прозрачного iframe которым двигают, заставляют пользователя кликать, эта проблема - известная дыра безопасности, которая позволяет заставить пользователя совершать какие то действия на своих страницах, кликая на сайте злоумышленника, например играя якобы в игру)

    Это вопрос безопасности, так как иначе вы могли бы открыть какой-нибудь facebook в iframe с автологином пользователя, читать приватный контент и симулировать там клики. Это недопустимо.

    Я имею в виду что вы не можете это делать в стандартном браузере, но если окружение контролируемое вами, то можно поставить какой-нибудь плагин, который даст вам такой доступ (например greasemonkey), но кажется вам это не подходит
    Ответ написан
  • Как записать перенос строки в txt файл?

    @rPman
    в dos а значит в windows, перенос строки состоит из двух символов \r\n, в unix/linux - из одного \n
    Ответ написан
    Комментировать
  • HTML5 Canvas - LineTo?

    @rPman
    https://api.jquery.com/mousemove/
    Properties such as .clientX, .offsetX, and .pageX are available, but support for them differs between browsers. Fortunately, jQuery normalizes the .pageX and .pageY properties so that they can be used in all browsers.


    вы бы хоть для теста вывели в лог что внутри evt
    Ответ написан
  • Насколько целесообразно использовать нейронную сеть для выбора объекта из коллекции таких же объектов по N параметров?

    @rPman
    Решение задач с помощью нейросети, это как в соседнюю булочную за хлебом летать на самолете через соседнюю страну и имеет смысл только если хлеб, который вы желаете приобрести, в вашей стране не производят.

    Да уже готовая нейросеть способна решать сложнейшие задачи очень эффективно и быстро, но проблема в самом процессе обучения сети - это требует невероятно большого количества вычислительных ресурсов. Использовать процессор (и уж тем более виртуальную машину той же javascript, которая в разы медленней) для этого не целесообразно, слишком долго будете искать решение. Поэтому при выборе инструментария (языка программирования и библиотеки) заранее сверяйтесь с совместимостью с вашим железом.

    То что реализация нейронных сетей существует для процессоров и интерпретируемых языков говорит только о том что это может быть оправдано чтобы вычислять значение готовой сети для решения задачи и возможно дообучить уже готовую сеть, если это потребует изменяющиеся условия.

    p.s. гугл например состряпал лично для себя тензорный процессор, который для задач именно обучения нейросетей, а точнее для использования в библиотеке tensorflow, работает на порядок быстрее (энергоэффективнее) чем видеокарта,.. т.е. логично обучаться заранее на тех библиотеках, чтобы в будущем минимизировать свои затраты. Правда гугл не собирается продавать свои мегажелезки на сторону, но позволяет использовать их в облаке (все еще за очень дорого, если сравнивать с себестоимостью, но все же дешевле чем использование GPU, лично это не проверял но слышал)
    Ответ написан
    Комментировать
  • Какие есть способы временного кэширования данных на клиенте?

    @rPman
    Зачем вам связь хранить на клиенте? пусть этим сервер заморачивается, у него больше возможностей для этого.
    1 запрос - 1 ответ, значит можно выдавать связанный идентификатор siteB при каждом запросе с siteA
    Ответ написан
  • Как через браузер отследить активность пользователя?

    @rPman
    Chrome Remote Desktop - расширение к браузеру, которое позволяет получить доступ к машине пользователя вне браузера, т.е. какой то api на это имеется, изучите его или код расширения, хотя бы сможете реализовать задуманное в виде плагина.

    Для firefox или safari стандарта на это вроде бы нет.

    p.s. но зачем так извращаться?
    Ответ написан
    2 комментария
  • Аналоги js в web?

    @rPman
    sun/oracle, adobe и позднее microsoft уже попытались втиснуть соответственно java applet, shockwave flash и silverlight, во что это вылилось посмотрите, до сих пор страдаем от остатков тормозного и гглавное дырявого флеша

    Позднее, кажется в google, предложили способ компиляции в нативный код NaCl и PNaCl (кажется на базе llvm) но все заглохло

    Сейчас весь мир смотрит на webassembly на базе ускоренного javascript. Взлетит - будем писать на любом языке програмирования, который будем компилировать еще на этапе разворачивания приложения, а исполняться оно будет уже в браузере,... все равно это будет виртуальная машина, правда технологии сейчас на столько крутые, что даже виртуальная машина работает на скорости сравнимой с нативным кодом (10%-30% потерь) и львиные потери производительности обычно не из-за кода а из-за кучи прослоек до периферии. Один HTML DOM чего стоит.
    Ответ написан
    Комментировать
  • Как в js отловить такой перенос текста?

    @rPman
    Ответ написан
    Комментировать
  • Как отследить закрытие PWA?

    @rPman
    Отследить прибитие приложения можно отдельным сервисом, работающим в фоне (внимание - батарейка), оно же может сообщить отдельным подключением об этом факте (простым http get запросом).
    Ответ написан
    Комментировать
  • Как можно выполнить отладку большого js скрипта без точек останова (PHPStorm)?

    @rPman
    Безотносительно того, какой язык или платформа используется, есть классический способ отладки приложений - логирование событий и данных.

    Т.е. вы должны покрыть свой код выводом отладочной информацией, в который как минимум должны включить вызовы методов и часть информации о передаваемых параметрах. Полноту и формат логируемой информации и место размещения выбирайте от того, как именно все это будете использовать, например одно время я использовал текстовый формат с машиночитаемым форматом хранения информации (каждая строка - json, определенный формат для указания времени, содержимого стека вызовов методов, аргументов и выделенных переменных) и для анализа логов писал небольшое приложение (в большинстве случаев достаточно взгляда на лог просто выводом в консоль и утилит tail и grep).

    На самом деле не обязательно покрывать отладочной информацией ВЕСЬ проект, это слишком раздувает файл логов, затрудняя его анализ и замедляя работу приложения. Обычно вы знаете, в каком месте кода у вас проблема, и именно эту часть покрываете отладочной информацией.

    Делайте общее место размещения лога, если у вас отладка многопользовательского приложения, само собой вы должны включать в лог идентификатор клиента, это сильно поможет разрешать ситуации по монопольному доступу к данным, например.

    p.s. свой колбек на вызов функции в javascript можно зарегистрировать так:
    (function() {
        var call = Function.prototype.call;
        Function.prototype.call = function() {
            console.log(this, arguments);
            return call.apply(this, arguments);
        };
    }());
    Ответ написан