Задать вопрос
  • Как отменить просроченную бесплатную подписку?

    @rPman
    для начала удали приложение, чтобы плата перестала сниматься

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

    @rPman
    запилить свою на основе autoit, это скриптовый язык с фреймворком и компилятором для автоматизации действий.

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

    если браузер создает системные контролы (inputbox, что маловероятно) то эти элементы можно будет отслеживать и получать их координаты, иначе только распознованием текста с экрана (вплоть буквально до getpixel)
    Ответ написан
    2 комментария
  • Как контролировать двух телеграм ботов одним Python процессом?

    @rPman
    Покопался в исходниках
    в них все что нужно подготовлено для нормальной асинхронщины, но собственно главный метод обработки не вывернут на изнанку, чтобы можно было сделать что то типа:
    bot1 = telebot.AsyncTeleBot(API_TOKEN1, threaded=False)
    bot2 = telebot.AsyncTeleBot(API_TOKEN2, threaded=False)
    ...
    loop = asyncio.get_event_loop()
    loop.create_task(bot1.pooling_step())
    loop.create_task(bot2.pooling_step())
    loop.run_forever()

    смотри код метода _process_polling, и создай свой pooling_step только в нем должно быть только что что в оригинальном внутри цикла while, что то типа
    if updates:
                        self.offset = updates[-1].update_id + 1
                        self._loop_create_task(self.process_new_updates(updates)) # Seperate task for processing updates
                    if interval: await asyncio.sleep(interval)

    непонятно почему создатели библиотеки это не сделали сами, возможно еще не успели или я не правильно понял их код?
    Ответ написан
    Комментировать
  • Как восстановить бэкап с гугл диска для WhatsApp Messenger?

    @rPman
    молодец, есть бакап.
    spoiler
    с одним смартфоном я понадеялся на бакап xiaomi (а так же бакап adb) и оказалось что они не умеют делать копию именно whatsup.

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

    @rPman
    100% готовая библиотека есть, но не нагуглилась, так как задача не такая уж и сложная, ведь все можно сделать заранее.

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

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

    Ищи библиотеки, с эффектом warping/morphing, те что есть работают по ключевым точкам, как раз те что рассчитываешь по центрам квадратом в моем описании выше.
    Ответ написан
    1 комментарий
  • Можно ли ускорить подключение к WI-FI в Linux (Elementary OS)?

    @rPman
    Если я верно понимаю ситуацию, само подключение к сетям со скрытым ssid медленное, причина в скрытности.

    Нет никакого смысла делать ssid скрытым, первая же статья из гугла про это
    Ответ написан
    Комментировать
  • Какими средствами можно реализовать свой vps хостинг?

    @rPman
    Поднять свою инфраструктуру датацентра включая nas, сервера приложений, панели управления и многое другое (один гитхаб у них больше 700 репов) - первый же пример в гугле https://www.openstack.org/ этим пользуются крупные компании для своих нужд, открытое свободное, бесплатное
    p.s. И мне кажется ну очень какое то все это сложное, потому что если исходить от своих частных задач, оказывается что 99% всего предоставленного не нужно, а силы и ресурсы на это тратятся.

    но тебе наверное еще это продавать надо, с панелью управления для конечных пользователей? я как то искал не нашел, точнее есть куча готовых закрытых продуктов, за деньги, за много денег, часто узкоспециализированные (например инструменты по хостингу windows инфраструктуры, с доменами, скайпами, офис 365 и т.п.) всякие Hosting Controller или Virtualizator
    Ответ написан
    Комментировать
  • Где можно найти portable-версию текстового браузера?

    @rPman
    www.kompx.com/ru/konsolnye-prilozhenija-dlja-windo...
    на базе cygwin порта, какраз это portable вариант

    лучше конечно ставить через cygwin.org
    еще лучше, брать нативный elinks из linux, с помощью wsl
    Ответ написан
    Комментировать
  • Как сильно нагрузить интернет сеть?

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

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

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

    p.p.s. на практике, самое простое - запустить загрузку торент файла по больше, в настройках соединений торент указать побольше, 200-300, но некоторые современные провайдеры детектируют такую нагрузку и обнуляют ее
    Ответ написан
    Комментировать
  • Как забрать данные из Virtual Console Huawei?

    @rPman
    Какие данные забрать то?
    Какой именно доступ имеется, консоль это скорее всего что то типа vnc, если он не модифицированный, то возможно написание приложения на основе libvnc плюс скрипт, запущенный на самом сервере, выводящий нужную информацию на экран в каком нибудь виде (например в битмап)

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

    @rPman
    Добро пожаловать в мир реверс инженеринга.

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

    конкретно в данном случае сайт получает данные с сервера в websocket по ссылке в дважды закодированном виде
    CgRUU0xBFc18h0QYwJep2qtfKgNOTVMwCDgCRfhlOz5lAHD9P9gBBA==

    это base64 строка, декодируется в это
    00000000  0a 04 54 53 4c 41 15 66  5a 87 44 18 a0 ba 93 da  |..TSLA.fZ.D.....|
    00000010  ab 5f 2a 03 4e 4d 53 30  08 38 02 45 ee 4a ab 3d  |._*.NMS0.8.E.J.=|
    00000020  65 00 a8 67 3f d8 01 04                           |e..g?...|

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

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

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

    @rPman
    Если матрица разряженная (много нулей) то хранить лучше в сжатом виде, выбор алгоритма зависит от степени разряженности

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

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

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

    @rPman
    шифровать чтобы скрыть данные от простого пользователя? или чтобы короче стало?

    способов много
    например атрибуты можно запаковать каким-нибудь base64
    Ответ написан
    Комментировать
  • А как выглядит настоящее, большое, корпоративное "Энтерпрайз" веб-приложение?

    @rPman
    Есть мнение - миром правит не заговор а глупость.

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

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

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

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

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

    Про создание 'аналог vps', пили скрипты автоматизации или бери готовое (под windows скорее всего нет), для virtualbox есть консольная утилита VBoxManage которая позволяет делать все что хочешь плюс еще в довесок скрытые функции.

    По организации виртуальных машин, есть следующие варианты:
    * подготавливаешь скрипты автоматической установки системы на виртуальную машину (я видел реализацию, когда виртуальная или реальная машина в режиме 'установка' запускалась с загрузкой по сети или с компакт диска, где ее ждал unattended/automated install (такие образы iso можно сделать чуть ли не штатно из большинства популярных дистрибутивов), который размечал разделы, копировал систему и прописывал настройки сети (я видел таких что прописывали статикой, не надо так) и по мелочи
    * подготавливаешь готовые образы виртуальных машин, которые являются стартовыми шаблонами, и делаешь простое копирование (используй cp --reflink=auto, тогда физически копия не будет занимать места на диске пока не начнутся туда записи, т.е. место будет занимать только изменения), затем диску меняешь uuid чтобы virtualbox не ругался на дубляж
    VBoxManage internalcommands sethduuid диск.vdi/vhd/vmdk

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

    p.s. на базе функционала virtualbox можно запилить очень мощный облачный хостинг, но в пределах одной машины (точнее без функционала кластера, например нет миграции), более продвинутые функции есть у qemu kvm, позволяет очень много интересного реализовать, на его базе redhat пилит свой платный продукт для этого, конкурирующий с vmware/xen.
    Ответ написан
  • Как загружать видео с фейсбука?

    @rPman
    заменить код на вызов свежей версии утилиты youtube-dl ссылка
    Ответ написан
    4 комментария
  • VPN матрешкой. Как победить IPSec?

    @rPman
    Все зависит от того, что именно за vpn на windows машине, и какие у него требования к сети

    Например если сеть, к которой подключает первая vpn сама из себя представляет локальную сеть, а выход в мир через NAT то некоторые типы vpn (например тот же ip sec или pptp) могут потребовать на роутере этой сети соответствующую поддержку

    p.s. openvpn будет работать даже если сеть за NAT, без поддержки GRE (требуется для pptp) и даже с использованием udp (или tcp как обычно), с ним многоуровневое каскадирование vpn возможно
    Ответ написан
  • Принцип хэширования чанков DHT?

    @rPman
    torrent dht это протокол для раздачи не кусочков торента, а фактически самого торент файла, с идентификацией по его хешу и само собой для получения списка пиров для его загрузки.

    первая же статья на русском про dht
    Ответ написан