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

    @rPman
    ssh запускается как служба, и не имеет доступа к консоли текущего пользователя.

    Правильно - создать задачу в task scheduler (планировщик задач), без условий (тригеры), указав пользователя с его паролем и отметить чекбоксик интерактивности. А в момент, когда нужно запустить эту задачу, запускать ее с помощью schtasks /run
    Ответ написан
    Комментировать
  • Нужен аналог с импортом данных между таблицами?

    @rPman
    Полнофункционального opensource аналога веб версий google или microsoft office не существует. И осознавая объем работа, вероятность что это появится в россии, околонулевая.

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

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

    p.s. как вам запуск libreoffice в режиме kiosk на сервере, и предоставление к нему доступа по какому-либо протоколу удаленного управления (rdp/x2go/vnc/...)? пока у вас нет необходимости одновременного многопользовательского доступа к документам, это решение будет очень простым и многофункциональным.
    Ответ написан
    1 комментарий
  • Какая ширина канала нужна для видеохостинга?

    @rPman
    Есть лайфхак, который не всегда работает, особенно с мобильными пользователями (потому что ipv4 у опсосов закнчились а ipv6 поднимать у них кишка тонка, вот и пихают всех за двойной nat, из-за которого нормальные технологии не работают) - использовать webtorrent и webtorrent stream, на основе webrtc (передача контента напрямую между пользователями).

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

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

    p.s. пример реализации хостинга - peertube
    Ответ написан
    Комментировать
  • Насколько целесообразно использовать ленточную схд для продакшена?

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

    Неплохо вариантом может оказаться переход к десктопными железу (самодельный NAS), особенно при количестве дисков порядка 1-2 десятка, брать самые дешёвые, использовать софтварный raid6 и внимательно следить за сбоями и своевременно менять диски.

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

    Иначе можно просто не найти дисков CMR с объемом больше 8тб
    Ответ написан
    Комментировать
  • Проблема с синхронизацией времени windows 10?

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

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

    НО! я могу догадаться, что на компьютере используется соседняя операционная система linux (или unix, тут это не важно), которая использует системное время не так как windows.

    windows считает что системное время это локальное время пользователя (то что в его часовом поясе) а все остальные операционные системы (т.е. linux) ожидают что системное время установлено в GMT-0, но так как все современные операционные системы по умолчанию синхранизируют время по интернету, каждая загрузка в linux меняет системное время на машине на несколько часов (согласно часовому поясу), windows же это делает не сразу а с интервалом в несколько часов (можно поменять в реестре) а значит вы успеваете заметить эту разницу.

    Если linux у вас не основная система, можно ее настроить на использование системного времени так же как windows, и тогда конфликт не возникнет.
    Ответ написан
  • Как перенести свободную память с sda3 на sda2?

    @rPman
    грузишься с livecd/liveusb любой linux и запускаешь gparted, в gui нормально все двигаешь и пермещеаешь
    Ответ написан
  • Как настроить NAT на windows server с одним физическим сетевым адаптером?

    @rPman
    Попробуйте установите виртуальный драйвер сетевой карты microsoft loopback ethernet adapter (управление драйверами - установка старых устройств) как минимум получите сетевой адаптер, не подключенный никуда (я так глюки майкрософтовского сетевого моста решал, добавив такой адаптер, сетевой мост всегда онлайн, даже если кабель вынимать у добавленного в него реального ethernet)
    Ответ написан
    Комментировать
  • Как задать запрос в базу mysql с массивом данных?

    @rPman
    Философия тут простая - ВСЕ данные, которые участвуют в запросе, должны присутствовать в базе данных.

    А это значит, либо данные заливать перед самим запросом во временную таблицу (что имеет смысл делать только при очень большой нужде, например большой объем данных и мало оперативной памяти на бакэнде) либо, все данные уже есть в базе, и выбирать их по идентификатору, добавляя их список в where id in (1,2,3,...)

    Так же есть неплохой по моему мнению (но считается говнокодом) подход - когда данные это сам запрос, что то типа указывая данные для фильтрации по одному
    select ... where name like '%sdf%' union
    select .. where name like '%zxcvx%' union ...
    или подготовив вложенную виртуальную таблицу с данными
    select ... from (
      select 1,2,3 from dual union
      select 5,6,7 from dual union ...
    ) x where ...


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

    Понятно этот подход нужно использовать с умом и не вставлять в любое место бездумно.

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

    @rPman
    Для начала метка активного диска это очень устаревшая методика, работает только с legacy mbr boot и только с dos и старыми windows.

    Если система EFI (материнка + настройка в биосе) то нужно восстановить загрузочную запись в биосе (некоторые биосы позволяют выбрать откуда грузиться и так).

    Самое простое и универсальное (не важно какой биос), загрузиться с livecd/liveusb (любую систему linux той же архитектуры, т.е. x86/x64/... в идеале той же версии но не обязательно), смонтировать корневой раздел в какой-нибудь каталог типа /mnt (причем если root состоит из нескольких разделов типа /boot /home и т.п. то нужно смонтировать их все в правильном порядке) и запустить команду
    grub-install /dev/sda --root-directory=/mnt
    где /dev/sda это устройство с диском с которого нужно грузиться (где лежит efiboot или biosboot или для старых mbr дисков где будет загрузочный сектор)
    а /mnt - каталог, в который смонтирован корневой раздел файловой системы твоей перенесенной ОС.

    p.s. grub все сам проверит, восстановит и настроит, и если какая ошибка - напишет

    Дополнительно удостовериться, что в /etc/fstab указаны верные устройства монтирования а лучше перевести на UUID
    Ответ написан
  • Скачанное видио не удаляется на телефоне, что делать?

    @rPman
    В галерее показаны иконки, так происходит, если файл удалить 'сторонними' средствами а иконки (это отдельные файлы, по уму лежат тут же но переименованные с точкой в имени в начале) нет.

    Достаточно удалить файл еще раз из галереи и он исчезнет.

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

    @rPman
    Очень не хватает скрина этого 'введите код' приложения youtube.

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

    Можно найти системные логи (есть приложения для их чтения, но лучше из android studio на десктопе их смотреть), можно перепроверить что на смартфоне стоят именно те приложения что были изначально (потому что название и иконка не является чем то уникальным, мало того, после того как на смартфоне появились сторонние app store (те же китайские или российские), бардак увеличился кратно, ведь и китайцы и россия желают присосаться к потоку пользовательской приватной информации и полностью контролировать смартфоны пользователей.
    Ответ написан
    4 комментария
  • Как настроить работу через VPN только одного приложения KRDC в Manjaro Linux?

    @rPman
    Если полный нуб, то подними vpn в виртуалке и там же запускай нужное приложение.

    Формально для данной задачи подойдёт cgroup network namespace, достаточно сложно для настройки
    Ответ написан
  • Может ли ПО удаленного доступа узнать о карте захвата в моём ПК?

    @rPman
    Короткий ответ - часто да, а в общем нет.

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

    При подключении карты захвата к hdmi/dsub детектировать почти невозможно, есть протокол общения с монитором, где передаются параметры поддерживаемых разрешений и куча другой информации, именно эта информация поможет детектировать карту захвата, но нужно будет изучить рынок устройств и банально собрать базу этих EDID
    Ответ написан
    Комментировать
  • Как сделать так, чтобы nvidia a100 заработала в yandex cloud с драйвером 535 и cuda 12.2?

    @rPman
    У меня только один вопрос, пробовал ли ты устанавливать необходимые версии софта в docker?
    Ответ написан
    3 комментария
  • Синхронизация двух директорий через ssh?

    @rPman
    rsync более чем покроет все твои задачи, и он считается стандартом defacto в мире синхронизации файлов, но чтобы добавить полезной информации - у всех механизмов синхронизации на основе файлов есть легкий недостаток, информацию об изменении файла они получают из метаинформации (размер файла, флаги или даты модификации), которая не защищена от изменения, т.е. возможна ситуация, когда файл изменен но его дата нет.
    spoiler
    А еще есть проблема еще больше, обычно файлы копируются целиком, даже если в них были только минимальные изменения (вопрос что есть изменения - отдельный и философский), классический пример - вставка или удаление новой строки в текстовый файл, с помощью утилиты diff можно сравнить старую версию и новую версию файла, и получить diff patch, текстовый файл, содержащий только информацию об изменениях (так же построчно а не посимвольно), но для проведения этого сравнения нужно прочитать старую версию файла и новую, а так же потратить порядка n^2 памяти (в универсальном случае для binary diff), поэтому этим не пользуются именно для синхронизации файлов, а копируют файл по сети целиком (но помните об этом если у вас есть память для хранения копии старых файлов но очень медленный канал связи).

    Теперь о важном - если использовать cow файловые системы типа btrfs/zfs, то можно максимально быстро (без затрат памяти и лишних чтений с диска) получить максимально эффективный патч простых бинарных изменений (без сдвигов содержимого файла) с минимальным размером куска файла - размером с кластер файловой системы (обычно 4 или 8 кб) и послать его по сети, а затем применить его на удаленную файловую систему (btrfs snapshot send), при этом это еще и максимально эффективно для медленных дисков hdd (так как утилиты пытаются обрабатывать данные последовательно а не случайно), в общем никакой другой алгоритм так эффективно синхранизацию больших объемов не сможет сделать (точнее можно, если использовать binary diff и хранить локально копии удаленных старых версий, но это очень ресурсоемко и по памяти и по процессору)
    Ответ написан
    Комментировать
  • Какие библиотеки и как использовались для создания Minecraft Bedrock?

    @rPman
    Майнкрафт был создан на собственном движке и написан на java, позже часть движка значительно модернизирована с помощью мода optyfine (текстур паки и шейдеры, поддержку этого в Майнкрафте так и не допили), там ещё есть моды движка но не такие значимые.

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

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

    @rPman
    Два способа - универсальный (так не работают только те программы которые специально заточены на запрет одновременного запуска, любой браузер не такой) и встроенный в браузер:
    * универсально - создаешь новый профиль пользователя, устанавливаешь браузер под этим пользователем, если приложение ставишь в профиль пользователя app data, обычно это если не требуется администраторских прав, либо заранее установив его в program files (это требует администраторские права), а затем, залогинившись под изначальным пользователем, запускаешь приложение по его ярлыку (публично доступному) нажав правую кнопку, вабрать в меню 'Запустить под пользователем' или используя консольное приложение runas.
    На каждый экземпляр приложения потребуется свой профиль пользователя
    * Воспользоваться штатным механизмом профилей браузера
    chromium:
    --user-data-dir=путь_до_каталога_с_профилями
    (внутри будет создан один каталог с профилем по умолчанию)
    или
    --profile-directory="Имя профиля"
    будет создан профиль в дефолтном каталоге профилей, их может быть сколько угодно
    firefox:
    -P
    откроет интерфейс создания и выбора профиля (один раз рекомендую запустить с этим ключом после всех манипуляций, с профилем по умолчанию и отметив внизу чекбокс - по умолчанию, иначе при следующем запуске firefox без ключей будет использован последний профиль)
    -p имя_профиля
    запустит браузер с выбранным профилем, рекомендую еще ключ --no-remote этот ключ отключит реакцию браузера на внешние приложения (типа открой эту ссылку), в этом случае можно использовать профиль по умолчанию как обычный браузер а остальные профили как независимо работающие.
    Ответ написан
  • Удаление скриптов с веб-страницы возможно автоматизировать в браузере?

    @rPman
    Если блок однозначно идентифицируется css селектором, то хватит uBlock Origin chrome, firefox.

    Иначе придется писать javascript код для поиска и удаления/сокрытия блока и инжектить его с помощью чего то типа tampermonkey
    Ответ написан
    2 комментария
  • Можно ли пропатчить платные расширения браузера?

    @rPman
    обычно все расширения складываются в профиль пользователя как есть в виде исходников (с оговорками про webpack и т.п.) ты можешь их копировать и редактировать... например в fiefox прямо в каталоге extensions лежат .xpi файлы, это zip архивы где все в виде исходников.

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

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

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