Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как тестировать асинхронные action в Redux?

Лучший ответ:
Redux-thunk отлично тестируется (документация).
Суть в том, что вам нужно протестировать ожидание: в store случилось столько-то действий, с такими-то данными и типами (что вы и делаете для Request + Error), у вас не хватает мока для запроса на сервер.
Здесь есть текст и видео "тестирование redux экшенов и редьюсеров" с подробностями, если не очень нравится пример из документации.
Пример теста логина из второго тестового задания.

Худший ответ:
В этом то самая большая проблема redux-thunk. Он сложно поддается тестированию, т.к. нужно мокать getStore и dispatch, а также запрос к серверу. Единственный выход - это написать свою реализацию store. 
Как пример: https://michalzalecki.com/testing-redux-thunk-like...
Вопрос: Битрикс: На складах есть, а доступное количество 0. Почему?

Лучший ответ:
https://dev.1c-bitrix.ru/learning/course/index.php...Важно! Количество товара на складах носит исключительно информационный характер и не влияет на расчет остатков товара после заказов. Таким образом, изменять значения количества товара на складах необходимо вручную.

Худший ответ:
Столкнулся с похожей проблемой, только источник у нее был другой, ранее инфоблок с товарами был "торговым каталогом" и товарные предложения были "торговым каталогом" (из-за кривого обмена с 1С), после того как сделали нормальный обмен, у товаров убрали галку "Является торговым каталогом", чтобы нормально считалась доступность исходя из доступных товарных предложений, но не смотря на доступность ТП, товар имел статус "Недоступен", т.к. системное свойство "Доступность" имело значение "Нет".

Причину не нашли (искать причины косяков Битрикса не благодарная работа), но нашли решение, тупое, но работает, нужно пересохранить товарные предложения и тогда пересчитается доступность. Для этого можно массово деактивировать товары, а потом активировать заново и доступность будет корректной.

Надеюсь кому-нибудь поможет.
Вопрос: Как обновить Powershell в Windows 7?

Лучший ответ:
вам нужно определиться какой повершелл вам нужен.
всем привычный повершелл закончился на версии 5.1. 
дальше (6.х+) пошел powershell core (разница).
чтобы установить обычный, не кор, повершелл 5.1 просто запустите .ps1 файл, распаковав архив Win7AndW2K8R2-KB3191566-x64.ZIP отсюда https://docs.microsoft.com/ru-ru/powershell/script... займет какое-то время и попросит перезагрузиться.
на форумах чаще всего проблемы с установкой именно этого обновления решаются переустановкой ОС. =(
П.С. можно еще попробовать обновить .NET Framework

Худший ответ:
Если у вас уже есть .NET 4.0, то можете попробовать так:dotnet tool install --global PowerShell (взято из вышеупомянутой статьи, но это установка Powershell core)
А вообще проблема также может быть в том, что Microsoft обещает прекратить поддержку Windows 7 в 2020-ом году. Не уверен, что они это таки сделают, но юзеров на десятку им переводить надо. Если не помогает, могу предложить только обновиться до десятки. Скачать можно бесплатно и не парится с активацией, кроме того никто не отменял тот же KMS. Кстати, а зачем вам вообще понадобился Powershell 5.0/5.1?
Вопрос: Как настроить учетку в WIN10 для доступа через TEAMVIEWER?

Лучший ответ:
1)Заводите ограниченную учетную запись пользователя.
2)Запрещаете ему доступ ко всем папкам кроме его профиля - чтобы он не мог ничего прочитать и записать нигде кроме %userprofile%
3)Включаем политику ограниченного использования программ, чтобы он лишнего запустить не мог.
А почему тимвьювер? Не проще RDP?

Худший ответ:
Настройки TV:
Остальное, ограничениями пользователя в винде и доступ к папкам файлам через права (NTFS).
Вопрос: Проверка кодового слова на регистр букв и четность цифр?

Лучший ответ:
var a = 'qwe123';
a[позиция символа]
Для проверки буквы в верхнем регистре можно прописать такое условие:
a[0] == a[0].toUpperCase()
Для нижнего регистра 
a[0] == a[0].toLowerCase()
Для числа 
a[0] == parseFloat(a[0])
Четная цифра 
parseFloat(a[0])%2==0
Ну или прописать регулярное выражение

Худший ответ:
Может я конечно не совсем понял вопроса, но что мешает обращаться по номеру?let a = 'Q95fKT';
console.log(a[0]);
console.log(a[1]);
Вопрос: Как решить задачу с минимальным использованием памяти?

Лучший ответ:
Как решить задачу? Самому.
Дело в том, что подсказанное решение имеет примерно в 10 раз меньше эффективность обучения. То есть подсказанный вариант вы вряд ли запомните, даже если он будет простым и понятным, и позже не сможете применить в аналогичной ситуации. Нужно, чтобы вы именно сами нашли решение, тогда будет польза.
Ну а если это ваше реальное тестовое задание на собеседовании, чтобы пройти его, то как бы вообще без комментариев.

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

Лучший ответ:
.content
  width 100%
  height 100vh
  background-color grey
  overflow-y scroll
Вроде то, но там должен быть контент, который занимает больше пространства чем блок
P.S. Второй вариант решения без привязки к VH<header></header>
<div class="wrapper">
<div class="content">
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
  <h1>на тебе контент</h1>
</div>
  </div>body {
  overflow:hidden;
  height:100%
}
.wrapper {
  height:100%;
  position: absolute;
  width:100%;
}
header {
   width :100%;
  height :5em;
  background-color :red ;
}
.content{
  background-color: white;
  padding: 10px;
  max-height:100%;
  position:relative;
  overflow-y:auto;
}

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

Лучший ответ:
Я обычно делаю так:
1) Делаю заготовку кода для одного листа. Это может быть даже переработка кода макрорекордера
2) Запускаю её на всех листах, кроме "чёрного списка"
/**
* Выполняет действия на всех листах, кроме тех, которые указаны в blackList
* [ ProgrammerForever (c) 2020 ]
* @return Не возвращает значений
*/
function listChanger(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var blackList = ["Настройки", "Data"];// Чёрный список. На этих листах действий не будет
  var sheets = ss
			  .getSheets()
			  .map(sheet=>sheet.getName())
			  .filter(sheetName=>blackList.indexOf(sheetName)===-1);
    
  for(var sheetIndex in sheets){
    var currentSheet = ss.getSheetByName(sheets[sheetIndex]);
	//Что-то делаем с currentSheet
  };
};

Худший ответ:
В Таблицах такого нет. Наверное, пока нет.
Вопрос: Как в Windows 10 заменить запятую на точку при наборе с numpad на русской раскладке?

Лучший ответ:
Как вариант (всё равно ты не понимаешь, что спрашиваешь) - создай свою раскладку программой MSKLC - Microsoft Keyboard Layout Creator

Худший ответ:
"точка" это не точка а "десятичный разделитель" и что будет введено задаётся именно локалью ака региональными настройками.
Есть некоторое количество софта который игнорирует региональные настройки и применяет свои и тут уже разбираться необходимо с софтом.Изменение запятой на точку в региональных стандартах не помогает. 
Что значит не помагает?
Ставим "точку" в блокноте, меняем в доп. настройках "запятэ" на точку, ставим в блокноте нумпадовскую точку.
Если разное то окей, если не меняется то тогда уже и думать что такое случилось с функцией рег. настроек в вашей системе и только в вашей.
P.S. На одном из компов есть десятка крайней версии но нет клавы с нумпадом :)
Но данная фишка работала всегда, ещёс XP и не выделывалась.
Вопрос: Как организовать перенаправление запросов?

Лучший ответ:
3proxyИнструкция на русском, по ней же вполне успешно ставил на CentOS

Худший ответ:
А что если Настройка BGP для обхода блокировок, или «Как я пе...?
Вопрос: Какого размера нужно делать спрайт 2D персонажа для unity 3D?

Лучший ответ:
вы бы определились что означает - "слишком маленьким".
так то можно и 4 пикселя на весь экран отображать.
если вы про размер в units - то вам верно freeExec подсказывает.
если же про разрешение и замыленность картинки - то тут просто считайте сами. целевое устроиство какой нить экран 1980 на 1024.
на этом экране ваш персонаж..занимает ну условно 50% по высоте.
тоесть экранного места он занимает 512 пикселей условно.
ну вот и делайте его в фотошопе 1024 х 1024 (небольшой запас, чтоб если что под большее разрешение не перерисовывать)
а в настроиках импорта текстуры в Unity - укажите достаточные 512 и радуйтесь.

Худший ответ:
Вопрос некорректен можно и пиксельное изображение растянуть.
Вопрос: Как научиться при помощи поисковика решать ошибки?

Лучший ответ:
Этот вопрос нужно решать при помощи поисковика.

Худший ответ:
Как посоветовал Андрей Гаврилов, попробуй использовать следующие конструкции: how to ... + from/in ...  what is ... 
пример:how to use redux from reactwhat is java.lang.exception
p.s я с английским не очень дружу, но стараюсь держать его уровне "понимать документацию"
Вопрос: Куда пойти учиться после 9 при минимальном бюджете?

Лучший ответ:
Любой колледж/пту с минимальной нагруженностью, чтоб можно было пары прогуливать. И все свободное время посвящаешь самообучению. За полгода-год сможешь стать фрилансером, там и деньги появятся. Ну а так решай сам, твоя жизнь.

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

Лучший ответ:
Обновить прошивку до актуальной.
Блокировать входящие на 53-м порту по UDP из WAN

Худший ответ:
Ddos-ят
Вопрос: Почему в функции проверки всегда возвращается значение только первого условия?

Лучший ответ:
('32') === true

Необходимо продублировать сравнение для каждого из вариантов:
if ($distr === '31' || $distr === '32' || ....)

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

Худший ответ:
function get_fo($distr) {
    $data = [
        'ЦФО'  => ['31', '32', '33', '36', '37', '40', '46', '48', '50', '57', '62', '67', '68', '69', '71', '76'],
        'СЗФО' => ['10', '11', '29', '83', '35', '39', '47', '51', '53', '60'],
        'ЮФО'  => ['1', '5', '6', '7', '8', '9', '15', '95', '23', '26', '30', '34', '61'],
        'ПФО'  => ['2', '12', '13', '16', '18', '21', '43', '59', '52', '56', '59', '63', '64', '73'],
        'УФО'  => ['45', '66', '72', '86', '74', '89'],
        'СФО'  => ['3', '4', '17', '19', '22', '24', '38', '42', '54', '55', '70'],
        'ДФО'  => ['14', '41', '25', '27', '28', '49', '65', '79', '87'],
        'Крым' => ['92', '82'],
    ];
    foreach ($data as $fo => $value) {
        if (in_array($distr, $value)) {
            return $fo;
        }
    }
    return 'fff';
}
Вопрос: Как найти призвание прогеру с небольшим опытом?

Лучший ответ:
Возьми любой опен-сорс проект по душе, и сделай реальный вклад. Получи опыт работы в команде над сложными проектами, а не домашними поделками.

Худший ответ:
Если мобильная разработка, то лучше Flutter, если Python то анализ данных, нейронные сети. Про Java забудьте, язык умирает.
Вопрос: Как валидировать ответы от API в redux (в частности react native)?

Лучший ответ:
Начну с конца: 
3) можно сделать функцию helper, типа check status
приведу пример кода из старого проекта (не async / await, но не суть)export function checkStatus(response) {
  let json = response.json() // http://stackoverflow.com/a/29475662/1916578

  if (response.status >= 200 && response.status < 300) {
    return json
  } else {
    return json.then(window.Promise.reject.bind(window.Promise))
  }
}

export function httpGet(url) {
  return fetch(url, {
    headers: buildHeaders(),
  })
  .then(checkStatus)
}
и уже везде пользоваться httpGet для гетов, например. Конечно, можно расширить пример как вам нужно с необходимыми диспатчами и тд тп.
2) проверять необходимо всегда, чтобы пользователь понимал что происходит:
- вероятно у вас отпал инет
- на сервере ошибка, попробуйте еще раз
Думаю, стоит это начинать делать в catch у каждого запроса
1) если API не ваше - то делайте проверки, какие посчитаете нужными
Если API ваше, то проверки тоже необходимо делать, но в основном это нужно для обработки ошибок от сервера/сети.

Худший ответ:
Если у вас REST API, то учите Redux Saga
Если GraphQL API, то лучшее решение Apollo Сlient.
Эти библиотеки, в том числе, заточены под решения ваших задач.
Вопрос: Можно ли (если да, то как?) заменить первую строчную букву первого слова на заглавную через регулярные выражения в java?

Лучший ответ:
Можно и через регулярное, можно и без регулярных.

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

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

Худший ответ:
Видали и страшнее. 4 из 10.
Из минусов:
del не нужен. Сборщик мусора справится с очисткой.
Используйте with для открытия и зактрытия файлов.
Не то что бы структура очень сложная, но какие-то части можно бы вынести в отдельные функции. Это лучше бессмысленных коментариев типа #Print.
Разный стиль именования.  CamelCase и snake_case для переменных
Смешивание " и '
Из плюсов:
Спасает то, что код простой.
Осмысленные имена переменных.
Какая-то структура.
Вопрос: Зачем тут нужны функции self и почему они не работают?

Лучший ответ:
Автор видео некомпетентен. Вполне вероятно, что он такой же новичок.

Худший ответ:
Аргумент self необходим для функций что находятся внутри класса (методы), в них передаётся класс или экземпляр класса. Это необходимо для обращения к собственным атрибутам и методам.
В вашем случае в них нет никакой необходимости так как функции находятся вне класса.
Но если вы захотите их присвоить каким либо методам класса то данный аргумент self будет необходим.
Вопрос: Как стать отличником?

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

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

Лучший ответ:
Паттерн, о котором вы говорите, называется Fluent interface
Собственно, ссылка ведёт на пример реализации:var Car = (function(){

	var speed, color, doors, pub;
		 
	function setSpeed(new_speed) {
		speed = new_speed;
		return pub;
	}
	 
	function setColor(new_color) {
		color = new_color;
		return pub;
	}
	 
	function setDoors(new_doors) {
		doors = new_doors;
		return pub;
	}

	pub = {
		'setSpeed': setSpeed,
		'setColor': setColor,
		'setDoors': setDoors,
	};

	return pub;

})
	
// Обычная реализация
myCar2 = Car();
myCar2.setSpeed(100);
myCar2.setColor('blue');
myCar2.setDoors(5);
	 
// Текучий интерфейс
myCar = Car();
myCar.setSpeed(100).setColor('blue').setDoors(5);

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

Лучший ответ:
Проверить негде, но может так сработает:Product::with([
            'user' => function($query) {
                return $query->where('user_id', \Sentinel::getUser()->id);
            }
        ])->get();
Если user не пустое значит куплено текущим пользователем

Худший ответ:
А почему костылить-то? 
Получаете две коллекции, вычитаете одну из другой в цикле или еще как, и выводите в зависимости от.
Это самое простое решение.
Вопрос: Как индексировать содержимое PDF файлов в системе Bitrix?

Лучший ответ:
Все зависит от того какая именно редакция битрикса.
Например в Битрикс24 есть модуль Интранет, внутри которого (в настройках) есть "ссылки на внешние программы" для индексации содержимого.
За pdf отвечает следующая комманда:pdftotext "#FILE_PATH#" -enc UTF-8 -nopgbrk -
где #FILE_PATH# - это полный путь к файлу, который нужно проиндексировать.
В теории для Управления сайтом можно написать обработчик создания/редактирования элемента инфоблока, куда заливаете файлы и дописывать в SEARCH_CONTENT / поисковый индекс содержимое файла.

Худший ответ:
А с фига ли он должен в PDF искать? И Битрикс тут не причем. Новости это данные в базе, текст в PDF это данные в файле. Разные вещи. 
Теоретически при загрузке PDF на сайт, можно его читать и добавлять содержимое в базу. И потом уже искать совпадения в базе.
Вопрос: Все ли правильно в данном процессе авторизации?

Лучший ответ:
А как на счет OAuth2 авторизации? Не думали? Хорошо документированный протокол, которым пользуются все известные сервисы и не задаются вопросами. Как раз решает ваш вопрос. Редиректнулся на центральное приложение, авторизовался, вернулся назад с кодом и далее запросил токен по коду POST запросом. Куда надо сохранил.

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

Лучший ответ:
Что вы хотели от ноутбука эконом класса (AMD)? 

RTL8723DE, поддерживает только 2.4, в модуле только одна антена. Соответственно, максимальная скорость подключения 150 Mbit/s. В идеальных условиях вы сможете на нем получить 75 Mbit/s. В 2.4 на сегодня очень много шума особенно если вы живете в квартире. Так что, Ваши текущие показатели уже хорошие)

П.С. Измерять пропускную способность WIFI с помощью speedtest.net это не профессионально, показания speedtest зависят от многих факторов. Пользуйтесь iPerf3.

Худший ответ:
Можете использовать внешний wifi адаптер с подключением к usb 3.0 
https://www.dns-shop.ru/product/e16bffb9f3fd3330/w...
Вопрос: Почему редактор «ругается» на :after и :before?

Лучший ответ:
Видимо brackets хочет, чтобы вы писали псевдоэлементы через двойное двоеточие https://developer.mozilla.org/ru/docs/Web/CSS/Pseu...
li::after

Худший ответ:
https://jigsaw.w3.org/css-validator/validator
нет тут ошибок, скорее вопрос почему редактор ругается
Вопрос: Насколько будет эффективным изучение материала, если применять различные подходы?

Лучший ответ:
О, боги! Просто возьмите учебник из серии Head First. Они все написаны с учётом специальных учебных методик, усиливающих понимание и запоминание. В них учебный материал перемешан с инструкциями по его максимально эффективному изучению.

Худший ответ:
Не зацикливайся сильно. Просто конспектируй основное, и повторяй то, что законспектировал. Когда закончишь книгу, опять все повтори, и пройдись по пунктам оглавления книги. Если что-то не вспомнил - перечитай главу. И главное - используй несколько источников и практикуйся. Скачай несколько книг, в каждой книге один предмет объясняется по разному, и ты увидишь объект под разными углами, что даст тебе большее понимание. Не переписывай втупую примеры программ из книги, просто пойми ее суть, и напиши свою версию.
Вопрос: Можно ли в шаблон Word подставлять данные из Python?

Лучший ответ:
Можно
https://docxtpl.readthedocs.io/en/latest/
https://python-docx.readthedocs.io/en/latest/
https://michalzalecki.com/converting-docx-to-pdf-u...

Худший ответ:
Вместо Word (.doc) можно использовать LibreOffice (.odt).Правишь заготовку, а потом скриптом ODT->PDF или ODT->DOC.
P.S. Кстати, и .odt, и .docx - это сжатые zip-ом текстовые xml-файлы. Поэтому многие советуют сначала распаковать "документ", заменить в одном из полученных xml слова-маркеры, а потом обратно запаковать.
Вопрос: Нет интернета в локальной сети при подключении к openvpn?

Лучший ответ:
Похоже что после поднятия тоннеля весь трафик начинает в него заворачиваться. Надо изменить настройки сервера OpenVPN, что бы он не отдавал default gateway, а только нужные Вам маршруты.

Худший ответ:
У роутера маршрут по умолчанию - через VPN?
Вопрос: Как сделать отсчет времени в PHP?

Лучший ответ:
Вероятно, можно вычислять время получения очередного бонуса, или даже сколько бонусов должно быть у человека в любой момент времени.
Например, 1 бонус полагается каждые 15 минут с момента первого визита. Надо запомнить в БД id пользователя и время его первого визита. Тогда при любом следующем его обращении к боту можно посчитать, сколько у того бонусов. Текущее время минус время 1-го визита (в сек.) разделить на 900 и взять целую часть.

Худший ответ:
Берешь текущее время, отнимаешь предыдущее.if (разница < 100500 ) {
  // еще рано
} else {
  // ok
}
Вопрос: Прав ли разработчик?

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

Худший ответ:
1. Предъявить вам претензии предыдущий официально он не может, так как работал без договора. И вообще можно сказать ему что в случае чего, можно попросить налоговую заинтересоваться как он без договоров работает.
2. У вас в договоре есть пункт о логотипе, о котором согласовано с клиентом. Следовательно вы обязаны соблюдать договор.
Старый разработчик может идти лесом. Он может считать мир несправедливым, но пусть заключает договора на будущее.
Вопрос: Где зарегистрировать домен в зоне ru анонимно?

Лучший ответ:
Нигде. Для зон .ru/.su/.рф - требование технического регистратора (оператора зон) - наличие паспортных данных. Да, можно нарыть паспорт бомжа Васи и зарегить на него. Если проект бросовый - нагадить и забыть - так можно делать. Если проект ценный, то при любом спорном моменте Вы просто не докажете, что домен Ваш. И проблемы - внезапно - могут перевесить не-анонимность...

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