Задать вопрос
  • Возможна ли утечка webrtc через android-приложения?

    @rPman
    Webrtc с оговорками работает в webview но это не важно

    Если у приложения есть доступ к интернету, то оно сможет запросить ip адрес на интерфейсе
    Ответ написан
  • Замена long polling для отслеживания изменений в бд?

    @rPman
    Какого фига вы рекомендуете человеку удалять гланды через задницу. Какой вебсокет в mysql вы что? Какие тригеры.

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

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

    Когда клиент дает цену товару, бакэнд смотрит, какие клиенты его покупают и шлет им сообщение. Возможно придется держать в памяти массив - какой клиент в базе = клиент вебсокет, но с вероятностью 99.(9)% это уже сделано (как минимум имя отображать и авторизация)
    Ответ написан
    Комментировать
  • Как спроектировать интерфейс в котором пользователь сможет строить длинные логические операции?

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

    По поводу кучи switch или if, они будут по одному case на каждый тип операции, разве их много?
    Ответ написан
    Комментировать
  • Как откатить рекомендованные настройки для приложения?

    @rPman
    Универсально - удалить профиль пользователя windows (создать нового пользователя, добавить его в группу администраторов, выйти из текущего, зайти под новым, очистить профиль руками, удалив (лучше переименовать каталог чтобы свои документы потом вернуть) файлы или в свойствах системы.
    Ответ написан
    Комментировать
  • Как выбирать версии для установки Tensorflow, Keras, scikit-learn и др.?

    @rPman
    https://www.tensorflow.org/install
    там же все красиво написано
    Ответ написан
    Комментировать
  • Хватит ли данного ноутбука для комфортной веб разработки?

    @rPman
    Подумай, точно нужен именно ноутбук?
    Потому что ноутбук это не про производительность, - это про мобильность.

    С точки зрения производительности - процессор норм, ssd тоже хорошо, а оперативку можно докупить и потом (перепроверь кстати, иногда производители 'ставят палки' специально)

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

    @rPman
    На сколько мне известно, grub не шифруется, suse как я понимаю, просто ставит на него пароль, его так же можно самому добавить на ubuntu

    По уму, при использовании UEFI и SecureBoot к запуску допускается только подписанный grub, а значит можно добавить свои ключи в биос, удалить все остальные и подписать grub своим ключом, в этом случае никто не сможет ничего запустить, сменить биос и прочее... только превратить в кирпич железо.

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

    @rPman
    Код это текст, т.е. вся программа это набор текстовых файлов и каких то ресурсов которые программа использует (например конфигурационный файл), плюс документация.

    Исторически сложилось что с питон программой кладут setup.py который описывает ваше приложение, зависимости (список пакетов которые необходимы, имя как в pip install, используется https://pypi.org/) и прочее. некоторые ide позволяют его создавать с помощью интерфейса.

    Часто для удобства зависимости прописывают не в виде констант в setup.py а в файле requirements.txt который он загружает.

    А еще можно собрать установочный пакет, инструкции разнятся в зависимости от операционной системы, а так же бинарник (для windows обычно так делают).
    Ответ написан
  • Как решить проблему копирования архива?

    @rPman
    Проверь память на глюки на обоих машинах, как на источнике так и на получателе, простым memtest штатным виндовым но лучше взять linux-овый
    Ответ написан
    1 комментарий
  • Виртуальный принтер, как настоящий, средство?

    @rPman
    Ставите любой драйвер для печати в файл, например pdf от foxit reader или novapdf или еще 100500 вариантов, (с офисом идет какой то обработчик в их формат картинок), в свойствах печати убираете диалог сохранения файла, указав каталог, вот вам полноценный принтер с точки зрения системы, расшариваете его по сети и пользуетесь
    Ответ написан
    1 комментарий
  • 5 запросов для совершения одного действия это плохо?

    @rPman
    Если речь о 'высоконагруженном' сервисе, то лучше все же собрать запрос в один, тем более с помощью к примеру union можно это сделать не добавив накладных расходов

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

    @rPman
    Чтобы найти повторяющиеся значения, необходимо собрать их список, создаете объект, в ключи которого записываете ваши [0].
    Затем своим простым циклом собираете новый массив, в который добавляете все значения, присутствующие в этом индекс-объекте.
    Ответ написан
    Комментировать
  • Как устранить сбои NVIDIA драйвера в Windows 10?

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

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

    @rPman
    https://instagram-engineering.com/open-sourcing-a-...
    We did not want to build a new storage engine from scratch, so we decided to build the new storage engine on top of RocksDB.
    Ответ написан
    Комментировать
  • Программа калькулятор, которая заменит excel. Можете ли подсказать готовый api?

    @rPman
    Если нужен сервис то если исключить excell и pdf то удобный вид у google forms и их облачным табличным процессором (да там полноценный офис в облаке запилили), какой то экспорт в pdf там уже есть, или собираете его своим кодом.

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

    @rPman
    в process.env.PORT случайно не определен порт отличный от 5000?
    так же попробуй прописать универсальный адрес прослушивания в app.listen(port,'0.0.0.0',()=>...)
    вместо localhost пропиши 127.0.0.1
    а тут я недопонял вопрос

    axios.post("localhost:5000/api/user/add", { ...values });
    localhost же, это не адрес твоей машины а локальный адрес где запущен код... пиши свой домашний ip, настраивай роутер на перенаправление внешних для него запросов внутрь локальной домашней сети и помни про российских провайдеров, которые создают случайные проблемы для поднятия серверов локально (например порт 8080 может не работать а к примеру 81 будет)
    Ответ написан
  • Почему виртуальная машина байт-кода работает почти так же быстр, как программа машинного кода?

    @rPman
    Есть такая вещь как jit компиляция, когда ваша логика собирается в нативный бинарный код прямо по ходу исполнения, даже виртуальные машины этим пользуются, позволяет короткие блоки кода оптимизировать до 100% производительности, а накладные расходы на компиляцию в соседнем потоке.

    К примеру говорят что llvm ExecutionEngine JIT может работать даже быстрее собранного в нативный код бинарника (наверное особенности оптимизаций, которые легче сделать в jit)
    Ответ написан
    Комментировать
  • Как узнать какие были изменения после установки программы linux?

    @rPman
    Делаешь два бакапа (например снапшоты) - до изменений и после изменений, затем сравниваешь их с помощью обычного diff. Для уменьшения головной боли обновляешь ОС в бакапах, сделав простой chroot внутрь каждого по очереди.

    Имя пакета по имени файла узнаешь с помощью apt-file или наоборот dpkg -L имя_пакета

    Все остальные варианты не надежны и неполноценны, так как используют текстовые логи, которые соджержат не всю информацию и могут быть подправлены/очищены. Например /var/log/apt/history.log содержит информацию об устанавливаемых пакетах
    Ответ написан
  • Как лучше генерировать уникальный числовой номер?

    @rPman
    В подавляющем большинстве случаев в качестве уникального идентификатора можно взять время в милли/наномилли/микро/наносекундах System.currentTimeMillis() или System.nanoTime(). Можно объединить это время с идентификатором потока (чтобы исключить коллизии при использовании многопоточности) или даже идентификатором сервера если используется несколько серверов (кстати в этом случае даже не обязательно синхронизировать время на машинах).

    p.s. сиквенсы есть и в postgres, так же ничто не мешает их реализовать на основе записей в таблице, так же практически все базы без сиквенсов поддерживают autoincrement, соответственно реализуете сиквенс на их основе, удаляя меньшее значение после получения нового.
    Ответ написан