Задать вопрос
  • Как избавиться от наводок при подключении колонок/наушников через заднюю панель материнской платы?

    NeiroNx
    @NeiroNx
    Программист
    Заменить сдохшие конденсаторы в блоке питания. Возможно там брак ввиде "сопли" закорачивающей выходной дроссель.
    Ответ написан
    1 комментарий
  • Как запускать выполнения файла по расписанию?

    @pfg21
    ex-турист
    есть стандартная системная служба cron

    в менеджере systemd есть более современный метод создать my_name.service и к нему запускалку по времени my_name.timer
    статей мильен и для того и для того
    пишем задание для cron
    пишем свой timer для systemd
    Ответ написан
    1 комментарий
  • Что нужно знать, чтобы сделать простой сайт - доску с объявлениями?

    Sanes
    @Sanes
    Не надо вам ничего этого знать. Ваше захолустье пользуется Авито и объявлениями на столбах.
    Ответ написан
    1 комментарий
  • Почему целесообразнее не использовать new для работы с классами, а предпочесть DI?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Вот почему: PHPunit замокать класс внутри тестируемого класса?
    Бонус-раунд: DI упрощает работу с зависимостями зависимостей. Если ваш MyService принимает какой-нибудь логер в зависимостях, который в свою очередь ожидает какой-нибудь драйвер файловой системы, вы задолбаетесь собирать их через new.
    Ответ написан
    Комментировать
  • Как вытащить только одну строку из json?

    у Вас JSON невалидный. Если предположить, что правильный JSON такой:
    {
      "128.3.3.1:1231":
        {"name":"NAME SERVER 1","gamemode":"mods","url":"https://url.ru","lang":"ru","players":412,"peak":521,"maxplayers":3333},
      "127.0.0.1:1234":
        {"name":"NAME SERVER","gamemode":"mods","url":"https://url.ru","lang":"ru","players":598,"peak":609,"maxplayers":3000}
    }

    то нужная часть извлекается элементарно:
    $json= "https://jsonurl";
    $data = json_decode(file_get_contents($json),true);
    
    $ip = "127.0.0.1:1234";
    $item = $data[$ip];
    Ответ написан
    1 комментарий
  • Есть ли качественная дорожная карта для web разработки на python?

    @calculator212
    дорожная карта для web разработки на python
    В целом веб разработка не привязана к какому-либо языку, например вопрос с авторизацией пользователей часто решается при помощи cookie/jwt и по сути никак не связан с питоном. Т.е. тебе не нужна карта конкретно под питон, а нужна карта под бэк/фронт
    есть базовая карта для бэкенда(там же для фронта), по которой ты можешь ориентироваться. Из этой карты тебе стоит выцепить основные понятия, как rest, cors, caching и т.д. и изучать это.
    Всякие там протоколы сетевые, ну то есть хочу не просто клипать тупо, а понимать как все между собой связано,
    Можешь пройти курс по сетям, хотя в целом например мне понимание того как работает OSPF, BGP не особо помогает, TCP/udp полезно, но конкретно в питоне редко используется напрямую.
    Если ты изучаешь для хобби и времени у тебя много то можешь конечно распылять время как хочешь, если изучаешь для поиска работы, то следует сконцентрироваться на нужных инструментах и языке, ряд вещей по типу того устроены сети занимает много времени особенно если никто не помогает, а выигрыша про поиске работы немного больше нуля.
    Ответ написан
    Комментировать
  • Как возвести в степень в php?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Самое простое:
    function user_pow(int $number, int $degree) {
      if ($number <= 0 || $degree < 0) throw new \InvalidArgumentException('Invalid arguments');
      if ($degree === 0) return 1;
      $result = $number;
      for($i = 1; $i < $degree; $i++) {
        $result *= $number;
      }
      return $result;
    }
    
    echo user_pow(2, 2); // 4
    Ответ написан
    3 комментария
  • Как возвести в степень в php?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Цикл + умножение.
    Ответ написан
    Комментировать
  • Как можно оптимизировать генерацию и загрузку боьшого html?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вопросы такие: какие есть способы ускорить загрузку страницы?
    Во первых - выяснить что тормозит: бэкенд или фронтенд. Сделать профайлинг бэкенда, сделать анализ загрузки фронта. Соответственно сначала понять что тормозит.

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

    И почему на смартфоне в мобильном safari та же самая страница грузится за пару секунд?
    Опять же, вопрос скорее к вам чем к кому-либо еще. Возможно кеширование, которое на мобильных браузерах практически всегда более агрессивное. Возможно вы просто не видите как тормозит загрузка, например в силу другого метода рендеринга, который сразу при получении данных выводит все что возможно, в то время как на стационаре рендеринг идет только после загрузки тега целиком. Достаточно например быстро промотать на сафари вниз при загрузке, чтобы увидеть что загрузилось далеко не все... А возможно в мобильной версии отображается сильно меньше элементов...

    Можно ли этот эффект повторить на десктопе?
    Если есть что повторять... Можно попробовать сделать таблицу не цельной, а разбить на несколько таблиц, по 100-300 строк. Или еще адкеватнее - сверстать дивами.

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

    PS:
    я тоже склоняюсь к неэффективной вёрстке. Если я эту вёрстку буду генерировать js’ом, процесс ускорится?
    Скорее всего, как я уже написал, скорости не прибавится. Вообще что мешает проверить эффективность верстки? Тупо выведите все строки дивами, без всяких разделителей, одна строка - один див с данными, разделенными "|" например, и посмотрите на разницу.
    Ответ написан
    Комментировать
  • Как сгенерировать шахматный бакграунд в ImageMagick.Net?

    @U235U235
    Зачем рисовать квадратики в цикле? Вообще-то шахматный паттерн уже есть в IM.
    convert -size 8x8 pattern:gray50 -scale 5000%  chessboard.png
    Ответ написан
    6 комментариев
  • Как мне настроить .htaccess?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    добавить файлы статики в исключения. Хотя по идее у вас и так перенаправляться будут только отсутствующие файлы и папки...
    RewriteCond %{REQUEST_URI} !\.(css|jpg|gif|png|zip|rar|doc|xls|js|tif|tiff|docx|xlsx|ico)$
    RewriteRule ^(.*)$ index.php [L,QSA]
    Ответ написан
    3 комментария
  • Почему не работает оперативная память в двухканале?

    hint000
    @hint000
    у админа три руки
    Тайминги разные. Но давайте попробуем это победить. Если честно, я не обещаю, что получится, но почему бы не попытаться.
    Если BIOS материнки позволяет вручную рулить таймингами, то будем рулить.
    Запускаете в одноканале и смотрите, с какими таймингами запустилась одна планка и другая (ну а частота одинаковая, 2133, как вы говорите).
    Берёте максимальные тайминги (внимание, не путать с частотой, здесь чем больше тайминги, тем медленнее), запоминаете, у какой планки тайминги больше, у какой меньше. Нам нужно замедлить более быструю, т.е. с меньшими таймингами нужно их увеличить (по характеристикам Crucial быстрее, но вы это проверьте именно при частоте 2133). Ставите только более быструю планку, заходите в BIOS, добавляете ей тайминги, сохраняете, после успешной загрузки выключаете. Ставите вторую планку в двухканал, пробуете загрузиться. Если не получилось, то опять оставляете только более быструю и ещё по единичке добавляете тайминги, снова пробуете двухканал.
    Если всё это не поможет, то попробуйте вручную уменьшить частоту на одну ступеньку (сколько там... 2066 что ли будет?)
    Ответ написан
    1 комментарий
  • Как выполнить cURL запрос с ключом -u в PHP?

    Для параметра -u в PHP нужно передать CURLOPT_USERPWD
    https://www.php.net/manual/ru/function.curl-setopt.php

    UPD.
    curl_setopt($ch, CURLOPT_USERPWD, '12345:');
    Ответ написан
    3 комментария
  • В чем может быть проблема с cURL?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    & на мысли не наталкивает ? Что такое html entity знаете ?
    В общем или в базу муссора насовали или позже обработали строку.
    Есть два подхода (крайности), к тому как заносить данные в базу данных.
    1) Все проверяем по куче условий, при любой ошибке отказываемся.
    2) Пофиг - записываем все как есть, потом будем опасное экранировать.
    Ответ написан
    9 комментариев
  • Как из JSON забрать значения и передать их в html (php)?

    Ge1i0N
    @Ge1i0N
    Всё есть в документации.
    $array = json_decode($json, true)
    На выходе получаете массив. Страны будут лежать тут, выводите как нужно:
    $array['promocodeInfo']['countryDetails']
    Ответ написан
    5 комментариев
  • Пропал интернет на пк?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    В настройках "Панель управления" - "Сеть и интернет" - "Сетевые подключения", проверить, не выключили ли вы случайно проводное Ethernet подключение.

    Подключить ПК к роутеру другим, заведомо рабочим кабелем.
    Ответ написан
    Комментировать
  • Пропал интернет на пк?

    @Drno
    дело или в кабеле или в сетевой карте)

    Раз на ПК показывает что нет линка( не горит лампочка), то что то из этого...

    Проверять можно только опытным путем. Для очистки совести можно еще проверить порт на роутере, переключив кабель в другой LAN порт на нём
    Ответ написан
  • Как заставить работать кририлицу в dompdf 2.0.4?

    Adamos
    @Adamos
    появилась проблема что не читает кирилицу

    "Доктор, у меня проблема" - сказал старый партизан. И больше никакой информации не выдал!

    Ладно, погадаем на гуще. Если раньше все работало и ТС качал (откуда-то) некую "новую версию", можно предположить пальцем в небо, что к этой скачанной версии тупо приложены шрифты без кириллицы. В mPDF шрифт можно подложить буквально при генерации, указав путь. Как там в dompdf - надо гуглить.
    Ответ написан
    2 комментария
  • Как правильно писать тесты PHPUnit под ООП?

    Вам не надо тестировать приватные методы.
    Но как же тогда быть, вы скажете?
    Публичные методы используют эти приватные методы, так и проходит тестирование.
    Из этого вытекает, что класс должен быть небольшим и выполнять только одну задачу. Поэтому его приватные методы будут всегда задействованы при тестировании публичных.
    Но вы скажете, что у вас там в публичных методах обращения к базе данных и внешним API, как же тут быть?
    А быть тут просто: все зависимости вашего класса должны включаться в качестве аргументов конструктора, и через использование интерфейсов в аргументах. (Dependency Injection)
    Таким образом в тесте все зависимости класса заменяются теми же моками, и вы легко тестируете не просто сферического корня в вакууме (приватный метод), а именно то, что и нужно тестировать: функциональность самого класса, а не его частей, потому что в OOP именно класс является как бы атомом функционала.
    Но... если вам всё же таки очень надо, то можно это сделать при помощи рефлексии:
    Хорошей практикой является использовать всегда protected вместо private.
    Пишете себе такую вот утилиту:
    class PHPUnitUtil
    {
      public static function callMethod($obj, $name, array $args) {
            $class = new \ReflectionClass($obj);
            $method = $class->getMethod($name);
            // $method->setAccessible(true); // если PHP старше 8.1.0
            return $method->invokeArgs($obj, $args);
        }
    }


    И используете ее в тестах
    $returnVal = PHPUnitUtil::callMethod(
                    $this->object,
                    '_nameOfProtectedMethod', 
                    array($arg1, $arg2)
                 );


    Есть ещё вариант.
    // Оригинальный класс
    class Foo {
      protected function stuff() {
        // secret stuff, you want to test
      }
    }
    
    // Класс для тестов
    class SubFoo extends Foo {
      public function exposedStuff() {
        return $this->stuff();
      }
    }
    Ответ написан
    3 комментария