Задать вопрос
  • На каком языке программирования написаны сайты в TOR’e?

    @rPman
    Сайт в tor это обычный сайт, ничем не отличающийся от обычного интернета, запускается с использованием тех же программ типа ngnix/apache/php/... да там только http (так как шифрование на канальном уровне и некому выпустить сертификат для onion)

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

    Если что, в тор есть полноценные зеркала сайтов, даже facebook - facebookcorewwwi.onion со всеми скриптами и аналитикой.
    Ответ написан
    1 комментарий
  • Какие существуют визуальные обработчики данных?

    @rPman
    Не нужно делать интерфейс только потому что 'все так делают'.

    Исходить нужно исключительно из задачи! Делать нужно ровно столько сколько нужно и не больше не меньше.

    p.s. Когда то я работал активно с данными, конечно экселя могло бы быть достаточно но он неудобный и медленный
    Обычно нужен для конвертера следующий UI (писался давно, не очень использовался и затерялся):
    * Настройка источника данных (у вас это кнопка/поле - место откуда брать excel источник, плюс к примеру имя/номер листа)
    Показать начальное содержимое листа при выборе, минимальную статистику (количество строк, колонок и т.п.)
    * Список необходимых колонок с указанием, какие колонки чем являются
    При выборе колонки источника показывать список вариантов его значений (не обязательно все, первые десятки, но бегло дает представление о значении поля)
    * Фильтры (пропустить пустые строки, убрать дубликаты и прочее прочее) - не перебарщивай, очень редко задачи повторяются, все объять невозможно, можно предложить поле для ввода кода (использовать в eval), если источник база данных - можно запилить какой то минимальный конструктор sql (без ui, хотя список таблиц и название колонок в базе уже круто, плюс поиск по подстроке по данным во всех таблицах - удобная вещь когда ковыряешь чужую базу, лучше это делать в специализированных программах, помню пользовался dbforge studio community version)
    * настройка назначения вывода данных (имя файла)
    * настройка типа данных в файле вывода (выбор из списка захардкоженных в программу, если актуально само собой)

    Еще момент - интерфейс должен быть исключительно интерфейсом к консольной программе, генерируя для нее строку/файлы настроек, чтобы можно было их использовать к примеру для автоматических регулярных запусков без запуска интерфейса (я генерирую в таких случаях батник с запуском программы с нужными ключами)
    Ответ написан
    1 комментарий
  • Как заблокировать диспетчер задач с помощью питона?

    @rPman
    В цикле непрерывно мониторь список процессов (с помощью wmi) и убивай его (os.kill)

    как получить список процессов
    import wmi
    c = wmi.WMI ()
    
    for process in c.Win32_Process ():
      print process.ProcessId, process.Name


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

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

    т.е. нужно сразу понимать что отловить они все не способны и часто дают ложное срабатывание

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

    @rPman
    https://bitcoinj.org/
    куча методов по работе с биткоин, в т.ч. с приватными ключами, генерация валидация, подписывание строк текста на основе приватного ключа вашего адреса и т.п.

    например чтобы подписать или проверить подпись сообщения нужно использовать метод org.bitcoinj.core.ECKey.signMessage(String message) создав предварительно ключ ECKey
    Ответ написан
    1 комментарий
  • Смена ника steam через python?

    @rPman
    https://developer.valvesoftware.com/wiki/Command_L...
    попробуй steam.exe -login логин и ввести пароль через пайпы
    там вроде мощная система скриптов, как минимум можно ставить игру, обновлять ее подгружать подписки и прочее (напрямую я не пользовался, но пользовался программой которая этим пользовалась, правда там логин был anonymous)
    Ответ написан
  • Как выбрать рандомную запись с бд на основе веса записи?

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

    100 запросов в секунду - зачем такой нетипичной задачей грузить базу данных?

    Задайся вопросом, сколько у тебя записей? миллионы? миллиарды? может эффективнее будет держать список id на бакэнде массивом и выбирать от туда?
    * Запили миниатюрный сервис с сокетами, в который бакэнд при удалении или добавлении записи будет присылать id, а при перезапуске будет загружать весь список id... памяти это занимать будет порядка 16х от количества записей умножить на логарифм (зависит от того какие списки поддерживает бакэнд, нужно хранить упорядочный num -> id, причем это просто массива, при добавлении id добавляется в конец, а при удалении - на место удаленного ставится элемент с конца, к сожалению тогда для быстрого удаления нужен map: id->num).
    * Списков таких должно быть несколько - свой по каждому значению веса (считается что вес - целочисленный и вариантов значений значительно меньше общего количества записей), соответственно каждый id попадает в свой список.
    * Каждый раз, как идет запрос на случайный id, считаешь два случайных числа:
    - первое на интервале [0..максимальное значение веса) - выбираешь какой вес сейчас сработает
    это нужно делать с учетом вероятности, которое соответствует каждому весу, т.е. для каждого веса свой интервал значений случайного числа, для 1 это будет попадание между [0..1), для 2 - [1..3), для 3 - [3..6), для 4 - [6..10),.. макс значение интервала равно сумма арифметической прогрессии 1....N где N максимальное значение веса. Левое значение интервала для n считать по формуле суммы арифметической прогрессии а правое + значение веса для него.
    - второе, [0..максимальное значение num в соответствующем списке)
    второе число даст искомый номер в массиве, а значит и id.
    * Для значений весов которые не используются (пустые списки id) нужно будет исключать такое число из списка доступных значений весов, делать новый список с меньшим количеством и давать соответствие значений их этого нового списка с меньшим количеством весов и общим, чтобы такие неиспользуемые веса не попадались.
    К примеру из весов 1..10 используются только 1,4 и 10, тогда делаем получаем новый список из 3 элементов, но в формуле расчета интервала для вычисления правой границы использовать значение веса, т.е.:
    [0..1), [1,5),[5..15) - общий интервал [0..15)

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

    Трудоемкость алгоритма О(1) с очень маленькой константой, но требует память O(n)= n*log(n) с процессором O(n) log(n) на любые модификации.

    p.s. Данный алгоритм можно реализовать и в базе данных, на тригерах, так как держать в оперативной памяти списки не требуется, причем базы могут быть отдельные от реальной (очень неудобно и повышенная нагрузка на процессор, лучше использовать key->value базы данных только как хранилище списков id)
    Ответ написан
    Комментировать
  • Как модифицировать этап первого входа в Windows?

    @rPman
    https://docs.microsoft.com/en-us/windows-hardware/...
    там пишут что можно свой
    Pinning desktop applications to start srceen


    А еще есть редактор любой windows iso - ntlite как я понял там вообще что угодно можно запилить с системой, причем любого типа (только все равно многое вернется на круги своя после первого же крупного обновления, удаленные системные приложения вернутся, службы будут включены и т.п.)

    upd: https://docs.microsoft.com/en-us/windows-hardware/...
    Ответ написан
  • Как загрузить изображение на бесплатный хостинг с API?

    @rPman
    Первый же результат в гугле, на javascript для imgbb, пишут что работает

    там же такой простой api что не так то?

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

    @rPman
    Что не ясно то? у тебя имя url encoded, его нужно раскодировать, из bat языка в winows это будет мягко говоря не просто, когда как на нормальном языке программирования вполне по силам.

    Не нужно извращаться, бери тот же php и пользуйся им, отличный скриптовой язык, самый быстрый, самый простой, самый логичный.
    $url=urldecode($argv[1])

    Ок, не нравится php, бери c#/js#/vb# компилятор к которому встроен в windows
    C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\csc.exe

    p.s. Зачем предыдущий вопрос удалил?
    Ответ написан
    2 комментария
  • Проблема с verifier.exe и BSOD?

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

    @rPman
    Тригерами
    если готов что за консистентность данных база данных не будет отвечать, используй что угодно
    Ответ написан
    Комментировать
  • Реплика или iscsi?

    @rPman
    Есть две разные задачи - защита данных и защита непрерывности процесса, т.е. чтобы ваше приложение продолжало работать.

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

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

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

    В зависимости от того, как много вы готовы потратить на готовые решения или реализацию своих, выбираете кластерную файловую систему (из бесплатных DRBD, как вы понимаете Linux) либо же настраиваете зеркалирование (software raid over iscsi например) и вручную перезапускаете центральный узел (потребует перезапуск и машин, запускаемых с них, с оговорками). В любом случае узел NAS не должен совмещаться с software node, на которых собственно происходит запуск приложений (с оговорками сами диски там могут быть, раздаваемые софтварным iscsi или nbd или aoe...), правило разделяй и властвуй тут действует.

    У виртуальных машин есть High Availability (kvm/xen/vmware/...), позволяет в короткие сроки перемещать виртуальную машину в пределах одного кластера, когда как машины в нем могут географически находиться в разных местах (машина приостанавливается suspend, память копируется, восстаналивается).
    ... и даже это делать налету, синхронизируя оперативную память между master и slave копиями машин (тогда перемещение между нодами в кластере будет секунды занимать) - само собой это накладывает высокие требования к сети. Это дорогие фишки взрослых виртуалок, у vmware

    p.s. к сожалению, выбери два из трех - быстро надежно дешево
    Ответ написан
    Комментировать
  • Как перемножить элементы массива?

    @rPman
    array_params_values[0].values*array_params_values[1].values*array_params_values[2].values
    И это оправдано, потому что в массиве известно заранее сколько будет элементов. Если это станет не так (не будет элемента) - вылезет ошибка, да можно дополнительно проверить количество.

    p.s. отвратительно выбран способ хранения параметров и имена.
    Не надо хранить так, так как чтобы добраться до значения по имени нужно будет перебирать весь массив.
    Пользуйся key-value объектами в java, их можно менять на ходу, работать удобно, быстро (можно new Map() использовать оно еще быстрее)
    Ответ написан
  • Как создать проект с++ на основе готового кода?

    @rPman
    Это известная беда кроссплатформенности или кроссфреймворков, в мире существует столько полусовместимых и там столько нюансов, и кстати это беда не только у c++ но и с другими языками, только реже.

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

    У этого проекта вики такая инструкция написана и даже видео выложили
    Ответ написан
    Комментировать
  • Как с помощью ИИ считать количество предметов на фото?

    @rPman
    Вроде есть у opencv готовые - template matching

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

    Еще, если речь о зрении, то можно пользоваться информацией о предыдущих кадрах видеопотока, к примеру летящую птичку от земли можно отделить сравнением скорости (сдвиг изображения в разных частях кадра будет разным)
    Ответ написан
    Комментировать
  • Как создать изображение с помощью imagecreatefrompng() и вывести его тут же в html img tag?

    @rPman
    Генерировать изображение и тут же выдавать его байты в вывод с помощью того же readfile, можно даже не сохранять файл (в imagepng вместо файла указать null), если не критично его кеширование на сервере.

    Т.е. переноси отдачу генерацию картинки в GET запрос и ссылку на него и указываешь в фейсбук, а там где управляешь процессом (где сейчас у post запрос создает файл) только сохраняешь полученные данные, тут же можно запросить и закешировать данные с удаленного сервера, я вижу там по http исходная картинка грузится, это плохая практика делать такое внутри get запросов.
    Ответ написан
  • 800 тысяч товаров в Woocommerce, как жить со всем этим?

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

    Что значит хостер недовольный? бесплатный что ли как SaaS без какого либо доступа к самому сервису?

    Арендуй vps/dedicated и переноси базу туда, админь сами, будет больше возможностей по оптимизации - тюнить базу данных, настраивать кеши и прочее.

    3Гб база это ни о чем, vps-ки с ssd и малым количеством памяти начинаются от бакса в месяц(само собой они слабые и скорее всего вам нехватит). Советую прежде чем арендовать сервер попробовать поднять копию у себя дома, протестировать, оценить требования и скорость и уже после выбирать нужного размера машину в облаке.
    Ответ написан
    7 комментариев
  • Какой подход для вытаскивания данных из MySQL в PHP наиболее корректный для минимизации нагрузки и скорости?

    @rPman
    Воспользоваться нужно готовыми инструментами mysql spartial, кажется форматы там популярные, найти готовые либы для работы с ними из браузера будет не сложно.

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

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

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