pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Чтение из sh-файла?

Лучший ответ: В unix перевод строки обозначаеться символом line feed (lf, \n, 0x0a, 10).
В windows - последовательностью carriage return + line feed (crlf, \r\n, 0x0d0a, 13 10).
Bash не распознаёт carriage return и выводит собщение об ошибке.

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

Лучший ответ: "Код. Тайный язык информатики." Чарльз Петцольд 
"Архитектура ПК" Таненбаум 
А по сетям Олифер или опять же Таненбаум 
По созданию высокоуровневого языка, наверное, "книга дракона" вам подойдёт.
Ну и конечно, если что-то конкретное непонятно, гугли, в сети много годных статей.

Худший ответ: кеш в общем случае, это память, в которой лежат недавно используемые данные.
Кеш может быть у процессора, контроллера, операционной системы, протокола и прикладной программы.
1. Например я делаю запрос в базу данных и получаю оттуда ответ. При этом база данных ковырялась в куче таблиц, чтобы мне сформировать этот ответ.
Через пару секунд я делаю точно такой же запрос в базу данных - вот тут она может мне вернуть предыдущий ответ, который находится в ее кеше.
2. Например я захожу на какой-то сайт www.somedomain.com, для этого делается запрос моему dns серверу, чтобы он нашел IP адрес. DNS сервер делает запрос своему DNS серверу, тот своему и так до корневого домена, потом находится NS сервер, который знает IP и возвращает. Если я снова захожу на этот сайт через какое-то время, уже никто не будет делать повторную цепочку запросов - IP хранится в кеше и моего браузера и моей операционки и всех DNS серверов по пути.
Понемного данные устаревают, и через какое-то время запрос будет повторен с полной цепочкой.
Но все, что я описал выше, и вопросы которые вы хотите узнать - почитайте сперва википедию. Там все доступно.
Вопрос: Автоматизация процесса авторизации по SSH?

Лучший ответ: К конфигурации ssh выставьте StrictHostKeyChecking no

Худший ответ: Оно просит не ключ создать, а добавить новый хост в список известных хостов. Это делается один раз, при первом подключении по ssh к хосту, к которому раньше ни разу не подключались.
Вопрос: Текущие хорошие зарубежные фриланс биржи?

Лучший ответ: Полный список бирж тут
https://upworkest.ru/spisok-frilans-birzh/

Худший ответ: Я уже год вполне неплохо себя чувствую на freelancer.com. Заказов хватает.
Вопрос: Реален ли майнинг на выделенных серверах?

Лучший ответ: Реален, но окупит в лучшем случае 1/5 от аренды сервера. Например Xeon E5-1650v2 дает около 1000 рублей, но за аренду платить нужно около 6000. Рассматривать старые серваки с процессорами ниже 56xx нет смысла. На xeon 53xx/54xx (771 сокет) дает еле 10 рублей.

Худший ответ: Нет
Уже давно
Вопрос: Какие есть бесплатные обучающие курсы, книги, статьи о линуксе и системном администрировании?

Лучший ответ: Всем даю это, тренируйтесь. Гуглить Вы умеете ;)
nodesquad.blogspot.co.il/2013/04/blog-post.html

Худший ответ: Ну если станет интересно администрирование  Windows то тебе сюда.
Вопрос: Возможно ли на данный момент создание бота WhatsApp?

Лучший ответ: Как создать бота WhatsApp?
И снова этот WhatsApp... Запустить любым способом или оптимальный вариант запуска бота для личного пользования?

Худший ответ: Можно попробовать сделать бота для riot.im и соединить его с whatsapp через matrix (подробно отвечал в другой теме, продублирую здесь): Как обстоят дела с API WhatsApp сегодня (Юриспруденция)?
Вопрос: Существуют ли бесплатные системы тестирования персонала?

Лучший ответ: moodle посмотрите

Худший ответ: certifications.ru
Очень хороший набор различных тестов, но под ваши условия полностью не подходит.
Вопрос: Какой поисковый движок выбрать для базы наименований(товаров, документов, etc.)?

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

Худший ответ: ElasticSearch или SolrOfficial solr guide suggesterautocomplete with solrSolr Ngrams and Twitters typeaheadjslucene-vs-solr-vs-sphinx
Вопрос: Влияет ли TTL в ответе DNS сервера на частоту запросов браузера к DNS?

Лучший ответ: TTL влияет не на браузер, а на работу DNS в целом. 
У вас есть кеш DNS клиента в ОС
у вашего DNS сервера свой кеш
у вашего DNS сервера есть DNS сервер, у которого свой кеш
и так до корневого сервера
но 100 секунд очень мало, есть вероятность, что на пути к вашему браузеру, какой-то ДНС сервер не будет ресолвится чаще чем xx, несмотря на настройки вашего TTL

Худший ответ: TTL в ответе DNS для браузера позволит управлять частотой запросов к DNS?
Гипотетически: да.
На практике:Некоторые промежуточные DNS-серверы кешируют ответ вразрез TTL (как и заметил @saboteur_kiev), но сейчас это происходит редко.Некоторые браузеры имеют свои механизмы кеширования DNS.
Вопрос: Как добавить Spinner в ActionBar?

Лучший ответ: Думаю, тут работать нужно не с экешн-баром, а с toolbar'ом. Использование тулбара как экешн-бар позволяет сделать быструю миграцию со старых версий, да и многим просто облегчает работу с ним. Но сам по себе тулбар функциональнее чем интерфейс экшн-бара, поэтому для чего-то кастомного следует работать с ним напрямую.

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

Лучший ответ: Блокировка портретного режима - это на 100% пользовательская настройка, которую можно включить в своем телефоне.
Вы не должны этого хотеть для всех пользователей. Это аналог выстрела себе в ногу, так как миллионы людей любят пользоваться именно этим режимом, вместо привычного вам вертикального.

Худший ответ: зачем такое может быть нужно?!
Вопрос: Где найти красивые css таблицы?

Лучший ответ: красивые css таблицы

Худший ответ: И вот ещё целая статья с плюсами\минусами:
https://www.smashingmagazine.com/2008/08/top-10-cs...
Вопрос: С чего начинается разработка приложения?

Лучший ответ: Зависит от размера приложения, если маленькое - можно сразу делать наброски нужных Activity и самый необходимый функционал, функционал и layout-ы делают параллельно
Если что-то посложнее:
1. Продумать архитектуру приложения: в UML или хотя бы на листе бумаги разобраться с тем, какие части приложения за что должны отвечать
2. К имеющемся описанию добавить прототипы графического интерфейса (достаточно wireframe)
3. Опять же параллельно может вестись разработка компонентов и интерфейса, главное чтобы они были согласованы

Худший ответ: Зависит от размера приложения, если маленькое - можно сразу делать наброски нужных Activity и самый необходимый функционал, функционал и layout-ы делают параллельно
Если что-то посложнее:
1. Продумать архитектуру приложения: в UML или хотя бы на листе бумаги разобраться с тем, какие части приложения за что должны отвечать
2. К имеющемся описанию добавить прототипы графического интерфейса (достаточно wireframe)
3. Опять же параллельно может вестись разработка компонентов и интерфейса, главное чтобы они были согласованы
Вопрос: Ядро сети. Аналог Cisco 3750 от Mikrotik?

Лучший ответ: CRS-серия -- довольно специфичная штука, это, скорее, SOHO-роутер, соединенный 1-2 гигабитными линками с многопортовым L2-коммутатором. Не верьте описанию "Layer 3 switch" - оно таковым не является.
L3 там очень условный, а точнее - полностью софтверный (в отличии от каталистов), больше гигабита (или двух для двухъядерных цпу) вы через него не пророутите вообще никак.
А CCR - в зависимости от модели могут быть вообще чисто софтовыми платформами и скорость/задержки/потери определяются загрузкой ЦПУ и огромным числом других факторов.
Так что, если хотите аппаратного L3 - не смотрите на Mikrotik. Хватает и без него L3-коммутаторов.
Если устроит и софтовый - то лучше CCR, с внимательным изучением блок-схем.

Худший ответ: CRS317-1G-16S+RM точно справится с ядром сети! Cloud Router Switch 226-24G-2S+RM должен. Можно попробовать и CRS328-24P-4S+RM. Если доживем! =)Он справится с маршрутизацией между VLAN и ACL? 
о чем идет речь если честно я не понял )
Вопрос: Как сочетаются flex-basis flex-grow и flex-shrink?

Лучший ответ: СВОЙСТВА!!! flex-basis flex-grow и flex-shrink
flex-basis - это та ширина, будем называть так, которая неотъемлима у элемента. Не хотите ее юзать - используйте min-width.
flex-grow - это "жадность" того или иного элемента. Т.е. сколько свободного пространства он съест, по сравнению с соседом (Спека: Определяет, сколько пространства может занимать флекс внутри контейнера. По дефолту = 0). Вспоминаем ФБоксовский способ прижатия футера к низу:
.wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.content {
  flex: 1 0 auto;
}
.footer {
  flex: 0 0 auto;
}
 и flex-shrink - это то, как будут сжиматься элементы, если места хватать не будет. Антагонист flex-grow. По дефолту = 1, в отличие от flex-grow = 1 (Это ТОЛСТЫЙ намек)
Спека: Устанавливает коэффициент сжатия флексов в контейнере и задаёт, насколько элемент будет уменьшаться по отношению к другим флексам, чтобы разместить все элементы в одну строку
Базис задавать НАДО! если желаете адаптивности, при заданном flex-wrap: wrap;
Спека: Свойство flex-basis определяет основу флекса, которая является начальным размером элемента.
ВОПРОСЫ?!
https://webref.ru/css/flex-basis
https://webref.ru/css/flex-grow
https://webref.ru/css/flex-shrink
Нужны ответы? Берете простеньки макетик, а-ля Бутстрап и верстаете весь!!! на флексах. После 5-й верстки наступит Дзен! ИМХО!

Худший ответ: не надо использовать flex-basis - это лишнее избыточное средство
достаточно обычных цсс-размеров - min/max-height и тд
flex-grow и flex-shrink - это степень сжимаемости и расширяемости элементов
поэтому флексбокс это гибкий блок - изначальные размеры становятся гибкими
Вопрос: Как оптимизировать простенький код?

Лучший ответ: Оптимизировать неправильное решение бесполезно. Тут 2 варианта:
1) Реализовать бинарный поиск. У вас уже правильная идея, как определить, что за заданное количество секунд можно напечатать сколько надо или больше страниц (floor(seconds/s1)+floor(seconds/s2) >= n). Теперь осталось вместо линейного увеличения seconds, удваивать его. Т.е. вместо seconds = seconds+1 делать seconds = seconds*2. После чего сделать бинарный поиск на отрезке [1,seconds].
2) Применить математику. Нужно найти минимальное x такое, что floor(x/s1)+floor(x/s2) >= n.
Забъем на округление и решим x/s1 + x/s2 >= n. 
x = ceil(n*s1*s2/(s1+s2)).
Но. это будет оценка сверху, потому что мы выкинули округления, которые уменьшают реальное значение количества напечатанных за x секунд страниц.  Но, внимание, реальное количество страниц будет максимум на 2 страницы меньше, потому что oкругление сбивает максимум 1 страницу.
Теперь будем увеличивать x, чтобы увеличить количество напечатанных страниц. Если просто прибавлять 1 каждый раз, то почти всегда занчение не поменяется, потому что x/s1 так и будет дробным. Увеличение произойдет только когда x/s1 или x/s2 будет целым. Следующее такое число можно легко найти (это будет x, делящееся на s1 или s2. Итак, решение:def twoprinters(s1,s2,pages):
    seconds= int(pages*s1*s2 + s1 + s2 - 1)/(s1+s2)
    while int(seconds/s1)+int(seconds/s2) < pages:
            a = seconds - seconds%s1 + s1
            b = seconds - seconds%s2 + s2
            seconds = min(a,b)
Этот код будет работать мгновенно для очень больших чисел. Потому что цикл while тут будет исполнятся максимум 2 раза. Каждый раз значение напечатанных страниц будет увеличиваться как минимум на 1, а оно изначально будет максимум на 2 меньше ответа. Странные вычисления a и b - это следующие числа за seconds, которые делятся на s1 и s2 соответственно. Мы вычитаем остаток от деления и получаем предыдущее или равное seconds число, делящееся на s1 и s2. Прибавляя s1 или s2 мы получаем следующее число, как нам и надо.

Худший ответ: Вывел приближенное значение времени из выражения, которое можно присвоить начальному значению.
И все начало работать быстро )seconds=int((pages*s1*s2)/(s1+s2))
Вопрос: Какую функцию выполняет webpack.config.js в angular?

Лучший ответ: Но если я создам файл webpack.config.js и заполню одну из секций(например Output), то будет ли это означать, что Output будет браться из webpack.config.js, а остальные значения из того же неведомого конфига? 
Нет. Могу посоветовать для этих целей (если настроек в angular.json не хватает) https://www.npmjs.com/package/ngw

Худший ответ: Есть команда ng eject. Запустите ее и веб конфиг проекта выложится вам из недр ангуляра, после этого перестанут работать команды ng ... . Это так было на ангулярах версии 2-5. На шестом с этим проблема, наверно не доделали еще https://github.com/angular/angular-cli/issues/10618
Погуглите по названию команды, может есть альтернатива для шестого ангуляра. Ответ рядом про package/ngw это один из вариантов.
Вопрос: Как в display: flex; сделать 1 элемент по правому краю, а все ост. по левому?

Лучший ответ: margin-left: auto  для правого элемента

Худший ответ: flex-grow для правого
Вопрос: Как визуально разделить форму (окно) на части(блоки) в WindowsForms?

Лучший ответ: Используйте Layout-s, в вашем случае должен подойти TableLayoutPanel, который позволяет компоновать элементы управления в виде таблицы.
Простой пример на русском языке можно найти тут:TableLayoutPanel

Худший ответ: System.Windows.Forms.GroupBox например
Вопрос: Вывести значение поля?

Лучший ответ: if (!empty($_POST['username'])) {
   echo $_POST['username'];
} else {
   echo 'net'
}
isset - проверяет поле на существование, если оно есть в форме то оно существует, пусть даже и незаполнено, чтобы проверить не пустое используется empty

Худший ответ: Неправильно сначала присваивать переменной оффсет массива, а потом его проверять - undefined index, в случае отсутствия. isset($_POST['username']) && !empty($_POST['username'])
Вопрос: Как на тостере узнать кто нажимал «Нравится»?

Лучший ответ: С помощью сниффера посмотрите, и если у сайта есть какие-то мобильные версии или приложения, то их тоже посмотрите. А лучше займитесь делом! Что с карьерой решили? Привет.

Худший ответ: Легально - никак.
Вопрос: Хороший дизайн сайта, где взять макеты(бесплатные)?

Лучший ответ: Где искать PSD шаблоны для тренировки верстки?
Где взять готовые psd и html шаблоны?
Целый шаблон psd?

Худший ответ: на beloweb.ru есть и вообще по этому ключевому слову HTML5 ШАБЛОНЫ  многое можно найти в любой поисковой машине
Вопрос: На тостере возможны push-уведомления или сторонний плагин для этого?

Лучший ответ: Как вы это решаете?никак, меня это не парит.
если очень жмет, то берешь расширения типа visualping или page monitor, настраиваешь и радуешься.

Худший ответ: Не вижу проблемы, не пожар - подождем!
"Плагины" тут ни при чем, вот расширение или дополнение к браузеру можно быть бы написать, но я не хочу, чтобы была нагрузка на процессор и сеть ради ненужной мне функции.
Вопрос: Из динамического IP сделать статический, как?

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

Худший ответ: Одно время использовал:
https://www.noip.com/
Вопрос: Можно ли создать приватного бота Telegram?

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

Худший ответ: Я на python сделал так:
if (user_id = тут ваш телеграм id):
    Тело программы
else:
     Написать пользователю, что у него нет доступа
Вопрос: Удаление одинакового объекта из массива?

Лучший ответ: Используй Map вместо массива, item.id как ключ.

Худший ответ: Переборомif (this.filterArray[name].find(item => item.id === value.id)) return;
Вопрос: Как правильно работать с REST API?

Лучший ответ: Ну вообще днище какое-то.
Для добавления таких привязанных к объекту сущностей обычно делают PATCH/PUT запрос с урлом типа /:resource_name/:resource_id/:entity_name.
В вашем случае что-то типа PUT /clients/:id/stocks

Худший ответ: Может я что то могу не так понять, но в чем проблема получить этот сложный объект с сервера со всеми полями, и его же(модифицированный) отправлять на сервер, к примеру: const {data} = this.props
data.phones.value[position] = newValue
this.props.onSubmit(data)
т.е. получаем данные с сервера
модифицируем
и отправляем каким то методом обратно, но уже новые
Вопрос: Можно ли работать выделением как кисточкой?

Лучший ответ: Доброго дня.
По-моему эту задачу решит быстрая маска. 
Нажимаете "Q" и выделяете, что нужно, как закончите - снова "Q".

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

Лучший ответ: Здравствуйте!
Насчет того, какую именно систему оплаты подключать для Woocommerce скорее должен ответить клиент, нежели мы. Не забывайте, что иногда требуется заключать договора и у каждого из этих систем свои правила и тарифы.
Конечно же самыми распространенными на зарубежном рынке являются 2checkout & Stripe для приема оплаты. Однако, в РФ они также неплохо распространены. Также можно подключить оплату через PayPal. PayPal для РФ подходит. В РФ пару лет, как можно принимать оплату с пейпал аккаунта. Разумеется, что у вас должен быть аккаунт.
Если у вашего клиента есть карта Сбербанка, то он может заключить договор и подключить оплату
Документация - https://web.rbsdev.com/dokuwiki/doku.php/integrati...
Можно также узнать у другие банков... есть ли у них плагины для вукомерца. Я знаю, что для Промсвязьбанка и Сбербанка они точно имеются.
Robokassa также довольно часто подключают.
При надобности можно подключить и другие системы оплаты... такие как Яндекс.

Худший ответ: Здравствуйте!
Насчет того, какую именно систему оплаты подключать для Woocommerce скорее должен ответить клиент, нежели мы. Не забывайте, что иногда требуется заключать договора и у каждого из этих систем свои правила и тарифы.
Конечно же самыми распространенными на зарубежном рынке являются 2checkout & Stripe для приема оплаты. Однако, в РФ они также неплохо распространены. Также можно подключить оплату через PayPal. PayPal для РФ подходит. В РФ пару лет, как можно принимать оплату с пейпал аккаунта. Разумеется, что у вас должен быть аккаунт.
Если у вашего клиента есть карта Сбербанка, то он может заключить договор и подключить оплату
Документация - https://web.rbsdev.com/dokuwiki/doku.php/integrati...
Можно также узнать у другие банков... есть ли у них плагины для вукомерца. Я знаю, что для Промсвязьбанка и Сбербанка они точно имеются.
Robokassa также довольно часто подключают.
При надобности можно подключить и другие системы оплаты... такие как Яндекс.
Вопрос: С чего начинать разработку нейронной сети?

Лучший ответ: Для начала рекомендую такой стек:
python->theano->keras
Под виндой всё это есть уже предустановленное и настроенное в Anaconda, разворачивается в 4 комманды.

Худший ответ: Примеры нейронных сетей на Матлабе.
Вопрос: Быстрый (лучше очень быстрый) анализ timestamp, выручайте!?

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

Худший ответ: Может я не понял проблему, но я ее не вижу, если дата заранее известна, то betwen.
Если хочешь сгруппировать в выборке по дням, можно делить на сутки (60*60*24),  тогда
получишь порядковые номера дня от текущей даты в обратную сторону, а в пхп, если надо получить дату использовать встроенные функции и приводить к виду date() - index day
Вопрос: Что положить в портфолио программиста на Си?

Лучший ответ: Выберите сферу, где хотите работать. Зайдите на hh.ru и посмотрите требования вакансий по теме. Сделайте выводы и напишите что-нибудь. Затем идите к работодателю. 
Забудьте про универсальный проект, который понравится всем. Программировать микроконтроллеры и писать какие-нибудь шейдеры - это две разные области со своей спецификой.

Худший ответ: 1. Что касается портфолио. Если нет формального опыта работы на си, то на должность выше среднего рассчитывать в принципе не придётся. Опять же, если этого опыта нет, то шансов написать годное портфолио тоже мало. Лучше вообще код не показывать, пока не попросят.
2. Если хочется посмотреть, как выглядит хороший современный код на си - рекомендую почитать исходники популярного открытого проекта. В зависимости от удобной специфики. Например: ffmpeg , openssl, openvpn, qemu. Там же можно посмотреть, как организована система сборки/автоматического тестирования.
Исходники лучше всего читать в процессе отладки (gdb). Тут порог вхождения несколько высокий, т.к. придётся искать IDE. Я пользуюсь emacs.
3. Из собственного опыта, даже крутые крупные компании готовы брать сишника, лишь бы он был готов стараться. Не стесняйтесь предлагать свои услуги.
4. Чем хорош п.2 , так это тем, что знание популярных открытых фреймворков - это + к резюме. 
5. Удобнее будет под линуксом.
Вопрос: Какой коммутатор выбрать для локальной сети и интернет?

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

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

Лучший ответ: interfaces.pro - живые
froala.com/design-blocks - шаблоны

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

Лучший ответ: Не разыменовывать указатель. Вместо return *head->... должно быть return head->....

Худший ответ: head->nextaddres - ListElement**head->nextaddres - ListElement
А ещё если у тебя не будет вершины, при вызове метода Empty будет UB
Вопрос: Как передать значение переменной между файлами шаблона на wordpress?

Лучший ответ: UPDATE 2020:

Для будущих поколений: начиная с версии WordPress 5.5.0 функция get_template_part() поддерживает третий параметр array $args. Подробнее в официальном посте.

Оригинальный ответ:

+1 к ответу, Капитан Какао. Впрочем, я использую все-таки стандартный get_template_part() для удобства, а переменные передаю через другое API - query_vars:
// В файле из которого вызываем
set_query_var( 'my_var', $my_var );
get_template_part( 'content', 'part' );

// В вызванном файле
echo $my_var;
Почему так? Для очевидности, в этом случае ты наглядно понимаешь что передаешь в темплейт.

Худший ответ: Смотрю вот ответы то хорошие, но что делать когда файл шаблона, например файл со script тегом который мы через хук wp_footer цепляем к странице, что бы не дублировать запросы к бд хорошей идей является как упомянул Mario62 передавать данные через $GLOBALS
Вопрос: Как научить nginx отдавать 404 вместо 403 при блокировке клиента по ip?

Лучший ответ: Я бы положил куда-нибудь файл со списком адресов, которые надо блокировать, а в конфиге nginx:map $geo{
    include path/to/file;
}
server {
    if ($geo) {
        return 404;
    }
}
А файле адреса в формате:
ip key
nginx.org/ru/docs/http/ngx_http_geo_module.html

Худший ответ: Написать рядом:error_page 403 =404;
Но имейте в виду, что это будет работать для всех 403 ответов от nginx.