Задать вопрос
  • Почему процессоры gpu не любят разветвлений в программе?

    @rPman
    не совсем верно это помещать в ответ, я не уверен.

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

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

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

    @rPman
    Чтобы ответить на вопрос 'как хранить?', нужно задаться вопросом 'как будешь искать и читать?'.

    Типовой вопрос - нужен ли порядок в строках и колонках? не спроста ведь ты колонки и строки назвал цифрами. Беда в том что sql не очень эффективно работает с упорядоченными данными (там O(n) = n*log(n) трудоемкости с оговорками) и для того чтобы строки упорядочить, нужно будет либо хранить дополнительное поле для сортировки (иногда хватает pk id с autoincrement но до тех пор пока записи не удаляешь)

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

    Следующий вопрос, нужно ли искать/сортировать по значению. И отрицательный ответ на этот и предыдущий вопрос могут вообще дать ответ - не пользуйся sql.

    Универсальный способ хранения матриц переменной размерности это таблица, где каждая запись - одно значение ячейки, с полями (int x,int y,value) где x,y - номер колонки и строки соответственно. Этот же метод самый неэффективный, особенно когда таблицы большие.

    Таблицы маленького фиксированного размера (колонок), при отсутствии необходимости тосовать порядок колонок в запросе, можно хранить как есть, по одной строке матрицы в строке базы данных, в таблицах (y,x1,x2,x3,x4,x...) где x1,x2,x3 это значение колонок с номерами 1,2,3 соответственно а y - номер строки
    Ответ написан
    Комментировать
  • Проблема с выделением ресурсов виртуалке, как исправить?

    @rPman
    В настройках виртуальной машины смени тип контроллера диска и сетевой карты на virtio-iscsi и для сетевой карты virtio-net, это устройства, работающие без симуляции настоящего, работающие через драйвера и на максимальной скорости

    Для гостя windows почему то штатные guest-additions не устанавливают драйвера для этих устройств, по крайней мере последние версии. Нужно искать в сторонних местах (по ссылке выше например)
    Ответ написан
  • Потребление ресурса записи ssd и как потребление памяти уменьшить?

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

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

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

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

    Многие роутеры, особенно с возможностью подключения диска, умеют запускать торент, так что да, ищи эту возможность там (иногда ее нужно доустановить). Как минимум роутер может расшарить подключенный диск, например по протоколу smb (можно подключить как диск в windows), соответственно в клиенте на компьютере можно так же настроить каталог для загрузки файлов на этот сетевой диск, но нужно понимать что даже гигабитная сеть в сумме даст 100мбайт/сек (а по smb даже меньше) а роутеры не очень производительны и скорости будут заметно ниже.
    Ответ написан
    Комментировать
  • Что более надежное VNC и RDP?

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

    Второе различие качестве реализации, vnc (и всякие anydesk/teamviewer/steam remote/.., основанные фактически на том же) транслируют содержимое экрана без привязки к его обновлениям (с оговорками), когда как rdp в основе своей работает с фактическими обновлениями win32 gdi (правда там наплодили версий и последние серверные могут гораздо больше чем просто их трансляция), в результате на слабых линиях связи и не графических приложений (перерисовывающих весь экран постоянно) rdp может оказаться отзывчивее чем vnc... с другой стороны какой-нибудь steam remote при хорошей ширине канала и низким пингом даст будет эффективнее и менее лагучий для сложных приложений.

    Теперь по поводу надежности - очень важно, настраивать инфраструктуру максимально защищенной и отделенной от интернета какой-нибудь специализированной прослойкой, типа VPN или ssh (например в linux x2go из коробки работает с ssh), любой сервис, открытый в интернет без защиты - это +1 к уязвимости, еще одна вероятность появиться багу и дополнительное время на ожидание его закрытия.

    p.s. rdp в windows очень лакомный кусочек для хакеров, а зная как майкрософт лажает из года в год, ставить на то что это будет надежно я бы не рекомендовал.
    С другой стороны у vnc тьма реализаций (приложений клиент и сервер), и скорость исправления багов (и ответственность за это) в них значительно ниже чем у майкрософта.

    поэтому поставь vpn по надежнее
    Ответ написан
    1 комментарий
  • Разделение ответственности или производительность?

    @rPman
    Дублируй, это не недостаток, а прямое следствие оптимизации
    Ответ написан
    Комментировать
  • Какими из этих трех искробезопасных реле (преобразователь сигналов) можно закрывать и открывать задвижку?

    @rPman
    один из вариантов - реле внутри герметичного корпуса, да еще и газ какой-нибудь типа аргона (но это оверкил, дешевле полупроводниковый использовать)
    Ответ написан
    Комментировать
  • Как ввести логин в окно входа в Steam?

    @rPman
    Потому что твой xpath явно неверный (ты не указал весь код)
    <input type="text" class="newlogindialog_TextInput_2eKVn" value="">
    ...
    <input type="password" class="newlogindialog_TextInput_2eKVn" value="">

    Правильно - ищешь все input без фильтра и каждый проверяешь на подстроку в названии класса и значение type, еще можно искать по координатам, запрашивая у каждого getBoundingClientRect, пропуская заодно с нулевым размером
    Ответ написан
  • Возможно ли эмулировать данные о компьютере отдельно для определённой программы?

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

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

    @rPman
    Свое приложение, некоторые довольствуются сырыми http запросами api telegram.

    Нужно различать разные типы сущностей в телеграм:
    1. бот
    2. канал - это поток сообщений от имени аккаунта канала
    3. группа - это чат, в котором могут общаться другие участники (возможны выверты когда забанены все кроме админа)
    4... есть еще приватные чаты, субгруппы, чаты сообщений канала, группы разного уровня объема (они по разному мониторятся, точнее так было раньше, возможно сейчас все свели к одному)

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

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

    Посмотри например python-telegram, примеры вполне понятные даже тем кто питон в первые в жизни видит

    p.s. ну на go еще есть, неожидал что есть активность в репозитории для php и т.п. ищи там по тегам telegram-api, mtproto-api или tglib
    Ответ написан
    Комментировать
  • Может ли слететь биос после переноса системы в другой корпус?

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

    Есть ещё один кандидат на проверку - это блок питания.

    Лучший способ это проверить, отнести в ремонт на диагностику, стоит обычно это пару сотен рублей.
    Ответ написан
  • Как из любой точки мира передать сообщение на ESP32 или любую ардуинку без установления подключения?

    @rPman
    в чем заключается вопрос то? указанной информации не хватит для ответа.

    Либо ты устанавливаешь посредника между твоим устройством и интернетом, чтобы физически между ними было какое то подключение (например компьютер, к которому устройство подключается например по usb/com/lpt/ir), либо снабжаешь свое устройство модулем ethernet/wifi/мобильные сети и, в зависимости от выбранного стандарта, реализуешь в прошивке необходимый фунукционал.

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

    p.s. напоминаю, что выпускать в интернет порты, обслуживаемые слабым оборудованием, не способным противостоять минимальным ddos, глупо.
    Ответ написан
    Комментировать
  • Что будет, если включить ScrollLock?

    @rPman
    win32 api DeviceIoControl IOCTL_KEYBOARD_SET_INDICATORS

    нашел тут

    p.s. майкрософт лет 10 назад сломало документацию, я точно помню когда смотрел в похожих ситуациях, там на странице была информация о методах где используется константа, примеры использования и т.п., а теперь без вспомогательной информации понять как этим пользоваться невозможно.
    Ответ написан
    5 комментариев
  • Собственное поле для ввода на чистом JavaScript?

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

    @rPman
    Если проблема возникает сразу после установки из официального репозитария, то это уже повод бить тревогу (что то с железом? но слишком специфическая ошибка)

    Наибольшая вероятность - вирус, причем написанный с ошибкой (не все вирусы обнаруживаются антивирусами).

    И еще момент, даже если 'ничего левого не качать', вирус/троян может проникать из локальной сети 'провайдера' при использовании слабых паролей на машине (типа admin/12345678) и отключенном фаерволе. Вирус может быть запущен просто с флешки или соседнего диска (на сколько я помню действие по умолчанию все еще запуск приложения, прописанного в autorun.inf)

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

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

    Без установки специализированного по на устройстве раздачи интернета по wifi, определить этот факт будет очень сложно (но есть хаки, если не использовать https, то можно просканировать локальную сеть на javascipt, открывая что то типа http://192.168.0.1 и попытаться измерить скорость до роутера, в 99% случаев ip адрес которого известен).
    Ответ написан
    Комментировать
  • Где достать словарь с городами и регионами на русском и английском языках?

    @rPman
    Первый же из гугла не подходит?
    Ответ написан
    Комментировать
  • Как реализовать бэкап сайта/бд посредством PHP?

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

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

    Чтобы решить эти проблемы используют снапшоты, на выбор - либо на уровне виртуальной машины (если она используется либо у провайдера), либо разделов (например если используется lvm), либо файловой системы (если используется btrfs/zfs/ntfs, с оговорками).

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

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

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

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

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

    Искать например на huggingface

    Так же есть сети, выявляющие очень качественно контур объектов, если все это соединить, можно неплохо разобрать изображение на составляющее, как угодно это все переставлять, а с помощью stable diffusion painting собирать из кусков изображение, дополнив его текстом.

    Вот например
    Ответ написан
    Комментировать
  • Какую базу данных выбрать для поисковой системы?

    @rPman
    Все зависит от планируемых размеров (пределы) базы данных, т.е. количества данных, которые необходимо индексировать. Если нужно считанные десятки тысяч сайтов отслеживать, хватит абсолютно любой sql базы данных, миллионы страниц и fulltext индексы хоть postgres хоть mysql хоть самописные на файлах (пока индексы влезают в оперативную память).

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

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