Задать вопрос
  • Как найти невидимый процесс, потребляющий много памяти?

    @rPman
    Кажется htop не умеет группировать процессы, попробуйте atop
    В консольном интерфейсе нажмите последовательно m а затем p (до или после нажмите a чтобы вкл/выкл отображение всех процессов а не только значимых по потреблению ресурсов)
    Это включит режим сортировки по потреблению памяти а затем сгруппирует записи по одинаковому процессу (слева будет колонка с количеством) так вы найдете процесс, который запущен в нескольких копиях и по одной потребляет мало но суммарно много.

    Что показывает free -g или free -m (g - гигабайты, m - мегабайты)? возможно у вас половина памяти отведена под кеш и буфера операционной системы, это нормально, она будет освобождена автоматически.
    Ответ написан
  • Что нужно для записи с камер на удаленный компьютер?

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

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

    Для просмотра видео просто подключаетесь с помощью любого плеера (тот же vlc или mplayer или ffplay) по rtsp по второму линку к камере. Настройте себе прямо в проводнике линки либо простейшую html страничку (гуглите проигрывание rtsp в браузере, почти наверняка это будет flash плеер но с управлением по javascript), где ссылка - это будет картинка с тех же камер, обычно камеры отдают текущую картинку в виде jpeg по спец ссылке. В простом виде задача не выглядит сложной (если только смотреть), но если вам нужно еще и управление (повортные камеры, вкл/выкл led освещение, ночное видение, зум и т.п.) то тогда придется заморочиться и изучать api этих камер (отреверсить их html страничку, скорее всего там простые post запросы). Я бы рекомендовал на своей управляющей страничке сделать ссылки на админку каждой камеры, т.е. ничего програмировать не придется, тупо указать список ссылок на html страничке и все.

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

    p.s. у дешевых камер (<=$15) с которыми я игрался дома обычно проблемы с отдачей кодированного потока mpeg, например подвисания камеры. С mjpeg проблем не было но от них идет очень тяжелый по трафику поток (десяток мегабит если HD) и ни один сетевой канал наружу десяток таких камер не протолкнет, поэтому почти наверняка у вас останется только вариант перекодирование видео на вашем сервере. Какое подобрать железо для того чтобы перекодировать поток с десятка камер, отдельный разговор, если найдете свободный софт, способный это делать используя GPU, все вам скажут спасибо.

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

    @rPman
    GpGpu для программиста на текущий момент выглядит так - на неком языке (все поддерживают opencl, а nvidia в частности свою cuda, но онро идеологически похоже), очень похожем на c++, пишется код, с одним callback методом, который будет вызываться последовательно и параллельно (это решит драйвер видеокарты, вы этим не почти управляете) для элементов вашего массива, который по факту - текстура в памяти (на низком уровне вы тут не заморачиваетесь) и сохраняет результат в другой.

    Передача данных между обычным обычной оперативной памятью и видеокартой, объективно самая дорогая операция, и обычно стараются свести такие копирования к минимуму (т.е. на старте и под конец, для получения результата). Причем на столько, что к примеру получение содержимого экрана в оперативную память и копирование ее обратно в формате, понятному вашему cuda приложению будет занимать 99% времени если не 1099% (вы же хотите fullhd/4k 60 fps? а скорости может тупо не хватить), не говоря уже о самом преобразовании форматов.

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

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

    p.s. nvidia уже вроде несколько лет назад пиарилась на том что разработала такие алгоритмы для эффективного стриминга экрана приложений и игр по сети с минимальной задержкой, в т.ч. в железе.
    https://developer.nvidia.com/nvidia-video-codec-sdk
    Ответ написан
    Комментировать
  • Генерация аудио файла с помощью сообщений?

    @rPman
    Из бесплатных (и наверное полулегальных) можно воспользоваться обычным android + google apps, там возможна установка гугловского синтезатора речи, для кучи языков, и по каждому можно подгрузить языковые данные для работы offline. Попробуйте все это в эмуляторе.

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

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

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

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

    Мало того, получив расшифрованный трафик - это пол дела, его нужно еще логически разобрать, вы же хотите понимать что именно делает приложение. Эта задача по затратам ресурсов и подавно высокая, особенно если приложение closed source.

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

    p.s. если вы наивный молодой разработчик, к которому пришел провайдер/госзаказчик/посредник с предложением написать такую систему, для создания великого 'чебурнета', постарайтесь объяснить бесполезность и бессмысленность этой деятельности, в купе с большими затратами ресурсов.

    У разработчиков приложений и зачастую у пользователей, способов защититься от подобной деятельности гораздо больше чем у провайдера, и они дешевле.
    Ответ написан
    Комментировать
  • Что делать, если поставил не те драйвера на видеокарту(OpenSuse Leap 15)?

    @rPman
    отключите запуск X
    https://askubuntu.com/questions/16371/how-do-i-dis...
    для запуска однократно в текстомов режиме нужно нажать в grub загрузчике e и отредактировать строку запуска linux (по ссылке есть скрин) добавив туда text в опции
    Ответ написан
    Комментировать
  • В чем может быть проблема невозможности установки или обновления приложений через Google Маркет?

    @rPman
    Возможно ваш провайдер устроил mitm атаку на гугловскую инфраструктуру лично для вас? в РФ это теперь норма.

    Что происходит, если попытаться зайти с телефона на https://play.google.com
    Ответ написан
  • Хочу попробовать асинхронность PHP 7 с помощью REACTPHP, нужен совет?

    @rPman
    Асинхронность может помочь, если вы внутри foreach делаете запрос куда-то наружу и ждете... ускорение в данном случае получите только за счет того что для следующего запроса ждать результат предыдущего не будете, т.е. у вас в цикле должно будет запуститься асинхронные запуски для каждого элемента, а после списка (скорее всего по завершению работы), начнут вызываться коллбеки (т.е. соответствующие методы промис) с полученными результатами.
    Ответ написан
  • Странные минутные зависания ПК, мышь работает, где проблема?

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

    Грешу на материнку, почти наверняка контроллер, потому что смена диска (SSD, разных производителей) ситуацию не исправило, но на этой машине терпит так как происходит ОЧЕНЬ РЕДКО, разы в месяц.

    Еще причина, диск в windows работает в IDE режиме, потому что там так и не смог завести ACHI (нет прямых драйверов, есть гайды, которые советуют ставить сторонние драйвера не работают, я сильно и не заморачивался).
    Ответ написан
    1 комментарий
  • Печать документов в браузере Chrome без Google Cloud Print?

    @rPman
    Объясните, о чем идет речь? Что такое WinPrint?

    Чтобы открыть стандартную форму печати странице в браузере, необходимо просто вызвать print(), никаких облачных принтеров, штатная форма хрома, на выбор печать в локальный pdf и выбор списка локальных принтеров операционной системы, то же самое выводится при нажатии ctrl+p

    p.s. без диалога

    ну и еще, никакими способами, из javascript на странице вы не сможете получить доступ к реальным принтерам, вам нужна прослойка в виде плагина или расширения, это вопрос безопасности, иначе злоумышленники так смогут ддосить организации, выводя на их принтеры всякий мусор
    Ответ написан
    Комментировать
  • Почему возникает ошибка при подключении БД Access в VBA?

    @rPman
    в системе нет необходимых компонент: Microsoft Access Database Engine 2010 Redistributable
    p.s. тыц
    Ответ написан
    Комментировать
  • Какой протокол(технология) существует для remote mobile control?

    @rPman
    Вам так критично работать с удаленным управлением на низком уровне или лучше взять готовые инструменты? Что то типа crome/firefox desktop sharing (гуглите, названия разные, стандарт пришел с десктопа).

    Чуть более низкий уровень и достаточно старый протокол - vnc, библиотеки к нему есть наверное даже под чайники.

    Еще есть штатные инструменты разработчика, с помощью adb.
    Ответ написан
    Комментировать
  • Апгрейд видеокарты)?

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

    Иначе только полная ее замена.
    На что заменять, вопрос на миллион, и ответ зависит от ваших задач, а точнее под какую архитектуру оптимизирован софт, обычно речь идет о выборе между amd/nvidia. Выбор, что критичнее - количество шейдерных процессоров или частота оперативной памяти (и ее количество, но это совсем уже узкие задачи), ответить точно смогут только тесты, а эмпирически к сожалению тут ничего не сделаешь.
    Ответ написан
    Комментировать
  • Как перестраховатся от кражи идеи для мобильного приложения?

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

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

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

    В итоге, чтобы восстановить вашу идею, разработчикам необходимо будет как то узнать друг о друге и договориться. то традиционно очень сложно. В идеальном случае для начала нужно вообще в принципе догадаться о такой необходимости.
    Ответ написан
    Комментировать
  • Как в C# Windows Form прочитать названия сепараций в PDF файле?

    @rPman
    В общем случае никак! pdf это считай картинка с опционально текстовой информацией.

    В вашем случае можно попробовать конвертировать pdf файл в картинки, вырезать из определенной области кусок (imagemagic) и отправить его на распознавание с помощью того же tesseract.
    Ответ написан
    Комментировать
  • Как ускорить работу Ubuntu в VmWare?

    @rPman
    Проверьте, возможно вы в настройках виртуальной машлины не включили опцию 2D и 3D ускорения. Да и для установки драйверов ускорителя на сколько я помню нужно специально запускать гостевую windows систему в safe mode.

    p.s. Недавно ставил winxp в virtualbox и для теста в vmware (esxi), не смог заставить работать их эмулированный видеоускоритель, но я точно помню несколько лет назад это работало очень быстро! Вполне возможно что это большие дяди (oracle) так нагадили, специально. Так везде сейчас происходит, к сожалению.

    upd. только что в win7 гостевой при использовании virtualbox установил как описал выше 3D ускорение, в браузере скролинг плавный, скринсейвер 3D буквы крутятся...
    Ответ написан
  • В чём проблема при установке Windows на жёсткий диск?

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

    p.s. есть ли в вашем биосе legacy boot? возможность загрузиться со внешнего устройства не имеющего раздела efi по старинке через mbr. Загрузочные диски установщика windows могут и legacy и efi. Так же вы можете сделать себе live usb ubuntu скачав ее с офф сайта или торент и запустить ее, почистить диск прямо в ноутбуке, проверить его на ошибки и прочее.
    Ответ написан
    Комментировать
  • В чем разница между указателями в си?

    @rPman
    Есть еще символ & который позволяет описывать переменные, доступ к которым синтаксически ничем не отличается от прямого доступа но по факту это ссылка:
    class MyClass
    {
    public int value;
    MyClass(int _value):value(_value){}
    }
    
    MyClass *tmp=new MyClass(10);
    MyClass &object=*tmp;
    object.value=20;
    delete(tmp);

    99% различий кроются в способах инициализации (и освобождении памяти), и в последние 10 лет в c++ наплодили столько изменений именно вокруг этого.

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

    p.s. используйте & для определения типов параметров передаваемых в функции, чтобы происходило не копирование а передача по ссылке, и при этом синтаксически вы бы работали с объектами напрямую.
    Ответ написан
    Комментировать
  • Как автоматизировать сборку зависимостей программы?

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

    Когда вы пишите
    целевой_файл:используемые файлы
      командная строка для сборки целевого файла
    вы фактически описываете процесс, когда make проверяет версии используемых файлов по цепочкам зависимостей автоматически и запускает соответствующие команды.

    Для каждой своей зависимости у вас можно написать bat-файл, который переходит в нужный каталог и пересобирает ее, затем копирует результат в каталог вашего проекта. Вы можете для каждого написать по паре строчек в вашем makefile указав в качестве используемых файлов вообще все файлы каждого проекта или лучше какой-нибудь один (например index файл из их git каталога) и все, при любом обновлении у вас будет происходить запуск сборки. Затем вы можете добавить этот makefile в ваш проект (либо вручную прописать его вызов) на сколько я помню в visual studio есть куча возможностей для этого.

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