• Как отсортировать сообщения в экспорте чата телеги от одного человека?

    @rPman
    При экспорте выбираешь machine readable json, открываешь любимый язык программирования и пишешь программу в 5 строчек - прочитать файл, декодировать json, цикл для каждого собщзения, проверить ник, сохранить сообщение в файл
    Ответ написан
    Комментировать
  • Windows 10 Home. Возможно ли установить Active Directory?

    @rPman
    Там стоит проверка, если версия home то не разрешать входить в домен
    Вопрос не решается установкой софта, нужно изменить именно ревизию (во времена winxp/win7 была утилита, меняющая эту информацию в реестре и большинство софта понимало это верно)

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

    @rPman
    Подойти к клиентам и настучать по голове, чтобы в настройках торрент уменьшил количество соединений с 200 (по умолчанию в некоторых) до хотя бы 50 или лучше 10

    Отлавливать таких мониторингом соединений и ронять им скорость, когда позвонят спросить - объяснить как делать не надо.
    Ответ написан
    Комментировать
  • Почему скорость через VPN не превышает 300 мб при гигабитном канале?

    @rPman
    увеличивай mtu у vpn соединения,
    p.s. процессор (pc) не нагружен когда vps-pc ?

    300мбит это вроде норм для vpn, на таких скоростях скорость процессора важна, лучшую скорость по уму дает WG, так как он работает на уровне ядра и эффективнее использует процессор
    Ответ написан
    8 комментариев
  • Как происходит кеширование, если вызывает функция slow?

    @rPman
    slow = cachingDecorator(slow);после этого slow у тебя уже не прошлая функция а целый класс, в котром прописан вызов старой функции при условии отсутствии данных в кеше (объект в этом классе)

    Заметь, slow без скобок это не вызов функции, а получение ее самой (в терминах c++ ее адреса) и передача этой функции в виде аргумента. Чтобы вызвать функцию, даже если ее адрес в переменной, нужно написать скобки
    Ответ написан
  • Как настроить принтеры по сети, чтобы каждый печатал только на своём принтере?

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

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

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

    @rPman
    Конечно нужно ставить sleep и ждать половину времени, в это время процессор не будет занят. В этом режиме запаздывание отлова пиксела будет до полусекунды.

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

    Для синхронизации можешь использовать следующий алгоритм, у тебя должно быть два интервала чтения пикселов, интервал определяй как
    intval(timestamp/интервал времени (у тебя 1 секунда)) * на этот же интервал + смещение

    смещение у каждого интервала свое (меняется в пределах от 0 до длины интервала, само собой в миллисекундах), твоя задача найти такие значения для смещений, чтобы один интервал возвращал чаще то же самое что другой в последний раз (т.е. был позади во времени перед сменой значений), а это другой чаще новые значения (сразу после смены значений). Т.е. ты сохраняешь последние N измерений со значениями интервалов и boolean (подходит или нет) и считаешь градиент для интервалов (количество true по значениям интервалов), из них уже вычисляешь нужно ли увеличивать интервал или уменьшать на некую дельту.
    Ответ написан
    Комментировать
  • Программный Raid 5 + nwme cache?

    @rPman
    bcache отлично работает, как в режиме кеша только для чтения так и как дополнительный буфер для записей (writeback)
    и это лучший способ способ сожрать ресурс записи ssd диска

    у меня так на очень дешевых комплектующих работала следующая схема linux сервер, специально выделенные медленный hdd + 250гб ssd диск в качестве кеша, полученный ускоренный раздел публикуется с помощью iscsi по гигабитной сети, его монтирует windows машина и на этом диске размещены игрушки (ark будь он неладен 400гб с еженедельными обновлениями по 50-100гб), чуть больше чем за год сожрал 250тб ресурса. Итоговая скорость запуска была примерно в 3 раза быстрее чем если hdd подключить напрямую к windows машине.
    Ответ написан
    2 комментария
  • Как удалить много строк (порядка 500.000) из csv файла в Python?

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

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

    По окончанию работы, если ошибок не будет, старый файл удаляешь (или переименовываешь его в xxx.bak) а новый переименовываешь под старым именем
    Ответ написан
    Комментировать
  • Файл подкачки на другом диске?

    @rPman
    своп настриивается как точка монтирования в /etc/fstab, если тебе автоматически после перезагрузки
    UUID=xxx-xxx-xx-xxx none swap sw 0 0
    UUID=xxx тут способ указания раздела (или всего диска) для свопа, можно указать устройство /dev/sdXY или сразу файл (автоматически подключит loop девайс и будет туда свопаться)

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

    Однократно своп нужно проинициализировать командой
    mkswap устройство

    p.s. на сколько я знаю, уже давно, своп может размещаться в т.ч. по сети (nfs например или nbd), точно помню был пример размещения свопа в vram gpu, есть где то поддержка сжатия данных на лету и тьма чего то еще
    Ответ написан
    1 комментарий
  • Как спарсить данные с TrandingView?

    @rPman
    Данные там лежат в огромном json прямо встроенном в саму страницу, которая грузится без каких либо особенностей, тупо wget-ом, очень странное решение но
    <script type="application/prs.init-data+json">{"FYBZHq":{"context":{"request_context":{"user":{"is_authenticated":true,"is_...}}</script>
    пример FYBZHq►data►news►data►items►0►
    id	:	prime:0273264f867b8:0
    title	:	Результаты торгов акциями в секторе основных торгов Московской биржи
    storyPath	:	/news/prime:0273264f867b8:0/
    sourceLogoId	:	prime
    published	:	1701792002
    source	:	ПРАЙМ
    urgency	:	2
    permission	:	headline
    provider	:	prime
    Ответ написан
    Комментировать
  • Какую видеокарту выбрать для машинного обучения, майнинга, гейминга и 3д-моделирования?

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

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

    Если денег мало, то имеет смысл обратить взор на медленную (еще вопрос на сколько, в играх это ~30%..50% от топовых но для нейронок возможно не так плохо) но с большим объемом vram - nvidia geforce rtx 3060 16gb с ценами порядка 35т.р. когда как остальные решения стартуют от 50т.р. а заканчиваются на 300т.р. (я про потребительские решения, серверные найти вообще нереал и цены там зашкаливают, соотношение цена/производительность у серверных хуже всего)

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

    ВАЖНЫЙ момент! почти все алгоритмы нейронных сетей могут быть распаралелены на несколько gpu (либо легко модифицированы для этого), я имею в виду когда размер самой нейросети такой огромный либо нейросеть маленькая но обучающая выборка большая, отсюда интересный вариант, если нужно больше чем 16гб vram, может оказаться дешевле набить материнку несколькими 3060 (она вообще самая дешевая за гигабайт), и за счет возможности загружать данные в несколько gpu одновременно, это даст интересный буст на решения, которые упираются в pci-e (не говоря о цене, nvidia 24гб начинаются по ценам от 110т.р., а 2x3060 обойдутся в 70т.р.)

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

    upd. минимальное требование по vram к stable diffusion - 3gb (минимальный размер картинок меньше 512x512, batch меньше 4, опции --xformers и --lowvram и невозможность генерации видео), рекомендуется 6Gb

    для генерации видео на stable diffusion нужно минимум 8gb лучше больше

    минимальный размер адекватной языковой модели 7Gb mistral может заработать на 8Gb с 8бит квантизацией, так же я слышал что llama13b тоже работает на 8gb видеокартах

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

    @rPman
    у тебя prices определена как global, добавь global prices в этот метод либо определи prices как мембер класса и убери эту global.
    Ответ написан
    Комментировать
  • Установка программы через wine?

    @rPman
    wine в каких то случаях пытается перенести ярлыки приложений windows -> linux но возможно это работает в каких то неизвестных мне комбинациях DE и версий wine.

    у wine есть понятие WINE_PREFIX, это каталог (по умолчанию ~/.wine/ ) где в каталоге ~/.wine/drive_c лежат файлы windows (там еще есть симлинки на диски, например dosdevices/z: это ссылка на домашний каталог пользователя, можно оставлять свои).

    чтобы запустить приложение, нужно написать wine полный_или_относительный_путь_до_приложения т.е. к примеру
    wine ~/.wine/drive_c/Program\ Files\ \(x86\)/WinRAR/WinRAR.exe

    можно кстати написать
    wine "c:\Program Files (x86)\WinRAR\WinRAR.exe"
    Ответ написан
    Комментировать
  • Как правильно лоигровать ошибки php?

    @rPman
    Не получится, синтаксические ошибки не отловить, так как они появляются до запуска скрипта на выполнение.

    Но если перед запуском приложения выполнить php с ключом -l (--syntax-check) то приложение не будет запущено а только пройдет проверка на ошибки и при наличии она будет выведена, ее можно прочитать
    exec('php --syntax-check main.php',$error_str);

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

    @rPman
    Своя vps, socks proxy на основе ssh тунеллинга и отдельный профиль браузера с настроенным в нем прокси
    Ответ написан
    Комментировать
  • На каком языке программирования писать сервер для игры?

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

    php последние годы стал универсальным, как для запрос-ответных систем так и для приложений непрерывного действия. При этом его скорость работы одна из самых быстрых среди интерпретируемых языков программирования, сравнимо и незначительно быстрее его только javascript (nodejs) но и там с оговорками.

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

    p.s. Объяснить в простом ответе что и как делать невозможно, Сергей П привел отличную аналогию.
    Ответ написан
    5 комментариев
  • Как включить бд в exe и как ей потом пользоватся?

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

    sqlite умеет открывать базу данных в оперативной памяти, соответственно храни дамп своей базы в ресурсах, вот пример на c++ как импортировать и экспортировать memory базу данных, правда он с файлом, но как я понимаю проблем тут не будет работать с техническими потоками на оперативной памяти с помощью Application.GetResourceStream
    Ответ написан
    Комментировать
  • Использование Linux?

    @rPman
    Первая проблема любого linux - это драйвера, пока производители не пошевелятся, доля этой ос будет не выше 3-5% а пользователи будет играть в рулетку - заведется/не заведется.

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

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

    @rPman
    На основе трансформера? Проверь что у тебя токен такой есть.
    Ответ написан
    1 комментарий