Задать вопрос
  • SSD поставил сам на себя пароль. Что делать?

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

    Если самому, то начни с загрузки с другого носителя (например liveusb/livecd любую реаниматолку или просто linux) и смотри видны ли данные на диске. Сам диск зашифроваться не может, мало того это достаточно длительная операция, незаметить невозможно. Вирусы локеры ведут себя по другому, и им нужно дать инструкции пользователю типа - переведите бабки тогда...

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

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

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

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

    Ну еще, зависит от того, готов ли ты на накладные расходы потратить место на этой карте памяти.

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

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

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

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

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

    @rPman
    Для этого на телефоне должен был заранее быть рут доступ, требуется доступ к файловой системе на низком уровне.
    Альтернатива - работать с устройством, выпаяв чип памяти, что может сделать только специализированный сервис (попробуй обратиться в своем городе в такие, сервисы восстановления данных, они собаку съели)
    Ответ написан
  • Какие последствия за использования Cloudflare сейчас в РФ?

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

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

    p.s. в России нет закона и порядка, тут действует правило - не затрагиваешь ни чьих интересов - тогда по закону, иначе по понятиям.
    Ответ написан
    1 комментарий
  • Есть ли какие есть варианты api для отправки файлов?

    @rPman
    http (тип upload - multipart/form-data), самый простой и функциональный, поддерживается всеми и везде.

    Например прием файла на php тут разные методы и примеры использования, полистай примеры еще и по ссылкам.
    Ответ написан
    Комментировать
  • Есть ли у биржи DeDust API для python?

    @rPman
    у них же на github есть что то
    https://github.com/dedust-io/sdk
    https://docs.dedust.io/reference/getting-available...

    p.s. сам этим не пользовался
    Ответ написан
    3 комментария
  • Утечка DNS или как соц. сети узнают мое местоположение?

    @rPman
    Просто небольшое уточнение, российские провайдеры подменяют вызовы 8.8.8.8, по крайней мере я слышал об этом. Т.е. делая запрос <случайный хеш>.instagram.com и отсылая этот же хеш на сервер с таймингами, позволяет серверу увидеть, откуда к dns делали запрос а там либо твой ip либо ip российского провайдера.

    dns нужно тоже проксировать

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

    @rPman
    первые же запросы с гугла (с поиском по хабру)
    https://habr.com/ru/articles/755114/
    https://habr.com/ru/companies/neoflex/articles/722584/
    https://habr.com/ru/companies/wunderfund/articles/...
    https://habr.com/ru/articles/757086/

    Ключевые слова finetuning, peft модели llama, mixtral, google gemma (вышла буквально на днях, выглядит неожиданно хорошо для 2b/7b)
    Напрямую обучать модель новым знаниям сложно, и дорого а датасет это ты сам собираешь. Есть лайфхак - какими либо способами, на основании контекста формируют запрос в классическую базу данных (например реляционную) делают поиск, а результат вставляют в окно контекста (добавив сопроводительный текст, описывающий это как знания, на которые нужно опираться) и в результате модель получив эти данные, будет их использовать (это самое странное и непонятное в llm-ках). Само собой ВСЕ данные пихать в окно контекста не имеет смысла, оно маленькое а в открытых моделях еще и слабосвязное.
    Гуглим llm rag, например https://habr.com/ru/companies/wunderfund/articles/...

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

    Настоятельно рекомендую смотреть в сторону mixtral (для людей доступны модели 8x7b, работают по скорости как 7b а по качеству как 70b), инструкций по дообучению не густо, придется прогружаться в тему, при которой таких вопросов как выше не будут возникать, но односложно ответ не дать.
    Ответ написан
  • Как реализовать смену цвета кнопки в разных файлах (c# winforms)?

    @rPman
    Так и говори, как из одной формы обращаться к контролам другой (утт форма - это окно, в твоем вопросе это 'файл' Tema1.cs и t1q1.cs).

    Тебе нужно передать ссылку на форму, в которой что то хочешь изменить на форму, которая хочет изменить. Сделать это можно либо в тот момент, когда вторая форма создается, либо (если экземпляр у формы один) разместить эту ссылку как статичный мембер какого либо класса (пусть и самой формы) в которую конструктор будет иницилизировать эту ссылку, типа так
    public static tema1_form;
    ...
    // конструктор Tema1
    Tema1()
    {
    ...
    Tema1::tema1_form=this;
    ...
    }

    // в другом файле
    Tema1::tema1_form.button1.BackColor=Color.LightBlue;
    формально способов тьма, тебе тут могут еще накидать, а то народ 'почему то' не любит в конкретных задачах такие простые способы.
    Ответ написан
    Комментировать
  • Возможно ли в Ubuntu сделать так, чтобы клик мышки и горячие клавиши срабатывали при поднятии кнопки, а не при нажатии?

    @rPman
    Закину мысли от себя, но это требует дополнительного исследования.

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

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

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

    @rPman
    Если у тебя нет человека, который сможет физически нажать reset и power on то не советую использовать WOL.

    Правильное решение - аппаратный выключатель, либо самодельный (дешевле - на основе любого копеечного роутера или малинки и реле на кнопку power, советую для твоего удобства сделать отдельное реле для reset) либо покупной (есть готовые розетки с wifi/ethernet или gprs).

    В биосе машины настраиваешь включение машины при появлении питания. Если машина повисла, делаешь долгое выключение (минута +-).
    Придется покурить настройки загрузчика, так как после неправильного выключения что windows что linux предлагают пользовательское действие с клавиатуры.

    На это тоже есть аппаратные решения - ip kvm. Формально, в 99.9% случаев после сбоя достаточно нажать enter и загрузка продолжится, это так же можно автоматизировать через тупое реле и плату от любой сломанной клавиатуры (обычно клавиатура ломается механически но плата живет почти вечно), там нужные контакты определить легко по прозрачной пленке под кнопками.

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

    @rPman
    Использовать xvfb (X virtual frame buffer). Устанавливаешь одноименный пакет, настраиваешь его запуск, используешь. Таких серверов может быть запущено несколько, но rustdesk может этого не ожидать (я сильно не копал но обычно если запустить rustdesk приложение с установленным DESKTOP на нужную тебе сессию, для нее он и запустится)

    p.s. linux + xvfb + rustdesk это худший способ настройки удаленного подключения
    Рекомендую x2go, сервер все сам настроит, а клиенты есть по до все. Работает на порядок эффективнее (плавнее и менее требовательный к сетевому каналу).
    Для игр не подходит.
    Ответ написан
    Комментировать
  • Установка windows 7 рядом с linux?

    @rPman
    Есть два режиме загрузки, старый mbr legacy, который будет работать и с dos разделами (dos тут то самое название операционной системы из 80-90-ых, это чтобы понимать с каким старьем имеешь дело, как минимум там проблемы с дисками больше 2тб) и с gpt и 'новый' - efi, который требует чтобы разделы были типа gpt (если у тебя есть понятие логический раздел - то у тебя dos).

    Если используешь legacy mbr - настоятельно рекомендую сначала установить windows, а затем настроить загрузку grub linux, причем желательно с другого устройства (речь идет только о загрузчике grub, для которого требуется 1 мб места, причем это может быть хоть флешка или карта памяти, и даже cdrom или загрузка по сети pxe), в этом случае никаких проблем и конфликтов не будет. Существует способ установить оба загрузчика на один физический диск (grub умеет запускать windows) но сам windows может по своей прихоти (это было и не раз) тупо удалять загрузчик linux и перенастраивать все на себя.

    Если используется efi - в этом случае раздел efi boot может быть общим как для linux так и для windows, мало того есть возможность настроить efi загрузку прямо средствами биоса, прописав месторасположение ядра и initramfs linux прямо там (т.е. не нужно загрузочную область создавать, но она и так и так нужна для windows). Опять тут рекомендуется сначала настроить windows, а затем вручную прописать с помощью efiboot утилит в linux как грузиться. Обычно штатный установщик с gui это не сделает, хотя я давно не смотрел... Я привык что чтобы не было проблем от windows, лучше посадить ее на отдельное устройство и никак не давать ей ломать что то в linux.

    Чтобы в legacy boot можно было загрузиться с gpt диска, нужно на нем создавать 1мб bios boot раздел (туда будет установлен загрузчик grub), в dos же разделах эта область уже есть по умолчанию в начале диска.
    Минимальные разбиения диска в зависимости от типа загрузки и типа таблицы разделов:
    legacy mbr + dos:
    * обязательно primary windows boot
    * обязательно primary/logical windows
    * не обязательно primary linux boot
    * обязательно primary/logical linux (на самом деле linux можно разместить даже внутри файла в файловой системе windows но это извращение и чуть медленнее)

    legacy mbr + gpt:
    * обязательно biosboot
    * обязательно windows boot
    * не обязательно linux boot
    * обязательно windows
    * обязательно linux

    efi + gpt:
    * обязательно efi boot (он будет общий windows + linux)
    * обязательно windows
    * не обязательно linux boot
    * обязательно linux
    p.s. dos разделы штатными средствами windows так и linux преобразуются в gpt

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

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

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

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

    В linux мне известно что это поддерживает только qemu/kvm и поддержка требует соответствующие аппаратные возможности (IOMMU/VT-d плюс в принципе аппаратная виртуализация), даже некоторые gpu могут быть так проброшены внутрь виртуалки, производители видеокарт об этом знают и старательно ставят палки в колеса, так как такой функционал они хотят чтобы пользователи использовали только с их 10х дороже серверными вариантами видеокарт). Требует хорошего прогружения в настройки linux, хотя бы чтобы исключить инициализацию устройство самим linux (некоторые устройства не любят включаться два раза подряд без железной перезагрузки).

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

    * Проброс 'блочного устройства' (читай дисков или отдельных разделов, и даже файлов), в этом случае гостевая ос не имеет доступа к самому устройству, но только к данным на нем. Формально это просто подключение диска из файла (потому как даже в windows диск и раздел это буквально файл, который можно открыть fopen по специальному имени). Разные системы виртуализации дают разный интерфейс и удобство. qemu с тем же libvirt - удобнее чем к примеру virtualbox (там нужно в консоли специальную 'скрытую' команду использовать)

    p.s. Проброс видеоускорителя - есть еще протоколы spice но на сколько я знаю они не достаточно функциональны
    Ну и проброс всякой мелочовки типа клавиатура, мышь, планшет/сенсорный экран, мониторы. Это все виртуальные сущности, реальное железо тут не пробрасывается.

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

    @rPman
    Готового решения боюсь не будет, но написать свое под свою задачу будет не сильно сложно.

    Покупаешь вторую клавиатуру (обычно usb, можно купить типа только расширенная цифровая), рисуешь на кнопках стрелки громкости или как то еще помечаешь какая кнопка громкость какого приложения будет менять, затем настраиваешь какого-нибудь демона на прослушивание клавиатуры (гугл говорит про actkbd (пример), но почему то в ubuntu по умолчанию его нет, возможно за эти годы его переименовали или функционал перенесли в другое приложение типа xbindkeys), как минимум в linux встроен функционал отвязывания клавиатуры от сессии (например с помощью loginctl я могу настроить отдельные рабочие места и привязать видеокарта+монитор+клавиатура каждому свое и соответственно просто отвязать дополнительную клавиатуру чтобы ее использовать в другом демоне или даже xhephir - это xserver в окне)

    А там настраиваешь на каждую кнопку вызов команды смены громкости с помощью pulse-audio
    pactl list
    получаешь список всего, работающих со звуком (рекомендую поизучать, можно ограничить вывод, задать формат вывода, в т.ч. json), устройства, источники, получатели,

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

    Дальше просто запускаешь команду
    # изменить громкость
    pactl set-sink-input-volume [sink number] [volume percent]
    # переключить mute
    pactl set-sink-input-mute [sink number] toggle
    # bashcompletion по tab автоматом предлагает sink номера уже работающих приложений, это поможет тебе разобраться что именно из вывода pactl list тебе нужно


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

    @rPman
    в filter укажи multiline, пример вот
    p.s. а читать и искать потом как ты собираешься по этим логам?
    Ответ написан
  • Как выбрать компактный цифровой микроскоп для пайки?

    @rPman
    смартфоны, mid/high-end имеют отличные камеры (а некоторые и оптику), только замоделить крепление к объективу или сразу такой купить

    Сам смартфон он же экран, использую его как микроскоп с 10х зумом, что то мне говорит для пайки хватит.

    p.s.
    древний xiaomi a2, 8x цифровой зум, никакого микроскопа
    pmxkhu8bgu0x75fub1yy1unxuig.jpeg
    купи объектив 10x с креплением к смартфону и больше ничего не понадобится (только чем то этот смартфон удерживать)
    Ответ написан
    Комментировать
  • Серый фильтр RTX 4060 в играх, как исправить?

    @rPman
    пальцем в небо, но мало ли, когда то это имело смысл

    в настройках видеокарты есть пункт персональных настроек для игр, пресеты даже идут с драйверами, там, в том числе, должна быть настройка gamma, saturation, contrast и т.п., если их бездумно крутить, можно получить эффект в т.ч. менее цветное, осветленный черный и т.п.

    посмотри, возможно ты что то крутил или приехал странный пресет
    Ответ написан
    1 комментарий
  • Где обучить нейросеть?

    @rPman
    vast.ai есть даже оплата криптовалютой
    фишка в том что там можно подобрать десктопные видеокарты с меньшим объемом vram если подходят под твою задачу (400млн float/double это 1.6/3.2GB vram + память под обучающую выборку + сопроводиловка 10%-20%), они дешевле по определению серверных.

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

    @rPman
    Если трафик нулевой то стоимость хранения твоих 2 гигабайт в облачных сервисах типа s3 будет считанные баксы в год если не центы (фактически все определит трафик).

    Иначе, арендуешь у реселеров vps-ку за N баксов в год, настраиваешь nginx (хватит дефолта) и выкладываешь свои файлы статикой. у меня впс-ка за 16$ в год с 10гб диска и 100мбит сетевухой уже много лет работает, перезагружалась считанные разы (там скрипты качают терабайтами в месяц данные)

    Гугли lowendstock, это поисковик по таким мегадешевым мегатормозным виртуалкам, советую дешевле 1$ в месяц не выбирать.

    Все остальные варианты сложные, замудренные и без каких либо гарантий.

    p.s. бесплатные сервисы при малейшей нагрузке сразу перестанут быть бесплатными
    Ответ написан
    6 комментариев