Задать вопрос
  • Есть альтернатива wkhtmltopdf на современной версии chromium?

    @rPman
    Могу подсказать путь решения, он очень простой

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

    p.s. вот пример как это делать без виртуального драйвера
    Ответ написан
    Комментировать
  • Как загружать файлы на гугл диск с сайта php?

    @rPman
    согласно этому, есть проперти parents[] а так же методы addParents чтобы добавить каталог, где будет виден файл (тут каталоги как теги, один и тот же файл может быть размещен в разных местах)

    вот примеры, попробуй в files->create добавить этот параметр
    Ответ написан
  • Как парсить приложение на андроиде?

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

    С точки зрения работы на android - хватит adb, можно параллельно запустить vnc сервер (или любую другую систему удаленного управления) на android, получать скрины по сети (так проще чем через adb). Я только один раз что то автоматизировал и мне хватило teseract для декодирования текста на экране и симуляции кликов средствами adb

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

    @rPman
    Все "современные" (уже больше 10 лет как) встроенные звуковые карты умеют 96kHz дескритизацию
    Если видеокарта типовая то значит и в linux будет поддержка, но там больше нужно смотреть софт а не драйвера

    Хорошая аудиокарта и linux почти наверняка не совместимы, ищи на специализированных форумах, возможно там подскажут

    p.s. с высокой вероятностью тебе не нужна звуковая карта, хватит стоковой, бери нормальные наушники

    Так же есть лайфхак - bluetooth и hdmi (а еще есть цифровые порты s/pdif, почти на всех материнках их не выводят наружу) переносят задачу формирования звука наружу, т.е. качество этой звуковой карты перестает иметь смысл. Получается тебе внешний ЦАП нужен (их обычно встраивают в хайфай усилители) это и будет твоя звуковая карта.
    Ответ написан
    Комментировать
  • Возможно ли запустить игры через прокси?

    @rPman
    Подавляющее большинство игр (те что требуют реакцию) используют udp, типовые прокси сервера умеют только tcp
    Так же многие игры нуждаются в обратном канале до клиента, в обычной ситуации это реализуется автонастройкой роутера игрой через upnp, что само собой так же невозможно при использовании прокси.

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

    p.s. инкапсулирование udp поверх tcp не сулит ничего хорошего игроку, будут лаги!
    Ответ написан
    Комментировать
  • Как установить Windows 7 на компьютер в 2022 году?

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

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

    Запускать только в режиме биоса legacy mbr, отключив secure boot (сама win7 может и могла бы так загрузиться, но если поставишь ее в виртуалке, нужно будет вручную прописывать загрузчик)
    Ответ написан
    6 комментариев
  • Как удалить историю консоли за все время в браузере Chrome?

    @rPman
    chromium - правая кнопка в консоли, пункт меняю clear history
    firefox - выполнить функцию clearHistory()
    Ответ написан
    Комментировать
  • Какие сейчас самые компактные vr очки?

    @rPman
    Любые cardboard могут работать как виртуальный монитор, я читал про складные модели (корпус из ткани) можно в карман положить (так и гугли - складные vr)

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

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

    лучшая оптика и возможности у pimax 5k/8k/12k (это те что буквально с двумя экранами) с fov 200 градусов но они громоздкие и достаточно дорогие (12k автономный)
    Ответ написан
    Комментировать
  • Какой дисплей выбрать для rtsp потока?

    @rPman
    тут нужен либо smart tv либо планшетник, и там и там поставить можно нужный софт (фактически обычный плеер, типа vlc)

    Если планшетник android с google apps то можно даже голосовой помощник включить (приложение google), это может быть не так удобно как хотелось бы но все равно удобно.

    Можно вместо простого android водрузить android tv прошивку, тогда работа с голосовым помощником станет еще удобнее (в идеале купить пульт управления bluetooth)
    Ответ написан
    Комментировать
  • Как тестировать сервер на сокетах?

    @rPman
    Да клиент понадобится, только скорее всего пустой, только симулирующий настоящего.
    Так же тебе скорее всего захочется тестировать нескольких одновременных подключений, наверное самый сложный способ но его можно совместить с нагрузочным, где то что то вылетит
    Ответ написан
  • Как увеличить количество соединений к socket server?

    @rPman
    судя по этому issue у народа до 1000 на один процесс все работало ну и он закрыт значит должно быть больше.

    смотри ошибки в коде сервера, что пишет в логи
    Ответ написан
    Комментировать
  • Сайт полностью прогружает стили только в режиме инкогнито, как исправить?

    @rPman
    у тебя на стилях твоих сервер выдает хеадер
    cache-control max-age=31536000
    expires Mon, 25 Dec 2023 17:55:13 GMT
    логично что все закешировалось и отдает новую версию только на новых машинах или в приватном режиме (там кеш чистится по закрытию страницы, ибо это использовалось для деанонимизации)

    это классическая проблема и решается в простом виде добавлением к имени файла какого то идентификатора, определяемого версией файла (например дата или хеш файла) например так main.css?i=123123

    p.s. лучше меняй сразу имя файла на main.123123.css, так ошибки легче будет отловить (если где то забудешь изменить ссылку)

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

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

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

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

    Лично я считаю это достаточно неудобным чтобы вообще оставить static в принципе, лучше без него тогда
    Ответ написан
  • Что использовать для синхранизации данных?

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

    Соответственно каждое твое действие с документом должно логироваться в лог действий (пар действий).

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

    Теперь самое главное - нужен самый главный (сервер или в p2p среде случайно выбранный один из участников) которому весь лог отправляется и который перенаправляет действия остальным, на самом деле можно паралельно и напрямую отсылать для отзывчивости но главный разруливает конфликты, или даже не допускает (реальное изменение происходит как только главный скажет что данные дошли до всех клиентов, но визуально это лаги, это некомфортно). Разруливать конфликт можно просто откатом операции автоматически (например прописать приоритетность для каждого действия). Если сделаешь механизм ручного разруливания конфликтов - тебе пользователи спасибо скажут.
    Ответ написан
    Комментировать
  • Не запускается wine на Linux Manjaro?

    @rPman
    99% проблем с wine у пользователей - это необходимость установки компонентов с помощью winetricks (список компонентов определять эмпирически по логам, либо подсмотреть, что устанавливает и использует приложение при установке на реальную windows, да и просто распотрошить инсталлятор, и конечно гуглить.

    Типовые проблемы - нужен браузер (предлагается gecko), нужен .net фреймворк, нужны vc redist и т.п. Иногда может банально не хватать какого-нибудь шрифта, который запрещено из-за лицензионных соображений вместе с ОС но могут быть загружены скриптами.

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

    p.s. есть GUI утилита q4wine, дает какое то удобство, если тебе прямо в GUI надо, и логи посмотреть и префиксами порулить, и запущенные процессы помониторить

    p.p.s. настоятельно рекомендуется устанавливать wine не из репов ОС а самые последние версии с сайта winehq
    Ответ написан
    Комментировать
  • Какие есть хостинги для хранения видео и какие есть методы оптимизации видео?

    @rPman
    бесплатно нигде
    за деньги - как любые обычные данные

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

    а так да, если надо сэкономить - то пережимать

    p.s. кажется самый дешевый хостинг в мире, особенно когда речь о БОЛЬШИХ размерах - amazon s3 (какой-нибудь glacier хранилище для малоактивного контента с лагом извлечения - часы и другие уровни по дороже - для оперативного)

    само собой, весь контент лучше кешировать на локальном хостинге

    p.p.s. в свете санкций могу посоветовать криптовалюты, siacoin неплохой инструментарий имеет, вполне адекватная скорость, и цены сравнимые с амазоновским glacier
    Ответ написан
    Комментировать
  • Как найти схожий текст в Mysql?

    @rPman
    Akina абсолютно прав, но в качестве ответа - одним из простых критериев похожести может быть отличие в количестве символов (известный алгоритм levenstein)
    вот статья с примерами и реализациями на mysql
    для postgres есть штатная реализация но нативные индексы так и не поддерживаются

    p.s. повторюсь, sql базы данных для данной задачи к сожалению не подходит, чтобы это работало быстро потребуется предварительная обработка базы и построение псевдоиндексов
    Ответ написан
    Комментировать
  • Что делать, если не открывается приложения Windows Form?

    @rPman
    я тут вижу два разных языка - c++ и manged c (на нем написано приложение win form)

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

    если же у тебя два проекта в solution то там же есть настройка, какой запускать

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

    пример доки, как вызывать из managed кода unmanaged (тот что ты на c++ хочешь)
    Ответ написан
    6 комментариев
  • Как встроить стороннюю страницу на подобие iframe но с некоторым функционалом?

    @rPman
    Браузеры защищают сайты с разными доменами у фрейма и основного, от подобной деятельности. Ни доступа к странице, ни к содержимому нет.

    Есть уязвимость сайтов к click jacking, когда фрейм делают прозрачным, подвигают под текущую позицию курсора мыши и как то заставляют пользователя кликнуть. Таким образом можно выполнять действия но понять, успешно или нет не получится.

    Если твоя задача не состоит в краже пользовательской авторизации, то достаточно через проксирование сайта на своем домене открыть его как свою страницу и уже к ней будет полный доступ, можно получить document страницы, делать поисковые запросы querySelector и делать клики через .click()
    Ответ написан
  • Какой стек использовать для разработки SPA?

    @rPman
    Для обучения нужно работать с минимумом фрейморков в идеале вообще без них, буквально
    Чтобы было понимание 'как это работает на самом деле'

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