Задать вопрос
  • Страх, что программист отберет сайт?

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

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

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

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

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

    @rPman
    В массиве key лежат индексы выходящие за пределы массива letters, а точнее при j=0 в данной строке обращаетесь к keys[1] со значением 5, когда как в letters максимум 4.
    Ответ написан
    Комментировать
  • Что делать если пишет No bootable device при замене hdd на ssd на ноутбуке?

    @rPman
    Ищите 'миграция OS при смене диска на ssd', ваш производитель ssd с вероятностью 99% дал вам инструкции для этого, ссылку на бесплатную утилиту и даже халявный ключик на какой-нибудь acronis true home.
    Ответ написан
    Комментировать
  • Какая платежная система принимает биткойн?

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

    p.s. когда вы говорите платежная система принимающая биткоин - вы имеете в виду прием от клиентов биткоин а лично вы получаете фиатные валюты на счет? Потому что если к примеру вы готовы принимать и хранить у себя именно биткоин - то никаких посредников для этого не требуется.
    Ответ написан
    Комментировать
  • Если в ЖД есть Винда, она запустится на любом компе?

    @rPman
    Нет, не совсем, главная проблема переноса windows между железом - драйвера, а точнее контроллер жесткого диска а по факту материнская плата. Например при переносе intel <-> amd (у них максимально разнится железо на материнских платах) по умолчанию будет bsod, но если перед переносом удалить несовместимые драйвера и вернуть стандартные (и скорее всего переключить ahci в bios на legacy ide) то все будет ок. Еще проблемы с usb могут возникнуть, совершенно нормально при смене железа получить неработающие клавиатуру и мышку (знаменитое окошко - 'чтобы сменить драйвер для usb нажмите ок' и неработающие usb).

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

    p.s. еще лицензия может слететь и если у вас какой-нибудь oem то понадобится новая, там очень подробно поназапрещали смену железа.

    Есть версия windows собранная на основе winpe по факту это минимально стандартный набор драйверов, при котором ос запустится везде, на ее основе livecd делают, правда тут речи о лицензионной чистоте не идет.
    Ответ написан
    Комментировать
  • Как получить каждое URL, по которому переходит человек, не мешая загрузке страницы в браузере?

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

    @rPman
    Если файлы в локальной сети доступны (например через windows sharing \\имя_компьютера\имя шары\каталог ) то вы можете просто прописать каталог в настройках веб сервера, он будет роздан как обычная статика.
    Ответ написан
  • Как изменить права на папку на диске NTFS?

    @rPman
    можно смотреть и править
    https://jp-andre.pagesperso-orange.fr/ntfssecaudit.html
    Ответ написан
    Комментировать
  • Максимально производительный процессор на AM2. Какой?

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

    Главный апгрейдом такой машины, я считаю, будет не дешевый ssd.
    Ответ написан
  • Можно ли запустить Linux ТОЛЬКО на видеокарте?

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

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

    И 'нет' - код не может быть запущен только на gpu, нужен контроль со стороны центрального процессора, для взаимодействия и управления.
    Ответ написан
    Комментировать
  • Как подключить Android через прокси в сети wi-fi?

    @rPman
    Никак, это разные сетевые уровни.
    Для нешифрованного трафика можно поднять прозрачную прокси (когда роутер распознает http запросы и перенаправляет их на прокси сервер), правда аппаратные роутеры обычно это делать не умеют но в linux есть штатные инструменты для этого. Смысла сейчас в этом нет никакого, так как интернет становится более чем полностью шифрованным.

    зы если cdn сервисы хотят проксировать данные локально, поднимают свои кеширующие сервера в нужных зонах, разруливая запросы через dns с централизованным управлением, недоступным клиентам.

    зы2 проверьте, если ли у вас в настройках смартфона автонастройка прокси, тогда локальный dhcp на роутере мог бы раздавать настройки вашего прокси, но по умолчанию это везде отключено.
    Ответ написан
    4 комментария
  • VPN в системе и браузере. Будет ли работать?

    @rPman
    Да
    VPN в opera скорее не является таковым, считайте это прокси, к примеру будет ли опера расшифровывать пользовательский трафик проходящий через их сервера - вопрос открыт.

    И да, в вашей конфигурации опера будет выходить в интернет через системный vpn, таким образом не будет никакого способа для веб сервисов выявить ваш ip адрес (например через webrtc при отсутствии системного vpn ваш ip адрес можно получить, если сервис поднимет фиктивный клиент и подключится к вам по webrtc, даже если используется vpn от opera)
    Ответ написан
    1 комментарий
  • Хостер 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 - преффикс или суффикс
    Ответ написан