Задать вопрос
  • Что стоит делать в 16 лет, если планирую стать специалистом в системном программировании?

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

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

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

    А что бы состряпать решение, которое создаст дополнительный рабочий стол windows, подключит к нему второй монитор, дополнительную клавиатуру и мышку, и сделает на рабочих ревизиях многопользовательский терминал (смотри ibik aster) необходимо разбираться во внутренних особенностях и глюках win32 (в т.ч. что там последовательно наломали майкрософт со времен winnt4 до win11), разработать драйвера прослойки (что бы правильно разделять управлени и доступ к клавиатуре и монитору), да еще что бы это работало на одной видеокарте и не требовало по отдельной на рабочее место... в общем вот ЭТО системное программирование.

    p.s. есть мнение, что что бы работать на таком уровне нужно не просто знания, но и соответствующий склад ума, какая то внутренняя мотивация (многие вещи тупо скучно изучать просто так) и возможность это делать продолжительное время.
    Ответ написан
    Комментировать
  • Почему более 100% загрузка ЦП в Docker на сервере Debian с 1 ГБ оперативной памяти VPS?

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

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

    p.s. постарайтесь высоконагруженные вещи выводить из docker, тем более используется виртуализация, т.е. получается каскадная песочница в песочнице, одна отъедает проценты у производительности процессора, другая - у дисковых операций... попробуйте приобрести максимально дешевый bare metall (есть на основе десктопных процессорах, маломощных, с ценами считанные $10-$20, но разницу поймете сразу)
    Ответ написан
  • Какой нужен сервер для приложения для заказа такси?

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

    Техническая сторона почти любого бизнеса это его крохотная часть, в такси важен рынок и немножко маркетинг, отжать в текущих реалиях этот рынок почти нереально, нужно предлагать какие то заоблачные условия, только что бы некоторые водители и клиенты стали этим пользоваться... и делать это достаточно продолжительное время, что бы хотя бы часть рынка себе получить.
    Ответ написан
    1 комментарий
  • Нейросеть или ИИ для создания изображений сайта дизайнов?

    @rPman
    таких не существуют

    есть нейронки текст+изображение -> текст (а тебе нужно текст+изображение -> текст+изображение), но на рабочие задачи там 50 но 50, то не работает, то фигня получается.

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

    @rPman
    К сожалению универсального ответа нет.

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

    @rPman
    100 гигабайт в месяц это околонулевая нагрузка, ее потянет любая vps-ка за $3.
    не думал разместить видео в виде ссылки на файл на своей vps-ке?

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

    Отдельного провайдера выбирать для защиты основного сайта от атак ddos методом - 100500 раз загрузить видео файл.

    p.s. бонусом не будет рекламы, можешь считать сам статистику просмотров как тебе удобно а не облачному сервису, самая низкая стоимость по всем критериям, за хранение, за скачивания... из недостатков, архаичные методы защиты от ddos, но никто лучше youtube тебе по умолчанию этого не обеспечит... ну vk конечно сможет
    Ответ написан
    1 комментарий
  • Взаимодействие приложения такси с сервером в реальном времени, какие протоколы и технологии использовать?

    @rPman
    Это как сравнивать тарелку и посудомойку, ну несравнимые вещи, которые могут существовать вместе.

    Наружу выпускать лучше только http, а это значит Websocket или http/3 WebTransport, особенно если подразумевается браузерный клиент (есть еще webrtc но он тут не нужен).

    На сервере обработку очередей ты можешь организовывать как тебе угодно. Можешь и RabbitMq брать, но не вижу особого в этом смысла.

    По твоему ТЗ (оно скорее всего не полно, но маловероятно что будет что то значимое) у тебя нет особой сложности в разработке... особенно если нагрузка предполагается не высокая, которую способен потянуть один сервер, т.е. одно приложение, которое не нужно делить на ноды, реализовывать их добавление или замену на лету от нагрузки и т.п... но даже в этом случае, я точно помню были готовые брокеры, встраиваемые прямо в веб сервер nginx как прослойка между бакэндом и клиентами, бегло погуглил, есть https://nchan.io .
    Ответ написан
    2 комментария
  • Какую версию Windows выбрать?

    @rPman
    для тупо офисных задач

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

    Ну и только если в списке требований стоит какой-то конкретный софт, который не заработает под linux, только тогда смотри в сторону win.
    -----------

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

    Для 16gb ram и 512gb диска тебе нет нужды что то выключать и тюнить, ты не заметишь никакой разницы.
    Лучший тюнинг скорости - это отключение антивируса, но не рекомендуется тем кто не понимает что делает и не готов следить за этим самостоятельно.

    Ставь windows 10, все необходимое и 'полезное' в нее добавляется майкрософтом до сих пор (но это последний год когда это будут делать), полагаю еще несколько лет эта система будет поддерживаться большинством разработчиков
    Ответ написан
    Комментировать
  • Как уменьшить размер существующего раздела?

    @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 комментарий