Задать вопрос
  • Как уменьшить размер существующего раздела?

    @rPman
    Скажу как я делал на linux, на vds где нет доступа к консоли по vnc (мне нужно было сменить файловую систему root с ext4 на btrfs).

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

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

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

    @rPman
    https://help.ea.com/en/help/the-sims/the-sims-4/th...
    Minimum requirements
    Operating system: 64-bit required. Windows 10.
    Полагаю обновление ломает совместимость. Такие вещи обычно специально проводят, что бы полностью исключить пользователей с win7, поищи, может кто то проверку сломал в обновлении?
    Ответ написан
  • Litecoin Core: приём, отправка, баланс - что к чему?

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

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

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

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

    Подчеркиваю, wallet.dat это просто информация о транзакциях, в т.ч. не потраченных. Ты можешь размещать один и тот же адрес (в любых комбинациях) на разных кошельках и итоговый баланс на каждом будет свой, собираться из балансов этих адресов. Ты можешь даже потратить 'одновременно' монетки с одного и того же адреса в разных кошельках, но подтвердится сетью только один из них, но вот какой - зависит от кучи факторов, это называется двойная трата и ее можно использовать что бы разблокировать подвисшую транзакцию из-за слишком маленькой комиссии (например не включили replace-by-fee), отправив другую транзакцию с некоторыми входами первой с бОльшей комиссией (считается за килобайт а не в целом).

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

    В общем ответ на твой вопрос да, нужно в последний wallet.dat добавить адреса из предыдущего, предварительно экспортировав приватные ключи.
    dumpprivkey, importprivkey, importaddress
    Ответ написан
    7 комментариев
  • Как грамотно деплоить тг бота? Как сделать так, что даже когда он на доработке, он не молчал а присылал отбивку а ля "сервисное обслуживание"?

    @rPman
    ТГ это по факту веб сервер + сервис в интернете, к которому доступ исключительно по http.

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

    @rPman
    топ 10

    901https://qna.habr.com/q/4143162017-04-06 12:15:182019-04-08 10:04:14
    258https://qna.habr.com/q/5260202018-04-27 10:52:492021-05-27 20:47:52
    221https://qna.habr.com/q/774982014-03-11 12:49:312014-03-11 19:46:01
    207https://qna.habr.com/q/3533072016-09-13 10:39:452017-06-16 13:56:25
    192https://qna.habr.com/q/1671912014-12-23 15:45:032024-07-24 21:04:54
    164https://qna.habr.com/q/7494992020-04-12 17:16:532020-04-19 00:09:49
    160https://qna.habr.com/q/4647972017-09-28 07:18:122017-12-23 10:35:23
    152https://qna.habr.com/q/2299182015-07-06 23:56:392018-04-05 17:22:25
    152https://qna.habr.com/q/4656572017-09-30 22:58:182017-12-11 07:51:15
    148https://qna.habr.com/q/3219442016-05-22 21:46:322024-07-11 12:40:50

    топ 300

    upd. опс, это только комментарии на ответы, я забыл про комментарии на сами вопросы
    ошибся, речь в вопросе про хабр была
    Ответ написан
  • Как проверять доступ, если $_COOKIE и $_SESSION недоступны?

    @rPman
    Храни все данные в url (это $_GET параметры), вместо обновления делай переход/

    Еще момент, зачем ты обновляешь страницу, когда все связанное с авторизацией ты уже сделал? Код авторизации должен быть в самом начале, что бы не было нужды его перезапускать
    Ответ написан
  • Почему busybox wget не работает, пока не запустить вручную openssl?

    @rPman
    По больше бы таких интересных вопросов.

    Задал ваш вопрос openai:o1-preview, ответ выглядит очень логичным:
    Вызвано недостаточной энтропией в генераторе случайных чисел (RNG) вашей минимальной системы.
    В системах Linux безопасные операции, такие как установление SSL/TLS-соединений, требуют случайных чисел, сгенерированных из системного пула энтропии.
    В вашей минимальной системе очень мало активности для генерации энтропии (например, нет дискового ввода-вывода, сетевой активности, пользовательского ввода), поэтому пул энтропии мал.

    Когда `wget` пытается установить HTTPS-соединение, он полагается на эту энтропию. Если ее недостаточно, библиотека SSL не может сгенерировать необходимые случайные значения, что приводит к сбоям соединения, таким как «Сброс соединения одноранговым узлом».
    ...
    Когда вы запускаете `openssl s_client`, он выполняет операции, которые помогают накапливать энтропию.

    **Как это исправить:**

    1. **Убедитесь, что `/dev/random` и `/dev/urandom` существуют:**
    - Убедитесь, что в вашей системе есть эти устройства:
    ```sh
    ls -l /dev/random /dev/urandom
    ```
    - Если их нет, создайте их:
    ```sh
    mknod -m 666 /dev/random c 1 8
    mknod -m 666 /dev/urandom c 1 9
    ```

    2. **Заполните пул энтропии при запуске:**
    - **Используйте демон сбора энтропии:**
    - Включите в свою сборку такой инструмент, как `haveged` или `rng-tools`. Эти демоны генерируют энтропию на основе таймеров или аппаратных ГСЧ.
    - Например, с `haveged`:
    - Скомпилируйте и установите `haveged` в свою систему.
    - Запустите его при запуске:
    ```sh
    haveged -w 1024
    ```
    - **Ручное заполнение энтропии (менее безопасно):**
    - Если добавление демона невозможно, вы можете вручную заполнить энтропию (обратите внимание, что это менее безопасно и не рекомендуется для производства):
    ```sh
    dd if=/dev/urandom of=/dev/random bs=1 count=512
    ```
    - Эта команда записывает случайные данные обратно в `/dev/random`, помогая заполнить пул энтропии.

    3. **Проверьте уровни энтропии:**
    - Отслеживайте доступную энтропию:
    ```sh
    cat /proc/sys/kernel/random/entropy_avail
    ```
    - Значение ниже 100 может привести к блокировке или сбою операций SSL.

    4. **Используйте аппаратный генератор случайных чисел (если доступен):**
    ...

    Посмотри, что показывает cat /proc/sys/kernel/random/entropy_avail
    Ответ написан
    3 комментария
  • Что такое Root права на Android?

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

    @rPman
    С гарантиями на этот вопрос можно ответить только проведя полный аудит приобретенного кода
    Ответ написан
    3 комментария
  • Как ускорить яндекс браузер?

    @rPman
    Для начала необходимо выявить причину тормозов.
    Нужно открыть консоль разработчика F11 на вкладке сеть и смотреть, какие запросы долгие (там видно будет подробно сколько времени занимал dns запрос, сколько tls шифрования, получение и ожидание ответа сервера)
    nfedy2q3-cvdtdyazzwh5ztnvcu.png
    В данном примере Заблокировано - это ожидание браузером выполнения других запросов, например ожидание лимита одновременно исполняющихся. Отправка и Получение это вина ширины канала у тебя и на сервере, Ожидание - это время выполнения скрипта на сервере, вы повлиять не можете.

    И уже исходя из этой информации, принимать решение. Например задержки в TLS и DNS решаются сменой провайдера (эти задержки создает DPI, с помощью которого идет слежка за пользователями и блокировки, обычно коряво реализованный или просто не хватило денег на 'нормальное' железо)... Сделать это можно приобретая адекватный VPN или прокси сервер (есть примеры, когда приобретение vpn/vps в пределах той же России, лаги исчезают, т.е. у одних провайдеров DPI медленный а у других быстрый, но все познается в сравнении).

    Если проблема в самой скорости интернета, низкая его пропускная способность и высокие пинги, то тут спастись можно только выносом рабочего места на удаленный vps, и подключаясь к его экрану (удаленное управление)... лаги интернета тут будут ощущаться совсем не так же как лаги в браузере, например мультимедиа и анимационный контент будет тормозить сильнее не в процессе загрузки а в процессе показа,.. но очень неплохо это решает плохо написанные сайты, у которых контент многомегабайтовый (не картинки а буквально скрипты и html что абсурдно но такова жизнь, компании тупо экономят на веб разработчиках). Так же этот способ будет ощущаться по разному в зависимости от выбора протокола/способа подключения (два больших направления - передача экрана как видео поток - teamviewer/anydesk/rustdesk/steamlink и прорисовка элементов под контролем сервера rdp/x2go/...)

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

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

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

    Переключение между OS - это пара минут (при использовании fast startup или hibernation, не закрывая приложения - секунды, но внимание, в этом случае не должно быть общих дисков у установок, т.е. подключенные диски в управление дисками должны не пересекаться - для каждой установки свои)

    Для удобства настроек устанавливай каждую ОС на свой диск (физическое устройство), тогда hibernation настраивать будет проще.

    Повторюсь, hibernation при использовании не завершает работу с диском корректно, и другая ОС может это увидеть, или сломать, если подключить этот 'не закрытый' диск для работы... настроить реально (в реестре опцию NoAutoMount).
    Ответ написан
    1 комментарий
  • Получение баланса кошельков?

    @rPman
    Правильно, поднять свою ноду geth (етсь и другие) в режиме light node (не хранит блокчейн, только анализирует новые блоки) и работать с официальным api (примеры простых запросов) или же поискать библиотеки 'все включено'

    Недостаток - нода должна работать постоянно и потреблять процессор и немного оперативной памяти (я давно не изучал, возможно light node позволяет пропускать выполнение/проверку всех контрактов в блоке)

    p.s. недостаток light node в пониженной надежности, если соседние ноды будут злонамеренными, они могут задержать информацию о транзакции, а при наличии ресурсов, даже совершать атаку на протокол (нужно много денег и мотивации на это, но не 50%+1), и даже в этом случае есть способы это отследить
    Ответ написан
    2 комментария
  • Как установить Alt Linux На Ноутбук Aquarius CMP NS483?

    @rPman
    Видеокарта встроенная intel, но даже последний ubuntu livecd не работает как ожидается? советую попробовать установить минимальную ОС без графической оболочки, а затем шаг за шагом вручную добавить в нее xserver и соответствующие драйвера, например из оф репозитария intel (возможно понадобится что то конкретно для alt linux ковырять я хз)
    Ответ написан
    Комментировать
  • Linux mint восстановление x11 из командной строки?

    @rPman
    Если wayland был установлен по похожей инструкции то достаточно удалить пакет wayland в консоли recovery (выбрать в grub, ввести пароль root)
    apt purge wayland weston sway mutter
    тут указан список всех пакетов что приведены в статье, но возможно ты использовала что то конкретное. purge в отличии от remove должно удалить и конфигурационные файлы
    Ответ написан
    Комментировать
  • Используется ли двухканальный режим оперативной памяти внутри VirtualBox?

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

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

    @rPman
    Пользуйтесь средами разработки, поддерживающими php и xdebug (или аналоги).

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

    А так есть еще такие Atom, Netbeans IDE, Komodo IDE, Aptania Studio,..
    Ответ написан
  • Возможно ли парсить разные сайты одним скриптом?

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

    Что бы скрипт решал такую задачу, тебе нужно формализовать постановку задачи, т.е. описать задачу таким образом, что бы она была математически строгой, и машиночитаемой.
    spoiler
    Отличным примером можно представить задачу выявления рекламы... если кто то определит, на каждом веб сайте, что является рекламой, определив ее специально созданным языком css selector, и опубликует эти правила на специально тиражируемом публично списке, то приложение 'блокиратор рекламы', использующее эту информацию будет решать задачу, схожую с ней. Но нужно понимать, что это приложение не может работать без толпы людей, которые эти правила создают, т.е. это только часть системы.

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

    p.s. как только мультимодальные ИИ будут способны адекватно понимать содержимое веб сайтов, их можно будет использовать для решения твоей задачи, с постановкой правил на неформальном, человеческом языке, с не 100%-тной вероятностью успеха само собой.

    Сейчас от этой низкой вероятности успеха отнимается еще некоторый процент некачественного ИИ в наличии.

    Настоятельно рекомендую попробовать поработать с топовыми claude sonnet или openai gtp4o, подсовывая ей html код страницы одновременно со скрином, выделив на нем искомые области и описывая словами задачу построения приложения для выявления нужных элементов (само собой примеров должно быть несколько), поработав так и поняв как косячит современный ИИ в этой задачи, ты начнешь понимать сложность проблемы.

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

    @rPman
    https зашифрованный трафик, в зависимости от версии протокола и настроек на веб сервере, позволяет определять (и соответственно блокировать) доменное имя в https сессии (одно подключение может передавать несколько запросов) но не сам url.

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

    Сомневаюсь что именно так делают для блокировки, но вот для анализа трафика да, например выявление vpn, скрытых за обфускацией через https трафик... собственно повальное использование vpn позволяет сейчас провайдерам собрать статистику и разработать методики по этой блокировке.

    Железо для этого требуется не слабое и не дешевое.

    p.s. Есть проще подход, если на машине пользователя установлен юридически подконтрольный браузер, если на машине установлены корневые сертификаты того кто желает проводить блокировки и используется злонамеренный dns сервер (можно делать атаки man-in-the-middle подменяя содержимое сайта), то разбор того, где ходит пользователь и соответствующая блокировка - технически решаемый вопрос.
    Ответ написан
    Комментировать
  • Как скачать запись вебинара с платформы МТС Линк, если у меня есть только ссылка на запись проведенной лекции?

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

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

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

    Возможна ситуация, когда этот файл-список формируется скриптом.

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

    p.s. в простых же ситуациях, видеофайл будет в виде одного файла, и его сразу будет видно в списке запросов.
    Ответ написан
    1 комментарий