Задать вопрос
  • Как обеспечить быстродействие программы на Java?

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

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

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

    @rPman
    bcache (hdd+ssd) и на него файловую систему ext4/xfs, кстати журнал можно так же разместить на ssd, в некотором смысле это наилучшая конфигурация для домашнего пользователя с точки зрения производительности на затраченный рубль.

    Можно btrfs, поиграетесь со снапшотами, сжатием и дедупликацией (кстати с последним не поиграетесь, всякие ubuntu из коробки не умеют) но copy-on-write файловые системы могут подкинуть ряд неочивидностей (например базы данных там фрагментируют диск, но это тюнится)
    Ответ написан
    4 комментария
  • Как открыть и запустить видео файл из rar/zip архива не сохраняя его на жестком диске, а сразу помещая его в оп?

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

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

    p.s. держать мультимедиа в zip архивах абсолютно бессмысленное дело, так как они не сжимаются
    Ответ написан
    5 комментариев
  • Можно ли запуститься с SSD Win7pro на Hyper-v или VMware?

    @rPman
    Точно помню в vmware (да практически во всех, virtualbox, kvm) можно подключить физический диск (или даже только один раздел) как диск виртуальной машины.

    Т.е. не нужно пробрасывать контроллеры, нужно логически диск подключить.

    upd: в hyper-v, в настройках виртуальной машины, идете в контроллер scsi, выбираете Жесткий диск, выбираете Физический диск
    Если он недоступен, значит нет доступных дисков в состоянии offline (можно сменить статус в diskpart или управление компьютером - управление дисками - правая кнопка на диске (не на разделе)
    Ответ написан
    3 комментария
  • Определить модель ноутбука?

    @rPman
    У вас четко в msinfo32 написано:
    BaseBoard manufacturer: KBL
    BaseBoard product: Sienta_KLS
    baseBoard Version: 1.10

    смотрим это Acer Predator G3-571
    https://www.acer.com/ac/en/PH/content/predator-mod...
    Ответ написан
    Комментировать
  • Как подключиться к SQLite в C#?

    @rPman
    Заверни проблемный блок в try {} catch() {} и выводи ошибку, все ответы получишь
    p.s. путь до файла перепроверяй
    Ответ написан
    Комментировать
  • Почему код возвращает лишнее?

    @rPman
    Хотя бы для отладки вывел что возвращает тебе ftp_mlsd, 100% все проблемы бы решились сразу.

    Пальцем в небо - в linux каждый каталог содержит два элемента '.' и '..', соответственно текущий и предыдущий каталог, вдруг ftp их возвращает а ты их в файлы записываешь? но тип по уму у них должен быть dir, плюс зациклилось бы все.
    Ответ написан
    Комментировать
  • Как сделать быстрое распознавание голоса для умной колонки?

    @rPman
    Если пользоваться гуглом, то посади за распознавание любую железку с запущенным google chrome, в котром у тебя будет крутиться демон, использующий speach api для распознования и синтеза речи.

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

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


    На android есть 100% голосовые движки, работающие оффлайн, т.е. к примеру google translate работает и распознает отлично и очень быстро, но вот получить api именно к гугловскому движку .... точно помню несколько лет назад народ как то ковырялись в их библиотеках, потом это прикрыли.
    Ответ написан
  • Wine распространяемые пакеты?

    @rPman
    Точно помню, что при создании ярлыка на рабочем столе wine, этот ярлык появляется в linux, как минимум в стартовом меню, т.е. создавайте windows установщик каким-нибудь inno setup/nsis/wix tools
    Ответ написан
    Комментировать
  • Нужно ли обрабатывать фатальные ошибки в PHP?

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

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

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

    Наиболее легко получает народ ошибки такого рода, когда заканчивается место на диске или ram.

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

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

    Очень сложный вопрос м в конце концов упирается в объем ресурсов, которые вы готовы в это вложить.
    Ответ написан
  • Какой лучше RAID сделать на 4 дисковом NAS для дома?

    @rPman
    raid5 - это возможность без опаски потерять один диск
    raid6 - возможность потерять два диска

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

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

    Полагаю это актуально для аппаратных рейдов, заточенных на производительность, а домашние софтовые рейды этой проблемой не страдают.
    Ответ написан
    1 комментарий
  • Какой бу ноутбук купить для machine learning?

    @rPman
    machine learning
    чтобы обучаться, логично особых мощностей не требуется но есть нюанс.

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

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

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

    Т.е. знания в machine learning это вот эта борьба, а не умение использовать фреймворк и загружать туда картинки.

    p.s. выбирайте ноутбук не по его производительности, а по удобству использования. К примеру если нужно его часто таскать с собой в рюкзаке - берите максимально легкий, даже если это будет планшетник переросток (была у меня модель digma cite e200 с 4гб ram, жутко удобная вещь, хоть и слабая, покупалась за 14т.р. жаль сейчс такие не делают), тяжелые же задачи запускайте на сервере, по сети, арендованном или стоящем у вас дома.

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

    @rPman
    Низкоуровневое форматирование - это нужны утилиты от производителя, у каждого свои.
    ssd диск можно 'отформатировать' запустив команду trim на весь диск (утилита blkdiscard)

    Вторая команда неправильная, /dev/zero возвращает бесконечные нули, а /dev/null нельзя читать, только бесконечно что угодно в него записывать

    Чтобы подготовить диск к продаже, dd if=/dev/zero of=/dev/sdX. более чем достаточно.
    С бэдами ничего не сделаешь, они будут видны в отчетах смарт (причем еще до их появления), такой диск только на свалку/запчасти ремонтникам (продавайте на авито, могут купить как донор, приложив скрин SMART).
    Ответ написан
    3 комментария
  • Как можно сделать откат и повтор OOP?

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

    Оба подхода имеют свои плюсы и минусы, для простого калькулятора удобнее второй подход, а вот редактора сложного документа - первый.

    Так же возможно сочетание обоих подходов, для оптимизации ресурсов.
    Ответ написан
    Комментировать
  • Почему чтение базы данных SQLite, параллельно записи в нее, медленное?

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

    Иногда сложно отказаться от удобства простоты и отсутствия необходимости в демоне

    Да да, не обязательно пользоваться attach database, и да за локами и уже не атомарными транзакциями придется самому следить и прочее... просто нужно понимать где можно этим пренебречь а где остановиться и все же выбрать готовый мощный инструмент вида mysql/postgres/oracle...
    Ответ написан
    Комментировать
  • Как правильно отправлять header, get и post запросы при парсинге, чтобы не банили?

    @rPman
    В общем случае нужно повторять те же запросы и ту же их последовательность, в идеале с правильными таймингами, что делает браузер. Если хотите знать что да как, открываете в браузере хром или фаерфокс нужную страницу, жмете f12, закладка network, выбираете по очереди каждый запрос, правая кнопка, копировать, curl с заголовками и изучаете.

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

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

    @rPman
    Раздача парольных вещей по сети - ненадежна, ведь обнаружить подобное будет можно с любой машины в этой же сети.

    А так. Организуешь машину (например виртуалка на смартфоне), раздающую dhcp и tftpd для pxe network boot, собственно по сети только загрузочный диск (боюсь для windows придется попотеть но в теории это возможно).

    Для linux подобная схема позволяет вводить парольную фаразу удаленно, подключившись по ssh к мини серверу в момент загрузки, например с того же смартфона. Т.е. вся возня в настройке подобной схемы - инструменты, которые позволяли бы проконтролировать со смартфона что именно к нужному железу произошло подключение и нет прослойки злоумышленника/подмены этого железа.
    Ответ написан
    Комментировать
  • Windows 10 для vps?

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

    Выбор ОС нужно делать исключительно на основе требований приложений, которые там буду запускаться. С высокой вероятностью вам нужны десктопные, значит и ОС берите дектопную.

    p.s. будет медленно (vps это не bare-metall и будете делить его с другими), не будет поддержки 2D-3D ускорения (достаточно поработать с приложениями, рисующими графику, да тот же дубльгис запустите) и будет лагать (из-за задержки сети), ни о каком комфорте тут речи не идет.

    p.p.s. Если использовать операционную систему от провайдера, если у провайдера есть поддержка 3d ускорителя (они обычно дороже раз в 10 сравнимых по мощности с игровыми), то у вас есть шанс получить поддержку графики в приложениях (обычно это cad) и даже играх, но сетевые лаги все равно сожрут все впечатление, а цены таких решений добьют окончательно.
    Ответ написан
  • Как поженить php8 и apache24?

    @rPman
    Сообщение об ошибке 'не найден указанный модуль'

    Настраивать вручную apache и php под windows это какая то форма мазохизма да?
    Выбирайте на выбор:

    * cygwin <-- рекомендуется, очень качественно поддерживают весь стек утилит linux, удобный gui
    * msys
    * wsl <-- это вообще linux позволяет запустить почти полноценный да еще и без виртуализации (как wine в linux для windows)
    * поставьте же наконец себе linux в виртуалке, это пара минут шевеления мышкой без каких либо знаний

    А еще можно не ставить apache, особенно если вы туда не лезете и вам нужно просто отлаживать свои скрипты локально, запускайте встроенный в php веб сервер:
    php -S 0.0.0.0:8080
    Ответ написан
    4 комментария
  • Как в классе использовать global?

    @rPman
    global может использоваться только внутри методов или функций, т.е.
    $a = 'test';
    
    class Cls {
    
      public function __construct($a) {
        global $a;
        $this->a = $a;
      }
      public function printer(){
        global $a;
        echo $this->a;
      }
    }
    
    $get = new Cls($a);
    $get->printer();


    Использование global - очень неверная стратегия, и ее нужно избегать всеми силами....

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

    Если прямо надо сильно глобальную переменную и лень писать global в каждом методе, пользуйся функциями, определенных глобально, их будет видно везде. Пример реализации сиквенса:
    function next_seq() {
      static id=0;
      return id++;
    }

    или даже возвращающего целые объекты или массивы
    function yoyo() {
      static $o=false;
      if($o===false) $o=new MyCoolObject();
      return $o;
    }
    использовать:
    yoyo()->myCoolMethod();


    Еще раз глобальная область видимости - бад практикс, везде старайтесь заворачивать весь функционал вокруг класса или хотя бы неймспейса. Это просто как ходить опрятно и не пованивать.
    Ответ написан
    Комментировать