Задать вопрос
  • Как решить проблему с загрузкой ubuntu?

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

    Если выделить текст ошибки, нажать в браузере на выделенном тексте правую кнопку мыши и выбрать в меню - искать в интернете, то первым же результатом будет вот это решение
    Ответ написан
  • Почему иногда для получения данных с сервера используется POST, а не GET?

    @rPman
    Выбор типа http запроса get/post/put/delete это из http rest философии, которой мало кто в принципе пользуется и для простоты, разделяют get для получения ресурсов а post все что угодно, начиная с создания или к примеру поиска.

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

    Единственное что можно помнить, что поисковые системы, точнее их роботы, стараются использовать POST запросы с осторожностью (или вообще не использовать), только чтобы изучать поисковые формы, и то, только для популярных фреймворков, чтобы минимально воздействовать на исследуемый ресурс (отлично помню байку про offline browser, пользователь попросил загрузить сайт, под своим логином, и он добросовестно прошелся по всем страницам и пронажимал на все кнопки, включая delete, удалив весь контент этого пользователя).
    Ответ написан
    Комментировать
  • VirtualBox. Подтормаживает изображение в Youtube?

    @rPman
    Потому что полноценной поддержки видеоускорителя в virtualbox нет, есть неофициальная, которая в 10-ой windows уже сломана, да и раньше работала со сбоями.
    Ответ написан
    Комментировать
  • Есть вариант каким-то образом использовать западные платежные системы?

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

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

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

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

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

    Интернет перестанет работать. Затем добавить route для vpn сервера по его адресу или подсетью, указав верный шлюз
    route add ip_адресvpn mask 255.255.255.255
     ip_твой_правильный_шлюз

    Таким образом единственно доступный в интернете сервер будет vpn.

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

    Нормальные роутера позволяют настройку неправильного шлюза провести через dhcp сервер
    Ответ написан
    1 комментарий
  • Можно ли гарантировать надежность снапшота?

    @rPman
    Создание снапшота - атомарная операция (lvm/btrfs/zfs), с точки зрения восстановления базы данных из этого снапшота, это будет то же самое, как если бы вы нажали reset на компьютере, даже лучше - сняли все процессы сервера баз данных с помощью жесткого kill -9 $pid (SIGKILL, его не отловить) ведь записи на диск не прервутся.
    ВАЖНО, если база данных находится на одном томе! невозможно создать атомарно снапшот на нескольких томах. Вариант с запуском всей системы в виртуальной машине и созданием снапшотов ее средствами не рассматриваем, такой конфиг абсурден с точки зрения производительности.

    Базы данных очень качественно следят за консистентностью записи, удаляют данные из лога только после того как завершат запись на диск, т.е. транзакция не завершится, пока данные не будут записаны окончательно. Это значит данные не будут повреждены.

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

    p.s. но я бы не рекомендовал такой способ все равно, особенно на постоянной основе.
    Для создания резервной копии на живой базе я рекомендую использовать вторую машину, на которую настроена репликация базы. В этом случае эту вторую базу можно остановить, снять снапшот, возобновить работу (чтобы репликация догнала master - меньше нагрузка на диски, меньше оперативной памяти и допустим слабый процессор) а снапшот спокойно копировать, не опасаясь каких-либо проблем.
    Данный способ нужно использовать на постоянной основе (мало того, требования к backup slave серверу значительно ниже чем рабочему master), и сам процесс создания копии никак не повлияет на работу исходной базы, когда как использование оригинальной базы, даже со снапшотом, значительно понизит ее производительность, так как копирование сильно нагружает дисковую подсистему.
    Ответ написан
    3 комментария
  • Как сделать локальный бэкап VDS сервера Ubuntu + Docker?

    @rPman
    Да это будет работать (linux вообще универсальная ОС, лишь бы архитектура x86/x64/.. процессора подходила, исключение - gentoo, там привязка может быть буквально к модели процессора), возможно потребуются телодвижения для настройки загрузчика и переустановки ядра (linux-image-...), скорее всего, если аппаратный конфиг будет похож (например и там и там одни и те же диски, не по размеру а по сути, например один диск на ОС а другие на данные базы и файлы веб сервера или образы docker), то все заведется без проблем, я так переносил несколько раз очень странные конфиги, дублируя на целевой машине даже uuid разделов и lvm томов.

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

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

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

    И да, есть еще образы docker, хорошо их можно копировать не смотря на то что внутри (это одна из главных фич контейнеризации) - docker save и docker load. Осторожно, сетевой конфиг сервера (а именно имена сетевых интерфейсов и наличие bridge) в данном случае может потребовать дополнительных шевелений.

    p.s. Есть способ облегчить реверсинженеринг:
    В зависимости от используемого пакетного менеджера, можно получить список установленных пакетов, затем сдублировать установку простым запуском (для debian based дистрибутивов) apt install список_имен_пакетов_с_версиями или dpkg -i имя_файла.deb, если предварительно их скачать из репозитория apt download в отдельном каталоге с помощью chroot.
    А затем банально сравнить списки файлов на оригинальной установке и этой фиктивной, все различия можно автоматически скопировать (новые, измененные и удаленные файлы). Я делал очень просто - формировал список файлов, в виде полный_путь_имя_файла размер дата_модификации (можно вместо размера и даты хеш md5 но это дольше и особого смысла не имеет, если нет злоумышленника, стремящегося помешать этому анализу) для оригинального каталога и сравниваемого, полученные файлы сортировал утилитой sort и сравнивал diff, полученный файл можно смотреть глазами а можно написать утилиту которая все будет копировать сама.
    Ответ написан
    Комментировать
  • У меня скрипт для рассылки друзьям на Python, хочу отправлять сообщения по номеру телефона, но получается только по username, как решить?

    @rPman
    По номеру телефона можно общаться только если вы друг у друга в контактах телефона.

    Иначе - ты бы перебирал номера телефонов (собственно одно время так и делали, добавляя по 10к в контакты себе) и спамил бы спамил, хорошо так не получится.
    Ответ написан
  • Как восстановить данные с SSD диска?

    @rPman
    Железная проблема, причем это явно контроллер.
    Нести в ремонт, стоимость ремонта может быть дороже чем с hdd на порядок, но хотя бы на диагностику отнесите, вполне возможно что данные вытянуть получится (готовьте диск, любой, на который вам восстановят данные)
    Ответ написан
    Комментировать
  • Запуск Windows от ПК на Limbo PC Emulator?

    @rPman
    первая же статья из гугла на 4pda
    https://4pda.to/forum/dl/post/19313973/Screenshot_...
    В limbo все гораздо проще. Надо просто их выбрать как на скриншоте. Расположение файлов на ваше усмотрение.
    Ответ написан
    Комментировать
  • Может ли провайдер заблокировать 80 порт на доступ извне?

    @rPman
    у меня ростелеком на белом, специально купленном ip, в разное время блокировал входящие на портах ниже 4000, я даже пытаться перестал, ssh например не работал никогда, а вот http по 80 то работает то нет.

    Кстати, возможна ситуация, когда блокировка происходит скорее всего не на провайдере где стоит сервер, а у провайдера на клиенте, хз по какой логике. Например помню с tele2 мобильного интернет не мог подключиться ни по каким портам, при этом в то же время с проводного провайдера, тоже в том же городе, связь была.
    Ответ написан
    Комментировать
  • Какая версия PostgreSQL-ODBC-драйвера подойдет для Windows 7?

    @rPman
    тут смотрел?
    https://www.postgresql.org/ftp/odbc/releases/

    Если приложение x86 а ОС x64 то посмотри как это тут решили (внизу статьи), само собой подправь название dll под нужную
    Ответ написан
  • Отключается монитор, может ли быть виноват процессора?

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

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

    p.s. если у тебя нет комплектующих для проведения тестов, отнеси в сервисцентр, где за 200-500р тебе проведут эту проверку, тем более у тебя проблема сразу вылезает.
    Ответ написан
    Комментировать
  • Какой vbs из C:\Windows\System32\Printing_Admin_Scripts\ru-RU\ мне поможет?

    @rPman
    попробуй powershell
    $printerName = "имя_принтера"
    # Снятие "галочки" с порта port1
    (Get-PrintConfiguration -PrinterName $printerName).PrinterPortName.Remove("port1")
    # Добавление "галочки" для порта port4
    (Get-PrintConfiguration -PrinterName $printerName).PrinterPortName.Add("port4")

    Не совсем уверен но кажется нужно после сохранить изменения.
    я на нашел готовых примеров использования, а chatgpt генерит что то типа этого, чему я не очень верю:
    Set-PrintConfiguration -PrinterName $printerName -PrinterPortName (Get-PrintConfiguration -PrinterName $printerName).PrinterPortName
    Ответ написан
    5 комментариев
  • Как максимально растянуть заряд ноутбука Lenovo нового поколения?

    @rPman
    android конечно же, основан на linux, и при условии наличия драйверов acpi даст наилучший результат.
    формально все можно настроить на любом linux и даже на windows, но усилий будет потрачено много.

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

    @rPman
    разделитель не запятая а ';'
    Ответ написан
    Комментировать
  • Вопрос про настройку LLM сетей?

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

    p.s.
    скрывались за модификатором доступа private

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

    p.p.s. по названию свойств могу догадаться (я же почти телепат), что используется llama.cpp, только там я видел выбор mirastat алгоритма как опция
    Советую полистать хелп к llama.cpp llama-cli (раньше он назывался main) llama-cli --help там все это есть но чуть чуть названное по другому. Напомню что llama.cpp все еще разрабатывается, документация к нему не всегда понятна а многие вещи приходится вытаскивать из issue и discussion проекта на github и даже из исходников.

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


    upd. я сделаю это за тебя, спросив у бесплатного anthropic
    claude.ai
    Исходя из содержимого файла помощи, следующие ключи соответствуют указанным переменным:

    1. SamplingPipeline: Возможно, `--samplers` и `--sampling-seq`
    2. PenalizeNL: `--penalize-nl`
    3. MirostatEta: `--mirostat-lr`
    4. MirostatTau: `--mirostat-ent`
    5. Mirostat: `--mirostat`
    6. PresencePenalty: `--presence-penalty`
    7. FrequencyPenalty: `--frequency-penalty`
    8. RepeatLastTokensCount: `--repeat-last-n`
    9. RepeatPenalty: `--repeat-penalty`
    10. Temperature: `--temp`
    11. TypicalP: `--typical`
    12. TfsZ: `--tfs`
    13. MinP: `--min-p`
    14. TopP: `--top-p`
    15. TopK: `--top-k`
    16. AntiPrompts: `--cfg-negative-prompt` или `--cfg-negative-prompt-file`
    17. LogitBias: `-l`
    18. MaxTokens: `-n`
    19. TokensKeep: `--keep`

    Описание на русском языке:

    1. `--samplers`: Выборочные алгоритмы, которые будут использоваться для генерации в указанном порядке, разделенные `;`.
    2. `--penalize-nl`: Наказывать токены новой строки (по умолчанию: false).
    3. `--mirostat-lr`: Коэффициент обучения Mirostat, параметр eta (по умолчанию: 0.1).
    4. `--mirostat-ent`: Целевая энтропия Mirostat, параметр tau (по умолчанию: 5.0).
    5. `--mirostat`: Использовать выборку Mirostat. (по умолчанию: 0, 0 = отключено, 1 = Mirostat, 2 = Mirostat 2.0).
    6. `--presence-penalty`: Штраф за присутствие повторяющейся последовательности токенов, альфа (по умолчанию: 0.0, 0.0 = отключено).
    7. `--frequency-penalty`: Штраф за частоту повторяющейся последовательности токенов, альфа (по умолчанию: 0.0, 0.0 = отключено).
    8. `--repeat-last-n`: Последние n токенов, которые необходимо учитывать для наказания (по умолчанию: 64, 0 = отключено, -1 = ctx_size).
    9. `--repeat-penalty`: Наказывать повторяющуюся последовательность токенов (по умолчанию: 1.0, 1.0 = отключено).
    10. `--temp`: Температура (по умолчанию: 0.8).
    11. `--typical`: Локальная типичная выборка, параметр p (по умолчанию: 1.0, 1.0 = отключено).
    12. `--tfs`: Выборка без хвостов, параметр z (по умолчанию: 1.0, 1.0 = отключено).
    13. `--min-p`: Выборка min-p (по умолчанию: 0.1, 0.0 = отключено).
    14. `--top-p`: Выборка top-p (по умолчанию: 0.9, 1.0 = отключено).
    15. `--top-k`: Выборка top-k (по умолчанию: 40, 0 = отключено).
    16. `--cfg-negative-prompt`: Отрицательный подсказка для использования для направления (по умолчанию: '').
    17. `-l`: Модифицирует вероятность появления токена в завершении.
    18. `-n`: Количество токенов для предсказания (по умолчанию: -1, -1 = бесконечность, -2 = пока не заполнится контекст).
    19. `--keep`: Количество токенов для сохранения из начальной подсказки (по умолчанию: 0, -1 = все).

    затем по каждому делай запрос отдельно, добавляя что это утилита по inference llm и что может значить соответствующая опция, пример:
    spoiler
    в приведенном help файле были ключи приложения для запуску большой языковой модели ии на своих мощностях llama.cpp, что может значить ключ --temp
    ответ:
    В контексте параметров большой языковой модели ИИ --temp означает температуру (temperature) для алгоритма сэмплирования при генерации текста.

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

    Например:

    - Низкая температура (например, 0.2) заставит модель генерировать текст, который более "осмысленный" и склонный к использованию самых вероятных следующих токенов согласно модели.

    - Высокая температура (например, 1.0 или выше) позволит модели генерировать более "креативный" и разнообразный текст, но с большей вероятностью семантических ошибок и непоследовательности.

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

    --mirostat

    `--mirostat` - это ключ командной строки, который управляет использованием алгоритма выборки Mirostat при генерации текста с помощью большой языковой модели в llama.cpp.

    Mirostat (Minimial Regret Optimal Sampling for Text) - это алгоритм выборки для условного генерирования текста, который пытается находить оптимальные завершения с минимальным сожалением (regret) по отношению к заданной функции штрафа.

    Значения этого ключа:

    - 0 (по умолчанию) - отключает использование Mirostat, и вместо этого используются другие указанные алгоритмы выборки, такие как top-k, top-p, повторные штрафы и т.д.
    - 1 - включает использование оригинального алгоритма Mirostat.
    - 2 - включает использование улучшенной версии Mirostat 2.0.

    Когда Mirostat включен, он в основном игнорирует другие параметры выборки, такие как top-k, top-p, tail-free sampling и типичная выборка. Вместо этого он динамически адаптирует распределение выборки на основе целевой функции, используя обучение политики.

    Два важных гиперпараметра для Mirostat:

    1) `--mirostat-lr` (learning rate) - скорость обучения для алгоритма.
    2) `--mirostat-ent` (target entropy) - целевая энтропия выходного распределения.

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


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

    ВАЖНО: важнейший навык, который может понадобиться в ближайшие годы наверное любому человеку, хоть как то работающему с информацией, и тем более программистам, это умение работать и понимание недостатков современного ИИ, хотя бы на базе chatgpt или других компаний.
    Это похоже становится даже важнее чем гуглить (но не вместо, потому что современный ИИ все еще тупит и может напридумывать чуши), поэтому учиться учиться и еще раз учиться.
    Ответ написан
    Комментировать
  • На убутободобном linux установил драйвера wifi, как вернуть родные?

    @rPman
    Универсально, устанавливаешь систему, делаешь резервную копию (на самом деле достаточно создания снапшота, это 1 команда и заранее устанавливать систему на btrfs), затем ставишь свой драйвер с помощью make install, делаешь еще один снапшот, и сравниваешь эти два снапшота, например с помощью diff -ru, или получив список различий чем то типа btrfs-diff (он вместо сканирования всего, будет анализировать буквально различия снапшотов).

    Таким образом ты быстро поймешь, что именно сломано и даже как. Мало того, сломанные библиотеки (когда подменяется файл вместо установки рядом с новым именем) можно откатить с помощью штатного дебиановского dpkg:
    # получить имя пакета, в котором указанный файл, работает только для установленных пакетов, иначе apt-file
    dpkg -S /path/to/your/file

    чтобы переустановить пакет (не советую, так как такие пакеты помечаются как нужные и если они были установлены не вами а как зависимость, то эта информация будет потеряна)
    apt install --reinstall package_name
    либо
    # 1. Скачать пакет
    apt-get download package_name
    # 2. Извлечь содержимое пакета во временный каталог
    dpkg-deb -x package_name_version.deb /tmp/package_contents
    # делать с этим файлами что угодно по одному, в т.ч. копировать
    # либо установить пакет без отметки его важности
    dpkg -i package_name

    Альтернатива, изучать исходники конфига устанавливаемых драйверов и помнить, что огульно ставить что либо в систему с помощью make install очень и очень дурная практика, прямой путь все сломать без возможности восстановить.
    Ответ написан
  • Root Права для телефона. Пытаюсь через один выдать рут права на свой самсунг?

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

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

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

    p.s. и да, вам на 4pda или xdaforums
    Ответ написан
    Комментировать