Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как генерируется hashcode по умолчанию, то есть в классе object, в C#?

Лучший ответ:
/// <summary>Служит хэш-функцией по умолчанию.</summary>
    /// <returns>Хэш-код для текущего объекта.</returns>
    [__DynamicallyInvokable]
    public virtual int GetHashCode()
    {
      return RuntimeHelpers.GetHashCode(this);
    }
https://stackoverflow.com/questions/720177/default...

Она же вызывает вот этот нативный код.

FCIMPL1(INT32, ObjectNative::GetHashCode, Object* obj) {  
    CONTRACTL  
    {  
        THROWS;  
        DISABLED(GC_NOTRIGGER);  
        INJECT_FAULT(FCThrow(kOutOfMemoryException););  
        MODE_COOPERATIVE;  
        SO_TOLERANT;  
    }  
    CONTRACTL_END;  

    VALIDATEOBJECTREF(obj);  

    DWORD idx = 0;  

    if (obj == 0)  
        return 0;  

    OBJECTREF objRef(obj);  

    HELPER_METHOD_FRAME_BEGIN_RET_1(objRef);        // Set up a frame  

    idx = GetHashCodeEx(OBJECTREFToObject(objRef));  

    HELPER_METHOD_FRAME_END();  

    return idx;  
}  
FCIMPLEND

Еще посмотрите эту статью. see Knuth Vol 2 p16 (3.2.1.2 Theorem A)
https://habr.com/ru/post/188038/

https://codingsight.com/the-origin-of-gethashcode-...

Худший ответ:
/// <summary>Служит хэш-функцией по умолчанию.</summary>
    /// <returns>Хэш-код для текущего объекта.</returns>
    [__DynamicallyInvokable]
    public virtual int GetHashCode()
    {
      return RuntimeHelpers.GetHashCode(this);
    }
https://stackoverflow.com/questions/720177/default...

Она же вызывает вот этот нативный код.

FCIMPL1(INT32, ObjectNative::GetHashCode, Object* obj) {  
    CONTRACTL  
    {  
        THROWS;  
        DISABLED(GC_NOTRIGGER);  
        INJECT_FAULT(FCThrow(kOutOfMemoryException););  
        MODE_COOPERATIVE;  
        SO_TOLERANT;  
    }  
    CONTRACTL_END;  

    VALIDATEOBJECTREF(obj);  

    DWORD idx = 0;  

    if (obj == 0)  
        return 0;  

    OBJECTREF objRef(obj);  

    HELPER_METHOD_FRAME_BEGIN_RET_1(objRef);        // Set up a frame  

    idx = GetHashCodeEx(OBJECTREFToObject(objRef));  

    HELPER_METHOD_FRAME_END();  

    return idx;  
}  
FCIMPLEND

Еще посмотрите эту статью. see Knuth Vol 2 p16 (3.2.1.2 Theorem A)
https://habr.com/ru/post/188038/

https://codingsight.com/the-origin-of-gethashcode-...
Вопрос: Как увеличить время работы батареи в linux?

Лучший ответ:
Ну а что вы хотели-то? Зато бесплатно.Почему такая большая разница в автономности между Линукс дистрами и виндой?
Плохая поддержка ACPI и очень плохая - энергосбережения.Или какие-нибудь твики? 
Да, Гугл cpufreq, это позволит понижать частоту процессора и немного выиграть времени, но всё равно тот же ERP Линуксом не поддерживается. Не знаю, если ли там у вас HDD, можно через sdparm включать остановку шпинделя через какое-то время и выкрутить AAM на минимум.

Худший ответ:
Про Manjaro не знаю, но в Ububntu кажется был режим энергосбережения. Но я бы рекомендовал уменьшить скорость процессора и ослабить яркость экрана. А сам я бы закрыл глаза на это, и остался бы на Linux)
Вопрос: Как включить удаленный рабочий стол?

Лучший ответ:
После удаления обновления kb2592687 все заработало.

Худший ответ:
Должна работать служба удаленных рабочих столов. На английской Вин10 она называется (Remote Desktop Services), как называлась в Вин7 х.з. Она слушает порт.
Пользователям должны быть присвоены пароли.
Пользователи должны быть членами группы "Пользователи удаленных рабочих столов" или как-то так, точно не помню. Добавление пользователей в список, то что вы проделали как раз и добавляет пользователя в эту группу.
Вопрос: Как писать «отказоустойчивый» клиентский js?

Лучший ответ:
Писать код, который не крашится :D
Ну, а если серьезно, сложно представить ситуацию, в которой ошибка риалтайма была бы не формата "smth is not defined" или "cannot read property  smth of undefined".
То есть в основном все ошибки будут из-за невалидных данных или из-за отсутствия каких-то методов в старых браузерах.
Решение - валидировать входные данные, проверять все на null/undefined, использовать babel.

Худший ответ:
Молодец что пишешь модульный код. 
try/catch, кстати, вполне годный инструмент, если его правильно использовать.
Можно написать некий обьект или класс который этими модулями управляет, назову его Лоадер.
Этот Лоадер поочередно перебирает модули и инициализирует их(реализовать это можно по разному)
Момент инициализации модуля, оборачивается в try/catch, если при инициализации модуля возникает ошибка, Лоудер знает в каком модуле что то пошло не так и может что либо делать(высер в консоль, отправить ошибку куда либо), не запускать другие модули у которых этот модуль указан как зависимость... Любой функционал, можно в этот лоадер добавить, например измерять время инициализации каждого модуля...
Суть в том что бы try/catch - был один на весь сайт, был в Лоадере, и сами модули об этом try/catch даже не знали и не использовали.
Это при первичной инициализаци js, грубо говоря при при загрузке страницы, а по уму, основной поток выполнения(при нем любая ошибка, валит все)
А вот ошибки которые будут возникать потом в динамике, например когда пользователи нажимают кнопки или что то еще делается спустя некоторое время, уже не валят весь функционал, а только связный, то есть если это реально независимый модуль, то ошибка в нем сломает только его.
Второй способ без try catch:
Вырвать модуль из основного потока выполнения js, тогда ошибка в модуле, не будет ломать все без причин.
Есть много способов вырвать модуль из основного потока выполнения, приведу самый древний и дубовый:
setTimeout(()=>{
	// здесь код модуля
}, 0)
> Как писать «отказоустойчивый» клиентский js?
- Самое главное ты уловил: "Писать модульный код", остальное мелочи
Вопрос: Нашел чтото странное, это шелл?

Лучший ответ:
var cke = "key=" + dcptedmsg + "; max-age=16";
document.cookie = cke;
document.cookie = 'key_requested=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';

Шеллу тут взяться неоткуда, скрипт просто чистит печенюху key_requested и устанавливает печенюхе key значение, которое вычисляется из ciphertext

"как можно расшифровать?" - скрипт только этим и занимается, что успешно расшифровывает значение из ciphertext и кладёт его в key. Чтобы расшифровать берёте крипту и прогоняете этот скрипт, только вместо установки печенек выводите в консоль, увидите что конкретно записывается в key.

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

Худший ответ:
После первой итерации получим строку 
в Hex7b2263697068657274657874223a225866654d5347337535665773696736304b57736d6874386b5850496d4d6d596251787259354a66564d57654a5c2f6363767034616b686c56526c37595a776c7a68222c226976223a223334626432643364653737306238363730323463306431656264666139636165222c2273616c74223a226431396639326631653132653034373764333166383963356565626665383433663132336361323930316633653530373830343331326665316235333166316633326135343566333961346563376534303630633037613136393231333161326533353235613761626262623032313434353464613334393939333534376530613333316464346535653962356431373537626631643137343935343431333535353236633765306239373835373536376362656266343530633134636165623565326339626166323065356532356533343438343230313266363232653036383565306366353361343561356530333062323832386664613865353731663264343831323266373962346231643466633137383430366639323635313761336565323262336336623262336538663332373630366532666432646264376362613538643739386333363830363964393937386133633361323664383039653862613764343334383632663564326131333638366465666465313230373533636535316636323032313437313761376463316532326466383366663331323138316463616233316637313963386536326466313435653364343838376465656636663538306337306661663730353833333062343433616639366338373538393561653633343334363831666137326234336665643162306361616164653030222c2269747274223a3636367d

Которая после конвертации преобразуется в:
{
   "ciphertext":"XfeMSG3u5fWsig60KWsmht8kXPImMmYbQxrY5JfVMWeJ\/ccvp4akhlVRl7YZwlzh",
   "iv":"34bd2d3de770b867024c0d1ebdfa9cae",
   "salt":"d19f92f1e12e0477d31f89c5eebfe843f123ca2901f3e507804312fe1b531f1f32a545f39a4ec7e4060c07a1692131a2e3525a7abbbb0214454da349993547e0a331dd4e5e9b5d1757bf1d17495441355526c7e0b97857567cbebf450c14caeb5e2c9baf20e5e25e344842012f622e0685e0cf53a45a5e030b2828fda8e571f2d48122f79b4b1d4fc178406f926517a3ee22b3c6b2b3e8f327606e2fd2dbd7cba58d798c368069d9978a3c3a26d809e8ba7d434862f5d2a13686defde120753ce51f620214717a7dc1e22df83ff312181dcab31f719c8e62df145e3d4887deef6f580c70faf7058330b443af96c875895ae63434681fa72b43fed1b0caaade00",
   "itrt":666
}

Которая без Secret Passphrase уже не расшифровывается (2cccd2d726bda2bef986da176a81fbab - не подходит).

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

Лучший ответ:
У вас скорее всего стоит что-то типа
LogFormat "%V .....

В этом случае в лог попадает имя хоста, по которому на ваш сервер попадает клиент. А это можно сделать по-разному. Кривой DNS, или банально клиент может hosts файл у себя поправить и попадать на ваш веб-сервер по любому произвольному доменному имени

Худший ответ:
Это логируется тот заголовок, который передаёт клиент - а ему ничего не стоит туда подставить абсолютно что угодно. Также возможен вариант, что кто-то использует для А-записи своего домена в DNS ваш айпишник - особенно часто такое случается на хостингах, когда новым клиентам может попасться адрес старого, уже отвалившегося.

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

Лучший ответ:
Идете сюда:
https://github.com/SeleniumHQ/docker-selenium
Устанавливаете и настраиваете образы
*-debug
в зависимости от ваших хотелок
Подключаетесь любым VNC  клиентом, и наслаждаетесь...

Худший ответ:
В Selenoid есть возможность просматривать запущенную сессию и делать ее видеозапись. Подключатся через VNC для этого не потребуется, все доступно через web-интерфейс.
Вопрос: Проблемы при запуске apache2?

Лучший ответ:
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

Дык английским же по белому написано:
Синтаксическая ошибка в строке 80 файла /etc/apache2/apache2.conf: DefaultRuntimeDir должен быть корректным каталогом, абсолютным или относительным к ServerRoot

Худший ответ:
Версию пыхи укажите вашу.
sudo a2dismod php7.2
sudo a2enmod php7.2
sudo systemctl restart apache2
Вопрос: Boot device not found | Hard Disk 3f0. Как решить проблему?

Лучший ответ:
А какие тут могут быть способы, если диск сдох? Нужно в магазин за новым идти. Работать с таким уж точно нельзя. Можно ли потом будет с него хоть что-то вытащить - это уже отдельный вопрос.

Худший ответ:
Boot device not found | Hard Disk 3f0. Как решить проблему?Купить новый диск и поставить на него ОС.

Посмотрел много видео, ни один способ не помог.Если не умеете сами менять - обратитесь в СЦ, там поменяют диск без проблем за 500-1000 рублей.
Вопрос: Выезжающая картинка, как реализовать?

Лучший ответ:
Данынй блок просто сделан через position: fixed; Сдвинут вправо через right: -220px;
А при ховере обнуляем right: 0; И чтобы плавно - transition: all 0.3s ease-out;

Худший ответ:
Выше уже написали. Старайся сам разбирать код. Наводишь на элемент, получаешь код и видишь, что у блока position:fixed и right:-220px. В гугл хром можно поставить галочку на :hover, и ты увидишь, что у блока уже right:0 и transition: all 0.3s ease-out;
Вопрос: Как удалять файлы с сервера спустя месяц?

Лучший ответ:
1. Хранить где-то даты (в базе\в названии файла).
2. Иметь скрипт, который проверяет и удоооляет.
3. Запускать его кроном.

Худший ответ:
1. Хранить где-то даты (в базе\в названии файла).
2. Иметь скрипт, который проверяет и удоооляет.
3. Запускать его кроном.
Вопрос: Как сократить условие цикла?

Лучший ответ:
Так for(; i<5; i++) можно писать, когда инкремент определён вне цикла. Здесь нечего сокращать, не страдайте ерундой.

Худший ответ:
const count = 10;
let index = 0;
for (; index < count;) {
    console.log(index++);
}

Ну если прям совсем сократить
i=0;c=10;for(;i<c;){console.log(i++)}
Вопрос: Можно ли создав свой DNS сервер сделать свой бесплатный домен?

Лучший ответ:
Только если для локалки. А для интернета - нет. О вашем сервере никогда не узнают владельцы зон и не делегируют запросы к вам

Худший ответ:
Купите себе домен второго уровня и можете раздавать домены 3е го уровня. Например, купим bbb.com, тогда можно подарить кому-то домен my.bbb.com.
Вопрос: Doctrine как разрешить состояние гонки?

Лучший ответ:
По сути в вашем случае запись в базу данных является критической секцией. Соответственно вам необходима реализация любого из способов синхронизации потоков для избегания состояния гонки. Вариантов множество, но конкретно в Symfony именно для этого (и для других подобных сценариев) существует компонент Lock, он предоставляет реализации готовых примитивов синхронизации. 

Вот здесь можно посмотреть на практически готовый пример того как должен выглядеть ваш код коммита изменений с учётом использования lock'а.

Худший ответ:
Помимо варианта с Lock:  ON CONFLICT (expression) DO NOTHING и похожие решения в других СУБД могут быть иногда довольно подходящими в виду простоты реализации...

Это выглядит буквально вот так:
$sql = <<<SQL
INSERT INTO table (id, value) 
VALUES (555, \'uniqValue\') 
ON CONFLICT (value) DO NOTHING
SQL;

$this->em->getConnection()->executeQuery($sql);

Если это некие логи или словари с простой логикой хранения, то в самый раз...
Вопрос: IT с нуля? или кардинальное изменение?

Лучший ответ:
Вам лучше вообще не входить в IT. Один из ценнейших навыков программиста - самостоятельный поиск информации. Те, кто хотят научиться программировать - садятся и учатся сами. Находят туториалы, читают их, учатся. Методом проб и ошибок учатся отличать плохое от хорошего и т.д.

Худший ответ:
25 лет работаю программистом, программированием в принципе занимаюсь лет 40, но что такое "фронт и бек разработка" понятия не имею, но это не особо важно. Главное всякие "онлайн школы", курсы, "академии" и пр. идут лесом, если есть возможность идите учится в какой ни будь  ВУЗ. Для изучения возьмите какую ни будь задачу для себя или для мамы, для папы, в школе или на работе, сначала самостоятельно разработайте ТЗ и потихоньку его реализовывайте. Если ваше творение кому либо понравится и принесет пользу можно потихоньку выходить на фриланс (возможно сначала бесплатно) или устроится на постоянную работу
Вопрос: Как правильно оформить экранирование в запросе к mysql?

Лучший ответ:
Про кАвычки при работе с БД надо ЗАБЫТЬ НАВСЕГДА.
И всегда использовать только вопросительный знак.

$stmt = $connect_bd->prepare("INSERT INTO `oc_testtest`(`name`) VALUES (?)");
$stmt->bind_param("s", $name);
$connect_bd->begin_transaction();
foreach($data as $chunk){
    foreach($chunk as $row){
        if ($row['name']) {
            $name = $row['name'];
            $stmt->execute();
        }
    }
}
$connect_bd->commit();

Худший ответ:
$query_string_category_name .= "'" . ($v1['name']) . "', "; 

Вот что прокатило.
Я же собирал строчку для инсерта, можно было просто в запросе к базе эти кавычки поставить, а не в переменную
Вопрос: Можно ли в Go собрать проект с объявленными, но не используемыми переменными?

Лучший ответ:
Нет, собрать нельзя.
Можно сделать финт ушами(но это дурной тон)
var _ = fmt.Println
var _ = myvar
То есть, воспользоваться нужно в любом случае.

На самом деле, это очень хорошая фишка, делает код чистым(у меня во всех других языках всегда включён такой же линтер), а с импортами при комментировании проблем никаких не возникает, если пользоваться IDE.

Худший ответ:
Сначала убивает. Но потом привыкаешь. Да и уборщику работать проще
Вопрос: Как к каждому элементу массива прикрепить функцию?

Лучший ответ:
так происходит из-за того, что все ваши обработчики смотрят на одну и ту же i, т.к. она находится в их общйе области видимсти. когда цикл отработает она будет для всех обработчиков равна 2. чтобы исправить это, нужно замкнуть каждый обработчик на своей i. 
сделать это можно несколькими способами:
1. инициализируйете счетчик через let:for(let i = 0; i < btn.length; i++) {...}
2. вешайте обработчик внутри iife:for(var i = 0; i < btn.length; i++){
  (function(i) {
    btn[i].onclick = function(e){e.target.style.marginLeft = i * (10) + 'px';}
  })(i)
}
3. forEach()btn.forEach((el, i) => {
  el.onclick = function(e){e.target.style.marginLeft = i * (-100) + '%';}
})

Худший ответ:
Смотрите первый комментарий к вашему вопросу.
Это будет работать потому что у вас i действует в области видимости вне тела цикла. А если ее объявить как let, то она будет доступна только в области видимости в которой объявленна (то есть в теле цикла) и каждую итерацию цикла будет создаваться новая i, значение которой сохраниться в добавляемой функции как замыкание.
Вопрос: Надежно ли аппаратное шифрование в nvme ssd дисках?

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

Худший ответ:
Надежно ли аппаратное шифрование в nvme ssd дисках?Конечно надежно, там велосипеды не изобретают, и используют популярные, многократно проверенные алгоритмы шифрования.Например Samsung 970 Evo Plus, есть ли там бэкдоры, не закрытые уязвимости?Разумеется есть.
Вопрос: Где найти массив (базу) строк?

Лучший ответ:
Возьмите любую книгу

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

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

Худший ответ:
Проще всего решить вашу задачу (защита замка) "железными" методами.
Если замок питается постоянным током, то первое, что на ум пришло:
Резистор - большой электролит - рэлюшка. При замыкании рэлюшки электролит разрядится через замок и откроет его. Потом резистор ограничит ток, и даже при замкнутой рэлюшке ток через замок будет очень маленьким. Номиналы подберёте по месту.
Вопрос: Если не нравится общение с HR по телефону, приезжаете ли на собеседование, несмотря на это?

Лучший ответ:
если вы разработчик - то попробуйте рассуждать логично:
какое отношение (кроме эмоционального на Вас воздействия, кроме плохого впечатления) имеет вежливость HR к реальной работе?
где там связь?

Худший ответ:
Не стоит забивать этим голову... Может HR там работает последний день и уволили ее как раз за такое поведение ))) Надо ходить на все собеседование ...
Вопрос: Карта локальной сети?

Лучший ответ:
Смею Вас разочаровать - только руками и проведением полной инвентаризации всего оборудования.
 Никакие анализаторы и тулзы:
1) не скажут, где физически стоит то или иное оборудование, и где лежит тот или иной кабель
2) не покажут скрытые под потолком неуправляемые коммутаторы
3) на выявят перемычки, скрутки, бобинки, соединители, раъемы без язычков...
4) не узнают об выключенных принтерах, серверах, компьютерах, IP-камерах, да и о включенных то не всегда, особенно, если они в других подсетях...
5) не покажут оборудование за маршрутизаторами
6) не обнаружат VLAN, роутеры, серверы, виртуалки и прочую хрень
7) не дадут информацию о оптике, трансиверах, точках доступа и прочей хрени.

Так что только ручками, ну и утилитами nmap/zenmap для быстрого  сканирования сегментов (да и то очень предварительно).
Так что берем поэтажные планы, вставляем в качестве подложки в векторный редактор (я использую inkscape.org ) или рисуем на бумажке! Примерный процесс - https://www.youtube.com/watch?v=M6j7HrRy9xw
Ну и чтобы начать - https://www.youtube.com/playlist?list=PLqazFFzUAPc...

После недели-двух, Ваш левел будет +20 :-)

Худший ответ:
algorius net viewer 
Поставь, нарисуй сам ручками карту со всеми устройствами (можно наложить на схему здания).
побегать конечно придется по началу. Подними домен если нету, это сильно упростит.
ну и плюс какой нибудь эксель файл со всеми адресами/паролями устройств, что соберешь при инвентаризации.
Потом только актуализировать.
batchpatch еще любопытная софтина для управления виндами и сбора инфы с них.
Вопрос: Как делать SEO верстку?

Лучший ответ:
Думаю, имеется в виду:
- Использование заголовков h1-h6 строго в упорядоченном виде согласно иерархии, и только в пределах основного контента страницы

- Избегать чрезмерного использования "a", чтобы не плодить лишних внутренних ссылок (например, при вёрстке ИМ, карточку товара можно целиком обернуть в ссылку, а можно сделать div, в котором будет 3 одинаковых "a"-элемента - на имени, на изображении, на кнопке "подробнее"

- В принципе меньшее количество элементов на странице (имеется в виду избегание лишних оборачиваний элементов в контейнеры). Меньше нод - выше скорость парсинга страницы, выше ее производительность.

- Также в копилочку производительности использование всяких штук типа "responsive images", ленивой загрузки, критических стилей, приоритезации загрузки ресурсов (стили/скрипты/шрифты).

- Валидность. Без комментариев.

Как зависит? Ну, говорят, Гугл любит технически качественные сайты. Плюс скорость работы сайта сказывается на юзабилити, что в свою очередь отражается на поведенческих факторах, что тоже влияет на позиции.

Худший ответ:
"в крации" seo верстки нет, есть семантическая верстка. Это если "в крации". А seo, вернее ранжирование сайта, зависит от семантического ядра, контента и авторитетности сайта, которая складывается из большого количества факторов, таких например, как ссылки с других сайтов, поведение пользователя на сайте, скорость загрузки сайта. Семантическая верстка позволяет поисковикам лучше понять о чем идет речь на странице.
Вопрос: Можно ли сократить код?

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

Худший ответ:
Почитайте про рекурсию.
Вопрос: Книги, советы, курсы по архитектуре приложений?

Лучший ответ:
Начните с хрестоматийного трёхтомника Роберта Мартина "Чистый код", "Чистая архитектура" и "Идеальный программист".

Худший ответ:
Дайте Ваш код почитать другому программисту. Если он не поймет о чем там, и скажет что "можно было бы и лучше", то тогда да, тогда копрофекальный код. Но если у него не возникнет особо сложностей - то не переживайте, можно жить.
Вопрос: Регистратор просит имена серверов DNS. но не просит IP. Откуда он узнает про IP?

Лучший ответ:
Бруто, там всё просто.

1. когда вы регистрируете домен, никакие NS-сервера сообщать не надо. Статус домена будет: REGISTERED, NOT DELEGATED.

2. NS-сервер нужен если вы поднимаете на домене какой-нибудь сервис (сайт, почту и тп), то вам нужно ДЕЛЕГИРОВАТЬ его на хостинг(на IP-адрес).
- если вы используете сторонний DNS-сервер, просто указываете его имя в панели регистратора. Никакой IP-адрес этого DNS-сервера не нужен, он просто определяется по nslookup или dig.
- если вы используете свой DNS-сервер в том же домене, который делегируете, то нужно указать и имя DNS-сервера и его IP-адрес. Потому, что одновременно делегируется и домен, и DNS-сервер, поэтому IP-адрес DNS-сервера узнать неоткуда.

То есть, при делегировании домена bbb.com и DNS-сервере ns.bbb.com (он находится в самом делегируемом домене) надо указать и имя и IP.

А при делегировании домена bbb.com и DNS-сервере Cloudflare amanda.cloudflare.com достаточно указать только имя DNS-сервера. IP-адрес, где будет хоститься домен, прописывается уже на этом сервере amanda.cloudflare.com.

PS: Количество DNS серверов при делегации домена (и должны ли они находиться в разных подсетях класса C) определяется регламентом на зону. Он разный для ru/com/org и тп.

Худший ответ:
Помогло так-же  это  видео. Тут практика.