Задать вопрос
  • Как проверить доступность web ресурса из терминала Linux?

    @rPman
    про curl и lynx уже ответили, добавлю от себя вариант с созданием скриншота
    chromium --headless --disable-gpu --hide-scrollbars --window-size=1280,800 --screenshot=myscreenshot.png http://localhost

    тут же можно замерить время загрузки, правда алгоритм определения окончания загрузки может неверно распознать формируемые на javascript страницы (но он все еще работает в большинстве случаев)
    Ответ написан
    5 комментариев
  • Поиск оптимального маршрута с наимешьшим влиянием на цену в сети ethereum?

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

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

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

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

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

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

    p.s. совет, если есть возможность дешево проводить операции в кредит (с небольшим плечом, x1..x10 но тут с оговорками) можно перед основной сделкой открывать кросс встречную сделку на бирже (пусть соседней), пока на руках удерживаете промежуточный актив. Условный пример, вы покупаете btc за usdt через промежуточную валюту xpoop, т.е. usdt -> xpoop -> btc, увидев что в ее стакане появилась вкусная цена, так вот на время, пока у вас на руках xpoop неплохо было бы на другой бирже открыть маржинальную позицию продажи xpoop за usdt или xpoop за btc на тот же объем, сколько на руках xpoop... по мере продажи xpoop на тот же объем уменьшаете маржинальную позицию, что бы к моменту ее полной продажи позиция закрылась. Зачем это делать? если xpoop продать не получится сразу, то пока открыта маржинальная позиция, она страхует от рисков удержания этого г**на, и дает вам время его продать по другим каналам (при резких изменениях его курса маржинальная позиция даст плюс или минус, противоположный минусу или плюсу цены этого промежуточного актива). делать это нужно только в том случае, если длительность сделки больше чем собственно время открытия сделки. Риски тут - разные цены на маржинальном рынке и на спотовом (где вы xpoop пытаетесь продавать), плюс за удержание маржинальной позиции биржа обычно берет дополнительную палату, а еще таких бирж может тупо не быть для монет со слабой ликвидностью, что тоже является хорошим маркером вообще в них не лезть.
    Ответ написан
  • Могли бы вы посоветовать, где можно потренироваться в написании тестовой документации и улучшить свои навыки?

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

    p.s. лучшее обучение - участие в реальном проекте в команде
    Ответ написан
    Комментировать
  • Где скачать файл "YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf"?

    @rPman
    по ссылке, которую вы же сначала привели https://huggingface.co/yandex/YandexGPT-5-Lite-8B-... а точнее там вкладка files and versions лежит YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf там справа кнопка скачать
    Ответ написан
    Комментировать
  • Есть ли способ сжать данные?

    @rPman
    1. хранение без сжатия, самое простое для реализации - плоские массивы на каждый элемент, типа например структура (int a, int8 b) то нужно создать два массива int[] a и int8[] b (это некрасиво ломает оптимизации кеша работы с ram если данные по каждому объекту нужны целиком сразу, ну и конечно, никто не заставляет так делать со всеми данными, но у вас python вам и так грустно)
    Еще вопрос к python, на сколько я помню для работы с массивами данных там numpy подходит (имеется в виду эффективные операции с данными а не сам доступ)

    Сразу скажу, с упаковкой данных на python работать будет отвратительно неудобно и медленно! Лучше сразу переходить на c/c++ и подключать его как модуль расширения python.

    что бы пропустить что написано ниже - вот пример библиотеки
    https://github.com/ghilesmeddour/gorilla-time-seri...

    2. если этого недостаточно, самый простой механизм сжатия целочисленных данных в массиве, особенно если данные - показания во времени, не сильно меняющиеся (т.е. соседние данные отличаются на значение, занимающее меньше int, то хранить в массиве не сами данные, а разницу от предыдущего (или от базы для блока, базы хранить в отдельном массиве), например последовательсность 12322 12320 12325 12319 можно хранить как:
    первое число 12322 и последовательность -2,5,-6.

    в этом случае случайный доступ не получится, для получения следующего числа нужно последовательно обработать весь массив, но можно кешировать значение базы для каждого N.
    ну или такой:
    база 12322 в виде одного числа, и массив 0,-2,3,-3... числа в этом массиве могут влезать не просто в int а в int8

    Если зафиксировать интервал между смены базы (например каждый 1024 числа), то случайный доступ не будет проблемой.

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

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

    p.s. ключевые слова для гугла - delta encoding, frame-of-reference, time series compression, escape value/exception coding, Apache Parquet, ClickHouse, Gorilla Time Series (честно я сначала описал технику а потом попросил ИИ найти где это используется, ее не проверял но техника очень простая и популярная, да та же квантизация llm рядом стоит)

    upd. Дальнейшее расширение подхода - динамическое изменение количества байт или даже бит на хранение разницы с базой, например мы можем хранить в массиве 1байтовые, 2-байтовые, 3-байтовые разницы и 4-байтовое само число, но вынуждены где то хранить по 2 бита на указание, какое именно сейчас используется, 00 - для int8, 01 - для int16, 10 - для int24 (не советую хранить эти биты в самих смещениях, хотя для 2-байтовых это может быть оправдано, но 4-байтового может тогда не хватить для хранения самого значения)... например отдельный массив для битовых пар, и несколько динамических массивов соответственно для int8, int 16, int24 и int32, но для понимания, по какому адресу какое значение хранится, придется анализировать массив битовых пар, например в нем указано хранение 0,0,1,1,2,0,3 что говорит что 1,2 и 6 числа будут храниться в массиве int8, а 3и 4-ое в массиве int16,.. т.е. такой подход будет эффективно работать для поседовательного чтения но плохо для случайного.
    p.s. variable byte encoding, dynamic encoding, bit-packing, Parquet, ORC, protobuf varints

    как же классно стало с современным ИИ, это гугл на стероидах, он и утверждения проверит, и погуглит алгоритмы и даже предложит куски кода по желанию (само собой придумает половину несуществующих, всегда об этом нужно помнить и перепроверять!)
    https://en.wikipedia.org/wiki/Delta_encoding
    https://www.vldb.org/pvldb/vol8/p1816-teller.pdf
    Ответ написан
  • Есть ли единая система инвентаризации/мониторинга для WIndows и Linux?

    @rPman
    За бесплатно только сам или вот с ИИ что-нибудь 'на пару' сооруди.
    Так как информацию собирать нужно для разных ОС, для каждой придется пилить свой функционал.

    Настоятельно рекомендую за основу доступа к удаленным машинам - ssh, его сервер 'штатно' идет с windows
    dism /Online /Add-Capability /CapabilityName:OpenSSH.Server


    Есть нюансы с правами доступа UAC, если настроено что даже администраторы будут требовать подтверждение, то штатно из ssh сессии поднять уровень не получится, но есть варианты, типа запуска ssh сервера под system аккаунтом или к примеру создать заранее задачу в task scheduler - schtasks /create ... /rl HIGHEST (правда нужно будет настроить доступ к ней только указаному пользователю) и в ней уже выполнять критичные задачи schtasks /run ...

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

    Потом можете выложить это в опенсорс и радовать сообщество.
    Ответ написан
    Комментировать
  • Как можно зафиксировать что с сайта есть запрос на сторонний сервис?

    @rPman
    Можно установить модуль xdebug и добавить логирование вызовов в коде где-нибудь в начале кода
    xdebug_start_trace, который будет сохранять в указанный файл вызовы с аргументами. По пользоваться сайтом и затем проанализировать этот trace файл на строки вида http или вызовы fopen, file_get_content или socket... В общем есть где проявить смекалку
    Ответ написан
    Комментировать
  • Какая хорошая замена мессенджерам?

    @rPman
    https://jitsi.org/
    пока провайдеры массово не станут блокировать webrtc коммуникацию, будет работать децентрализованно, на случай когда это не возможно, поднимается своb stun/turn сервера
    Ответ написан
    1 комментарий
  • Как настроить обращение к url через компьютер-сервер?

    @rPman
    Все зависит от реализации способа запрета выхода в интернет.

    В подавляющем большинстве случаев, простое решение - создать в локальной сети, в которой находится машина, 'на которой работают' пользователи (как пользователи подключаются? это сервер приложений с подключением по rdp или веб сервер 1с, а пользователи работают из браузера?), проксирующий веб сервер (обычный nginx, в котором написан список доменов, которые он проксирует), имеющий доступ к интернету, и настроить локальный dns сервер (или /etc/hosts файл у пользователей, если практикуется ручная правка) с указанием этого прокси сервера на доступный список доменов.

    Но правильно, это менять настройки ограничения доступа в интернет.
    Ответ написан
  • I3-14100 vs i5-10600 в nginx/обработка трафика что лучше?

    @rPman
    single thread и не только производительность говорит безальтернативно что первая модель лучше. i3-14100 тупо новее, работает с ddr5 против ddr4 (а это предельные скорости чуть ли не кратные)... и да, большее количество ядер слабому не поможет.
    Ответ написан
    Комментировать
  • Какое железо выбрать для домашнего сервера?

    @rPman
    Бюджет говорит что вам лучше собирать свое решение на базе десктопных комплектующих.
    Максимизируйте оперативную память (виртуализация и контейнеризация),.. не гонитесь за топовыми предложениями, соотношения цена/качество остается за ddr4 памятью и rysen (но там есть материнские платы с ddr5 конечно). Обязательно nvme m2 ssd, лучше больше. Видеокарта для ваших задач не требуется, поэтому выбирайте модели процессоров со встроенным gpu.
    не воспринимайте как конечное решение, я выбирал по функционалу, цене и совместимости а не качеству:
    материнка (сеть 2.5гбит, 2 m2 nvme слота, matx, 4x ddr и даже 2x pci-e x16 (само собой одновременно в лучшем случае 8x будут работать, в общем задел на будущее для 2х видеокарт для ИИ)
    9500	https://www.dns-shop.ru/product/4f6b45a3f907ed20/materinskaa-plata-asrock-b550m-pg-riptide/
    память 64гб или 129гб
    12400	https://www.dns-shop.ru/product/9c3aa54474b01b80/operativnaa-pamat-gskill-ripjaws-v-f4-3200c16q-64gvk-64-gb/
    34800	https://www.dns-shop.ru/product/840b144a14263332/operativnaa-pamat-gskill-trident-z-rgb-f4-3200c16q-128gtzr-128-gb/
    процессор (наидешевейший из быстрых)
    14500	https://www.dns-shop.ru/product/1bc5cc9cc0c2ed20/processor-amd-ryzen-5-5500gt-box/
    ...
    ssd, корпус и блок питания выбирать по остаткам бюджета и пожеланиям к остальному наполнению (указанное выше железо не требовательное к питанию)

    при выборе ddr5 можно собрать железо быстрее но свободы с выбором оперативной памяти уже будет меньше, т.е. будет тупо дороже.
    напомню, что с ростом объема ram, рабочие частоты сильно падают, особенности материнских плат.
    Ответ написан
    4 комментария
  • Как настроить, чтобы при уходе в спящий режим выставлялись минимальные частоты процессора?

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

    с аппаратной точки зрения это выключение компьютера с 'полным' обесточиванием (usb устройства могут продолжать получать питание, это отключается в биосе)

    Недостаток, при большом объеме ram (64-128гб, но при их реальном использовании, например запущены тяжелые приложения), весь объем будет записан на диск а при включении - считан, на слабых ssd и hdd это может занять заметное время, а так как это запись, то это кушает ресурс ssd диска, для дешевых может быть критично, где весь ресурс считанные десятки терабайт.

    p.s. гуглится такая команда (явно не официальная)
    rundll32.exe powrprof.dll,SetSuspendState Standby
    Ответ написан
  • Как работать из за границы, если рабочий впн работает только в России?

    @rPman
    Каскадный vpn или туннелирование, настраиваешь подключение в российский сектор интернета, и через него подключения уже корпоративный.

    Лучший способ обратиться к работодателю, они же настраивали рабочий ноут
    Ответ написан
    2 комментария
  • Это баг или фича однонаправленность DP--DVI-D?

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

    P.s. dvi-a это стандарт подключения vga аналоговых мониторов dsub, тоже пассивный в обе стороны, и dvi-i оба разъема одновременно, т.е. один и тот же кабель можно использовать для разных подключений
    Ответ написан
    4 комментария
  • Какие есть эффективные средства анализа больших данных?

    @rPman
    gpt ИИ тут никаким боком, абсолютно, даже вреден.
    Эффективный размер контекстного окна топовых ии - 32к токенов (тех кто стоит баксы а не десятые цента за 'диалог'), ну а обычно это 8к токенов (даже если размер контекстного окна заявлен в сотни тысяч или миллион), и даже в этом пределе точность работы 80-90%, т.е. 20% информации может быть потеряна или искажена, что совершенно не подходит для аналитики.
    https://github.com/mnismt/llms-long-context-benchm...
    https://fiction.live/stories/Fiction-liveBench-Feb...

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

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

    @rPman
    Все зависит от того, куда отправляешь сообщение, это основная работа.
    Отправить сообщение в telegram своему боту - это один вызов curl с заранее забитыми параметрами.
    openai:gpt-4.1
    powershell скрипт
    $chat_id = "ВАШ_CHAT_ID"
    $token = "ВАШ_TOKEN"
    
    while ($true) {
        if (!(Test-Connection google.com -Count 1 -Quiet)) {
            curl -s -X POST "https://api.telegram.org/bot$token/sendMessage" `
                -Body "chat_id=$chat_id&text=Ping failed"
        }
        Start-Sleep -Seconds 1
    }

    запускать в фоне, после тестирования, с помощью штатного task scheduler
    Ответ написан
    Комментировать
  • Есть ли смысл переносить систему Windows с ssd формата sata на ssd формата m2?

    @rPman
    Нет, не имеет смысла, windows сам по себе не добавляет нагрузки на диск, достаточной что бы отличить m2 ssd от sata ssd, может только на тот случай, где размещен файл дампа гибернации, отвечающий за скорость включения компьютера (в режиме fast startup), но вопрос тут будет на считанные пару секунд, или больше, если у вас 128гб ram.

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

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

    ну и конечно покупать sata ssd в принципе нет смысла, если есть nvme разъем на материнской плате, sata дороже, тормознее, и в потребительском сегменте даже менее надежны (но это от sata не зависит, просто китайцы плохо там стараются)
    Ответ написан
    Комментировать
  • Почему «Физический размер сектора» нестандартный?

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

    первый же результат из гугла
    Ответ написан
  • Хочу подключить роутер к вузовской сети, но в ней есть фильтр ip адресов. Доступа к административному профилю нет. Сис админы отказывают. Что делать?

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

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

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

    @rPman
    А монитор ли виноват? посмотрите onscreen сообщение (число 200) видно без проблем, а вот за ним косяки, выглядит как глюк либо кабеля либо видеокарты.

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

    p.s. попробуй сменить тип подключения с dp на hdmi, тоже для теста
    Ответ написан
    Комментировать