• Сколько оперативной нужно веб серверу?

    @anton99zel
    29а класс средней школы №7
    Вы спрашиваете о чём то абстрактном.
    Что значит онлайн? Если это сайт, то он работает по принципу запрос-ответ. Любой вебсервер, типа Nginx или Apache могут обработать тысячи подключений в секунду.
    Расход памяти на поддержку системных сервисов хватит 512 мегабайт.
    А вот то, что действительно расходует память это запросы в базу данных и выполнение кода, допустим php.
    Тут зависит от методик, если вы умеете писать грамотно запросы в базу, знаете как работать с кешем, пишите оптииизированный и продуманный код, включая разумное использование сторонних библиотек, таких как плагины, шрифты, разного рода обработки.
    Условно говоря, можно положить сервер со 128 гигабайтами, а можно работать и с 4 гигабайтами.
    Нужно проводить тестирование, выявлять нагрузки и пытаться оптимизировать это.
    Вообще, линукс от виндовс отличается тем, что сколько линуксу памяти не выдавать, он будет резервировать под свои процессы не конкретный объем, а процентное соотношение.
    Ответ написан
    Комментировать
  • Сколько оперативной нужно веб серверу?

    @historydev
    Редактирую файлы с непонятными расширениями
    Вопрос из разряда погадай на шарике.
    Каждый запрос может тянуть от одного до N действий за собой, помимо самого наличия этого запроса (сетевая карта), каждое действие аналогично может тянуть за собой другие действия.

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

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

    Допустим мы выяснили, что на один запрос тратится 100мб оперативной памяти, 0.1% диска и 5 секунд времени это всё занимает, у нас 10 пользователей и 20 запросов в минуту среднее.

    Средняя общее кол-во запросов: (10 * 20) = 200
    Средний расход диска: (0.1 * 200) = 20%
    Средний расход оперативной памяти: (100 * 200) = 20000
    Ответ написан
    Комментировать
  • Почему Ctrl + D не дает коду выполняться дальше, а просто завершает программу?

    Adler_lug
    @Adler_lug
    Потому что Ctrl+D ≠ EOF
    Saying that Ctrl-D sends EOF is an educational lie-to-children. What it actually does is make any ongoing read() from the terminal return immediately with the contents of the current line buffer if any.

    Synergy happens because the Unix convention is that a read() of zero bytes represents EOF.

    This means that if you press Ctrl-D with an empty buffer, the read() will return with zero bytes, and a canonical program will interpret it as end-of-file. This is obviously just an illusion since you're still there to input more on the terminal, and a less canonical program could just keep reading if it wanted to.

    If you instead press Ctrl-D after entering some data, then that data is just returned and a canonical program will keep reading to find a linefeed or whatever else it's looking for.

    This is why EOF behavior is only triggered in canonical programs when Ctrl-D is pressed either after another Ctrl-D (the first flushes the buffer, the second returns a now-empty buffer) or after an Enter (for the same reason).
    Ответ написан
    1 комментарий
  • Как в битрикс в поисковой выдаче вывести разделы, к которым относиться искомый элемент?

    @koder_1
    Битрикс программист
    Берете стандартный компонент поиска, подсказку из товаров он уже выдает. Находите шаблон для вывода всплывающей подсказки, запросом по id найденных элементов получаете их разделы и добавляете разделы в подсказку.
    Ответ написан
    1 комментарий
  • Беспроводная клавиатура ломает X.Org. Как победить?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Тут вообще-то есть несколько ошибок, которые нужно устранить.

    1. Накуа modesetting? Пропишите руками дрова radeon (ATI же?)
    2. Найдите почему возникает failed to enable I/O ports

    Свисок может садиться на порты, котореы система предполагает под что-то другое, посмотрите, как он детектится. Ну, в крайнем случае - перейдите на провод, хотя это конечно попс - я сам не люблю провода от клавы...
    Ответ написан
    Комментировать
  • Можно ли писать div вне body?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега HTML
    Это так.
    Браузер прожуёт довольно страшную хрень, которую напишет разработчик, но есть ровно ноль причин её писать сознательно.
    Ответ написан
    1 комментарий
  • Как можно оставить в таблице_2 только те ID которые есть в таблице_1, остальные удалить?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    Элементарно:
    DELETE FROM table2
    WHERE NOT EXISTS (SELECT id FROM table1 WHERE table2.id = table1.id);


    https://sqlize.online/s/po
    Ответ написан
    Комментировать
  • Как перевернуть наоборот добавленные из бд отзывы?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Я думаю что так лучше:
    SELECT `name`, `text`, `date` FROM `reviews` ORDER BY `date` DESC


    Кроме этого, я не советую использовать "root" для подключения к базе!
    Так же не советую выводить пользователю ошибки базы данных. Их следует писать в лог!
    Ответ написан
    Комментировать
  • Динамическое создание тега на JS, почему не сработает обработчик событий?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Ведь мы создаем новый li при клике на btn, и он попадает в DOM
    Ну да, попадает. А чтобы что-то с ним делать, нужно навесить обработчик события. Совершенно непонятно, что вас в этом процессе удивляет.
    Вы можете делегировать обработку события родительскому контейнеру (<ol />) и тогда навешивать отдельные обработчики на создаваемые элементы не придётся.
    Ответ написан
    3 комментария
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - var_dump( $str );
    + echo bin2hex($str);
    Получаем cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21
    Открываем таблицу cp1251 и смотрим
    cf - П, f0 - р, e8 - и, e2 - в, e5 - е, f2 - т, 20 - пробел, 32 - 2, 30 - 0, 31 - 1, 39 - 9, 20 - пробел, cc - М, e8 - и, f0 - р, 21 - !
    Привет 2019 Мир!
    Всё вполне сконвертировалось.
    Ответ написан
    Комментировать
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    @alexalexes
    $str = 'Привет 2019 Мир!'; // написано в той кодировке, в которой сохранен файл (хрустальный шар говорит, что utf-8)
    $str = mb_convert_encoding( $str, 'windows-1251', mb_detect_encoding( $str ) ); // конвертируем в cp1251
    header('Content-Type: text/html; charset=windows-1251'); // Откуда трабла с кодировкой? - не соответствие сообщаемой кодировки в http-заголовке от сервера, с выводимым контентом от сервера. Исправляется явным указанием заголовка
    var_dump( $str ); // выводим в той кодировке, что выводит заголовок charset сервера в браузер (хрустальный шар говорит, что до указания header() было charset=utf-8)
    Ответ написан
    2 комментария
  • Как в текст из базы данных вставить шаблон?

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

    @koder_1
    Битрикс программист
    У разделов тоже есть пользовательские поля.
    В списке разделов кликаете кнопку с тремя точками слева от названия раздела, в всплывающем меню выбираете редактировать, и вы в редакторе раздела.
    В редакторе раздела на вкладке Доп поля можно создать дополнительное поле раздела.
    Ответ написан
    Комментировать
  • Что делать если дрожит фоновое изображение при скроллинге страницы с телефона (тестил на chrome)?

    @blecked88 Автор вопроса
    Пофиксил! Проблема была действительно из-за телефонной адресной строки браузера. Непосредственно фикс:
    JS:
    <script>
            function setFixedBackgroundHeight() {
                const vh = window.innerHeight * 0.01;
                document.documentElement.style.setProperty('--vh', `${vh}px`);
            }
    
            window.addEventListener('resize', setFixedBackgroundHeight);
            setFixedBackgroundHeight();
        </script>


    CSS:
    body {
        font-size: 1.3vw;
        margin: 0;
        font-family: montserrat;
        display: flex;
        flex-direction: column;
        color: #C1BFBF;
        position: relative;
        overflow-y: auto;
        overflow-x: hidden;
    }
    
    body::before {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: -1;
        background-image: url("../images/background.jpg");
        background-size: cover;
    }
    
    /* Использование переменной --vh для расчета высоты */
    body {
        --vh: 1vh;
        min-height: calc(100 * var(--vh));
    }
    Ответ написан
    Комментировать
  • Как настроить импорт из 1С при условии, что изображения товаров хранятся на стороне сайта?

    я решал так, в init.php

    AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "DoNotUpdate");
    function DoNotUpdate(&$arFields)
    {
        if ($_REQUEST['mode'] == 'import') {
            if (isset($_GET['type'], $_GET['mode']) && $_GET['type'] === 'catalog' && $_GET['mode'] === 'import') {
                unset($arFields['PREVIEW_PICTURE']);
                unset($arFields['DETAIL_PICTURE']);
            }
        }
    }
    Ответ написан
    1 комментарий
  • Почему разные результаты при проверки вложения (case sensitive)?

    Revencu
    @Revencu Автор вопроса
    решил через COLLATE
    select instr(json_unquote(json_extract('{"name": "Gamma Electronics"}','$.name')) COLLATE utf8mb4_0900_ai_ci, 'ga')


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

    А зачем искать «во всех ветках»? Вам же нужно понять, откуда оно в текущей версии появилось. Следовательно, можно просто через blame найти последнее изменение и дальше по истории. Может, коммиты из других веток попали, тогда на них и переключайтесь.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы человек мог писать в канал некоторые команды ботов, а некоторые не мог?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Никак не сделать. Вы не можете запретить человеку писать что угодно. Вы можете только на своей стороне, в боте, проверять, разрешена ли данная команда данному пользователю, и выполнять или не выполнять её.
    Ответ написан
    Комментировать
  • Где здесь ошибка?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    element.parentNode.removeChild(element)
    Ответ написан
    Комментировать
  • В чем нарушение синтаксиса в данном запросе? Как его исправить?

    @Akina
    Сетевой и системный админ, SQL-программист.
    дана вот такая задача
    "Добавить отзыв с рейтингом 5 на жилье, находящиеся по адресу "11218, Friel Place, New York", от имени "George Clooney""

    Это должно быть вот так:
    INSERT INTO Reviews (user_id, reservation_id, rating)
    SELECT Users.id, Rooms.id, 5
    FROM Users
    CROSS JOIN Rooms
    WHERE users.name = 'George Clooney'
      AND Rooms.address = '11218, Friel Place, New York';

    А за каким рожном тут таблица Reservations, я вообще не понял. Задание про необходимость резервирования этого жилья за этим юзером не говорит ничего - то есть такого резервирования может и не быть.
    Ответ написан
    2 комментария