Задать вопрос
  • Как заблокировать webm на специфическом домене?

    @rPman
    нужно пилить расширение, для хрома использующее https://developer.chrome.com/docs/extensions/refer... (кстати еще вопрос доступно ли это именно для google chrome, так как разработчики смежных браузеров полноценную блокировку анонсировали)
    c фаерфоксом я пока не понял, внедрили ли они его или нет, обсуждение было в прошлом году
    Ответ написан
  • Где можно скачать точные IP диапазоны?

    @rPman
    не уверен что будут и свежие и точные и бесплатные (выбери только два из трех, ка бы не одно)
    (порядок и сам список случайный, я просто гуглить умею)
    https://www.maxmind.com/en/geoip2-databases
    https://db-ip.com/db/ip-to-location-isp
    https://datarade.ai/data-categories/ip-to-geolocat...
    ...
    почему ты забраковал?
    https://www.ip2location.com/database/db4-ip-countr...

    это даст понимание стоимости требования 'свежие'
    p.s. точно помню у maxmind был какой то фриварный вариант базы, с ограничениями на использование
    Ответ написан
    1 комментарий
  • Как скомпилировать C в FASM?

    @rPman
    Поспрашивай этого перца, часть работы он вроде сделал
    MASM to FASM include file converter V1.06
    inc2inc converts MASM include files to FASM include files. The conversion is limited with function prototypes.


    Еще есть проект, не совсем Си
    https://github.com/bubach/Simple-C

    но судя по 'обилию' информации в интернете, тема это странная и однозначно мало кому нужная.
    Ответ написан
    Комментировать
  • Как сохранять переменные без БД в python?

    @rPman
    Не надо избегать баз данных, они решают сразу миллион проблем

    Но если у тебя нет многопоточности, маленькие объемы то храни в файлах, сериализуя свои данные чем нравится, например последнее десятилетие люди полюбили json (до этого xml был), читабельно человеком, жмется хорошо, достаточно быстрые сериализаторы, универсально и всеми поддерживаются. При запуске кода читай файл в память, десериализуя, а при изменении данных и/или завершении скрипта сериализуй все и пиши обратно. Одно из развития подхода - пиши не в один файл а во много по объектам, воспринимай файловую систему как key->value базу данных (кстати вполне быструю).

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

    @rPman
    кто тебе надоумил отсылать в сокет СТРОЧНОЕ представление размера?
    Encoding.ASCII.GetBytes(buffer.Length.ToString())
    ulong.Parse(Encoding.UTF8.GetString(size))а потом пытаться его отпарсить из UTF8! строки длиной 1024 байта, что там у тебя после твоих циферок будет лежать, одному богу известно, будет похоже на число - приплюсуется к размеру

    отправлять надо фиксированное колчичество байт (даже считать не надо, отправляешь int размером sizeof(int) и столько же читаешь прямо в int
    Ответ написан
  • Как получить кол-во ГБ на жестком диске Linux, используя команду?

    @rPman
    df --output=target,avail
    выдаст буквально путь + пробелы + размер в байтах (-k - в килобайтах, -m - в мегабайтах, -h или H в human readable соответственно по 1024 или 1000)
    можно указать путь до любого файла, оно разберется и выдаст один маунтпоинт (две строки, первая загловок) его файловой системы.

    Есть еще утилита stat, почитай мануал, там можно указать подробноформат вывода, для свободного места там минимум 3 поля
    %a free blocks available to non-superuser
    %d free file nodes in file system
    %f free blocks in file system
    (если честно там для блоков и нод куча разных полей, перемножай, дели, считай, смотри как тебе надо)
    Ответ написан
    Комментировать
  • Как запустить новый пк со старым HDD?

    @rPman
    Если нет никакого понимания, никаких знаний и нет желания учиться и изучать, лучше отнести системник в сервисцентр где тебе за 1-2 т.р. все сделают

    Иначе, начни с простых ответов на вопросы, что за операционная система (linux/win), какая версия (xp,7,8,10,1), архитектура (x32/x64) кто администрировал ее в прошлый раз, были ли какие то отхождения от стандартов (а то я помню для winxp люди меняли место размещения и имена всех системных каталогов, типа windows -> w, program files -> pf и еще более глубоко)

    p.s. если это windows, то нужно записать на cdrom/usb ту же версию и запустить в режиме восстановления, с некоторой долей вероятности в автоматическом режиме оно попробует что то восстановить.

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

    @rPman
    Если данные обрабатываются отдельно, то самая быстрая реализация - записывать в файл в своем формате (даже если это будет построчно сериализованные json), обязательный flush после записи (кеш кстати можно отключить). Индекс строить в оперативной памяти в виде словаря (key->смещение в файле+размер или сами данные, если влезают). При перезапуске приложения после сбоя, файл перечитывается, индекс в памяти заполняется заново. Этот вариант подходит для случаев, когда параллельная аналитика уменьшает объем данных в этом файле, перенося их в базу данных (в этом случае нужно параллельно обновлять индекс в памяти основного приложения и при его перезапуске учитывать что именно читать из файла а что нет), один из способов реализации уменьшения размера файлов - хранить его кусками от времени, удаляя старые (при этом нужные данные повторно отправлять в систему, в общем дальше от задачи).

    Решение с таким лог-файлом (или несколькими, например по одному на процесс/поток/ноду, тогда не понадобится синхронизация записи) и индексом в оперативной памяти будет давать считанные миллисекунды на операцию (упираться все будет в iops диска), если совсем труба, исключай файловую систему и пиши прямо в блочное устройство (выгадаешь еще 3х-10х ускорения)

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

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

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

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

    Что за игра у тебя? что за ос?
    Ответ написан
  • Как заставить 3G роутер работать не терять коннект под нагрузкой?

    @rPman
    Если это не ограничения провайдера (в России мобильные стали достаточно давно эти ограничения врубать особенно на безлимитных тарифах)

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

    upd. почитай форум там были советы от загрузки последней бета версии прошивки до... кто то там открутил одну из антенн и разрывы прекратились.
    Ответ написан
    Комментировать
  • Если купить в гугл диске 5тб и расшарить на условно 50 человек?

    @rPman
    увы, будет тратиться их место

    https://support.google.com/drive/answer/7166529
    Объем свободного пространства в хранилище уменьшается у пользователя, загрузившего файл, а не у владельца папки.


    p.s. вообще то будет тратиться место только для заново загружаемых файлов, но вот редактирование файлов (как минимум документы google docs) будет тратить место того кто изначально загрузил файл.
    Что будет с местом если файлы редактируются через расширения, хз, надо изучать их способ работы
    Ответ написан
  • Почему видеокарта не нагружается в играх?

    @rPman
    На рабочем столе видеокарта грузилась на 100%. После переустановки винды данная проблема пропала
    на каком рабочем столе видеокарта грузилась на 100%?

    Видеокарта и не должна быть нагружена полностью. Полную нагрузку дают бенчмарки или такие задачи как майнинг или работа нейронных сетей (тот же stable diffusion на 90% нагружает)
    Ответ написан
    Комментировать
  • Скачивания файлов (в браузере) с FTP сервера через VPS?

    @rPman
    ftp худший способ, работает медленно, веб сервером не поддерживается
    купил FTP сервер
    где же такой ужас нашел
    p.s. fuse mount будет глючить, проверено, любой косяк даже малейший с сетью до ftp и вся машина висит и ожидает таймаут.

    Ищи способ раздачи файлов по http, тогда nginx поддерживает проксирование, в т.ч. с авторизацией

    При наличии полноценной vps-ки можно настроить nfs, не самый лучший способ (возможно я плохо настраивал, у меня было медленно) зато универсально и из коробки поддерживается всеми linux

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

    Полностью аналогичное nbd решение - это iscsi сервер (на linux рекомендую использовать istgt, очень простая и легкая реализация, другие кушают процессор), в этом случае его может подключить и windows машина.

    Так вот главный момент, подключив медленное блочное устройство в linux можно поверх него добавить кеширование на локальный диск меньшего размера, например с помощью универсального bcache (есть еще старый lvcache), так же файловая система zfs умеет штатно кеширующие устройства для кеша на чтение. В общем возможности очень гибкие.
    Ответ написан
    4 комментария
  • Как написать программу на питоне которая описывает решения выражения?

    @rPman
    какой курс университета эта задача?
    очень интересная

    для начала нужно определить правила, буквально перечислив ситуации когда так надо делать:
    умножение на 9: число умножается на 10 и вычитается это же число

    чтобы на 11 умножить двузначное число нужно
    сложить его цифры и записать результат в середину...

    возвести количество единиц в квадрат если получилось однозначное
    число дописать 0 слева


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

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

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

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

    В твоем случае водящие числа это твой набор, а выходящие - одно число.

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

    В некоторых случаях можно умножить обучающую выборку, генерируя дополнительные данные, например у тебя количество чисел во входящей последовательности 5, но понять ее можно уже по 4-ем, тогда можно создать из каждой последовательности по две более коротких, используя подпоследовательность, для первой итоговое число будет 5-ое число последовательности, а для второй первое число входной последовательности будет второе число оригинальной. Для твоих 100 чисел можно попробовать брать 50 чисел, и сделать 49 обучающих записей на основе одной известной

    p.s. задавай вопрос chatgpt, он иногда выглядит умным, например угадал последовательность фибоначи, где числа умножены на 2 (для простой последовательности он легко все понимает, так как это было буквально в его обучающей выборке)
    Ответ написан
    Комментировать
  • Как сделать трансляцию экрана через сокеты в C#?

    @rPman
    ты хандлер сокета клиента закрыл сразу после отправки
    убери handler.Close();

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

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

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

    так же GetChannelDifference вызывает метод MessageRange(min_id=update.message.id,max_id=update.message.id) очивидно сделано неправильно, этот метод грузит только ОДНО сообщение, а нужно сохранять id старого сообщения и делать min_id равным им.

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

    p.s. в этом сила опенсорс, есть ошибка, ее можно найти, понять исправить и по возможности отправить патч в менйстрим
    Ответ написан
    Комментировать
  • Есть wayback machine с заточкой для продактов?

    @rPman
    погугли: web archive alternatives
    там куча продуктов, но мне кажется они не такие крупные

    сомневаюсь что такая узкая задача будет реализована, так как веб архив достаточно дорогое удовольствие.ю Что именно тебе нужно (что такое 'профильная заточка') у web.archive.org точно знаю есть api, возможно можно реализовать что то поверх него?
    Ответ написан
  • Откуда внезапная нагрузка на сервер?

    @rPman
    Смотри что выполняется в базе show processlist, в идеале профилируй все запросы, смотри какие больше всего времени выполняются, сделать это можно как на стороне приложения (бакэнда), особенно если используется какая то прослойка для базы данных, так и средствами базы данных, гугли mysql slow query log (на самом деле там куча способов проанализировать работу но чаще удобнее это делать со стороны бакэнда)

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

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

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

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

    Потрать все видеокарту nvidia rtx 3060 или 2060 (выбирать из доступных больше vram), плюс на остаток купи ssd по больше размера. Почему nvidia и больше памяти? чтобы была потенциальная возможность поиграть с нейронками (хотя 8гб хватит на многие, лучше брать на вырост)
    выбирать сверху вниз по убывании стоимости за скорость
    xdqlyxnammcbizluz3fi5c-crsm.png
    Ответ написан