Задать вопрос
  • Подключения питания процессора?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Покупка подходящего блока питания обойдется дешевле, чем покупка новой матери или процессора.
    Ответ написан
    Комментировать
  • Как сделать чтобы фотографии были также слитно?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Практически весь код нужно выкинуть..
    /*.photo__section {*/
    .photo__colage {
      /*height: 857px;*/
      /*display: flex;*/
      /*display: inline-block;*/
      /*justify-content: space-between;*/
      /*align-items: center;*/
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }
    
    .photo__photo {
      /*width: 477px;*/
      /*height: 357px;*/
      /*position: relative;*/
      /*flex-direction: column;*/
      /*justify-content: space-between;*/
      background-size: cover;
      /*margin-left: 0;*/
      /*vertical-align: right;
      /*justify-content: space-between;
      flex-direction: column;*/
    }
    Ответ написан
    Комментировать
  • Как создают текстуры для игр?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Ну так вы можете не знаю. ту же фотографию своего лица открыть на мониторе с разрешением 16к. И она там будет показываться ) Вы же не делаете фотографии под каждое разрешение? Не делаете. ВОт и тут абсолютно то же самое.

    Будет работать != будут 32к текстуры.
    Ответ написан
    2 комментария
  • Как реализовать не типичную вёрстку?

    Lara164
    @Lara164
    начинающий верстальщик html, css
    Логика основана на гридах. Добавляются классы 'slim1, slim2, slim2, которые задают элементам определенное положение в сетке в правой части А у того, что слева добавляется класс 'active' .
    Пример на codepen
    Ответ написан
    Комментировать
  • Оптимизация сайта под высокие нагрузки (php,nginx, mysql). Какие критерии доработок? Что необходимо сделать в первую очередь?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Как уже заметили коллеги - первое что нужно выяснить - что тормозит.

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

    Что конкретно надо делать:
    1) Взять за шкирку самого разбирающегося в коде (если таковой существует в проекте), и дать задание описать базовый стек вызовов, если это какой-то самопис, или сразу расставить код замера времени с метками в случае понятной архитектуры. Что то типа такого(класс - древний костыль, но работает, так что матом не ругаться):
    Class Timer.php:
    class Timer {
    
        static $start;
        static $end;
        static $marks = [];
        static $formats = [1=>''];
    
        static function init(){
            if(empty(self::$start)) self::$start = microtime(true);
        }
    
        static function setMark($markName = ''){
            $time = microtime(true);
            if($markName == '')$markName = $time;
            $data['name'] = $markName;
            $data['time'] = $time;
            $res['time'] = $time;
            if(count(self::$marks) > 1)$res['diff'] = $time - self::$marks[count(self::$marks)-2]['time'];
            else $res['diff'] = 0;
            $data['diff'] = $res['diff'];
            self::$marks[] = $data;
            return $res;
        }
    
        static function timeFormat($number,$format = ''){
            if(empty($format)) $format = 3;
            return number_format ($number,$format,'.','');
        }
    
        static function report(){
            self::$end = microtime(true);
            self::$marks['start'] = self::$start;
            self::$marks['end'] = self::$end;
            self::$marks['all_time'] =  self::$end - self::$start;
            if(!empty(self::$marks)) return self::$marks;
        }
    }


    In code:
    \Timer::init()
    //some code block 1
    \Timer::setMark('after block 1');
    //some code block 2
    \Timer::setMark('after block 2');
    ...
    //some code block n
    \Timer::setMark('after block n');
    //near end of code 
    \Timer::setMark('end');
    var_dump(\Timer::report());
    exit;

    2) Смотрите на блоки жрущие время, делите их до атомарных операций путем деления блоков пополам таймерами.
    3) Смотрите что там происходит - оптимизируете*. И так по кругу.
    4) Профит.

    * Оптимизация
    Запросы:
    1) Смотреть план запроса (use explain, Luke!).
    2) Расставить индексы которых явно не хватает
    3) Смотреть не вызывается ли 50 запросов в цикле? Если да - выписать пенделя писавшему, затем переписать в 1 запрос с нормальным джоином.

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

    Что нужно сделать обязательно кроме тестов и как тогда лучше спрашивать с разработчиков, если они предлагают размытые предложения? Хочется понять в какую сторону копать
    Бить палкой не вариант? Тогда берите других, эти испортились. Если разработчик не знает как выявить узкие места кода - нахрена он нужен? Код написать сегодня любой чат может... Ну, на крайняк дайте им вышеприведенный вариант решения проблемы...

    PS: Кстати, сервер может банально не выдерживать наплыв сетевых соединений, пните адимна, пусть глянет логи.

    PPS:
    достаточно 2000-4000 человек, заходящих в течение 20 минут на сайт
    это равномерные 3-4 рпс, ну или пусть в пике 50 рпс, должно держать даже на несложной конфигурации... Копайте код.
    Ответ написан
    Комментировать
  • Как создать скрытый input для передачи технической информации на другую страницу?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Тип hidden не подходит, потому что его можно редактировать? А что из html вы вообще можете НЕ редактировать?

    Вам тут стоит понять одну очень важную штуку: html/css/js образуют client side. Вы должны понимать, почему это называется вообще "Клиентом"? Потому что эта вся информация полностью загружается на клиента и он имеет к ней доступ.

    По этому существует server side - часть программной системы, к какой конечный пользователь не имеет доступа, в отличии от клиентской части.

    Цель сервера - обрабатывать запросы с клиента. Первое, что делает сервер с данными, которые ему отправил клиент - ВАЛИДИРУЕТ. Соответственно, если данные не валидны - запрос разворачивается обратно на клиента и отдаёт ему какую-то ошибку

    Это всё так, к слову. Вам важно понять, что клиент может редактироваться, вы никак не сможете этого избежать. Но этого не стоит бояться, т.к. то, за что вы переживаете должно обрабатываться на сервере.

    Client side должен обрабатывать данные перед отправкой на сервер (Но сервер обязан их повторно валидовать) и после получения данных от сервера для наилучшего представления ИХ конечному пользователю

    UPD: для справки. Вы можете полностью редактировать html в режиме реального времени, но он не будет сохранён для всех пользователей, а только для вас, т.к. эта часть загружается только два вас как для конечного пользователя. Сам html хранится на сервере и является результатом работы сервера. Эту часть html, что вы видите в браузере вы можете редактировать.

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

    Проблема в том, что даже после элементарной перезагрузки страницы (Через Ctrl + R или другими способами) это всё будет утеряно и вам загрузится тот самый html/css/js, который является результатом рабыты сервера того сайта, который вы просматриваете
    Ответ написан
    1 комментарий
  • Как создать скрытый input для передачи технической информации на другую страницу?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Какие могут быть варианты решения проблемы?

    Не выдумывать на ровном месте проблемы. Всё на стороне клиента можно отредактировать и подменить.
    Ответ написан
    2 комментария
  • Поможет ли замена SSD на NVME ускорить работу с браузером Firefox?

    @asmelnik
    1) Читали?
    https://support.mozilla.org/ru/kb/firefox-ispolzue...
    2) разницу между SATA и NVME представляете или нет?
    Если на пальцах, то ключевой момент в NVME не столько скорость, сколько количество одновременных потоков данных.
    SATA разрабатывался в первую очередь для HDD, т.е. механических дисков, и имеет ряд ограничений в связи с этим.
    Например интенсивный обмен мелкими объемами данных от большого количества приложений "убивает" производительность sata довольно быстро, а nvme переваривает в разы, если не на порядки, больше.
    Вот только на обычном пользовательском ПК редко возникают такие нагрузки.

    htop iotop iostat вам в помощь.
    Открываете консоль, общая нагрузка на систему
    htop (CPU, RAM, swap и т.д.)
    iotop и iostat требуют root и покажут вам кем и насколько интенсивно используется ваши жесткие диски.
    Ответ написан
    2 комментария
  • Как поставить debian 12 на SataRaid?

    @Drno
    Конечно зло. возпользуйтесь лучше mdadm...
    Ответ написан
    Комментировать
  • Почему ПК долго думает до загрузки БИОС?

    hint000
    @hint000
    у админа три руки
    Оперативку тестирует. Вангую, что её там немалый объём.
    Если стоит несколько планок оперативки, то оставьте одну и сравните время тупления. Должно быть пропорционально оставшемуся объёму оперативки.
    Ответ написан
    Комментировать
  • Что делать если в компонентах Windows нет WSL и Hyper-V?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Удивительно, да? Сначала ставим "сборку от Васяна" где порезано все по мнению Васяна "лишнее" - а потом начинаем, как бы это лишнее включить.

    А никак.

    Ставьте нормальную сборку, ключей в тырнете завались.
    Ответ написан
    Комментировать
  • Как исправить проблему запрета загрузки смешанного содержимого в Chrome?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    У nginx для этого существует директива proxy_redirect, которая как раз это и делает, помимо прочего - заменяет часть урла в Location.
    Ответ написан
    Комментировать
  • В чем причина ошибки Docker "Error response from daemon: No such container"?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    То что ты показал - это список образов. Запускается через docker image ls.
    Тебе нужно использовать docker container ps (либо docker ps - одно и то же)
    Ответ написан
    Комментировать
  • Как инициализировать пустой репозиторий в существующую папку?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Как уже сказали, возможность указать название начальной ветки, отличное от master, появилось в Git версии 2.28.
    Вы всегда можете переименовать master после инициализации, но лучше обновиться.

    И не важно, есть в текущем каталоге файлы или нет. Зачем вы акцентируете на этом внимание?

    Ваш второй вопрос к инициализации не относится:
    И почему пуш делается обязательно с --set-upstream?

    Не обязательно. Этот ключ лишь добавляет связь между локальной и внешней веткой. Чтобы в следующий раз отправлять коммиты просто командой push. Git уже будет помнить, в какой внешний репозиторий отправлять и в какую ветку.

    И самое важное:
    Никогда не вбивайте команды, смысл которых не понимаете. Сначала почитайте их описание.
    Ответ написан
    Комментировать
  • Выбор раннера в GitHub Actions. Как мне правильно прописать условие в pipeline?

    @vitaly_il1
    DevOps Consulting
    Я советую забыть для начала о ChatGPT и прочитать пару постов (или посомотреть видео) "мой первый workflow".
    Если коротко, Self-Hosted Runner обычно не нужен.
    Чтобы запуститься на линукс, пишем

    runs-on: ubuntu-latest
    Ответ написан
    Комментировать
  • Как создать сборку для быстрого развертывания сервера с WP?

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    1. Делаете дамп базы болванки вашего сайта и файлов WP
    2. Пишете ansible-плейбук, который:
    2.1 Настраивает все потроха ОС (устанавливает и обновляет все нужные пакеты, Докер, пользователей, создаёт каталоги и т.д).
    2.2 Устанавливает СУБД.
    2.3 Восстанавливает в СУБД ваш дамп.
    2.4 Разворачивает файлы WP в нужные каталоги.
    2.5 Запускает контейнеры с РНР, Redis и nginx.

    Всё!
    Ответ написан
    4 комментария
  • Существуют визуальные панели управления сервером?

    @Everything_is_bad
    Существуют, только от них больше вреда чем пользы, в каком-то минимальном уровне незнания сначала помогут, потом всё, одни проблемы
    Ответ написан
    6 комментариев
  • CPU загружается на 100% из за запросов mysql. Как отразить ddos?

    @koder_1
    Битрикс программист
    /bitrix/redirect.php - Эти скрипты, rk.php, redirect.php ограничьте через nginx или htaccess чтоб были доступны только с локального сервера, а с внешних адресов не доступны.
    Ответ написан
    Комментировать
  • Есть утилита для мониторинга UPS?

    @q2digger
    никого не трогаю, починяю примус
    Древний apcupsd
    Ответ написан
    Комментировать
  • Как правильно прописывать подгрузку шрифтов для всех браузеров?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Загрузится только один подходящий шрифт.

    PS.
    Вам правда нужна поддержка IE9, и прочей древности? Достаточно подключить woff2. Это покроет браузеры с 2017 года выпуска. Можно добавить woff и поддерживать браузеры с 2011 года (кроме 4 андроидов, но их все равно уже нет).
    Ответ написан
    Комментировать