Задать вопрос
  • Не запускается virtualbox?

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

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

    @rPman
    В вашем случае лучшее что можно сделать, заменить троицу материнку/процессор/память.

    Бюджет в 10к очень связывает руки. Присмотритесь к itx и мини-atx материнским платам с интегрированным процессором, только берите процессор не старее пары лет, лучше J4105 - четыре ядра или J4005 - два ядра но быстрее в сингле (1150 single thread cpubench rating). Стоят они порядка 7 т.р., на оставшиеся деньги закупаете оперативной памяти ddr4, возможно сначала 4gb, потом подкопите и докупите еще. Современный процессор, современная видео (само собой интегрированная) и абсолютно бесшумный (40ват в пике потребления)

    Все остальные варианты дороже. Можно собрать на базе прошлой технологии amd phenom 6x или 4x и ddr3 оперативки (при должном старании можно найти материнку с поддержкой ddr2/ddr3) но это реальный шаг назад.
    Ответ написан
    Комментировать
  • Как писать в окне другой программы с помощью Python?

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

    Если у вас windows, то у вас есть шансы что вы сможете это сделать относительно просто (с другими операционными системами все гораздо сложнее), но искать ответ вам нужно с низов

    ищите ваше окно
    https://docs.microsoft.com/en-us/windows/desktop/a...
    определяете его положение
    https://docs.microsoft.com/en-us/windows/desktop/a...
    заранее создаете свое окно
    https://docs.microsoft.com/en-us/windows/desktop/a...
    указав в стилях что вам не нужны ни бордюры ни заголовки и что оно модальное, поверх других окон
    и перемещаете его в нужное место на экране
    https://docs.microsoft.com/en-us/windows/desktop/a...

    содержимое окна рисуете в колбеке ON_PAINT
    https://docs.microsoft.com/ru-ru/windows/desktop/w...

    Не сомневаюсь, для python написаны соответствующие врапперы.

    Кстати рисовать и двигать окно не обязательно низкоуровневыми функциями, можно найти какой-нибудь готовый фреймворк для интерфейса под python, тот же qt
    Ответ написан
    Комментировать
  • Мнгновенные оповещения ajax Long Polling && php?

    @rPman
    Как реализовать серверную часть проверки бд, на новые оповещения для пользователя?
    не все базы данных предоставляют такой функционал, например postgres позволяет, используя sql выражения LISTEN и NOTIFY, и соответствующий метод на клиенте pg:
    php.net/manual/ru/function.pg-get-notify.php

    К сожалению php не event oriented язык програмирования (только сокеты позволяют красиво все делать асинхронно), то либо вы вызываете pgsqlGetNotify с 1 или 0.1 секундным интервалом в цикле, проверяя наличие notify либо слушаете свой сокет асинхронно в своем приложении, а в соседнем в цикле с 10-30 секундным ожиданием ждете событие и отправляете ответ в этот сокет.

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

    чтобы отправить ответ на сторону веб-клиента, вы вынуждены будете либо использовать long pooling (устаревшая технология, с кучей проблем) либо посмотреть примеры по работе с websocket и научиться наконец красивому event-based программированию, посмотрите примеры сервера websocket на php (на стороне клиента все еще проще)
    socketo.me/docs/hello-world
    В этом случае ваше php приложение становится полноценным веб-сервером (вебсокет например), который все еще не рекомендуют выпускать в интернет напрямую, и устанавливают между интернетом и им классивческий ngnix или apache.

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

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

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

    @rPman
    рекурсивно пробегаете по всем элементам на странице (начиная с document, первый потомок node.firstChild перебираете nextSibiling), положение ноды на экране берете getBoundingClientRect() и если width или height равны нулю то это невидимый объект на экране.

    Пример, вот этот модуль инжектится на страницу, перебирает все объекты и оценивает их видимость и даже отслеживает изменения по таймеру (идеологически неправильно, логичнее на хендлеры повесить колбек и отслеживать их), работает даже на слабых машинах с огромными страницами приемлемое время (сотни миллисекунд на десяток тысяч нод).
    Ответ написан
    Комментировать
  • Можно ли на js сделать динамическое добавление html?

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

    include это частный случай шаблонизатора. Сами шаблонизаторы очень простые, фактически можно без каких либо библиотек просто использовать $('#replace_element_id').innerHTML='html text string' а саму html брать тут же из документа, разместив его например в скрытых div или как рекомендуют <script type="text/html">....</script> (будьте осторожны со скриптами внутри и валидностью верстки)

    Эта стратегия называется single page app когда абсолютно все необходимое размещено в одной странице, статике, которая загружается однократно и кешируется на клиентской стороне. Страницы веб приложения и их параметры разделяются с помощью anchor (index.html#page/arguments/etc), в этом случае будет корректна работать история браузера, разбираются они javascript простым анализом url. Никаких библиотек для этого не требуется, это стандартная фича в любом браузере.

    Если же вам нужны нестатичные данные, они загружаются с вашего веб-сервера в виде json файлов (такие файлы легко разобрать в javascript с помощью JSON.parse(text) с помощью ajax (или XMLHttpRequest если вы не хотите подключать библиотеки)
    Ответ написан
    Комментировать
  • Почему после установки Linux не включается ноутбук?

    @rPman
    Скорее всего вы переразметили диск и этим убили uefi радел с загрузчиком.
    Не уверен по поводу kali но для ubuntu у dell есть штатная инструкция

    Если что, найдите в биосе настройки способа загрузки и выберите legacy или что то там (там скорее всего стоит uefi), если это вам не доступно, значит вам скорее всего этого производитель не позволил а значит вам необходимо искать возможнось использовать uefi загрузчик для linux, это подписанные образы, так что сами вы такой собрать не сможете.

    Это общие слова, возможно конкретно в вашем случае будут еще варианты.
    Ответ написан
  • Wine зависает при отправке в com порт, как выяснить причину?

    @rPman
    Вопрос, а в windows то работает? Потому что проблемы может создавать usb->com контроллер. Изучите вашу материнскую плату, иногда com и lpt на ней распаяны но разъемы только на внешнюю планку а не позади.

    Пальцем в небо, но попробуйте в настройках соединения вашего приложения уменьшить скорость соединения и проверить что используется хотя бы стандартное.
    Standard baud rates include 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000 and 256000 bits per second.

    ftdi-usb-sio.sourceforge.net написано что нестандартные поддерживаются но работа не гарантируется, кстати там же можете debug включить, потрейсить что передается и прочее, вдруг мысли какие появятся.

    p.s. просто смените usb порт, у меня есть mitx материнка, один usb порт которой глючит с мышкой (и ничем более, просто она ездит рывками в нем), например порты на корпусе могут быть менее 'надежными' чем на материнской плате, поменяйте провод-удленнитель между usb и контроллером, если есть и т.п.
    Ответ написан
    Комментировать
  • Один системник - два игрока. Как?

    @rPman
    Решение уже давно есть для windows 7..10 (и кажется даже для xp) - aster от ibik.ru
    Вы подключаете к одному компьютеру несколько мониторов, клавиатур и мышей, настраиваете каждому пользователя системы и сидите за одним компьютером как за несколькими независимыми. hdmi и usb позволяют разнести пользователей до 10 метров (по середине компьютер).

    Когда то давно на windows7 очень успешно им пользовался для 2 человек, сначала с 1 видеокартой потом с двумя, игры шли без проблем... вообще проблем не было, одни плюсы.

    Не очень секурно, вставленная флешка доступна сразу всем. Интернет тоже общий но я точно помню что то aster для этого предлагал. Со звуком да.. если у вас нет мониторов со своими колонками (hdmi) то нужны дополнительные звуковые карты.

    Возможно win10 добавит проблем,... изучите их форум.

    Альтернатив для windows пока не существует, либо они сложны, не эффективны или просто дороги.
    Ответ написан
    2 комментария
  • Как пробросить SSDP (dlna) трафик через tap openvpnvpn в далюнюю сеть?

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

    Если клиент тоже сервер в другой сети (вам нужно объединить сети) то на нем так же tap устройство объединяйте в бридж (на windows мост). Если клиент просто клиент, ничего менять не надо, он будет иметь полный доступ к локальной сети сервера.

    Я не эксперт, самим конфигом openvpn у меня полностью схему такую сделать не получилось, поэтому делал внешними скриптами.

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

    @rPman
    Приложения можно ставить и без root, в локальную директорию, чуть более сложно но реально, примерно так
    https://askubuntu.com/questions/339/how-can-i-inst...
    Ставьте imagemagic и пользуйтесь решением выше

    Приложение на php gd, меняющее разрешение картинки занимает 4 строчки плюс управление
    php.net/manual/ru/function.imagecopyresized.php
    Ответ написан
    Комментировать
  • Unreal engine pixel streaming - какие минусы и какие нужны сервера?

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

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

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

    Бонус - нулевые требования к пользовательскому железу, кроме интернета, который кстати уже вполне себе на высоте. Но это гадания на кофейной гуще, нужно смотреть на практике, как именно сделан unreal poxel streaming.

    При использовании обычного RDP (win10) я подключался очень слабым планшетником к запущенной игре с использованием слабого wifi (5-10мбит) и получал приемлимый результат. Еще лучше выглядело все с использованием teamviewer или anydesk, за за счет адаптивной подстройки качества видеотрансляции к каналу (в т.ч. экспериментировал с расстояниями в десятки километров, правда провайдер проводной, 100мбит), игра была неожиданно отзывчивой.

    Идет глобальный передел рынка облачной игровой дестрибуции, onlive, playkey, sony playstation now,... получается unreal предлагает разработчикам заранее реализовать этот сервис прямо в вашей игре.
    Ответ написан
  • Игра змейка C#(Windows Forms), какую технологию выбрать для взаимодействия игроков по сети?

    @rPman
    Подключение обычные tcp сокеты (в udp пока не лезте, но с ними тоже реально).

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

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

    На клиенте перерисовываете все это каждый раз как получаете данные от сервера.

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

    Недостаток - у всех пользователей будет небольшой лаг на действия, в зависимости от пингов.

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

    @rPman
    Возможно создать html5+javascript игру виде одного файла, закодировать ее в data url с base64 кодировкой, сделать из полученной строки qr-код

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

    пример игр 1кб тут https://js1k.com/
    Ответ написан
    1 комментарий
  • Какие есть виды высокоскоростного Интернета для стрима видео на максимальной скорости?

    @rPman
    Все зависит ОТ МЕСТА и количества видеокамер.

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

    Почти наверняка вы не сможете легально оптимизировать свои затраты, проводя проводку самостоятельно (оптика по воздуху или по канализации) или использовать радиоканал (легально на это нужна лицензия), за исключением оптической связи по воздуху (лазерная связь), они никому не мешают поэтому их можно ставить по своему усмотрению, но этот вариант скорее всего имеет смысл, если вы где то в поле камеры хотите установить, а провайдер будет выкатывать шестизначный счет за каждую точку, так как пара устройств и их установка/обслуживание обходится в копеечку.
    Ответ написан
    2 комментария
  • Законно ли хранить историю данных с сайта?

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

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

    Так что смело собирайте, анализируйте, делитесь этими данными и прочее... и будьте готовы что автоматические парсеры придут к вам ;)
    Ответ написан
    Комментировать
  • Несколько вопросов по компьютерным сетям: как заставить видеть друг друга две windows машины? Как именно инкапуслируется реализация OSI?

    @rPman
    Так как у вас нет контроллера домена и других сервисов (например WINS сервер) то значит у вас используется режим Рабочая группа, список компьютеров сети машины с windows собирают самостоятельно, т.е. они будут появляться/исчезать в списке не сразу. Имя рабочей группы для компьютеров должно совпадать, настраивается в свойства Компьютер -> Дополнительные параметры системы -> закладка Имя компьютера -> кнопка Изменить.

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

    Компьютеры должны быть подключены в одну локальную сеть, и у них должны быть IP адреса из одной и той же сети, например 192.168.0.1 - 192.168.0.255 при использовании маски 255.255.255.0. Обычно, при использовании роутера все адреса выдаются автоматически (там есть dhcp сервер), кстати windows 7+ могут использовать ipv6 адреса,..

    p.s. совет, на windows 7 не выбирайте тип сети 'Домашнаяя', выбирайте 'Сеть предприятия'.

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

    Вам нет никакой необходимости создавать свой ip протокол. Я не знаю, кто вам сказал "если протоколы изменятся, не нужно менять всю систему", но возможно имелись в виду протоколы и форматы общения приложений, например в windows машины передают файлы по протоколу smb а в сетях linux администраторы могут выбрать nfs (поддержка которого в windows прекращена, да и ранее была ограниченной с багами, полагаю намеренно), эти протоколы не совместимы, грубо говоря это то как именно файлы будут передаваться по сети.

    wifi и проводной ethernet - имеют различия на канальном уровне, это уровень ниже ip-протоколов, и не имеет никакой разницы для них и выше, данные могут передаваться как угодно, хоть на голубях (в rfc как я помню даже этот вариант был описан), хотя приложения могут учитывать особенности радио канала (скорость и пинги, например).
    Ответ написан
    Комментировать
  • Как дать доступ к устройствам в клиентской сети VPN со стороны сервера?

    @rPman
    на клиенте vpn, к чьей сети нужно получить доступ, нужно настроить nat (на сеть 192.168.2.xxx) а на vpn сервере необходимо добавить роут 10.0.0.x на этого клиента.
    Ответ написан
    Комментировать
  • Какие есть бесплатные аналоги АСТЕР?

    @rPman
    В свое время очень активно искал альтернативы
    Адекватных - нет.

    Любые решения либо ограничивают вас в выборе софта (т.е. придется выбрать linux), либо вам придется заплатить скоростью и поддержкой железа (виртуальные машины, даже с пробросом видеокарт внутрь, накладные расходы на CPU будут заметными в тех же играх, понижением скорости до 30%-50%, не говоря о том что не каждую видеокарту удастся таким образом использовать, и дешевые материнки/процессоры так же могут не иметь поддержки), либо строить дорогую систему с удаленным доступом (дешевые тонкие терминалы и rdp)

    Дешевле купить АСТЕР.
    Ответ написан