Задать вопрос
  • Что производительнее: .each или ... (перебор всех элементов)?

    @rPman
    в идеальном мире, использование .forEach() позволит в будущем распараллеливать в несколько потоков эти вызовы с меньшим набором проблем чем попытка делать то же самое с циклом for(), особенно если этот цикл на основе i=0;i<.length;i++ (от этих циклов бегите как от огня, просто не привыкайте)

    но наш мир не идеален, к тому же, если я не ошибаюсь, .forEach не позволяет делать красивый continue и тем более break... вам придется в коде forEach делать лишние блоки if
    Ответ написан
  • Как можно запретить скачивание или просмотр видео с сервера постороним?

    @rPman
    Что бы вы не делали, в конечном счете вору будет достаточно делать запись с экрана, в котором запущен браузер с вашим видео.

    Максимум вы можете усложнить жизнь вору, но ваши усилия будут как минимум дороже... так что думайте, стоит ли овчинка выделки.

    На текущий момент вашу задачу пытаются решить DRM технологии, и они очень плохо дружат с веб (обычно вынуждают пользователя ставить приложения и плагины, и пользователям это не нравится), обычно решения гуляют вокруг нестандартных кодеков и приложений, контролирующих проигрывание видео и копирование данных (зачатки есть даже в аппаратных, том же hdmi, правда его взломали уже давно).
    Ответ написан
  • В какой формат конвертировать видео?

    @rPman
    У меня к вам совет - не экономьте место, бонус в виде 10%-30% ничтожен, а в половину и меньше - это заметное понижение качества (исключения - глюки снимающего оборудования или неверные настройки в нем, типа матрица 1мпиксел а записывали 4к видео, но эти ситуации решайте персонально для файлов именно этого источника).

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

    @rPman
    Моя практика показывает что в конце концов пользователям нужны обе возможности, как повторная генерация отчета (на основе текущих данных, которые пользователь изменил, даже если это изменения 'задним числом', поверьте, в конце концов вам придется такое делать, если это корпоративное приложение), так и загрузка ранее сгенерированного отчета, потому что у пользователя на компе бардак и он не знает куда его сохранил а нужно еще вчера распечатать...

    Поэтому, храните документ на сервере, настоятельно рекомендую хранить в файлах, настоятельно рекомендую имена файлов делать на основе идентификаторов, и раскидывать по подкаталогам (100500 файлов в одном каталоге = плохо), а настоящее имя файла подставлять пользователю во время загрузки (иначе пробелы и нестандартные unicode символы вас и вашего администратора доканают).

    Дайте пользователю возможность сгенирировать новый документ и посмотреть список предыдущих сгенерированных, а администратору возможность удалить документ, в идеале полуавтоматические инструменты по пакетному удалению (например по окончанию отчетного периода чистить все сохранения за этот период кроме последнего), но помните про бакапы.
    Ответ написан
    1 комментарий
  • OpenVZ или XEN?

    @rPman
    обычно xen/kvm виртуалки дороже openvz,
    и одна из причин почему, потому что на openvz оверселить проще, потому что на openvz возможны конфигурации, когда вам реально доступно меньше оперативной памяти чем заявлено по тарифу...

    НО openvz быстрее, потому что не используется виртуализация (а это +10%-30% к производительности вычислений, всего что занимает процессор), потому что оперативная память экономится (считанные десятки мегабайт) за счет того что системные процессы общие для всех виртуалок на хосте.

    xen/kvm это почти полноценная машина, любые операционки (в разумных пределах, так как виртуализация кушает ресурсы), любые версии ядер, ваши собственные капризы, вплоть до gentoo... иногда это бонус.

    и для параноиков, помним, на xen/kvm вы сможете настроить шифрование раздела с вводом пароля/указания ключевого файла, при перезагрузке в ssh сессии, и администраторам/хостерам будет заметно дороже (но не невозможно) получить к вашим данным доступ.
    Ответ написан
    Комментировать
  • Как заставить Windows открывать приложение от имени администратора?

    @rPman
    Есть баг, ярлык на консольные приложения, exe (или старые .com, и у меня был пару раз баг с .bat файлом), при нажатии на нем правую кнопку мыши, будет открыто меню без пункта 'Запустить под администратором', в этом случае создайте ярлык, запускающий этот ярлык либо вызывайте меню для самого исполняемого файла.

    Лучше пересоздайте ярлык (кажется этот баг появляется если ярлык был создан в старой версии операционной системы типа win95, win2k или может winxp sp1)

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

    @rPman
    Когда то достаточно давно мне надоело бодаться с разработчиками сайтов, которые борятся с теми кто пытается получить к их данным автоматически (парсеры, сканеры, эмуляторы кликов), я просто перешел на полноценные браузеры внутри моего же приложения (c# или mono компонент WebBrowser использует firefox или ie в зависимости от платформы, на java это javafx WebEngine, я работал с обоими), к загруженной странице в котором я имею абсолютный доступ.

    Можно делать скрины страницы сайта с размерами на порядок больше чем это вообще возможно в классическом браузере (помню скринил гуглмапс картинкой в 30к х 30к пикселов), доступ к элементам страницы удобными getElementById или getElementsByTagName, или по желанию запустить свой javascript на странице, который будет уже работать на странице как ее собственный скрипт,.. итоговое приложение никто не помешает делать например консольным, я запускал mono приложение на полбаксовой VPS-ке, там используется основанный на firefox компонент, очень экономный по ресурсам.
    Ответ написан
  • Как вставить текст в input страницы загруженной в webView?

    @rPman
    не с android но на java, javafx.scene.web.WebEngine (как я понимаю он же и на android используется)

    берете документ webEngine.getDocument() к нему можнео делать запросы вида getElementById или getElementsByTagName, в общем почти все те же методы что доступны в javascript (querySelector напрямую недоступен), в результате вы получите доступ к элементам типа org.w3c.dom.html.HTMLImageElement / HTMLInputElement и т.п. у которых будут методы установки значений value или просто доступ к атрибутам по имени.

    Эмуляция кликов доступна так же напрямую из java но настоятельно рекомендую все что должно вызывать методы внутри браузера на javascript делать вызовом webEngine.executeScript, а если до элемента сложно достучаться по его идентификатору (например у него нет ни имени ни идентификатора) но вы смогли получить его объект в java, вы можете передать его обратно в javascript вот так:
    final static string GET_NODE_TEXT = "unique_node_name";
    ...
    // после загрузки страницы
    htmlWnd = (DOMWindowImpl)((DocumentView)htmlDoc).getDefaultView();
    ...
    // пример вызова submit формы, элемент которой у нас в node
    htmlWnd.setMember(GET_NODE_TEXT, node);
    browser.executeScript("(function(){var x=window."+GET_NODE_TEXT+";x.form.submit();})()");
    Ответ написан
  • Для чего в Си ввели синтаксис указателя на массив?

    @rPman
    Для начала вопрос зачем в язык ввели понятие массив, а не остались с указателями - потому что типизация это добро. Т.е. на этапе компиляции можно будет понять, првильные ли переменные были переданы в функцию/метод, а так же можно узнать какой именно метод нужно использовать (методы с одинаковыми именами и разными типами параметров, плюс сюда в копилку темплейты С++)

    Соответственно чтобы не передавать весь массив в качестве копии в методы, завели понятие ссылка (она не только к массивам определена, но и к любым объектам)
    Ответ написан
  • Как произвести очистку заголовочного файла C/C++?

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

    Могу предположить что в итоге вам нужен файл с парами 'имя макроса' - значение, я решал это в два этапа, сначала получение списка необходимых дефайнов (в моем случае это решалось в полуавтоматическом режиме, работая с текстовыми файлами в редакторе + регулярные выражения и т.п.), а затем на основе списка этих строк я генерировал cpp код, который выглядел как print ("name =" + name + "\n"); для каждого дефайна, затем полученный код компилировался и запускался - в итоге он выводил мне в нужном мне формате список значений дефайнов.
    Ответ написан
    Комментировать
  • Выбор платежной системы для сайта с возможностью ввода и вывода денег. Какая лучше?

    @rPman
    Украина? licpay (кажется дочка приватбанка), до того как Россия наехала на Украину (или точнее Украина решила выйти из протектората России, а там по накатанной пошло), это был лучший вариант по платежам со вводом/выводом и красивыми комиссиями, сейчас хз.

    Напрямую с картами visa/mastercard вы работать не сможете (читай это дорого по первоначальным вложениям), вам нужен посредник по любому, а уж он будет брать комиссию с оборота и создавать 100500 проблем, прикрываясь фин-регуляторами.

    Единственный на текущий момент финансовый инструмент, дешевый для внедрения - это bitcoin, но пока он еще далек от пользователей,..
    p.s. интересным вариантом может оказаться выбор посредника, работающего с bitcoin, тот же bitpay например, он будет выступать шлюзом-конвертором между деньгами и bitcoin, причем с любой стороны, как клиентов так и вашей.
    Ответ написан
    Комментировать
  • Считать с консоли/файла миллион int 'тов c разумными затратами по памяти и скорости Python?

    @rPman
    python очень медленный язык (виртуальная машина), со всем что не реализовано в виде готовой нативной библиотеки с обвязкой

    если затык в нативном парсере input stream, попробуйте сами читать файл как бинарный поток с помощью BinaryStream.readByte, и парсить числа (радуйтесь что у вас целые), просто вычитая '0' из кода символа и проверяя на пробел и знак '-'... лишнюю проверку на ошибочные данные тоже можно добавить.
    Ответ написан
    Комментировать
  • Можно ли отправить данные с сервера клиенту на определённый url?

    @rPman
    websocket именно для этого и создавалось

    а до этого использовались отложенные longpool http запросы с паузой (сервер держит открытым соединение с клиентом, который делает запрос типа 'есть ли чо для меня', до тех пор пока не потребуется отправить ему сообщение, и так в цикле)
    Ответ написан
    Комментировать
  • Сравнение документов Word. Как реализовать?

    @rPman
    если работает только в word и это не разовая работа, то делать все средствами самого офиса, закодив логику на VB
    Ответ написан
    2 комментария
  • Где лучше обрабатывать форму?

    @rPman
    - петька, приборы:
    - десять!
    - что десять?
    - что приборы?

    p.s. для красоты и облегчения поддержки кода в будущем, максимально разносите друг от друга все что можно, ваш код, состоящий из одного метода зае... поддерживать другие.
    по мне так все что касается интерфейса должно быть исключительно на стороне клиента, все что касается данных и логики - на сервере, так что javascript, ajax/websocket
    Ответ написан
    Комментировать
  • Как классифицировать текст с помощью нейронной сети?

    @rPman
    Сам по себе текст в чистом виде на вход нейронных сетей не подходит, вам нужны критерии, количество которых не меняется от теста к тесту и значение которых нормализовано (находится в пределах, обычно делают 0..1 или даже -1.. +1), критерии по значениям (тупо перечисления enum) могут быть как один критерий с фиксированными значениями (плохой вариант, подходит для критериев которые можно сравнить) так и может быть векторами, значения которых 0 и один из элементов 1. К итогам работы нейросети те же требования (с перечислениями это обычно вектор вероятностей)

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

    Это если велосипед изобретать. по существующим решениям подсказать не могу, пока еще сам этим не занимался.
    Ответ написан
    Комментировать
  • Сколько места в памяти занимает "null" и "undefined"?

    @rPman
    оба объекта внутри - ссылки (фактически 4 или 8 байт в зависимости от архитектуры), но undefined в массивах может совсем не занимать места, если соответствующий элемент не был проинициализирован или был удален delete
    stackoverflow.com/questions/6499352/does-null-occu...
    Ответ написан
    Комментировать
  • Как откатываться к самому первому коммиту?

    @rPman
    а в файл лог сохранить религия не позволяет?

    по сути вопроса, перенаправь вывод в tail и укажи ключ -n N, в результате получишь последние N комитов

    git log --pretty=oneline | tail -n 1
    Ответ написан
    Комментировать
  • Можно ли защитить KeePass (менеджер паролей) от KeeFarce (вирус основанный на DLL инъекции)?

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

    обфусицировать можно не только имена методов но и структуры данных, добавив в них свои поля, изменить типы имеющихся и т.п.

    извините, но защита через сокрытие тут единственный метод защиты.

    и в конце концов, при наличии администраторских прав, можно просто сэмулировать нажатие кнопок, вызвав меню экспорта базы в csv, мелькнувшее окно мало кто заметит.
    Ответ написан
  • WIFI мост на 70+км?

    @rPman
    Наиболее безопасно, с точки зрения регуляторов - оптика
    само собой, прямая видимость, высоки мачты и большие деньги на оборудование в 50мбит на 50-100км.
    Ответ написан
    Комментировать