Задать вопрос
  • Pool vs ThreadPool или как задействовать все процессоры с максимальной отдачей?

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

    Использование пула скорее всего никакого прироста к скорости не даст (максимум время на подготовку данных к нужному формату)
    Ответ написан
  • Выбор архитектуры: web или desktop?

    @rPman
    Web - на два порядка проще (читай дешевле) для разработки за счет повышенного требования ресурсов на клиентской стороне.

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

    И главное, из веб приложения достаточно легко (например с помощью electron) можно сделать десктопное приложение.

    p.s. как бы я не нелюбил веб, который тянут даже туда где не надо, но его плюсы неоспоримы а страдающие клиенты от тормозов приложений, требующих топовое железо для простого чата... кто нас слушает?

    Кстати, один момент, тормозные веб приложения это не потому что веб такой плохой, это потому что разработчики ленятся делать все как следует. Рынок заполонили низкокачественные разработчики на основе веб. Помни об этом!
    Ответ написан
    Комментировать
  • Почему при скачивании торрентов медленно открываются сайты?

    @rPman
    а точно торренты виноваты?

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

    с высокой вероятностью у тебя стоит какой то странный dns сервер к которому браузер лезет долго но результативно (иначе бы не работало).

    в этом случае решение указать правильный dns сервер, еще в браузере есть настройка, выбрать шифрованный, это если косячит dns провайдера
    Ответ написан
    Комментировать
  • Как зашифровать мобильное устройство на Android?

    @rPman
    все зависит от вашего производителя и не вырезал ли он эту фичу из системы ибо она там давно
    у lineageos кажется с 8-ой версии android была возможность создать второй аккаунт, и переключаться между ними
    между аккаунтами доступа нет

    точно знаю что последние пару-тройку лет у xiaomi эта фича есть, называется второе пространство, доступ под отдельным паролем.
    Ответ написан
    Комментировать
  • Как удалить вирус с сервера?

    @rPman
    Решение prgrant наиболее простое.

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

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

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

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

    @rPman
    при этом не знаю, как отобразить обе колонке id, если делаю join двух таблих

    после такого серьезный вопрос, как ты сделал описанные выше проекты, нашел скопировал переименовал?

    поэтому вопрос, у тебя скилы девопса или программиста?
    Ответ написан
  • Почему скачет скорость samba по сети?

    @rPman
    мало информации

    Вангую - диск, куда копируешь файлы - медленный (например флешка или hdd с фрагментацией), пока lazy writes кеш в оперативной памяти не заполнился, скорость лимитирована либо скоростью чтения 'откуда' либо скоростью самой сети (гигабитные сети дают порядка 120мб/с, это реальная скорость, только что проверил на своем дешевом железе), затем скорость падает до максимальной скорости приема файлов на диске, дисковый кеш освобождается фоном в т.ч. после прерывания копирования
    Ответ написан
  • GPU cервера с видеокартой Tesla- где взять подешевле?

    @rPman
    Не представляю хостера, предоставляющего gpu по цене ниже чем такая что за пол года ее аренды набирается полная стоимость, обычно чуть дороже

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

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

    Вот смотрим на примере tesla a100 (единственная причина брать теслу - это 40 гигабайт ram но даже в этом случае лучше не надо) - стоимость ее на рынке порядка 764т.р., 36 месяцев гарантия - это ~21т.р. в месяц, дешевые сервера на xenon-е можно найти от 120 т.р. (ак же 3года гарантия) плюс оперативка по задаче, потребление от 0.5квт/ч (стоимость юрикам порядка 10р за квт/ч и это очень повезло, в россии очень интересно перекладывают затраты на ее генерацию на юриков чтобы физики получали ее по фиксированной цене), в общем минимум +3.3т.р. в месяц за сервер и +7т.р. в месяц

    итого 31т.р. - себестоимость сдачи в аренду сервера с одной видеокартой tesla a100

    Верхняя граница 900т.р. / 6 месяцев = 150т.р. в месяц, при цене выше этой потребитель пойдет и купит свой сервер (хотя я встречал цены и выше но там наверняка у клиентов либо выбора нет либо еще какой вендрлок)

    p.s. все серверные видеокарты от nvidia по ценам на столько невыгодные (примерно в 5 раз дороже), что лучше подпилить свой софт под игровые видеокарты и собирать свою ферму
    Ответ написан
  • Что будет, если я поставлю ОЗУ больше максимального объема?

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

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

    @rPman
    в linux уже давно имеется грамотная изоляция (песочница, сравнимая с виртуальной машиной, с оговорками по доступу к железу типа gpu) на основе cgroup, например lxc, если пользуешься интерфейсами виртуальных машин libvirt то там создать машину lxc так же удобно как любую другую, и при этом накладных расходов на запуск такой машины практически не будет

    легкие проблемы будут для предоставлении доступа такой машине к GUI (xserver), там есть разные варианты, самый простой для реализации - настройка сети между lxc виртуалкой и хост машиной, настройка разрешений с помощью xhost и в lxc прописываешь DISPLAY на хост машину.

    p.s. еще проще, настроить ssh сервер в этой виртуалке и подключившись к ней ssh -Y yyy@xxx запускать браузер как у себя (будет незаметный оверхед по процессору на шифрование трафика ssh)
    ------------

    я надеюсь вопрос был задан корректно и тебе действительно нужно изолировать БРАУЗЕР а не веб-приложения, запускаемые в нем? так как для второго достаточно просто штатные профили браузера.
    Ответ написан
    Комментировать
  • Где брать заголовки для компиляции ядра Linux?

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

    в принципе ядро собирается командами
    make menuconfig
    make

    а устанавливается
    make install
    make modules_install


    p.s. если тебе нужно собирать dpkg пакет, то либо ищи .dsc файл описывающий как собирать нужную версию либо пиши сам
    Ответ написан
    Комментировать
  • Почему не компилируется любой C/C++ код в Visual Studio?

    @rPman
    попробуй переустановить студию (только ее), вполне возможно что вовремя установки компоненты устанавливались вручную не в томи порядке в котором ожидал майкрософт
    https://4systems.ru/inf/e1696-ne-udaetsja-otkryt-i...
    Ответ написан
  • Как сделать сайт новичку, чтоб он одинаково корректно открывался старыми и новыми браузерами, в том числе смартфонами на Windows mobile 5, Symbian?

    @rPman
    Простых рекомендаций нет.

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

    Бессмысленно делать поддержку для всех, нужно чётко определить свою целевую аудиторию, приобрести или настроитьсимуляцию всех используемых устройств и активно тестировать любое нововведение.

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

    Есть два основных направления разработки веб приложений, основные на месте генерации итогового html - на серверной стороне и на клиенте.

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

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

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

    @rPman
    первый же ответ гугла на запрос get cron active processes, красиво расписаны все варианты.

    Если знаешь что за приложение то ищи его в выводе ps, например по имени команды ключ -C, или по имени пользователя -U, список столбцов к выводу ключ -o
    Ответ написан
    Комментировать
  • Как работать с Git на двух компьютерах с одного аккаунта?

    @rPman
    Не пользоваться google drive

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

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

    @rPman
    linux dd с опцией conv=sync,noerror позволяет сделать копию образа, пропуская ошибки (будет заполнять нулями соответствующие области)
    dd if=/dev/sda1 of=partition.raw conv=sync,noerror status=progress

    в данном примере будет сделана копия раздела sda1, которую можно монтировать как устройство, запускать проверку fsck и т.п.
    Ответ написан
    Комментировать
  • Как спарсить подобный сайт?

    @rPman
    Заказчик сказал что все эти действия он проводит вручную через safari на iPhone в течении дня и не получает блокировки аккаунта (или получает но сильно реже).
    скорее всего сайт анализирует статистику действий пользователей, все нетипичные профили переносит в разряд - забанить если через пол часа не прекратит

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

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

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

    @rPman
    из коробки в php есть асинхронные методы работы с сокетами, метод socket_select позволяет создать event loop и вести асинхронную коммуникацию

    так же библиотека curl позволяет вести загрузку в фоновом режиме с помощью curl_multi_...

    используя штатные механизмы языка созданы библиотеки по типу ReactPHP с помощью которых можно создавать событийно-ориентированные приложения, например асинхронный websocket и http сервер в одном приложении. Если сравнивать с nodejs, где асинхронность 'из каропки' то реализация на php чуть медленнее но так каксам язык в большинстве случаев работает быстрее, в некоторых случаях код будет работать быстрее (например я писал простейший веб сервис, работающий со сжатыми gzip файлами 'построчно', так вот на nodejs было сильно медленнее, но сам event loop там быстрее)

    p.s. чтобы nodejs по скорости был сравним с php приходится осторожно выбирать какими методами пользоваться, например штатные объекты и массивы там медленнее чем класс Map
    Ответ написан
    3 комментария
  • Как (правильно) шифровать данные и хранить ключи на облачном сервисе?

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

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

    Один из способов - загрузочное устройство, которое физически подключается к серверу при включении/перезагрузки и содержит в себе физическую клавиатуру, код загрузчика (если linux то банально установленный grub и vmlinuz и initramfs) и необходимые ключи шифрования, а сами данные уже полностью зашифрованные хранятся на сервере. Так же разделяют собственно расшифровку ключей и физическое подключение устройство, доверив последнее другому сотруднику (его задача контролировать что железо не подменено и следить за закрытием сейфа и помещения) а ввод пароля проводится по сети другим.

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

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

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

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

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

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

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