Задать вопрос
  • Как выйти из цикла в другой функции?

    @rPman
    в 3.5 версии python завезли async/await

    и вообще избавляйся от синхронных вызовов и переделывай все на асинхронные
    Ответ написан
    Комментировать
  • Помoгите с выбором проца и видяхи для фото/видео/3D?

    @rPman
    В современных реалиях, начальная видеокарта может быть минимум nvidia gtx 3060 12gb vram с ценой порядка 32..35т.р.

    Это младшее решение без современных технологий геймдева (сомнительных если что) но:
    * позволит играть на высоких (не ультра) настройках FullHD все игры (порядка 40-60fps по просадкам)
    * 12gb vram позволит играть с нейронками типа stable diffusion (в т.ч. генерация видео), когда как 8gb (типовой конфиг mid-end) это на грани (6gb минимальные требования но к примеру генерацию видео уже не тянет)
    * соотношение цена-качества в россии имеет заметный перекос именно на этой видяхе

    Но нужно помнить это младшая линейка и устаревшая модель, с ней не получится расслабиться в 4k или 120fps, т.е. рабочая лошадка которая имеет смысл если не хватает на топовые модели (там надо от 70т.р.)

    В мир AMD можно найти по лучше и подешевле, но будет поставлен крест на нейронках, плюс все еще возможны проблемы с CAD софтом (у тебя заявлено требование 3d моделирования, мало ли в какой программе)
    Ответ написан
  • Зачем задавать ip интерфейсу?

    @rPman
    * ip адрес можно задать только интерфейсу
    * таких адресов на интерфейсе может быть от 0 до нескольких
    * на хосте инерфейсов может быть несколько
    формально можно одинаковые ip адреса на разных интерфейсах, это по умолчанию работать не будет но есть свои нюансы где это можно использовать

    У хоста может быть имя (dns, т.е. имя = ip адрес) и там еще netbios маячит майкрософтовский (по уму оно может работать без tcp/ip в пределах локальной сети но что то мне говорит это уже не так со времен winxp или даже win9x).

    Теперь к вопросу зачем задавать ip адрес - чтобы до машины можно было бы в принципе достучаться. Весь tcp/ip говорит что сервис на машине слушает соответствующий ip адрес и порт, нет адреса нечего слушать.

    p.s. Если ip адрес не задавать, такую сеть все равно можно использовать, например если два или больше интерфейса объединить в сетевой мост, формально достучаться до хоста можно будет по mac адресу (не tcp/ip) а так же специальным по можно мониторить пакеты, проходящие через мост.

    p.p.s. еще есть броадкасты, их в tcp/ip рассылают всей локальной сети скопом, для получения таких пакетов ip адрес тоже по уму не нужен, но софт на машине должен мониторить интерфейс особым образом (плюс если в сети есть свитчи, они могут собирать информацию о том какие машины с какими mac адресами в каких локальных сетях сидят и оптимизировать трафик, чтобы зря не слать тем кому не следует).
    Ответ написан
    7 комментариев
  • Как заблокировать возможность делать скриншоты на моем сайте или хотя бы по нажатию на PrtScn возвращать серую картинку вместо изображение сайта?

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

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

    p.s. правильно тебе говорят, что если что то ты видишь глазами, значит ты это можешь сфотографировать, записать и проанализировать.

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

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

    Есть ряд лайфхаков (так и пиши в гугл - твоя задача + chatgp + промпт лайфхак), которые позволяют увеличить качество результата:
    0. Помести в запрос максимум информации о твоей задаче, чем объемнее будет вопрос (без воды а именно информация) и чем шире он будет покрывать предметную область, тем легче gpt модель будет формулировать ответ. Сюда же можно добавить информацию, которой точно не было в обучающей выборке.
    1. one shot/multi shot - эта технология очень простая, перед своим вопросом, помести один или более заранее заготовленных примеров вопрос-ответ, в идеале на ту же тему, что и твой основной запрос... топовых результатов по бенчмаркам chatgpt4 достигает при использовании 5 примеров (в смысле именно так ее оценивали в бенчмарке MMLU где она набирает 86 балов (человек 60, специалист в узкой области 90, llama2 68.9).
    2. Think step by step - добавление похожих на эту просьб в запрос (можно поэкспериментировать) заставляют модель формировать ответ в виде пошаговой инструкции, это очень похоже на то как человек мыслит, ведь не сразу ответ приходит а идет пошаговый процесс. Как ни странно это очень сильно увеличивает качество результата

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

    @rPman
    Ты как будто отсутствовал последний год и пропустил бум ChatGPT. Этот алгоритм нейронных сетей (Generative Pre-trained Transformer) был разработан в 2017-ом 'гуглом' и 'доведен до ума' публично в OpenAI (их chatgpt4 сейчас самый продвинутый универсальный генератор текста, проявляющий признаки интеллекта).

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

    На текущий момент самая крутая из доступных нейронных сетей (доступные предобученные веса сети), которую можно доучивать под свою задачу или даже пользоваться как есть, - это фейсбуковская llama2 (бесплатная, с очень либеральной лицензией, позволяющая коммерческое использование), ее можно запускать на процессоре на десктопной машине с меньше 64гб ram (скорость от 1токен в секунду, слово это 1-7 токенов) с помощью llama.cpp или на машине с GPU, суммарной емкостью vram от 80Gb (я не нашел точные минимальные требования, квантизация 8бит доступна в штатном коде llama а 4-битную тоже можно но я не уверен какие проекты уже поддерживают llama2).

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

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

    Но если взять уже обученную сетку (веса) собрать небольшой датасет текстов под свою задачу, то тюнинг будет достаточно дешевым, вот еще со старой llama так делали
    Ответ написан
    1 комментарий
  • Почему не могу объединить разделы на флешке?

    @rPman
    Чтобы увеличить раздел, необходимо чтобы справа от него (после него) была не размеченная область (не нужно создавать нового раздела), затем выбрать в меню раздела 'расширить'

    'объединять разделы' это на сколько я знаю другое - это про создание програмного raid массива
    Ответ написан
    Комментировать
  • Что почитать про диски (HDD, SSD) и файловые системы, желательно какое-то системное описание?

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

    1. Случайный и многопоточный доступ - принципиальная необходимость задумываться об этом исходит из физической особенности накопителей, последовательный доступ от случайного (имеется в виду как у hdd так и у ssd (в меньшей степени, зависит от размера читаемого блока кластера, потребительскиее ssd это 256кб) значительно отличаются (на порядок или даже два) по времени. Аппаратные контроллеры на материнской плате и даже на диске (или драйвера и планировщик ос) могут физически считывать данных больше чем потребуется (read ahead), делая это фоном, после запроса и сохраняя в своей памяти.
    Если несколько приложений одновременно потребуют данные с разных областей устройства хранения, специальный планировщик ос может приостанавливать работу этих приложений, собирая как можно больше запросов на данные, сортируя их для оптимальной их обработки. Пользовательское приложение может делать это значительно эффективнее, если заранее озаботится о том, как именно данные будут храниться на диске (обычно речь идет о хранении данных минуя файловую систему).

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

    3. Кеширование (буферизирование) записи - приложение может управлять, стоит ли ждать окончания физической записи данных на диск или это можно сделать фоном или даже отложить на потом. Например fflush позволяет принудительно сбросить буфера при использовании fwrite (и других от stdlib), более низкоуровневые вызовы позволяют точнее управлять процессом. Помимо инструментов управления кешированием на уровне приложения есть способы настроить это на уровне ОС (например ext4 позволяет настроить стратегию записи data=writeback, это делает файловую систему уязвимой к сбоям но значительно ускоряет запись, так как даже fflush из приложения не будет ждать окончательной записи), так же разные сетевые файловые системы могут накладывать дополнительные ограничения (точно помню что nfs обрабатывает fwrite по другому в отличии от локальных записей, делая больше лишних действий на диске)

    p.s. про mmap, меанизмы ОС (как linux так и windows) позволяет вместо работы с файлом по кусочкам (fopen/fread/fwrite/...) 'замапить' указанный файл или даже раздел/диск на область памяти, при доступе к которой прозрачно будут совершаться чтения и записи на диск. Этот способ работы с файлами зачастую самый производительный (кстати по умолчанию используются на исполняемый файл приложения и .dll/.so) и очень часто еще и удобнее, так как кеширование данных будет произведено средствами ос, и при повторном запуске приложения данные уже будут в памяти (при обычном fopen их пришлось бы считывать в память, т.е. копировать что дает 2x накладные расходы на процессор).

    -------------

    4. Файловые системы это уровень абстракций ОС, значительно добавляет накладные расходы на работу с данными но за счет удобства (например возможность расширить хранилище без полного копирования данных, просто увеличив размер раздела или добавив новый накопитель, как это позволяют файловые системы - комбаины типа btrfs/zfs), разные файловые системы организуют хранение по разному, что значительно влияет на скорость как записи так и чтения.
    Например cow файловые системы (xfs/zfs/btrfs) каждое последующую запись делают последовательно, даже если записываемые чанки/кластеры принадлежат разным файлам, даже если это модификация а не добавление в конец, что благосклонно сказывается на скорость записи но отвратительно фрагментирует размещение файлов на диске (там есть механизмы борьбы с этим), т.е. для хранилище файлов разного размера, считываемых/изменяемых целиком такие файловые системы идеальны, но для баз данных наоборот очень неэффективны (в таких фс можно принудительно отключить cow для определенных файлов). btrfs/zfs за эти накладные расходы (незначительные) дают бонусом функционал быстрых снапшотов (почитай про btrfs snapshot incremental backup) и высокую устойчивость к сбоям.
    Еще пример, файловые системы, с целью защитить данные от сбоев, добавили к функционалу понятие журнал, промежуточное место, куда записываются данные (метаданные) до тех пор пока приложение не зафиксирует изменения (закрытие файла или fflush), в нормальных ОС существует возможность разместить этот журнал на отдельном, более быстром, накопителе (например ext3/ext4) или отключить полностью. Это позволяет заметно ускорить запись и не покупать на весь объем данных быстрый и дорогой накопитель.
    Было время, когда можно было буквально (кажется у xfs но я могу ошибаться) указать разные накопители для метаданных (информация о том как файл размещен на диске и информация о атрибутах файлов) и самих данных, что тоже в условиях значительного отличия скорости работы емких hdd и быстрых но не емких ssd, сэкономить на построении хранилища.

    5. Сжатие данных на лету - некоторые файловые системы позволяют прозрачно для приложений пропускать данные через библиотеку сжатия (в пределах кластера или даже нескольких соседних), например ntfs использует compress, а btrfs позволяет выбирать, например zstd (один из лучших по соотношений скорость/сжатие), было время когда включение сжатия на медленных накопителях давала двух-трех кратное ускорение скорости чтения практически бесплатно (а запись почти не замедлялась но повышалась нагрузка на процессор), на современных же накопителях процессор может не поспевать (но есть дорогие контроллеры с таким функционалом).
    Еще есть тип сжатия - sparse files (дырявые файлы), части файла, в которые не производилась запись, физически не занимают место (фактически тратится место только крохотная часть в области метаданных файловой системы), при чтении таких частей будут возвращены нули, так же есть функции по замене ранее записанных частей файла на такие дырки. Такие файлы могут понадобиться, например, когда нужно хранить огромные разряженные матрицы с индексацией по позиции, индекс тут будет использоваться от файловой системы но выигрыш по производительности сомнителен и требует измерений под ваши данные.

    p.s. любая сторонняя библиотека, добавляющая еще один уровень абстракции к хранилищу, может дать выигрыш только если стратегия работы с данными совпадает с той, на что заточена эта библиотека. Например реляционные базы данных дают готовый и обширный функционал по индексированию данных, многопользовательских транзакций но за счет больших накладных расходов на их поддержание. Помню был тут вопрос про хранение терабайтов данных числовой ключ -> крохотное значение (несколько байтов хеш), так вот майкрософтовская sql уже с миллионами записей могла до секунды на запись диском шерстить (тысячи iops), когда как самодельный и примитивный велосипед с одноуровневым индексом по хешу от значения мог дать скорость доступа и записи 1к1 iops накопителя (от 1 вызов к диску на запрос чтения и от 2 - на запись).
    Ответ написан
    9 комментариев
  • Что будет если подключить 4-pin вместо 8?

    @rPman
    4pin cpu power можно вставить в 8pin cpu power слот (неправильно не получится, смотри внимательно на конфигурацию разъема), работать будет но до тех пор пока питание по cpu не превысит возможности блока питания
    Ответ написан
    2 комментария
  • Как подключить 2 внешних монитора к AMD Radeon R4 Graphics?

    @rPman
    Что за ноутбук? Что за ОС.

    удостоверься что проблема не в софте, загрузившись к примеру с liveusb linux (ubuntu/kubuntu) или windows winpe (там будут проблемы с драйверами по этому без гарантий)
    Ответ написан
  • Почему рнн нейронка не обучается нормально?

    @rPman
    Потому что предугадать температуру и скорость ветра по историческим данным простым способом невозможно.

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

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

    Нейронная сеть нормально бы могла бы работать в каких то пределах (например часы) если бы информация была бы полной (не было бы моментов времени когда данные - неизвестны), так же понадобятся 'сырые' показатели а не усредненные (точные сложнее найти, все что доступно это усредненные за период) и скорее всего чтобы получить нормальный результат, понадобится большая и сложная нейронка и большие вычислительные мощности
    Ответ написан
    9 комментариев
  • Шаблонный код: Чем можно удобно генерировать код для автоматизации сборки по шаблону?

    @rPman
    Я использовал php для генерации кода, в т.ч. других языков программирования.
    Это очень простой, легко читаемый, поддерживаемый редакторами (раскраска, автодополнение,...) изначально создаваемый именно как генератор (текстов и html) на основе программируемого шаблона. Поддерживается всеми популярными ос и платформами (различия минимальны, в задачах шаблонизации не существенные)
    Ответ написан
    3 комментария
  • Как сделать вещание аудиопотока на vps?

    @rPman
    По уму не нужно сильно что то симулировать, сам браузер уже целая ОС песочница и в ней уже много что есть... погугли ключ chromium –use-fake-device-for-media-stream и как его с selenium используют.
    Ответ написан
  • Как решать конфликты прав между пользователем, выполняющим деплой, и рутом, создающим файлы через docker?

    @rPman
    Причина проблем в том что github-runner запускает docker из под root с помощью sudo, а дальше все права файлов будут рутовые.

    Необходимо разрешить github-runner запускать docker без sudo (добавить в группу docker, погугли подробности, там есть еще нюансы) тогда все остальное так же можно будет разрулить правами доступа
    Ответ написан
    2 комментария
  • Возможно ли запускать программы (.exe) на самописной OS Cosmos OS?

    @rPman
    Да, самый популярный инструмент - wine.

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

    p.s. пример обратного механизма, запуск linux приложений в windows - wsl (его первая версия, так как вторая - это фактически виртуальная машина)

    p.p.s. когда то очень давно, во времена os/2 и появления winnt4, в windows был встроенный механизм поддержки и приложений из unix операционных систем но был старательно уничтожен майкрософтом во имя зла и монополии (в те времена к примеру win32 запускались в os/2 нативно)
    Ответ написан
  • Как хранятся данные на диске?

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

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

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

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

    @rPman
    Бери nvidia, с ней не будет проблем по работе с нейронками (с amd работает но поддержка хуже и бонус от большего объема vram исчезает), ты в списке это не указан то похоже ты больше дизайнер и художник, тебе это явно будет актуально.

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

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

    Выбери другой источник пакетов php, например на launchpad backports
    Ответ написан
  • Есть ли свободная программа для преобразования аудио в текст?

    @rPman
    https://github.com/openai/whisper
    модель автоматом скачивается, поддерживается куча языков, результат выдает с таймингами в формате субтитров
    Ответ написан
    Комментировать
  • Требуется решение(fs) для линейной записи файлов на диски?

    @rPman
    Btrfs умеет так, так же позволяет добавлять и удалять диски на лету
    Ответ написан
    Комментировать