Задать вопрос
  • Как вести историю работы с записями во всех таблицах для всех пользователей?

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

    Создание полной копии записи базы с каждым изменением, проводимым в них. Создается новая база данных (или в той же самой базе, но имена таблиц снабжаются унифицированным преффиксом), настоятельно рекомендуется отдельное хранилище для таблиц (отдельный диск еще лучше), но не другой сервер. Каждая архивная таблица структурно (список полей и их типы) без индексов и информации об ограничениях (все поля могут быть null, кстати тут есть оговорка, если оригинальные таблицы не будут содержать null то возможна значительная оптимизация по размеру архивных таблиц) должна дублировать оригинальные, с добавлением полей - тип действия (insert/update/delete), время, пользователь или ссылка на таблицу архива сессий авторизации (в этой таблице время, пользователь и информация о его сессии например ip,..). Каждая оригинальная таблица должна быть снабжена тригером на insert/update/delete который будет дублировать предыдущее значение (или сохранять новое - оба варианта подходят но я рекомендую второе) в архивной таблице, в простом варианте дублируя всю запись, но в расширенном варианте возможно сохранение только изменившихся колонок (сравнением new и old) а для остальных полей и для delete оставлять нули и primary key.

    Все можно сделать скриптами, которые анализируют структуру базы и создают (пересоздают) тригеры и таблицы.
    Ответ написан
  • Чем заменить AnyDesk?

    @rPman
    rustdesk, есть свой сервер, win/linux/mac/android/.. все opensource.

    p.s. проблемы скорости находятся на более высоком уровне, на канальном, и если одна программа работает а другая нет, то это не фича программы, а просто 'недоработка' тех кто ломает нам интернет, сегодня работает завтра будет сломана.

    Цели скорее всего далекие от политики, просто если 'прокатило' с youtube->rutube то и с другими
    стоит 200к в год
    тоже может прокатить
    Ответ написан
    3 комментария
  • Какую в Windows стороннюю программу для копирования использовать?

    @rPman
    Вместо копирования на уровне файлов лучше использовать на уровне блочного устройства.
    в windows есть volume shadow copy (аналог снапшота) и возможность делать резервную копию на уровне блоков, есть штатный diskshadow и комерческие бакапилки типа Acronis True Image (как я понимаю требует перезагрузку) а на ходу Veeam Agent for Windows, Macrium Reflect (это что нагуглилось, сам я большой объем файлов на ntfs не держу, а в linux все проще).

    Еще есть серверная файловая система для windows - ReFS, у нее есть инструменты для блочного копирования, и наверное в сочетании с теневыми копиями тома можно делать инкрементальное копирование но красивого готового инструментария с windows нет.
    Ответ написан
  • Возможна ли работа с монитором без графического ядра?

    @rPman
    нет.

    Видеоядром называют встроенный в процессор видеоускоритель, выводы которого через ножки сокета (протокол как я понимаю близко к DP или DP++ работающий в двойном режиме, т.е. позволяющий и hdmi подключать) его выводы почти без правок проходят через материнку на ее видеовыход, если его в процессоре нет видеоускорителя, то сигнал на видеоразъем некому подавать.
    upd. на серверных материнках intel в материнскую плату может быть встроена простейшая видеокарта для IPMI (удаленное управление по сети).
    Исторически компьютеры без мониторов выводили данные на принтер. В linux на сколько я знаю до сих пор есть возможность прямо в ядре логи выводить в сериальный порт, который в свою очередь когда то был входом для принтера, а виндовый стандарт новой строки в текстовых файлах это буквально два управляющих символа - передвинуть печатающую гловку принтера в начало и прокрутить барабан с бумагой на следующую строку.

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

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

    В любом случае понадобятся навыки веб программирования.

    У меня есть совет, это проще чем реверсить чужой код (точнее анализа будет минимум), не пытаться запускать чужое веб приложение на телевизоре, пусть оно остается работать на выделенном компьютере (штатный или headless браузер), но в этом браузере инжектить свои скрипты (расширение tempermonkey/greasemonkey) или внешним управлением (например selenium) и сделать следующее:
    * написать свое веб приложение для телевизора которое будет дублировать важные элементы управления на сайте (поле ввода поиска с кнопкой поиск, список результата поиска, просмотр видео с управлением проигрывать/пауза/навигация)
    * реализовать перенос действий пользователя на приложении для телевизора на запущенное приложение на компьютере, т.е. ввел текст в поисковую строку - на оригинальном приложении симулируется ввод этого текста в его поиск, вывелся список видео на компьютере - перенес список видео на телевизор
    Код этого достаточно примитивный, с ним справится даже ИИ (топовые нейронки) толькоподробнее ТЗ составляй ну и исследованием страницы сам занимайся, так как ИИ с визуальщиной не очень.
    * для блокирования рекламы возможно будет проще покопаться в коде веб сайта и получить прямую ссылку на видео, с вероятностью 99% там готовый .m3u8 файл (с ним умеет работать тот же ffmpeg ну или вручную, это просто текстовый плейлист кусочков видео) или еще проще, с этим уже справится yt-dlp (у него несколько тысяч сайтов в списках поддержки) и уже эту ссылку можно загружать или напрямую передать на телевизор (лучше через проксирование, что бы заголовки браузера с телевизора не транслировать)

    Бонусы от этого - почти не придется реверсить чужое приложение, особенно если там разработчики заморочились с защитой, большая часть работы будет в консоли разработчика браузера
    Ответ написан
    Комментировать
  • Как скормить весь проект нейросети (grok, chatgpt, deepseek) чтобы она понимала в нём и чтоб можно было просить ее доработать что -то?

    @rPman
    Сам я этим не пользовался, так как я считаю отдавать полные бразды управления проектом текущему ИИ опрометчиво (а ещё достаточно дорого), но никто не мешает пользоваться этими инструментами как помощник.

    Если попросить perplexity поискать существующие решения (с возможностью локального запуска и даже указанием локальной модели) то он выдает список:
    aider, cline, continue, claude code, dify, flowise...
    https://www.perplexity.ai/search/proekt-po-lokalno...
    Ответ написан
    Комментировать
  • Как реализовать ежедневную полную синхронизацию операционных систем Windows 11 на рабочем и домашнем ПК?

    @rPman
    Вместо копирования можно просто таскать один и тот же диск, вставляя его в разные машины.

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

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

    p.s. лучший способ запускать одну и ту же windows на разных машинах - виртуализация, она же предлагает механизмы по снапшотам и синхронизации машин по сети (без полного копирования)
    Ответ написан
    Комментировать
  • Apache 2.4 и php 8.4 под windows. Почему не загружаются модули curl, openssl?

    @rPman
    'Не найден указанный модуль' пишет либо если сам .dll не найден, либо для его запуска требуются библиотеки, которых в системе нет (или нет в PATH). Такое случается, если php установлен коряво (простым копированием например для неподходящей версии ОС)/

    Установите php установщиком (а не из zip файла), он должен изменить PATH, соответственно сервис apache понадобится перезапустить, что бы новые переменные приняты были

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

    @rPman
    При дозаписи перезаписывается список файлов на диске, т.е. при удалении файла удаляется только запись о нем в этом списке, но физически данные с диска не удаляются и место не освобождается, то же самое при перезаписи, причем как я понимаю фичи rеflink (хабр считает это слово рекламным и запрещает O_o) как у cow файловых систем, когда меняются только измененные куски файлов тут нет - файл полностью перезаписывается.

    p.s. на сколько я знаю есть формат UDF который начиная с nero buring rom поддерживает работу с перезаписываемыми дисками как с флешкой (т.е. в любой программе работает) и его поддержку штатно добавили с windows 7.

    upd. погуглил, оказывается в windows уже давно мультисессионная запись на cdrom, работаешь с диском как обычно, пишешь, а перед извлечением 'завершаешь сессию', тип формата диска mastered
    Ответ написан
  • Почему при замене ОЗУ на старом ноутбуке не запускается Windows?

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

    Почему 2 гб а не 4гб с одной плашкой - скорее всего причина в 32-битной версии windows, не серверные ревизии не умеют работать вне 4гб адресного пространства (в него включается все что связано с драйверами включая мапинг памяти видеокарты), обычно 32-битные (еще их называют x86) версии не видят больше 3гб.
    Ответ написан
    1 комментарий
  • NGFW защитит от L3/L4 ddos?

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

    Так вот, понять, может ли что то защитить от атак, без дополнительного исследования и фиксации на моделях этих атак, не получится.

    Идете на сайт https://www.kaspersky.ru/enterprise-security/ngfw и кликаете на кнопку - 'заказать расследование', связываетесь со специалистами и вам все расскажут.

    p.s. еще раз, не существует простой кнопки 'сделать хорошо'
    Ответ написан
    6 комментариев
  • Почему Linux Ubuntu после установки не запускается без загрузочной флешки?

    @rPman
    загрузил ПО на свой ноутбук
    нужно не загрузить а установить.

    У тебя liveusb версия, в ней на рабочем столе есть иконка - устновка (install), откроется мастер, где можно указать на какой диск устанавливать, и главное, куда прописывать загрузчик (нужно будет выбрать диск, загрузчик называется grub).

    Еще момент, некоторые (все чаще вижу) производители материниских плат, скорее всего по требованию майкрософт, ломают процедуру настройки загрузочных записей UEFI, таким образом, что бы только установщик windows мог его менять (т.е. записываешь загрузочную запись, биос отвечает что все ок, записалось, но после перезагрузки все возвращается назад, а если это сделать из windows setup то все работает), в этом случае загрузчик придется создавать вручную из windows. Так же альтернатива, перевести bios в режим загрузки не UEFI а CSM (это еще может называться Legacy MBR или Legacy DOS или compatibility), что бы этот режим работал, нужно будет либо создавать тип разбиения дисков DOS (когда 4 раздела только можно, и лимит размера диска 2тб) либо в режиме GPT добавлять еще один раздел (настоятельно рекомендую в первых секторах) - biosboot.

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

    Установить загрузчик можно вручную после установки, из командной строки linux:
    grub-install /dev/sda --root-directory=/mnt

    тут /dev/sda - это диск, на котором должен быть загрузчик (раздел biosboot либо диск с разбиением dos, если есть UEFI то нужно еще 100мб EFI загрузчик, диск типа efi boot и отформатированный fat32), а /mnt это диск, в который нужно вручную смонтировать установленную ОС (причем если она состоит из нескольких разделов, то смонтировать все, включая /mnt/boot/EFI раздел efiboot)

    p.s. повторюсь, тебе нужны разделы - biosboot (автоматически 1мб), efiboot (минимум 100мб), опционально /boot (обычно не меньше 500мб, и в 99% случаев он не нужен) и корневой /
    Это все можно сделать из мастера установки, когда будет предложено выбрать диск для установки (там будет отображены все диски и нужно будет указывать какой раздел какой точкой монтирования / или /boot является)
    Ответ написан
    Комментировать
  • Как мне сделать свой сервер для проверки лицензии?

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

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

    За привязку лицензии к машине лучше обратиться к готовым инструментам, встроенным в ОС (а там и железные фичи типа защищенное хранилище получится использовать).. настоятельно советую погуглить и побеседовать с ИИ на этот вопрос в разрезе вашей задачи. Это не надежное решение, это возможность не пилить бесполезный велосипед, ваша задача сэкономить свои деньги и время на создание защиты.
    Ключевые слова: DPAPI (инструменты шифрования без TPM), CNG Key Storage Provider (KSP) + TPM, Credential Manager...

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

    --------------

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

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

    @rPman
    Для windows лучшее multimedia решение - klm codec pack (mega), это не только набор системных кодеков но и плеер media player classic (его можно конечно ставить отдельно), у которого одна из самых продвинутых меню настроек. В частности можно выбирать разные renderer, что с высокими шансами может решить вашу проблему.

    Почему это может сработать, потому что vlc использует свой декодер, и если проблема - именно сочетание глюков кодека vlc и вашего железа, то mpc может сработать.

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

    @rPman
    С помощью планировщика задач нужно создать задачу запуска с тригером - при старте системы, указав пользовательские данные авторизации (логин и пароль). Или проверить права доступа к файлам.
    Ответ написан
  • Имеют ли нейросети или надстройки над ними возможность анализа "полноты" вопроса?

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

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

    @rPman
    Если нужно не только картинку выводить но и кнопочки с мышкой нажимать (т.е. полноценный компьютер):

    Если linux, то решение бесплатное - штатный xserver (утилита loginctl) при наличии по физической видеокарте на каждое рабочее место, а затем каждое рабочее место настроить с помощью moonlight+sunshine удаленное управление в realtime (можно запускать игры в локальной сети гигабит и даже меньше с отличным качеством, но я хз как там поддержка например and gpu или встройки intel, ну а на клиентах работает даже на очень отвратительном железе). Если нет нескольких gpu, придется вручную настраивать рабочие места с помощь xephir (xserver внутри окна)

    Для windows рекомендую (платный) - ibik aster (недавно они для linux сделали версию, бесплатную, не пробовал), делает то же самое (не требует несколько gpu), организует независимые рабочие места (это не windows server режим c rdp подключением у которого есть ограничения по работе с gpu, а полноценное, работают игры и приложения cad). Для удаленного доступа так же рекомендую moonlight+sunshine. На основе той же технологии есть еще steam remote (штатно работает в steam, не только в играх но и рабочий стол, собственно это nvidia технология предложила)

    Для обоих вариантов есть по проще - vnc, работает не так хорошо (в играх глюки с управлением, чуть больше лаг). Еще есть rustdesk (умеет работать в локальной сети, есть свой сервер, т.е. можно без интернета), и конечно всякие annydesk/teamviewer/..

    Само собой все эти vnc.. могут работать и без ibik/xepir но тогда рабочее место будет просто дублироваться на все android мониторы.


    Если нужно просто транслировать видео-файл то проще настроить любой стриминговый сервер (штатно умеет vlc и конечно ffmpeg) и просматривать его любым плеером на android.
    Ответ написан
    Комментировать
  • Как работать с разрозненными данными?

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

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

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

    Есть легкие проблемы по вторичному рынку доступа к приложению (например клиент продал свое приложение за не надобностью другому), я не считаю это проблемой, это больше верх наглости, запрещать вторичный рынок. Эта проблема решается механизмом подписок - подписка на год и все довольны.
    Ответ написан
    Комментировать
  • Windows 11, постоянная установка обновления 25H2, как победить?

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

    Если все же нужно решать непонятный глюк службы обновлений а не к примеру штатную несовместимость железа или банальная нехватка места на диске, то далее:

    Остановить текущее обновление (в настройках обновления есть кнопка - приостановить на неделю), затем запустить штатный cleaner (Пуск - очистка диска - выбрать C: - кнопка 'Очистить системные файлы' - выбрать 'Очистка обновлений' и 'временные файлы' остальное по желанию, там все можно смело выбирать - нажать ОК). В 99% случаев этого может оказаться достаточно, но я советую дальше:

    Сделать резервную копию (перезагрузившись в какой-нибудь liveusb инструмент, мне нравится все делать из linux, так как оно полнофункционально в отличие от специализированных инструментов, а там с помощью dd или partclone или интерфейс к нему clonezilla). Резервная копия позволит восстановить состояние системы в пару кликов за десяток минут, и сохранит нервы, если что то пойдет не по плану.
    upd. ВАЖНО! помним про винидовую фичу fast startup, которая ломает файловые системы при загрузки в сторонние ос (не важно какие, хоть другая windows), перед перезагрузкой в другую систему выбирать 'Выключение' с нажатым shift

    Затем почистить (буквально удалить содержимое) каталога C:\Windows\SoftwareDistribution (в нормальной ситуации сделать это из запущенной windows скорее всего не получится, раньше хватало остановки службы обновлений теперь без гарантий, поэтому делать лучше это из сторонней ОС).

    После уже пробовать заново установить обновление.
    Ответ написан
    Комментировать