• Почему показатель Кэша индексов MyISAM высокий?

    @mooncar
    На всякий случай, расскажу как я решил аналогичную проблему.

    Кроме такой ошибки, как на скрине у ТС, у меня постоянно падал MySQL. Изучил логи CentOS, выяснилось, что система убивает процесс mysqld, когда по какой-то причине истощается свободное место в подкачке - при резервном копировании, например, когда в память загружается база.

    Оказалось, что о умолчанию Битркис при разворачивании виртуальной машины устанавливает раздел для подкачки равной 512 Мб. Для свежей пустой базы это нормально. Со временем этого перестает хватать. У меня базы данных на проектах порядка 5-6 Гб.

    Действуя по инструкции, создал swap-файл, равный объему памяти, отведенной системе (6 Гб, у меня виртуальные хосты). Далее отключил swap-раздел. И все начало работать без ошибок и падений.

    PS. Расход swap можно отслеживать в режиме реального времени с помощью утилиты htop, легко устанавливается в системе.
    Ответ написан
    Комментировать
  • Как установить региональность сайта в Яндексе на поддоменах?

    @barsukoff
    Добавляешь поддомены в вебмастер, как отдельные сайты. И у каждого выбираешь нужный регион. Страницу подтверждения достаточно указать и главную, на которой должно быть в заголовках или тексте написано например "Магазин сумок в Самаре."
    Ответ написан
    Комментировать
  • Как работает группировка Мюнха?

    @farza
    Web - Developer
    XSL - элемент key

    Простое определение
    Ключ может содержать элемент или множество элементов. Получить элемент или множество элементов из ключа можно при помощи функции key() по переданному в качестве аргумента значению.

    Определение из учебника
    Элемент объявляет именованный ключ, т. е. пару «имя-значение», связанную с указанным элементом в XML-документе. Этот ключ используется с фукнцией key() в выражениях XPath для осуществления эффективного доступа к связанным элементам в сложном XML-документе.


    Оригинал
    The element is a top-level element which declares a named key that can be used in the style sheet with the key() function.


    Ссылки на документацию
    https://www.w3schools.com/xml/ref_xsl_el_key.asp

    В примере выше создается ключ с именем group, который содержит множество item (match="item") и этот элемент "item" или его множество можно получить по значению атрибута group (use="@group").

    В примере выше в ключе «group» содержится множество «item», доступ к которым можно получить по значению атрибута «group» через функцию «key()».

    generate-id

    Простое определение
    Возвращает строку, которая уникально идентифицирует первый узел документа. Если в функцию передать множество, то будет возращен уникальный id первого элемента из этого множества

    Определение из учебника
    Функция generate-id возвращает уникальный строковый идентификатор первого в порядке просмотра документа узла, передаваемого ей в виде аргумента. Если аргумент опущен, функция возвращает уникальный идентификатор контекстного узла. Если аргументом является пустое множество, функция должна возвращать пустую строку.

    Функция generate-id возвращает для двух узлов один и тот же идентификатор тогда и только тогда, когда эти два узла совпадают. Это означает, что во время выполнения одного преобразования функция generate-id будет возвращать один идентификатор для одного и того же узла, а для разных узлов generate-id обязательно возвратит разные идентификаторы.


    Оригинал
    The generate-id() function returns a string value that uniquely identifies a specified node.

    If the node-set specified is empty, an empty string is returned. If you omit the node-set parameter, it defaults to the current node.


    Ссылки на документацию
    https://xsltdev.ru/xpath/generate-id/
    https://www.w3schools.com/xml/func_generateid.asp

    Квадратные скобки

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

    Этой строчкой
    <xsl:apply-templates select="item[generate-id(.) = generate-id(key('group',@group))]" />

    мы говорим следующее:
    Примени все шаблоны к тем элементам item, которые соответствуют критерии (фильтру), который указан в квадратных скобках

    В этой части
    key('group',@group)

    мы говорим следующее:
    Дайте мне множество элементов «item» из ключа «group», значение атрибута «group» которых равняется значению атрибута «group» у «item» находящегося в XML документе

    Идем далее. Этой строчкой
    generate-id(key('group',@group)
    Мы говорим следующее
    Вернув множество item с одинаковым значением атрибута «group», дай мне id первого элемента из множества

    Этой строчкой
    item[generate-id(.) = generate-id(key('group',@group))]

    Мы говорим следующее
    Примени все шаблоны для элементов «Item», generate-id которых равняется уникальному generate-id элемента.

    В итоге получается, что шаблоны применятся только для элементов «item» с уникальным атрибутом «group»

    Подробнее с примерами:
    geekspace.info/notes/1
    Ответ написан
    Комментировать
  • Как вывести List во View, если лист пока нулевой?

    @dmitryKovalskiy
    программист средней руки
    1) Осваивайте понятие Model. Создайте класс одним из полей которого будет ваш Drivers. Создайте строго типизированный View для этого класса.(Заодно научитесь асинхронно грузить этот список)
    2) Более простой способ "в лоб"
    @if(ViewBag.Drivers!=null)
    {foreach (var x in ViewBag.Drivers)
        {
            <p>@x</p>
        }
    }


    Вообще я вам рекомендую не приучаться пользоваться ViewBag, а больше осваивать строготипизированные View, Partial View и прочее. ViewBag подходит для переноса коротких сообщений. Таскать объекты для отображения в интерфейсе - плохая практика вынуждающая изобретать костыли, о которых вы собственно и задали вопрос.
    Ответ написан
    Комментировать
  • Как сделать преобразование массива string[] в массив double[]?

    georgich
    @georgich
    Приветствую.
    Вот на форуме мсдн дали ответ.
    double [] doubleArray = new double[stringArray.Length]
    
    for(int i=0; i<stringArray.Length; i++)
    {
         doubleArray[i] = Double.Parse(stringArray[i]);
    }

    или LINQ
    double[] doubleArray = stringArray.Select<string, double>(s => Double.Parse(s)).ToArray<double>();
    Ответ написан
    2 комментария
  • Как лучше освоить стезю front end?

    TomasHuk
    @TomasHuk
    Курсы по JavaScript будут на htmlacademy до конца года по подписке. Можете подождать.
    Ответ написан
    Комментировать
  • Как лучше освоить стезю front end?

    Therapyx
    @Therapyx
    Data Science
    Ну дак поздравляю) Вы добрались до первого языка программирования. А с нуля сразу т уда прыгать совсем не просто.
    Надо начинать с самых низов и разбирать все детали, не торопитесь делать все подряд отдельными кусками, типа слайдеров и другой приблуды для фронтенда.
    Мне вот нравятся уроки от этого человека. Недавно он начал серию с жава скриптом и там уже 77 уроков хД Посмотрите для начала, или купите сразу книгу.
    https://www.youtube.com/watch?v=PMsVM7rjupU&list=P...
    Ответ написан
    Комментировать