• Почему файл заполнен?

    @alexalexes
    Две гипотезы.
    1. Ваш код генерирует "нулевой" результат, поэтому записывается null значение.
    Попробуйте искусственно записать null значение в буфер, без реальных данных.
    2. Код генерирует слишком большой результат, не влезает в оперативную память выполнения скрипта (переполнение возникает именно на выполнении minify_html). Как ошибка записывается null значение.
    Попробуйте уменьшить значение выделенной оперативной памяти так, чтобы хватало для работы кода, но не хватало на выполнение minify_html, понаблюдайте через memory_get_usage, как на каждом этапе используется память.
    Ответ написан
  • Имеет ли смысл разбирать чужие сложные скрипты для самообучения?

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

    @alexalexes
    80% - видеокарта, 20% - что-то еще.
    Обнаруживается подкидыванием видеокарты-затычки вместо 4070.
    Несите в сервис, там это обнаружат сразу.
    Ответ написан
    3 комментария
  • Как сделать чтобы BAT файл печатал на принтере?

    @alexalexes
    Попробуйте использовать Paint:
    mspaint /pt [file name] [printer name]
    Ответ написан
    2 комментария
  • Как запитать много хардов для домашнего самодельного NAS?

    @alexalexes
    В вашем кейсе есть важная особенность.
    При запуске диска потребляемый ток может достигать 2 ампера по 12 вольтовой шине на диск.
    5 вольтовая линия, обычно, никогда не превышает 1 ампер на диск, если есть питание 12 вольт.
    Вот и считайте.
    По 5 вольт шине вам нужно 5В * 1А * 12 дисков = 60 ватт.
    По 12 вольт шине вам нужно 12В * 2А * 12 дисков = 288 ватт.
    Разделите на рабочий КПД блока питания в районе 0.8, получите цифру минимальной мощности БП для питания дисков, без учета других компонентов системы.
    (60 + 288) / 0,8 = 435 Ватт.
    Это при идеальных характеристиках БП - с сертификатом 80plus.
    Если какой-то китайский блок брать, то все 500 ватт нужны.
    PS: Не забудьте к этому показателю накинуть потребление процессора, мат. платы и видео.
    PPS: Если материнская плата позволяет, то можно в биосе настроить разную задержку на запуск каждого диска. Тем самым можно уменьшить пусковой ток за счет увеличения времени последовательной инициализации дисков, тогда БП можно взять по проще.
    Ответ написан
    3 комментария
  • Вычисления datetime if()?

    @alexalexes
    Если нужно в php сравнивать даты, то из базы отдельным полем приводите любую дату в формат YmdHis и можете сравнивать значения как строки:
    if($date < date('YmdHis'))
    {
    }

    Будет работать железобетонно на любой версии php.
    Ответ написан
  • Видеокарта 12вольт гдето 12.4-5 в простое и 12.3 при нагрузке можно брать?

    @alexalexes
    Видеокарта 12вольт где-то 12.4-5 в простое и 12.3 при нагрузке

    Это напряжение, которое выдает текущий БП, и характеризует БП, а не видеокарту.
    можно брать?

    Пока не будет очевидно для вас состояние внешнего вида чипов памяти и GPU - то брать не стоит.

    Если берете через Avito, то в обязательном порядке тащите в пункт выдачи полностью компьютер и делаете полные нагрузочные тесты с видеокартой в течение 30 минут, только после этого соглашаетесь на получение. Никакие другие варианты получения при большой стоимости видюхи не должны рассматриваться.
    Ответ написан
    2 комментария
  • Скачет температура?

    @alexalexes
    включил работает но при включении системы пишет CPU Fan Error

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

    Пальцем можно диагностировать температуру до 45 градусов. Мосты и радиаторы мосфетов могут греться и до 70 градусов - это для них норма будет. Тут оптический пирометр нужен для диагностики.
    .решил сныть его и поставить другие .поставил два так как они слабые а тот был мощный.

    При комбинировании кулеров, если соединить жилы управления и жилы датчиков от всех кулеров в один пин можно получить непредсказуемый результат управления ими материнкой. Тут нужно определенное понимание, с какого датчика снимать обороты, и как распределить сигнал управления, если у вас только один разъем под кулер. В таких ситуациях, обычно, оставляют один управляемый кулер материнкой, а все остальные подключают напрямую к питанию, возможно, даже выставляют постоянные обороты, чтобы была циркуляция воздуха в системнике.
    PS: Еще в Биосе настраивается профиль работы кулера, но вы туда, видимо не лазили.
    Ответ написан
    4 комментария
  • Как закрыть страницу благодарности от прямых заходов?

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

    @alexalexes
    Нет, только ручками править шаблоны.
    Если сайт совсем древний, то вам еще воевать со статическим контентом, чтобы его как-то затащить в некое подобие шаблонов, чтобы сделать адаптивные блоки.
    Ответ написан
    Комментировать
  • Можно ли создать беспроводной USB "провод"?

    @alexalexes
    Ответ, на самом деле, не тривиален.
    USB хаб, который можно подключить к компу без проводов, - это единичные решения отдельных фирм.
    Например, IOGEAR Wireless USB Hub and Adapter Kit (GUWH204KIT).
    Скорее всего такое выпускалось когда-то, и только на всемирной барахолке найдете, типа, ebay.
    Если нужно собирать современное решение, то скорее всего вам понадобиться usb сервер в форм-факторе wifi-роутера или Малинки (Raspberry Pi). И собственно, уверенные знания linux, чтобы это настроить. https://habr.com/ru/companies/selectel/articles/668590/
    Ответ написан
    Комментировать
  • Как рассчитать нагрузку веб сервера?

    @alexalexes
    Ну, если все лежит в базе данных, то вопрос глупый.
    SQL в руки, и вперед получать статистику:
    select max(t1.url_count_per_second) as max_count, -- макс. значение в рассматриваемом периоде
              avg(t1.url_count_per_second) as avg_count -- среднее значение в рассматриваемом периоде
    (
    select t.log_date, -- нужно смотреть, в каком формате выводится отметка времени, нужно добиться такого формата, чтобы там были секунды
               count(distinct t.url /*тут, возможно, нужно вычленять интересуемый фрагмент url, без "шелухи" из параметров*/) as url_count_per_second
    from log_table as t
    where t.log_date between  :beg_date and :end_date -- предусмотреть конвертацию значений меток в нужный формат log_date
    group by t.log_date -- тут тоже нужен тот формат, который выводится в select
    ) as t1
    Ответ написан
    2 комментария
  • Почему такие большие значения SMART?

    @alexalexes
    На мой вкус, если предполагается хранить данные, которые не подлежат восстановлению при полной утере всех копий, то скупиться на новый диск не стоит.
    Этот вроде не сильно использовался, но не стоит из него делать холодное хранилище последней копии.
    Он годится для роли флешки - для переноса данных сойдет, но если разбил диск, то не жалко.
    Ответ написан
    Комментировать
  • Как взять максимальный квартал в каждом году?

    @alexalexes
    select B.*
    (select A.*,
                max(A.Квартал) over (partition by A.Год) as Макс_Квартал
      from A) B
    where B.Квартал = B.Макс_Квартал
    Ответ написан
    Комментировать
  • Есть ли разница в производительности при запуске функции ил SQL запроса или в цикле php?

    @alexalexes
    1. На 3-10 позициях не имеет значения реализация.
    2. На 100...1 млн лучше экономить трафик между PHP сервером и СУБД.
    3. Если нельзя избежать транссистемой обработки задачи на 100...1 млн, то разбивайте задачу на пакеты в 100...1000 ед. Пакеты ставьте в очередь на обработку. Делайте диспетчер очереди.

    В общем, какой бы замер не сделали бы. Вы придете к одному из этих решений.
    Ответ написан
    Комментировать
  • Произошло ли повреждение материнки в сокете?

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

    @alexalexes
    Под Rx570 - не менее 600 Вт в независимости от остальной комплектухи.
    Расчетные 500...550 вам дадут запустить систему, но питание будет тухнуть через полчаса в 3D нагрузках.
    Ответ написан
    1 комментарий
  • Где ошибка в SQL запросе к полю содержащему XML?

    @alexalexes
    SET QUOTED_IDENTIFIER ON;
    -- create
    CREATE TABLE entity (
      xml ntext
    );
    
    -- insert
    INSERT INTO entity(xml) VALUES ('<r><authCard>abc123slip4</authCard><authCard>abc1234</authCard></r>');
    
    -- fetch 
    SELECT * FROM entity
    where cast(xml as xml).value('(/r/authCard)[1]', 'nvarchar(max)') LIKE N'%slip%';
    Ответ написан
    3 комментария
  • В какой программе делается такая анимация?

    @alexalexes
    Любой 3d редактор, плюс какой-то набор готовых моделек. Небольшая усидчивость для Ctrl+С - Ctrl+V.
    Моделируете траекторию камеры и можете пилить видосик.
    Вам даже просматривать обучающие ролики не нужно, как трансформировать начальные модели, все примитивно.
    Ответ написан
    1 комментарий
  • Как правильно сгруппировать данные двух таблиц чтоб записи соединялись по количественному номеру записи?

    @alexalexes
    Чтобы любую таблицу обложить историей изменения, нужно создать следующую обвязку:
    1. Создать таблицу <название исходной таблицы>__history
    Поля таблицы:
    Первичный ключ - history_id,
    Копируем названия полей исходной таблицы как есть (всем полям даете возможность быть null).
    Делаем внешние ключи таблицы истории к исходной таблице (обычно id- исходной таблицы нужно привязать) и к другим таблицам, такие же как в исходной таблице, но опускаем ограничение уникальности ключей. Не используем каскадное обновление значение ключей.
    Добавляете поле - вид операции над строкой исходной таблицы (вставка, обновление, удаление).
    И самое главное, в таблице истории должно быть поле next_history_id - делаете по нему связанный список истории изменения одного поля. Как это поле работает? - см. пункт 2.
    2. Создаете триггер/ы на события вставки, изменения, удаления для исходной таблицы в ней пишите тело со следующими действиями:
    Читаете id тронутой событием записи из исходной таблицы.
    Определяете history_id по данной id, где next_history_id is null - запоминаете в локальной переменной как before_history_id.
    Если действие не удаление, то создаете запись в таблице истории из new-полей, которые пришли в insert/update для исходной таблицы, добавляете значение поля вида действия, next_history_id делаете null, получаете history_id этой вставленной записи - записываете в переменную new_history_id.
    Если действие - удаление, то new поля вычитывать не нужно, нужно записать значение поля вида действия, next_history_id делаете null, получаете history_id этой вставленной записи - записываете в переменную new_history_id.
    Делаете обновление поля next_history_id = new_history_id у записи истории со значением ключа before_history_id.
    Тело триггера готово.
    На любое действие в исходной таблице будет создаваться запись в истории, с указанием действия, а также будет формироваться цепочка изменений конкретной записи через атрибут next_history_id.
    Чтобы вычитать последнее изменение по строчке исходной таблицы, нужно обратиться в таблицу истории по id от исходной таблицы и next_history_id is null.
    Ответ написан
    Комментировать