Задать вопрос
  • Как парсить shadow dom на python?

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

    Самое простое, создать на любимом языке программирования для которого есть библиотеки вебкит приложение 'веб браузер' (например на .net это добавить контрол WebBrowser на форму и прописать адрес, а там на событие onload или на любой ваш выбор инжектите одной строчкой ваш javascript код, на java я делал такое приложение в строк 20, половина из которых - поддержка изменения размера окна).

    Можно конечно воспользоваться всякими силениум или другими инструментами автоматического тестирования, но это переусложнение, я пробовал и то и другое.
    Ответ написан
    Комментировать
  • Можно ли отправить банк. карту с балансом по почте (Украина)?

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

    Имеет ли это смысл, какие тут риски и прочее уже более правильные вопросы.

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

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

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

    p.s. я бы предварительно перед тем как нести диск в сервис, загрузился бы в linux систему, воспользовавшись любым live usb образом, так как linux в отличии от windows предоставляет больше контроля по тому как много нужно делать лишних обращений к диску, точнее в его поставке идут соответствующие утилиты.
    Ответ написан
    Комментировать
  • Как реализовать tet-a-tet чат между пользователями в телеграмм боте?

    @rPman
    Попробуйте https://github.com/LonamiWebs/Telethon и отпишитесь о результате если не сложно.
    С помощью библиотеки можно автоматизировать действия как обычный пользователь, создавать группы и получать инвайт ссылку на нее.
    Ответ написан
    Комментировать
  • Почему CUDA работает на Intel?

    @rPman
    Возможно в режиме эмуляции на CPU?

    p.s. https://developer.nvidia.com/cuda/wsl
    Ответ написан
    Комментировать
  • Как с помощью html страницы открытой в компе отправить запрос на активный порт localhost?

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

    p.s. Таким образом вы можете отсылать GET запросы по локальной сети клиента, сканируя к примеру ее на наличие машин и сервисов, а это получение очень важной информации изнутри сети.

    Например я уже трижды, в разное время, видел https://127.0.0.1:7070 запрос при заходе в личный кабинет сбербанк онлайн (на этом порту anydesk висит) это происходит редко, без специальной подготовки отследить сложно (я вообще заметил его потому что у меня в браузере добавлен самописный сертификат для локалхоста, и теперь фаерфокс предупреждает любые попытки открыть шифрованный канал с его помощью)
    Ответ написан
    Комментировать
  • Как реализовать расширение, которое будет автоматически постить текст в дискуссии Steam?

    @rPman
    Устанавливаете расширение greasemonkey/tempermonkey или любой другой, позволяющий инжектить (запускать по условию) ваш скрипт на страницу, для отладки вы вообще можете в консоли браузера скрипт вставлять без расширений.

    Затем скрипт ищет на странице поля ввода и кнопки примерно так $('#inputbox_id') и получаете/устанавливаете его содержимое .value или .text (для textbox), на кнопку нажимаете .click(), т.е. вся возня со скриптом у вас должна быть вокруг того чтобы не делать эти действия сразу друг за другом (это могут проверять для защиты от автоматизации в общем случае) а с интервалом и контроль над различными ошибками (например код формы изменился).

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

    Чтобы узнать какие css селекторы у нужных вам полей, в браузере достаточно нажать правую кнопку мыши (иногда с shift) и выбрать inspect element, в открывшемся инструменте разработчика можно правой кнопкой мыши выбирать нужные элементы страницы и в контекстном меню выбирать copy/css selector или что вам угодно.

    Управлять своим скриптом со стороны лучше по http/websocket на ваш сервер (вам придется поднимать https версию если вебсайт ее тоже использует)
    Ответ написан
    Комментировать
  • Как создать два независимых вывода аудио из-под разных источников в Windows 10?

    @rPman
    В вашем случае можно воспользоваться настройками Media Player Classic, который позволяет определить через какие колонки какой канал выводить, понижая количество колонок, например стерео выводить на пару колонок квадро.

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

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

    Панель управления - звук - Настроить (как я понял потом вы можете это переключить обратно на стерео либо ).

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

    @rPman
    делать периодические запросы к WMI
    https://docs.microsoft.com/en-us/windows/win32/wmi...
    смотреть performance data provider

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

    @rPman
    Простейшие комбинаторные алгоритмы.

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

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

    Если путей нет бегунок удаляется.

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

    p.s. можно по хитрому реализовать хранение пути в бегунке, чтобы оптимизировать затраты на n*логарифм от размера лабиринта, вместо квадрата.
    Ответ написан
    1 комментарий
  • Как раздать WiFi на 50 смартфонов?

    @rPman
    Никак, либо быстрая скорость и дорого и сложно, либо медленно но бюджетно.

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

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

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

    @rPman
    Как таковой миграции именно с proxmox нет да и не думаю что актуальна такая примитивная операция как пункт меню в интерфейсе.
    https://pve.proxmox.com/wiki/Migration_of_servers_...
    Ответ написан
    Комментировать
  • Насколько хорошо/оптимально использовать хранимую процедуру для полинга?

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

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

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

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

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

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

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

    p.s. разделение задач по разным таблицам в зависимости от длины интервала никак на производительность не повлияют, только усложнят алгоритм
    Ответ написан
  • Можно ли использовать mysql в качестве широковещания в laravel?

    @rPman
    Можно ли микроволновкой гвозди забивать?

    mysql не предназначена для передачи сообщений - это инструмент хранения и анализа данных.

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

    p.s. у разных баз данных есть штатный механизм рассылки нотификаций клиентам, но именно у mysql его нет, реализуется плагинами, правда, внезапно, там будут те же сокеты :)
    Ответ написан
    Комментировать
  • Как делая программу на java (groovy) передать параметр в plsql не строкой, а байтовым массивом?

    @rPman
    tr1ck1, вам сообщение об ошибке, на русском языке, совсем ничего не подсказывает? даже нисколечки?
    PLS-00172: строковый литерал слишком длинный


    Наверное вы пытаетесь вставить в одну единственную запись типа varchar, string куда запихали 11к строк, оно тупо не помещается наверное?

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

    @rPman
    Вопрос содержит две подзадачи:
    1. подключение между двумя подсетями, в зависимости от того как 'далеко' они находятся, задача будет усложняться
    2. виртуальная машина, с точки зрения настроек сети - просто еще одна машина, в зависимости от настроек виртуальной машины, либо подключенная напрямую к сети через виртуальных свитч, либо через виртуальный роутер со своей виртуальной подсетью (виртуальная машина такой делает, включая в нем NAT), это значит в зависимости от ответа на первый вопрос, будет меняться ответ на этот второй.

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

    @rPman
    Писать серверную часть можно и на php, и да, даже если нужна работа с сокетами

    Например реалтайм браузерную игру (не пошаговую, когда используется http rest архитектура) можно написать с использованием websocket (например реализация Ratchet).

    Если хотите хоть какой то надежности от 'взлома' (от появления читеров) то ваша игра должна идти на сервере, а клиент - только отображение, т.е. это например классический игровой цикл запускаете на сервере, клиенты подключаются и передают свои действия и забирают изменения состояния мира. Если у вас реалтайм и не хотите лагов, то клиент должен как то сам додумывать как должна идти игра в следующие сотню миллисекунд, т.е. возможно на клиенте будет так же запущен тот же игровой цикл, с оглядкой на то что верить можно только серверу, т.е. например возможны откаты состояния мира если клиент додумал его неправильно (во время лага сервер думает что пуля все еще летит, когда как на сервере врезалась в цель, которая удачно изменила свое направление под пулю перед началом сетевого лага).
    Ответ написан
    6 комментариев
  • Нужно что-то вроде бесплатного VPS/VDS под Linux, где взять?

    @rPman
    amazon aws free tier 1год бесплатно
    Ответ написан
    Комментировать