Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Сортировка html блоков JS?

Лучший ответ:
Собрать все блоки в словарь, где ключ - слово, значение - этот блок.
Ключи отсортировать.
Расставить блоки назад в родителя первого из них.код JavaScriptfunction resort(selector) {
	const nodeList = document.querySelectorAll(selector);
  const dict = {};
  const parent = nodeList[0].parentNode;
  nodeList.forEach(node => {
  	const key = node.querySelector('p').innerText;
    dict[key] = node;
    node.parentNode.removeChild(node);
  });
  const keys = Object.keys(dict);
  keys.sort().forEach(k => parent.appendChild(dict[k]));
}

resort('.slide');
Работающий пример:snippet

Худший ответ:
как эти блоки появляются на странице, из базы данных то есть из массива?
правильнее всего сначала сортировать этот массив, перед выводом в html на страницу
Вопрос: Почему все быстро надоедает?

Лучший ответ:
2-3 месяца - это очень мало, чтобы что-либо изучить.
Есть подозрение, что вам нравится решать простые вещи, а как только появляется задача, на которую нужно потратить много времени и усилий, вам "надоедает".

Дело - в силе воли и нежелании изучать что-либо глубоко. Вот и прыгаете по верхам.

Худший ответ:
Переходите на визуальное программирование.
Вопрос: Как сделать выбор кнопки?

Лучший ответ:
Пример

Худший ответ:
css :
.selected{
border: 2px solid yellow;
}

При клике по кнопке языка, с помощью JavaScript сначала удаляем у выделенной кнопки  класс selected. Потом добавляем класс selected кнопке по которой кликнули:

Что-то вроде этого:
buttonLang.classList.add('.selected');
JavaScrpt :
JavaScript:https://ruseller.com/lessons.php?id=213...
JQuery:
jquery.page2page.ru/index.php5/%D0%94%D0%BE%D0%B1%...
Вопрос: Насколько важен программисту рейтинг вуза?

Лучший ответ:
да

Худший ответ:
РФ IT-образование - дно и работодатель смотрит только знания и умения, а диплом - бюрократия. 
В России диплом о вышке будет вечной бюрократией - и при перемещении за пределы родины эта бюрократия на руках лишней не будет. 
Если есть возможность МГТУ  без вариантов.
Вопрос: Есть ли порядок жестких дисков в материнской плате?

Лучший ответ:
Разъёмы же пронумерованы, загрузочный жёсткий диск желательно подключать к нулевому, так как по умолчанию приоритет загрузки в том же порядке.
Интересно, от чего же вы собирались чистить процессор?

Худший ответ:
Слетают настройки биос? этот не нормально!

Причина может быть как от проблем с контроллером диска, к примеру диск разово не обнаруживается и биос сбрасывает порядок на дефолтный, тот что отмечен циферками на материнской плате.

Логично решением может быть вставить ssd в разъем sata помеченный как 1.

p.s. включите загрузку uefi, ее реализуют каждый вендор по своему и вполне возможно станут вообще плевать на порядок дисков, выискивая нужный boot раздел по его метке.
Вопрос: Официальные темы wordpress имеют одинаковую структуру? Как создать совместимую?

Лучший ответ:
Не нужен Вам underscores! Можно конечно скачать, посмотреть структуру, но не более.
Ваша проблема в том, что используются произвольные поля, а в других темах не сделан их вывод, т.е. в базе они есть, а вывода нет.
Поэтому тут вопрос именно в этом, хотите чтобы в любой теме работало, не используйте произвольные поля! Если нужно использовать произвольные поля, то делайте плагин который с ними будет работать, таким образом php-код будет не в functions.php, а в плагине. И какую бы тему Вы не выбрали это будет работать. Но шаблон ИМХО все равно надо будет править.

Худший ответ:
Если я построю тему на основе этой заготовки она будет работать на других темах?
Вопрос не понятен от слова "совсем". Как может "работать" отключенная тема??Как правильно делать тему чтобы ее можно было потом сменить на другую? 
Любую тему можно в любой момент сменить на другую.
А правильно делать так: выкинуть из головы этот велосипедно-костыльный бред и подобрать тему из оф. каталога
Вопрос: Повреждение стека вокруг переменной — как побороть?

Лучший ответ:
Соглашение __stdcall обязывает пользователя функции передать параметры функции на стеке по значению, но освобождает его чистить стек после вызова. Стек от параметров чистит сама вызванная функция.

В результате подмены сигнатуры с BOOL (__stdcall *)(HANDLE, PBOOL) на bool (__stdcall *)(void*, bool*) компилятор думает об одном размере стека, а код функции - о других.

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

Однако, конкретно тут проблема у нас не в несовпадении типов, потому что.
__stdcall свой результат передает через регистр. регистр используется целочисленный или вещественный. Для целочисленного регистра используется правило продвижения типа. Это означает, что функция, записав значение типа BOOL (размер 4Б) ничего не испортит пользовательскому коду, который прочитает из регистра все 4Б с учетом правила продвижения.

Реальная проблема кроется в том, что указатель на однобайтовое целое (bool*) передается в использование как указатель на четырехбайтовое целое (BOOL* или PBOOL). Вызываемая функция ведь имеет сигнатуру BOOL (__stdcall *)(HANDLE, PBOOL) и со вторым параметром работает как с 4Б целым по указателю.
Именно это и приводит к порче стека и тебе, автор, сильно повезло что ты запускаешься в отладке, где каждое значение на стеке обрамлено заборчиком, за сохранностью которого всегда приглядывает специальный сервисный код между обращениями к подпрограммам.

Именно такой заборчик рядом с isWow64 и был поломан в результате вызова IsWow64Process с параметром неподходящей длины. Измени тип isWow64 на BOOL и все станет нормально, даже хендл "kernel32.dll" потом сможешь нормально освободить.

Худший ответ:
Ну, если добавить отсутствующие include, и исправить одну строчку в начале функции (вызывающую синтаксическую ошибку!)OSVERSIONINFOEX osvi = {}; то все работает...Хоть debug, хоть release, хоть x86, хоть amd65. См. кусок с исправлениями (если объединить все в один файл). 

Использовался CLion и MS BuildTools. 2019 года. Версия Windows такая же.

#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
#include <windows.h>

bool getWindowsVersion(char* version);

int main(int argc, char* argv[])
{
// куча всяких printf();

#ifdef _WIN32
    char version[2500];

    if (getWindowsVersion(version))
        printf("Operating System: %s\n", version);
#endif

#if defined(__USE_LARGEFILE) && defined(__USE_LARGEFILE64)
    printf("\nLarge file available: %d offset\n", __USE_FILE_OFFSET64);
#endif
}

bool getWindowsVersion(char* version)
{
    int index = 0;
    OSVERSIONINFOEX osvi;
Вопрос: Почему я не могу наложить картинку на slick — slider?

Лучший ответ:
Так: https://jsfiddle.net/6qxkor0b/

Если вы инициализируете слик на .slider, то слайдами становятся его дочерние элементы, т.е. header-slider будет первым кадром, а slider-bg вторым.
Нужно разобраться со структурой. 

Есть еще вопросы по коду:

1. Если какая-то картинка -bg, то почему она контентный img, а не фон в css?
И почему у фона z-index больше чем у всего остального. 
Поправить бы логику. 

2. Зачем картинкам в слайдере абсолют?

Оформите песочницу с видимой проблемой, чтобы было понятно что на самом деле происходит у вас в коде, а не предположения.

Худший ответ:
Сделал так, добился нужно мне результата.

<div class="slider">
            <div class="header-slider">
                <img src="/img/slider/header-1.png" width="1920" height="960px" alt="">
                <img src="/img/slider/header-2.jpg" width="1920" height="960px" alt="">
                <img src="/img/slider/header-1.png" width="1920" height="960px" alt="">
            </div>
            <div class="header-slider-effect">
                
            </div>
.slider {
    position: relative;
}

.header-slider img {
    position: relative;
}

.header-slider-effect {
    background: url(/img/header-bg.png);
    height: 969px;
    bottom: 0px;
    width: 1920px;
    position: absolute;
}
$(document).ready(function() {
    $('.header-slider').slick();
});
Вопрос: Какие быстрее всего добавлять товары в бд?

Лучший ответ:
Задача какая? Чтобы mysql быстрее грузил или чтобы вам меньше работы?
Загружать из имеющихся файлов/баз или через приложение/сайт?

Если из файла, то и проще и быстрее всего - LOAD

Худший ответ:
Задача какая? Чтобы mysql быстрее грузил или чтобы вам меньше работы?
Загружать из имеющихся файлов/баз или через приложение/сайт?

Если из файла, то и проще и быстрее всего - LOAD
Вопрос: Каким образом получить новый массив из текущего?

Лучший ответ:
1. Сгруппировать товары по catID и категории также:
$products = [];  // ваш массив с товарами

/** 
 *  Группирует любой массив  массивов по любому полю $indexKey в качестве индекса
 */
function groupBy(array $input, string $indexKey): array
{
    return array_reduce($input,  function($res, $data) use ($indexKey){
        if (!isset($data[$indexKey])) {
             return $res;
        }
        
        $res[$data[$indexKey]][] = $data;
            
        return $res;
    }, []);
}

$groupedProducts = groupBy($products, 'catID');
// такое работает при условии, что категория с одним id будет иметь последнее название из найденных, 
// то есть если id один, а название разные, то возможны не ожидаемые результаты
$categories = array_column($products, 'catName', 'catID');

2. Потом просто идете в цикле и выводите:
foreach($groupedProducts as $catId => $catProducts) {
     // тут доступно название категории $categories[$catId] и ее $catId

     foreach($catProducts as $product) {
          // тут выводим сами товары $product
     }
}

Для PHP 5 нужно [] заменить на array(), предлагаю это сделать самому :)

Худший ответ:
Сразу получить из БД с нужной группировкой
$sql = "SELECT catID, catName, p.* FROM prod p, cat c WHERE c.id=p.catID";
$data = $pdo->query($sql)->fetchAll(PDO::FETCH_GROUP);
Вопрос: Как изучать node js в 2019м?

Лучший ответ:
Начните сначала с клиентского JS и пускай learn.javascript.ru будет вашей библией на это время.
Изучать нужно также, как и любое другое ремесло — практика и теория, при этом практика в случае с программированием должна преобладать.
Понять, что нужно изучить для работы можно, зайдя на любой сайт вакансий и посмотреть список требований к начинающему.
Не пытайтесь найти универсальный ответ в данном вопросе.

Худший ответ:
Я клиентский js с горем пополам выучил.
На страничке скрипты можно писать тяп-ляп.
На сервере с таким подходом отстрелишь себе обе ноги.
Язык нужно знать, и знать серьезно. И книгу не получается найти не старую
Флэнаган регулярно переиздается под новые стандарты языка.
Вопрос: Почему не создадут портативный эмулятор совмещающий в себе почти все приставки, теоретически же железо нынешнего уровня должно позволить?

Лучший ответ:
Проблемы, я подозреваю, юридические.
Но ничто не мешает купить Raspberry PI и накатить туда retropi или lakka.

Худший ответ:
https://kotaku.com/a-pc-xbox-one-ps4-and-nintendo-...
не считается?
Вопрос: Правильно ли я обезопасил свой микротик?

Лучший ответ:
Так то да, но если нет опыта настройки фаирвола логичнее использовать дефолтные, так как в свежих версиях RouterOS они хороши.

Худший ответ:
Нет.

Нет, поставленная задача решена - извне ничего не подключится. От слова совсем. 

То есть:
- нет DNS на микротике
- нет обновлений
- нет VPN

ну то есть нет никакого трафика, приходящего снаружи в INPUT :) Примерно как "отрубить руку, обнаружив прыщ"

Отключите Ваше сверх-правило и сделайте что -то типа:
/ip service
set telnet disabled=yes
set ftp address=10.5.2.0/24 port=19701
set www disabled=yes
set ssh address=10.5.2.0/24
set www-ssl address=10.5.2.0/24 certificate="RB450G cert with key" disabled=no port=19703
set api disabled=yes
set winbox address=10.5.2.0/24
set api-ssl certificate="RB450G cert with key"
где вместо 10.5.2.0/24 ессно Ваша локалка и номера Ваших портов (хотя можете и эти оставить). Это отключит Вам telnet и http, закроет ssh, https и winbox. Кроме того ftp и https переместятся на порты 19701 и 19703 соответственно.
Вопрос: На каких языках можно задавать вопросы и писать ответы?

Лучший ответ:
Желательно на русском.
Лишь бы не на смеси английского с рязанским, которым вы тут блещете.

Худший ответ:
На русском, как правило. Потому что отвечающие тебе ничем не обязаны, в том числе и язык знать.
Вопрос: Что выбрать Python Kivy или Kotlin?

Лучший ответ:
А чего вы нас тут спрашиваете? Мы ведь не видели вашего приложения. Мы не знаем вашей квалификации. И мы не знаем, на сколько можно доверять совету вашего знакомого. По хорошему, если он дал вам совет, то скорее всего его обосновал -  почему это решение не рационально (вообще? или для вашего конкретного случая?). Вот эти его обоснования уже могут быть предметом обсуждения - на сколько они профессиональны, компетентны и на сколько они соответствуют тенденциям в современном "приложениестронии".
А пока абстрактное приложение, абстрактный разработчик, абстрактные условия, абстрактные умозаключения -  обсуждать-то нечего.

Худший ответ:
Зачем маленькому приложению Kotlin ? Kivy сэкономит много времени и сделает то же самое, что и Kotlin
Вопрос: Как сделать код ревью?

Лучший ответ:
А зачем Вас заставили делать код ревью, если Вы даже не знаете, как должно быть? Почитайте код Symfony, попробуйте понять почему так написано... и увольтесь с работы, где заставляют ревьюить код Битрикса. Ведь тут всё гавно, начиная отсутствия единой точки входа в приложение и заканчивая псевдо-ООП в стиле вызова статических методов.

Худший ответ:
Ну... как бы так сказать. С ревью будет сложно, так как тут плохо абсолютно всё. Ну т.е. вообще каждая строчка, кроме "use Bitrix\Main\Data\Cache;". Её переписывать, думаю, не надо. Остальное под нож.

Фиг знает как учиться ревьювить то, что надо просто удалить и написать заново, честно.
Вопрос: Как пандемия коронавируса и кризис повлияли на рынок джуниоров и стажеров?

Лучший ответ:
Мы пока не набирали джуниоров в последнее время.
Т.к. я уже насмотрелся на джунов, то могу только предположить, что с этим стало тяжелее. Джуниору нужен  наставник, который всегда рядом. На удалёнке джуна натаскивать очень сложно.
Поднимаются требования к джуниору, он должен владеть нужными инструментами уже сразу. Гит, хорошее владение основными командами, настройка VPN, поднять IDE, настроить окружение... Всё это он должен сделать сам. А в офисе ему дадут уже готовую машину, а коллеги помогли бы сразу. И при этом дома джун должен иметь достаточно мощную рабочую машину, необходимое оборудование. Тестировщикам и разработчикам мобильных приложений не позавидуешь - нужно иметь парк доступных мобильных устройств...
И не каждый Джун владеет средствами, чтобы купить мощную машину для работы. На работе её просто выдадут.
Добавлю ещё, что в неформальном общении в курилке, на обеде, у кофе-автомата, у кулера происходит обмен зачастую ценнейшей информацией, которую не только джун, но и любой другой сотрудник больше нигде не получит.

Худший ответ:
там где я работаю практически ничего не изменилось.
а что изменилось касается только перехода/оптимизации процессов с прицелом на удаленную работу. не в смысле, что все переходят на удаленку, а в том, что если придется, то предоставить эффективные средства для этого.
Вопрос: Почему двухфакторная аутентификация не ухудшает безопасность?

Лучший ответ:
То есть, зная пароль, но лишившись номера телефона, должно быть можно восстановить номер. А имея номер телефона, должно быть можно восстановить пароль.

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

Худший ответ:
Как правило для сброса номера телефона как минимум требуется пообщаться с техподдержкой и убедить её, что ты - это ты, а не дядя вася мамкин хацкер. Ну а с телефоном всё проще - как правило они у пользователей под каким-никаким, а паролем, да и вирусню на телефон не так уж и просто закинуть.
Вопрос: Как отпарсить текст в Python?

Лучший ответ:
Подобные вопросы напоминают мне про то как "двое из ларца" все все делали.
>>> data = "ID: 001; Username: Ivan; Balance: 01.00; Status: active;"
>>> dict(x.split(":") for x in data.replace(" ","").split(";") if ":" in x)
{'ID': '001', 'Username': 'Ivan', 'Balance': '01.00', 'Status': 'active'}
>>> import re
>>> dict(re.findall("([^:]+):\s?([^;]+);\s?",data))
{'ID': '001', 'Username': 'Ivan', 'Balance': '01.00', 'Status': 'active'}
>>>

Худший ответ:
Здесь можно без парсинга регулярными выражениями обойтись, а использовать разделение функцией разделения строки split,  которая встроена в каждый объект типа строка
Далее из результата разбивки 
 ['ID: 001', ' Username: Ivan', ' Balance: 01.00', ' Status: active', '']
берутся элементы 0,1,2, снова разбиваются по ':'
' Username: Ivan' ->[' Username',' Ivan']
и затем исключается оставшийся слева пробел через взятие строки-результата как списка символов без нулевого элемента [1:]

str1='ID: 001; Username: Ivan; Balance: 01.00; Status: active;'
out=str1.split(';')
id=out[0].split(':')[1][1:]
username=out[1].split(':')[1][1:]
balance=out[2].split(':')[1][1:]
Вопрос: Информатика и вычислительная техника (бакалавр) -> Математика и компьютерные науки (магистратура) возможно?

Лучший ответ:
Вы серьезно думаете что есть разница на какой факультет вы пойдете и в какой вуз? Вроде сами написали что мальчик не маленький, но такие розовые очки большие носите.

Для чего нужна вышка в России(если вуз не топовый):
1. Показать руководству компании что у вас хватило терпения отдать 4(5) года своей жизни ради бумаги а4.
2. Получить базовые знания Computer Scince (если конечно повезет с преподователем, на заочке даже заморачиваться не стоит, это тоже самое самообучение, только с сессией и вашими деньгами).
3. Всё.

Какой профит дает:
1.Возможность прыгнуть на руководящую должность, при условии что компании есть разница есть ли у вас вышка или нет.
2. Всё.

Нужна ли магистратура программисту?
Если работодатель просит - да, если нет - нет.
Что нужно программисту: мозги, терпение, усидчивость, умение понимать бизнес логику и процессы, навыки коммукативности.

Худший ответ:
Дак вот, правда ли можно отучиться на 1 факультете бакалавр, а магистратуру пройти совсем на другую ?Бакалавр действительно может выбрать абсолютно любое направление, поступая в магистратуру. 
я понимаю что придется самому доучить те вещи, которые нужны для магистратурыСдать вступительные экзамены по темам, знания в которых напрочь отсутствуют - несколько затратно по времени... Хотя, в зависимости от выбранной специальности.
которых не было в программе бакалавраНа заочном вовсе не стоит ожидать получения каких-то знаний. Из моего опыта, большинство сессий: "Посмотрел пример - сделал по аналогии".

P. S. В моем учебном заведении часто говорили о профите некоторых "комбинаций" высшего образования (для нацеленных на работу в банковском секторе, например, программирование+экономика). Имелось в виду второе высшее, но, думаю, с "бакалавр+магистратура" работает аналогично.
Вопрос: Как поместить русский символ в переменную wchar_t в Xcode?

Лучший ответ:
Никак, этот пример кода рассчитан на Windows. В Windows используется кодировка UTF-16, для которой в C под Windows используется wchar, и кириллический символ можно указать как отдельный wchar. Но такое пройдет не со всеми символами Unicode, т.к. некоторые требуют более 1 wchar и делать так не надо. В общем случае для UTF-кодировок не возможно запихнуть 1 символ в одну переменную, даже для хранения одного символа нужна строка, поэтому это пример плохого, не универсального кода. L для указания не-ASCII констант это специфика IDE и компиляторов для Windows (в основном Visual Studio). 

MacOS сейчас использует в основном кодировку UTF-8 и кириллический символ не влазит в 1 октет UTF-16. В C нет способа представить отдельный символ UTF-8 в общем случае, т.к. он так же может иметь переменную длину, кириллический символ можно представить в виде 2х символов char, их можно хранить как строку. Засунуть их в 1 16-битную переменную можно, но не нужно, т.к. в UTF-8 символы могут занимать 1,2,3,4 октета (и потенциально больше) и использование не-8битных типов для UTF-8 нецелесообразно.  Вам следует переписать код с учетом специфики UTF кодировок и использовать строку даже для хранения отдельного символа. Такой код потенциально можно сделать кросс-платформенным.

Худший ответ:
конвертируй файл из ANSI в UTF-8. Есть онлайн конвертеры.
Вопрос: Какие hard-скиллы (навыки) должны быть у начинающего python-разработчика, чтобы его взяли на работу?

Лучший ответ:
Открываете hh, проводите выборку и анализ вакансий джунов = profit.
Скорее всего вас просто потроллили, т.к вы должны были это исследование провести еще в самом начале, когда у вас появилось желание стать питонистом.

Худший ответ:
Программировать научился?
Принят
Вопрос: Лучший учебник по дискретной математике на русском?

Лучший ответ:
Кнут

и пряник

Худший ответ:
Хаггарти - очень легкий, подойдет новичку.
Вопрос: Есть ли Вконтакте актуальные IT сообщества?

Лучший ответ:
Есть много IT сообществ. Только сознанные они мамкиными хакирами и программерами. Не думаю, что в ВК можно серьёзно относится к сообществам. 1/3 часть сообществ - мамкиных хакеров. 1/3 часть сообществ - заработок и прочие лохотроны для отбитых на голову лохов. Ещё 1/3 часть сообществ - дебильные цытатки, якобы сказанные известными людьми.
А по делу:
1) Хабр
2) Hacker News
3) Reddit
4) DEV.TO - здесь можно читать статьи, писать статьи, комментировать. В последнее время частенько там провожу время)

Худший ответ:
Нет конечно, ВК никак не подходит для лонгпостов, а аналог телеграфа сделали слишком поздно
Вопрос: Где искать работу?

Лучший ответ:
https://djinni.co/jobs/?exp_level=no_exp&location=...
17 вакансий без опыта

Худший ответ:
Попробуйте например здесь: https://kharkov.hh.ua/catalog/Informacionnye-tehno...
Вообще, смотрю там с вакансиями негусто, но все же.
Вопрос: Как раздать Wi-Fi на windows, если провайдер перешёл с pppoe на dhcp?

Лучший ответ:
Вы используете устаревший метод, все делается проще
https://support.microsoft.com/ru-ru/help/4027762/w...

Худший ответ:
Вообще, ничего не должно было поменяться. Создается в виртаульная сетка WiFi. В проводном подвключении ставится "Разрешить другим пользователям сети использовать подключение к Интернету данного компьютера", выбирается WiFi сеть и на этом всё.

Должны подойти стандартные статьи вроде такой https://help-wifi.com/nastrojka-virtualnoj-wi-fi-s....
Вопрос: Почему несоответствие кол-ва записей WP и Select вывода в PHPMyAdmin?

Лучший ответ:
PHPMyAdmin всегда грешил количеством записей в крупных таблицах InnoDB, не обращайте внимание на погрешность +/-15%, или поэкспериментируйте с параметром $cfg['MaxExactCount']

пруф: https://docs.phpmyadmin.net/en/latest/faq.html#the...
3.11 The number of rows for InnoDB tables is not correct.

phpMyAdmin uses a quick method to get the row count, and this method only returns an approximate count in the case of InnoDB tables.

Худший ответ:
Хрень какая-то. Дело не в наложении дублей
SELECT * FROM `wp_posts` дает 103000
SELECT * FROM `wp_posts` WHERE ID > 1 дает искомые 127000

При этом в соседней DB в той же табле, где кол0во записей 66000
оба запроса дают полное совпадение.

Мало того, в первой DB, но в другой табле wp_term_relationships 380000 записей но и там все совпадает

Если зайти в DB, где таблы списком, напротив wp_posts указано 103000 записей, но есть ссылка с параметром ℜ_row_count=true, после нажатия на которую выводятся искомое число 127000. 
Почему-то только в этой таблице PMA скрывает real_row_count