Задать вопрос
  • Хостер vpn может читать данные которые отправляет сервер?

    @rPman
    Vpn сервер спокойно может (и делают) снифать трафик и логировать подключения своих клиентов. А если вы умудрились использовать https прокси в браузере (тот что не шифрует данные клиента), то vpn сервер а точнее прокси может снифать ваш шифрованный трафик (например в браузере включена автонастройка прокси).

    ВЛАДЕЛЕЦ железа, на котором поднят vpn сервер, если установивший vpn не будет выполнять необходимый минимум противодействия (не использовать ядерные виртуалки типа openvz/lxc/... а к примеру полная виртуализация kvn а лучше использовать bare metall, ставить только проверенный софт и ядра, шифровать разделы,..), может делать то же самое, так как спокойно может получить доступ к ключам вашего vpn.

    Если речь идет о логах подключений - то и без ключей все статистически вытаскивается! Подключение клиента к vpn видно провайдеру, через которого подключен сервер на котором крутится vpn, в этот же момент vpn делает подключение к целевой машине, к которой обратился клиент, по размеру пакета и таймингам видно кто куда подключился и в некоторых случаях можно делать предположение по каким страницам https шарится клиент, не нужно ничего расшифровывать.

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

    Единственный протокол, защищающий клиентов от подобного анализа - i2p, так как подмешивает мусорный трафик, т.е. поднимаете свой vpn сервер, i2p шлюз и подключаете клиент через i2p к vpn серверу. Какая при этом будет скорость можете сами догадаться.
    Ответ написан
    Комментировать
  • Как избежать множества AJAX запросов при написании приложения?

    @rPman
    Много мелких запросов к серверу?

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

    Второе - объединяйте запросы в один, так не совсем правильно но переделать ваш текущий код будет просто - можно подменить ваши запросы ajax на асинхронные к вашему методу, т.е. вместо $('selector').text($.get('data_url')) делайте вызов метода по завершению запроса что то типа
    my_async_get('data_url',function(result){$(selector).text(result);})
    а этот метод вместо исполнения запроса, должен собирать их в массив и по какому то условию (временной интервал или собрав некоторое их количество, или, к примеру, последний запрос в цепочке, всегда можно выделить такой для каждого сценария или даже создать искусственно) делать один запрос на сервер, который выглядит как просто список запросов, и возвращать он должен список ответов (есть практика каждый запрос снабжать уникальным идентификатором, чтобы идентифицировать им ответ по каждому).

    Еще вариант - он исходит из вопроса, чем вам не нравится множество отдельных ajax? если только из-за проблем в производительности, то подумафйте о смене протокола веб сервера, на http3 или к примеру websocket, у них на повторный запрос к вебсерверу не тратится лишнее время.

    Так же причиной тормозов может оказаться сам веб сервер, в устаревшей http rest архитектуре веб сервер на каждый запрос собирает кучу информации, которая может или нет понадобиться для ответа, и это сильно тормозит работу всего приложения, способы решения этой множество но в общем - это исключить повторный бесполезный сбор данных (к примеру если будете реализовывать websocket сервер, эта проблема решится сама собой).
    Ответ написан
  • Python requests отправка запросов через прокси при CPU 100%?

    @rPman
    Не уверен что проблема из-за высокой нагрузки на процессор, кстати чем это вы нагрузили что считанные 8 запросов ложат машину?

    Пример как можно спалиться, указываешь http прокси, а сайт тебя перенаправляет на https с помощью location или экзотически на ftp

    Там случайно парсер BeautifulSoup запросы xslt не выполняет? какой-нибудь document(url) грузит своими способами?
    Ответ написан
  • Как правильно делпоить на AWS?

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

    Самый простой пример возможной работы двух версий одновременно - это возможность обеспечить непрерывную работу во время обновления.

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

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

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

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

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

    @rPman
    если ключи числовые то обычный for($i=0;$i<размер;$i++) ...
    Ответ написан
    Комментировать
  • Что использовать для автоматизаций действий в браузере в параллельном или многопоточном режиме?

    @rPman
    c# а точнее .net в поставке имеет контрол WebBrowser, это полноценный браузер (раньше был интернет эксплорер, сейчас хз edge это или уже на webkit, если использовать mono то это будет firefox), с ним невероятно просто работать, хотя на практике вместо того чтобы ковыряться в DOM документа средствами .net лучше это делать внедрив javascript внутрь страницы.

    Выглядит работа примерно так, кидаете на форму контрол, на событие onload получаете доступ к документу webControl.document, дальше это уже браузерные dom методы. Совет, вместо добавления script на страницу лучше запускайте ее по таймеру .setInterval с нулевым интервалом, тогда скрипт будет запущен в контексте страницы а не какой то песочницу .net хотя последнее возможно подойдет для многопоточного доступа (осторожно контрол не предполагает многопоточность, но вы можете по ксперементировать, открыв несколько контролов и работая с ними из разных потоков, отпишитесь о результатах)

    Этот способ на порядок эффективнее силениум, так как отсутствует посредник, но все же ресурсы будут использоваться как на полноценный браузер (правда чуть меньше чем оригинальный)
    Ответ написан
    Комментировать
  • Почему выводит 0?

    @rPman
    потому что
    cout << NumNewline(digit);
    а в самой функции стоит
    return 0;
    Ответ написан
    Комментировать
  • Как решить вопрос с нехваткой модулей на сервере?

    @rPman
    официально - pip install имя_модуля, под пользователем будут складываться в его домашнюю папку, под root - в общую

    еще ряд модулей поставляются штатно в репах операционки, ищите пакеты в имени содержащие нужный вам модуль и py - преффикс или суффикс
    Ответ написан
  • Падает скорость HDD диска ( во время копирования ) как исправить?

    @rPman
    Помимо идеологических проблем, проводник windows очень неэффективно работает с диском (не спрашивайте почему, просто FAR-ом с опцией системного копирования операции почему то быстрее проходят), hdd и ntfs по определению не эффективно работает с мелкими файлами, слишком часто дергает головкой диска, под windows нет готовых файловых систем это решающих, но как минимум можно попробовать exfat, она как минимум попроще.

    p.s. приостановите работу антивируса на время копирования, так как при каждой записи файла оно (и это 2020 год! позор) заново сканирует файл.
    Ответ написан
    1 комментарий
  • Как вдвоём просмотреть одно видео с возможностью поставить на паузу и обсудить?

    @rPman
    Когда то достаточно давно в пределах локальной сети управлял двумя плеерами (один запускался ради звука, другой ради изображения - вот такой изврат был) mplayer с помощью его api (тогда это было что то типа отправки команд в пайп, я кидал одной командой локально и по ssh старт и паузу, правда чтобы нивелировать проблемы с рассинхронизацией из-за разной скорости машин, дополнительно отправлял seek на начало сразу после запуска на обеих машинах)ю

    Сейчас у того же VLC есть http api, есть куча утилит для remote control и прочее, к тому же не думаю что запустить два curl на разные машины в локальной сети или через ssh большая проблема.
    Ответ написан
    Комментировать
  • Какую винду поставить?

    @rPman
    Узкое место - hdd, десятка без ssd тормозит сильно, это не вопрос неумения настраивать, а в том что слишком много она ковыряется с диском да и вообще, слишком много недопрограммистов оставляют свои следы в этом поделии навечно.

    Для особо умных - задачка на засыпку, сделать так чтобы калькулятор (не обязательно штатный) запускался по горячим клавишам или даже по мультимедиа кнопке 'калькулятор' сразу же, а не думал порядка 1-3 секунды.

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

    p.s. выше предложили ставить linux, поверьте - ЭТО РЕШЕНИЕ!
    Ответ написан
  • Как сделать заставку перед запуском exe?

    @rPman
    Написать приложение выводящее только эту заставку, запускающее ваше приложение и ожидающее сообщение от него что оно запустилось, чтобы закрыть заставку.
    Ответ написан
  • Как парсить 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, но последние годы ее исключили из поставки, поэтому дальше уже ваши эксперименты.
    Ответ написан
    Комментировать