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

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

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

    @rPman
    В windows идет встроенный кинотеатр - приложение Кино и ТВ

    Что тебе нужно от кинотеатра то? сам процесс просмотра видео - это выбор видеоплеера (рекомендую media player classic, настраивается все от поспроцессинга до кнопок и интерфейса), процесс выбора фильма - это начинается от способа наполнения своей библиотеки, как хранить, как описывать, в 99% случаев штатный проводник (windows explorer), включив миниатюры и дав файлам фильмов адекватные названия, и поиском по f3 - будет более чем достаточен.
    Ответ написан
    Комментировать
  • Как воспроизвести Flash в приложении?

    @rPman
    Чужое exe приложение - никак, там все зависит от того как именно они ролики проигрывают.

    Текущую дату на прошлое менял?
    Ответ написан
    3 комментария
  • Как сделать цикл с setInterval который запускался и останавливался через каждые 10 секунд?

    @rPman
    Ты вызываешь count, запускающую новый setInterval рекурсивно , сразу как срабатывает тик интервала, т.е. с каждым новым тиком количество интервалов у тебя увеличивается, лимиты ресурсов у браузера заканчиваются и вот ошибка.

    setInterval должен быть запущен однократно.

    Код в примере и задача в вопросе отличаются, что нужно то?
    Если исходить из задачи, нужно создать setTimeout, который через 10 секунд запустит setinterval с 1 секундным шагом, который уже в свою очередь будет вызывать твой принт и только его
    Ответ написан
    1 комментарий
  • Расхождение ip адресов?

    @rPman
    Если исключить ротуер из сети и воткнуть шнурок провайдера сразу к пк то так же все работает, правда тестировал 1 раз.
    Лучше тестируй, сутками
    если подтвердится - то это однозначно докажет что проблема в роутере

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

    @rPman
    Вся перефирия уже давно работает через логические прослойки. Напрямую к контактам наверное только к LPT есть доступ, и то там прослоек дофига, просто для совместимости устройство такое в операционной системе есть (в windows например пиши/читай прямо в lpt0 файл).

    напрямую к контактам data PCI, в теории, там напрямую доступны, спецификации открытые (почти), покупай доступ, читай изучай..

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

    @rPman
    Перезагрузка под нагрузкой - первая причина, перегрев процессора. Поставь какой-нибудь OpenHardwareMonitor включи там логи в файл и смотри что с момент перезагрузки

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

    В догонку, драйвера, вирусы и т.п. проверяй. Надеюсь ты не майнишь фоном?
    Ответ написан
  • Как вывести Tether из кошелька blockchain.com, не имея Ether?

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

    Осторожно, обычная комиссия дефи в эфире - 40$-80$ (перевод примерно 10$, можно дождаться когда падает до 2$), любая покупка подразумевает поход либо к частнику (вопросы доверия, но у тебя только такой вариант разумен) либо к биржам, у которых есть минимальные лимиты вывода и ее большие комиссии за вывод (бинанс легко потребует 17$).

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

    @rPman
    В вопросе сказано 'автоподключение', это значит в коде нет желания писать где то connect или аналогичную ему строку иннициализации.

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

    И вот тут возникает вопрос о месте хранения настроек. Если для всего проекта предполагается одна база данных с одним одномоментным подключением, то значит настройки должны храниться глобально (в подавляющем большинстве случаев это отдельный подключаемый файл config.php с инициализацией констант в define) либо в конфигурационном файле, десериализаторов которых пруд пруди, используй хоть .ini (parse_ini_file) хоть .json хоть что угодно.

    Я пользовался разок определением констант в виде статичных мемберов класса, подключаемых прямо внутри определения класса с помощью include (синтаксически это красивее define и не требует городить громоздкие уникальные имена)

    Так же возможна ситуация, когда вообще нет глобального объекта для работы с базой данных, точнее когда этот объект никто не удерживает кроме 'его самого', а доступ к нему организован через функцию, например:
    function db()
    {
      static $db=false;
      // до появления static у функций можно было хранить и запрашивать объект у самого класса статичным методом
      if(!$db) $db=new Database();
      return $db;
    }
    
    ....
    
    db()->query(...)
    в этом случае подключение к базе будет сделано в момент первого доступа к ней, что иногда даже полезно
    Ответ написан
    Комментировать
  • В чëм смысл стресс-тестов для видеокарт?

    @rPman
    Если железо не разогнано (и не изменены его заводские параметры вольтажа и стратегии поведения системы охлаждения)! то стресс тесты никак не должны повредить рабочее железо.

    Стресс тесты выявят как минимум проблемы с системой питания и охлаждения.

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

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

    Про static и dinamic написано немного тут
    но совершенно непонятно
    Types of SLC Cache

    There are two types of SLC cache: static and dynamic. Whether an SSD uses static or dynamic cache depends on the firmware algorithm.

    Static Cache. As its name implies, the size of the assigned area is fixed. The main advantage is that there is a guaranteed area allocated for SLC cache. This space is disabled only when the rest of the TLC is fully utilized. However, since only a specific area is assigned for SLC cache, such area will sustain more intensive reads and writes, resulting in higher P/E cycles, which could in turn affect the drive’s endurance.
    Dynamic Cache. In contrast, dynamic cache refers to an area that is not fixed. The key advantage is that wear leveling is much more uniform across the entire drive. The disadvantage is that, due to its size flexibility, the cache size is not guaranteed.


    Кеш это значит записи и чтение идут сначала через эту память, и по какому-то внутреннему алгоритму данные в этом кеше перемещаются на диск при записи и для чтения помещаются в кеш или минуют его.

    Простой пример, кеш у тебя 10 гигабайт а ты решил записать 12гб, пусть к примеру запись в кеш 1 гигабайта тебе будет стоить 1 секунду, а запись на флеш в 10 раз медленней, отсюда первые 10 секунд ты будешь записывать на диск первые 10 гигабайт, но как только кеш, работающий буфером записи заполнится, скорость у тебя упадет и следующие 2 гигабайта ты будешь писать еще 20 секунд (диск будет тормозить запись, чтобы дождаться, когда очередной кусок данных из кеша запишется на флеш, освободит место для новых данных и тогда позволит тебе разместить там новые данные, те. тормозить будет не из-за записи новых данных, а из-за старых, кстати не факт, существуют иные, не FIFO стратегии работы с кешем).

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

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

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

    @rPman
    Потому что читаешь с помощью .readline() которая по определению ждет символ '\n'
    Хочешь другой символ, используй просто read и сам сканируй буфер на наличие \r и собирай строку

    как вариант, подмени вывод чем-нибудь, используя пайпы, например tr, а чтобы он не буферизировал вывод, добавь stdbuf -o0, обсуждалось тут
    ffmpeg -i input.mov output.webm 2>&1 | stdbuf -o0 tr '\r' '\n'
    Ответ написан
    Комментировать
  • Насколько сложно прикрутить систему оплаты и систему вывода денег, на сайт, имея статус физ лица?

    @rPman
    Вводи выводи криптовалюты.

    Юридически пока еще можно 'выбрать юрисдикцию' где это либо законно либо не затрагивает законодательство по причине ее закостенелости.
    Ответ написан
    Комментировать
  • Как в php определить кодировку строки?

    @rPman
    Кодировку не нужно угадывать
    Ее нужно брать из заголовков (добавь к curl опцию -D имя_файла, куда будут помещены все заголовки запроса)
    Content-Type: text/html; charset=UTF-8

    и что лучше, из тега
    <meta charset="utf-8">

    p.s. чтобы угадать кодировку, пользуйся консольной утилитой enca, очень мощная вещь, угадывает множественные перекодирования, когда создатель накосячил (например открыть cp1251 в far в koi8 кодировке и скопировать через содержимое экрана)
    Ответ написан
    Комментировать
  • Как записать Windows на флешку из-под Linux?

    @rPman
    В режиме UEFI на флешку, отформатрованную FAT32 достаточно скопировать содержимое ISO образа, и все должно работать, так как биос будет искать в корне флешки каталог EFI итам boot...

    Но вот в legacy режиме, когда нужен бут сектор, могут возникнуть нюансы. Например на старых машинах, у меня не удавалось загрузитьс я с флешек объемом больше 8Гб. Так же могут быть проблемы, если флешка подключается через картридер (например это карта памяти).

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

    p.s. можно загрузиться в установщик windows, загрузившись сначала в linux grub (ты говоришь проблем с linux нет), нажимаешь C чтобы войти в командный режим grub
    ls (hd0,1)/

    покажет содержимое диска 0 раздела 1, перебирая цифры найди раздел флешки, где развернут установщик windows
    set root=(hd0,1)
    chainloader +1
    boot


    p.p.s. можно первый этап установки, до первой перезагрузки, провести в виртуальной машине, подключив физический диск как диск виртуалки, это 100% работало всегда и позволяет вообще не делать загрузочный диск windows, т.е. хватит iso образа
    Ответ написан
    Комментировать
  • Как быстро развернуть 5гб mysql дамп в Windows?

    @rPman
    Windows конечно медленнее linux работает с диском, но не на порядок же, железо не одинаковое? на linux ssd а на windows hdd?

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

    @rPman
    Тестировать придется сразу и сервер и клиент, откатывая перед запуском теста и в процессе состояние сервера до некого стартового/требуемого для соответствующего теста.

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

    @rPman
    Полноценную среду управления системами виртуализации продает RedHat, делая ее как раз на основе kvm.

    Что именно из vsan тебе нужно? сетевые хранилища на основе ISCSI можно реализовать с помощью istgt, простой и быстрый как валенок, снапшоты с помощью lvm или лучше btrfs, кстати сами снапшоты есть у kvm/qemu при использовании его формата qcow...
    Ответ написан
    2 комментария
  • Заполнение и отправка формы в точно указанное время, можно ли?

    @rPman
    Скрипт будет зависеть от верстки сайта, и будут меняться при ее изменении. Браузеры имеют вместе с консолью разработчика отличный инспектор, если нажать правую кнопку мыши на желаемом элементе на форме (если возможность заблокирована, то нужно жать shift+правая кнопка мыши) и выбрать Inspect/Посмотреть код, а затем уже в открывшемся инспекторе выделить нужный элемент (input например) и в меню выбрать Copy -> CSS selector, то полученную строку можно напрямую скормить $('строка css selector') и получить нужный элемент, у которого можно править .value=xxx или нажимать .click(). Могут возникнуть сложности с кастомными select или там где форма отслеживает нажатия на клавиатуре,..

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

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

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

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

    @rPman
    В си решение будет зависеть от выбора платформы, под которую разрабатываешь, для win32 gui вполне возможно что тебе хватит отлавливать закрытие окна на событии WM_CLOSE в твоем главном цикле обработки событий окна, а для posix это регистрация колбек с помощью signal на тип события SIGTERM (там можно и на другие события повеситься, даже к примеру на принудительное завершение ядром процесса по исчерпанию лимита оперативной памяти)...

    Первая же ссылка в гугле по запросу: c++ exit current process callback, направление поиска указано в вопросе. Не все виды завершения работы процесса могут быть отловлены самим процессом, в частности у вопрошающего проблема с консольным приложением в windows... возможно если порыть msdn можно будет найти еще какое решение.
    Ответ написан