Задать вопрос
  • Даные на HDD,SSD и Рентген тзлучение?

    @rPman
    Нет, в сканерах используют пару - микроволновое (проникает но не ионизирует) и радиация (не проникает в тело человека и металлы), на разнице их взаимодействия с объектом строится изображение.

    С точки зрения электроники, такие сканеры не опасны, так как не смогут ионизировать вещество. С точки зрения мощности излучения, десятые доли микрозиверта это ничто, для тех кто садится в самолет и получает за полет - десятки микрозиверта...
    Ответ написан
    Комментировать
  • Почему php не отправляет письмо на телеграм?

    @rPman
    {$txt}
    текст в ссылках должен быть пропущен через urlencode, а еще у тебя там минус в идентификаторе

    так же настоятельно рекомендую, прежде чем делать приложение, протестировать ссылки вручную через curl, будет видно и ответ, а с ключом -v подробности и заголовки ответа.

    fopen не самый лучший способ коммуникации по сети, проще было бы file_get_contents использовать, и у него есть context, который позволяет много что настроить в запросе) но лучше пользоваться встроенный curl_xxx
    Ответ написан
    2 комментария
  • Как написать скрипт, который будет получать какие-то данные и обрабатывать их параллельно?

    @rPman
    nodejs полностью асинхронный, когда ты вызываешь метод, помеченный async (при вызове не надо писать await) то в любой момент когда в этом методе вызывается асинхронный метод или стоит await, node будет вываливаться в свой главный event loop и обрабатывать другие запросы

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

    @rPman
    Всегда, если есть возможность сделать два меньших массива вместо одного большого - делай два массива.
    тип - под ситуацию и деньги, raid1 и 0 имеют наименьшие накладные расходы на процессор но кушают доступное место на диске

    raid5 из трех дисков вполне возможен, так как используете десктопные ssd-шники, значит за скоростями не гонитесь и вам хватит софтварного mdadm (настоятельно рекомендую его а не встроенные в zfs и btrfs), поэтому 2 x raid5 по 3 диска - ваш выбор.

    p.s. настрой мониторинг бакапы! а при наличии второй машины, master-slave репликацию для базы, как один из инструментов онлайн резервирования (это так приятно запустить базу данных после сбоя в то же мгновение как умрет главный сервер).
    Ответ написан
    Комментировать
  • Вопрос про многопоточность python, что лучше, больше ОЗУ или больше ядер?

    @rPman
    На сколько мне известно, популярные библиотеки telegram - асинхронные, т.е. многопоточность в них используется только для реализации асинхронности обработки соединений на уровне питона, а значит вероятность того что твой код упрется в потолок производительности ядер по ним практически нулевая, даже тупой сетевой hello world на питоне оказывается неожиданно очень медленным.

    Т.е. скорее всего тебе хватит двух ядер даже в худшем случае.

    p.s. оперативная память - это то что любит питон, будет жрать как не в себя, поэтому если это прямо сейчас надо решать - бери больше оперативной памяти

    Но правильно - брать больше ресурсов именно в тот момент, когда это действительно нужно, а стартовую оценку нужно брать с тестов своего кода на основе текущего размера своей аудитории и их активности.

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

    в нормальной ситуации, даже большое telegram сообщество сможет обработать слабейшая малинка.
    Ответ написан
    Комментировать
  • Как зайти в биос на msi?

    @rPman
    на скрине, который видно только если зайти по ссылке, видно обычное окно выбора диска для загрузки, никаких ошибок
    А про 'Secure boot violation' можно было и погуглить?
    https://www.asus.com/ru/support/FAQ/1042711/
    Система нашла изменения авторизации в прошивке, операционной системе или драйверах UEFI.
    т.е. загрузочные файлы ОС были повреждены или заражены вирусом

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

    @rPman
    Не уверен что данный код можно как то ускорить
    Например можно сменить python на nuitka и компилировать бинарник из получаемого им c++ кода, вот такие простые вещи там однозначно могут быть быстрее, особенно если вручную ковырять
    Как частный случая - написать критичный кусок кода на c++/c и вызывать его из питона, но сразу скажу что если по тупому заменить этот кусок на код си, никакого ускорения не получится, может даже ухудшение.

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

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

    @rPman
    Вручную?
    в просмотрщике нажимаешь правую кнопку на изображении - сохранить как
    Ответ написан
    Комментировать
  • Как на GitHub добавить ссылку на готовый сайт?

    @rPman
    Добавь в репозитарий файл README в который положи ссылку как есть, и короткое описание (просто текст), этого будет достаточно

    формально там целый язык разметки есть но вам это не нужно скорее всего
    Ответ написан
    Комментировать
  • Вопрос по оформлению кода C++?

    @rPman
    Coding style должен быть таким, как определено в вашей команде
    Если это твоя команда - решение принимать нужно после общения со своей командой, выбрав тот стиль, наименее конфликтующий с их стилями.

    Если это твой проект - делай так как тебе удобно, я серьезно.
    Можно в качестве основы почитать про мировую практику, причем смотри, с какой целью это делается.
    Ответ написан
    2 комментария
  • Две ОС (7 и 10 Windows) на одном компьютере. Какие возможны проблемы?

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

    Старые версии winxp/7 могли установить вторую ос на диск D (буквально диск D как системный), не уверен, исправили ли эту проблему в win10, и это порождало огромное количество проблем для программ, которые этого не ожидали, т.е. при загрузки второй установленной ос у тебя было видно первую ос на C а вторую (текущую) на D, некоторые программы при установке принудительно устанавливаются на C, соответственно затирая эту же установку (файлы common files, ориентированные на версию ОС)... шансы проблем не велики но они возможны (я встречал)

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

    @rPman
    Хотя беспроводные мыши соединяются с компьютером через свой usb донгл на частотах 2.4GHz, что и обычный wifi, стандарта на протокол общения - нет, (гуглятся какие то левые rfc), поэтому сначала нужно провести реверсинженеринг.

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

    Смысла в этой деятельности нет никакого, дорого, сложно, цели не ясны.

    p.s. другое дело bluetooth устройства клавиатуры/мыши, стандарт определен, радиомодуль смартфона умеет подключаться по bluetooth, а со стороны приложения можно выдавать необходимые сигналы. гуглплей завален приложениями симуляторами клавиатур и мыши.
    Ответ написан
    Комментировать
  • Можно ли как-то отследить прогресс добавления колонки в БД?

    @rPman
    загляни в файловую систему и посмотри с какой скоростью растет tablespace файлы, так же можно с помощью запроса
    select pg_tablespace_size ('new_tablespace');
    так как в момент добавления колонки таблица копируется (это потому что default значение прописано) значит места должно потребоваться приблизительно в два раза больше чем было изначально, соответственно оценивай приблизительно по скорости роста файла

    https://habr.com/ru/company/yandex/blog/435880/
    Ответ написан
    Комментировать
  • Можно ли бесконечное число планет выпрямить в бесконечную плоскость?

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

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

    1. топаем на вики и смотрим плотность Критическая плотность (космология)

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

    В общем чья плотность в итоге будет больше - сферы с радиусом Р или твоей ленты из вещества той же длины

    Бредовая задача ;)
    Ответ написан
  • Как в Linux открыть ссылку в определенном браузере через терминал?

    @rPman
    xdg-open $(xclip -o)
    xdg-open откроет дефолтный браузер, точнее приложение, соответственно строке, которая будет в буфере - для файлов будет их дефолтный просмотрщик, для url - браузер
    Ответ написан
    Комментировать
  • Создание классов в цикле?

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

    Если есть задача динамического формирования кода (например нужно 100500 классов, отличающихся незначительно но if-ы по коду заметно замедляют его работу и усложняют чтение), особенно крупного, настоятельно рекомендую генерировать файлы и делать их include (имя файла можешь делать по хешу содержимого, если вариантов содержимого много, или по именам атрибутов, определяющих изменения). Так как include отлаживать удобнее, сообщения об ошибках будут понятны и легко проверяемые, а так же сервер такие файлы кеширует и при наличии ускорителей - еще и оптимизирует, eval же компилируется каждый раз при вызове.
    Ответ написан
    4 комментария
  • Почему dartvm называют виртуальной машиной?

    @rPman
    Исторически, когда то это был интерпретатор
    Ответ написан
    Комментировать
  • Троян не удаляется с андроида, что делать?

    @rPman
    Перепрошить, официальную прошивку, для этого не нужен ни рут ни какие то телодвижения

    Такие трояны легко получить если покупаешь с рук на площадках типа Авито, АлиЭкспресс, геарбест и т.п.
    Ответ написан
    Комментировать
  • Как в mysql выбрать ближайшую бОльшую и ближайшую мЕньшую запись из базы в 1 запрос?

    @rPman
    В комментариях тебе уже ответили вариант с order by. Запрос order by и limit очень тяжелый для sql сервера, его очень сложно оптимизировать.

    Есть еще min max но тебе нужны id, значит вложенный запрос по timestamp, не уверен что это будет быстрее (лучше поэкспериментируй)
    select * from xxx where
       timestamp=(select min(timestamp) from xxx where timestamp > ...)
    or timestamp=(select max(timestamp) from xxx where timestamp < ...)
    p.s. я заметил что ничего не сказано про одинаковые значения timestamp в разных записях, если брать limit 1 то будет выбираться случайная запись (точнее 100500 раз одна но в какой то момент другая - undefined behavior), этот запрос выдаст все записи с одинаковыми timestamp

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

    В каких то ситуациях можно очень СИЛЬНО оптимизировать задачу, если есть какое то знание о том как данные записываются в таблицу. Например если известно гарантированное окно времени, в течении которого поступают данные, и их не сильно много можно просто сделать
    select * from xxx
    where timestamp > date - const_interval
      and timestamp < date + const_interval
    а затем уже среди этих данных выбирать по выше определенным алгоритмам или даже на бакэнде

    Если изменений данных значительно меньше запросов на чтение (особенно если модификации не предполагаются и есть только добавления), то можно складывать искомые значения сразу в момент создания записи (добавлять id новой записи в предыдущую, и тут же ее id в новую), делать это можно как тригерами так и на бакэнде, накладных расходов на такую запись мало зато на чтение данные доступны за константное время, максимально быстро
    select p2.*,p3.* from xxx p1
      left join xxx p2 on p1.id=p2.previous_id
      left join xxx p3 on p1.id=p3.next_id
    where p1.timestamp=...
    в данном случае строчка будет одна, данные раскиданы по колонкам p2.* и p3.*

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

    @rPman
    флешка и ssd, по сути оба класса устройств одно и тоже - твердотелые накопители, но так устоялось что флешки это медленные и дешевые устройства, часто с небольшим объемом, подключаемые по usb, без таких фишек как trim и диагностика по smart.

    А ssd это более быстрое и емкое полнофункциональное устройство, очень часто с подключением не по usb, а значит для работы использует отдельный контроллер (может вносить тормоза), я встречал такой usb контроллер, что понижал возможности устройства (sata команда trim) что негативно сказывается на возможности внутреннего контроллера оптимизировать работу, а так же закрывало доступ к smart

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

    Еще подключение по usb для windows - это отдельный класс устройств removable device, с такими дисками система работает немного по другому, например нельзя разместить файл подкачки (помню в windows 8 был какой то специальный механизм оптимизации работы с оперативной памятью именно на флешках, не уверен что он остался).
    -----------------
    Рекомендую. файловую систему exfat, она проще и быстрее (разрабатывалась для ssd). Но есть программы, использующие sparse files для эффективного хранения огромных разряженных матриц (визуально огромный файл физически занимает место ровно столько, сколько реально данных в него записали), так вот у exfat как я помню поддержки таких файлов нет а у ntfs есть. Понять заранее это можно либо из документации (маловероятно) либо провести эксперимент.

    Я не встречал программ, которым бы не понравилось работать с usb устройства, обычно все они не обращают внимание где хранятся. Но возможна ситуация, когда вставляя несколько разных usb устройств система будет назначать разделам разные буквы, т.е. пример - ты вставил первый раз диск, ему назначили букву D:, ты установил программу, затем извлек диск, вставил другую флешку, которой система выдала ту же букву D:, затем ты вставил первую флешку с программой и система выдаст ей другую букву, например E: и уже запустить установленное приложение из прежнего места не получится, нужно переустанавливать.

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

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