Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Стоит ли идти в разработку под IOS(swift)? Junior'ы никому не нужны?

Лучший ответ:
Джуны не только в ios разработке не нужны, они нигде не нужны кроме веба и околопрогерских позиций вроде аналитик, техподдержка и т.д. По остальным направлениям вакансии джунов появляются 1-2 в месяц в городах миллионниках, в Мск может будет 7-8, а теперь прикидываем сколько человек на нее откликнется, даже если все откликнувшиеся будут без опыта у вас все равно мизерные шансы быть приглашенным на собеседование(не говоря о том чтоб пройти его, оказавшись лучшим из кандидатов), но а если среди откликнувшихся будут люди хоть с каким-то опытом и парой опубликованных приложений(а они будут), то у вас и вовсе нет шансов. 
-Что тогда делать? - спросите Вы
-Либо искать стажировки бесплатные/за еду, либо в домашних условиях прокачиваться до миддла - отвечу я
Чтобы произошло первое нужна большая удача, ведь шансы найти стажировку хоть и выше чем работу джуном но не сильно.
Чтобы произошло второе нужна мотивация и кропотливая работа на протяжении долгого периода (от восьми месяцев и выше закладывайте), результатом которой должно быть портфолио из одного-двух клиент-серверных приложений, которые грамотно спроектированы и разработаны с использованием всего того, что встречается в требованиях вакансий. Чтобы охватить прям широкий спектр всего, я бы делал клиент для соц сети - там и работу с сдк пощупаете, и сокеты, и работу с изображениями, видео, и т.д в общем много всего узнаете на одном проекте.

Худший ответ:
Опытных разрабов никогда не достаточно, но чаще всего бизнес не хочет тратиться на джунов. Статистика как бы не врет и попасть джуном проще после какой-то стажировки в компанию. Ну и не забываем тот факт что надо уметь себя продать компании, особенно если опыта ноль. 
PS что там перспективно, а что нет - разберутся археологи будущего
Вопрос: Где в Django хранить бизнес логику системы?

Лучший ответ:
Во-первых, best practice для Django - это fat models / thin controllers. Во-вторых, ничто не мешает вам сформировать сервисный слой, отделив прикладную логику в отдельные модули, независимые от фреймворка.

Худший ответ:
Не надо fat models, делай сервисный слой. Эта либа пригодится. Правда при ее использовании твоя бизнес-логика все равно будет зависеть от Django, но все равно удобно))
Вопрос: Почему не добавляются записи в БД?

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

Худший ответ:
я думаю, таблица создана с полем id без модификатора auto_icrement
то есть надо либо его добавить, либо вставлять и id тоже
Вопрос: Есть ли плагины для работы с git для Sublime для просмотра изменений файлов как это в PhpStorm?

Лучший ответ:
Не знаю как там в  PhpStorm, но разработчики Sublime недавно выпустили git-клиент https://www.sublimemerge.com

Худший ответ:
Vscode тогда уж. Но если вы разрабатываете на PHP то купить шторм это очень выгодное вложение
Вопрос: Как избавиться от начального значение в useState?

Лучший ответ:
У Вас нет проблемы, которую Вы описали, потому что это работает несколько не так, как Вы, я полагаю, думаете.const Logic = () => {
  const [inputValues, setInputValues] = useState('');
  console.log('1)', inputValues);
  const onChangeInput = e => {
    setInputValues((currentState) => {
      console.log('2) current', currentState); 
      return e.target.value});
    console.log('3)', inputValues);
  };

  return <View inputValues={inputValues} onChangeInput={onChangeInput} />;
};

// Будем вводить букву 'a' в инпут. В итоге в консоле получим:
// 1)"" <-- из-за useState('');
// 2) current "" <-- так как значение мы ещё не обновили, то получаем то же начальное значение из useState('');
// 3) "" <-- вызвывается ПОСЛЕ setInputValues, тем не менее, имеет ещё не обновлённое значение.
// 1) a <-- произошло изменение состояния, компонент перерисовался.
Дальше, в заивисимости от того, что Вы хотите сделать, 
выводите значение либо в "1)" - это вывод с новым state но перед перерисовкой, 
либо в "3)" Вам нужно выводить e.target.value.
Операция изменения состояния - асинхронная и реакт может собирать несколько изменений состояния в одно для оптимизации.

Худший ответ:
Добавлю к выше написанному комментарию от Вадима.
Иногда существует надобность в том, что бы проводить какие-либо манипуляции с данными сразу после того, как мы их изменили в функции. Возьмём пример автора:import React, { useState } from "react";
import "./styles.css";

const View = ({ inputValues, onChangeInput }) => {
  return <input type="text" value={inputValues} onChange={onChangeInput} />;
};

const Logic = () => {
  const [inputValues, setInputValues] = useState("");

  const onChangeInput = e => {
    setInputValues(e.target.value);

    // *** Здесь мы хотим взять новые данные и что-то с ними сделать (в данный
    // момент мы просто выводим в консоль)
    console.log(inputValues);
  };

  return <View inputValues={inputValues} onChangeInput={onChangeInput} />;
};

export default Logic;
*** Здесь данные устаревшие, это описал Вадим, и я с ним согласен. Но всё-таки, есть вариант использовать данные сразу после их изменения, и к сожалению в хуках этот вариант выглядит куда менее эстетичнее, нежели в классах.
Дело в том, что в классах для изменения состояния используется setState (кэп). setState первым параметром принимает изменяемый объект, а вторым (необязательным) параметром он принимает callback, в котором можно получить уже изменившийся state. Ниже приведён пример автора, где функциональная компонента Logic переделана в одноименную классовую компоненту. Тут. При вводе символов в input, в консоли мы будем получать символы по порядку, т.е. будем видеть актуальный state
Чтобы добиться такого же результата у автора, нужно подписаться на изменение параметра inputValues в хуке useEffect. Тут. Теперь мы так же при вводе символов в input видим актуальные данные.
Вопрос: Какие бесплатные источники данных посоветуете?

Лучший ответ:
Вот вам огромное количество публичных API, выбирайте, что душе угодно

Худший ответ:
https://openweathermap.org/api - погода
Вопрос: Низкоуровневое форматирование диска в Linux?

Лучший ответ:
Низкоуровневое форматирование - это нужны утилиты от производителя, у каждого свои.
ssd диск можно 'отформатировать' запустив команду trim на весь диск (утилита blkdiscard)

Вторая команда неправильная, /dev/zero возвращает бесконечные нули, а /dev/null нельзя читать, только бесконечно что угодно в него записывать

Чтобы подготовить диск к продаже, dd if=/dev/zero of=/dev/sdX. более чем достаточно.
С бэдами ничего не сделаешь, они будут видны в отчетах смарт (причем еще до их появления), такой диск только на свалку/запчасти ремонтникам (продавайте на авито, могут купить как донор, приложив скрин SMART).

Худший ответ:
это не низкоуровневое форматирование, это заполнение диска нулями.

разницы между /dev/null и /dev/zero нет.
оба потока при чтении отдают неограниченный поток нулей.
да и при записи ведут себя идентично - все записанное удаляется.
Вопрос: Почему placeholder в input обрезается?

Лучший ответ:
padding...
margin...
Мы можем гадать всю ночь.
Рассекретте ваш код, мы ни с кем не поделимся им! Честно!

Худший ответ:
Попробуйте поэкспериментировать с padding и размером шрифта в placeholder.
Вопрос: Изменилась ли масса Вселенной после Большего взрыва?

Лучший ответ:
Ясное дело изменилась, какая то часть материи перешла в энергию. Что то исчезло не пойми куда, в общем уже как 100 лет перекраивают теории

Худший ответ:
Изучай инфляционную модель Вселенной, когда "из ниоткуда" взялось колоссальное количество энергии, превратившееся в массу.
Вопрос: Можно ли так сделать на js и php?

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

Худший ответ:
Самое простое, результат выполнения php скрипта сохранять в базе. При помощи js запрашивать результат, с определенной периодичностью, например, раз в минуту.
Вопрос: Реакция в 00:00, как сделать?

Лучший ответ:
function cloneOrCreateDate(date) {
  return date instanceof Date ? new Date(date) : new Date();
}
function getMidnightDate(date) {
  const d = cloneOrCreateDate(date);
  d.setHours(0);
  d.setMinutes(0);
  d.setSeconds(0);
  d.setMilliseconds(0);
  return d;
}

function addDaysToDate(days, date) {
  const d = cloneOrCreateDate(date);
  d.setDate(d.getDate() + days);
  return d;
}

function timeOffset(d1, d2) {
  return Math.abs(d1 - d2);
}

setTimeout(() => {
  // логика в полночь
}, timeOffset(Date.now(), addDaysToDate(1, getMidnightDate())));

Худший ответ:
Очевидно, что каждую секунду следует проверять некоторое условие.
И скорее всего в setInterval.

Если говорить о простом.

Но можно юзать специальную библиотеку, честно признаюсь не юзал планировщик на ноде.
Но принципы планировщиков похожи.
Вопрос: Как оставлять check box включенным, после перезагрузки страницы?

Лучший ответ:
Еще можно хранить состояние чекбоксов в локалсторадже.snippet

Худший ответ:
Такое обычно решают на стороне сервера, когда в разметку прописывается атрибут/свойство checked. Если на js - можно использовать localStorage, а можно в начале скрипта запустить цикл по инпутам и задать им properties - checked.
Вопрос: Как воспроизвести звука на сервере через RDP?

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

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

Лучший ответ:
Где вы нашли в наше время такой маленький экран?
Впрочем, зашёл я на их сайт. Я бы не стал ставить что-либо от авторов такого сайта залитого рекламой по уши. 

Поставьте какой-нибудь стандартный xubuntu или lubuntu если всё так плохо

Худший ответ:
Можете смело ставить лубунту, у меня на более слабом железе работает. Либо, если вам нужна сильная экономия, можно поставить чистый debian, а потом через консоль установить графическое окружение i3wm, но оно имеет свои нюансы.
Вопрос: Intel SSD 545s 512GB M.2 и B450 Aorus Pro не подружились. Что делать?

Лучший ответ:
У вас, батенька, интеловский ссд - саташный. А на материнке этой нижний слот поддерживает только nvme. Верхний поддерживает и nvme, и sata. Меняйте местами либо вот такой переходник m2 - sata вам в помощь. 

Худший ответ:
Что делать?Менять диск, менять диски местами, менять плату - в общем вариантов много.
Ваша мат. плата не поддерживает SATA диски на данном M2 коннекторе.,
Вопрос: Как оживить Attiny85?

Лучший ответ:
взять любой генератор частоты или спаять мультивибратор из двух транзисторов по-быстрому.
подключить его на вход (там есть еще выход на него подключать бессмысленно) внешнего кварца. получишь стабильно работающий от внешней частоты проц - дальше по своему усмотрению.

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

Лучший ответ:
Можешь начать с flask.

Худший ответ:
Тут уже посоветовали Flask, но ещё есть Bottle.
Идея в том, что вы создаёте обработчики для различных действий и назначаете им роуты. Для наглядности пример на Bottle:

@route('/genconf', method='POST')
def generate_config():
    vlan = request.forms.get('vlan')
    port = request.forms.get('port')
    hostname = requests.forms.get('hostname')
    # Здесь вызов функции, которая принимает аргументы и делает вашу магию
    return 'Результат магической функции выше'
Собственно, данные можно принимать из HTML формы, выводить туда же в HTML. Чтите доки :3

P.S.: Ещё можно пойти спартанским путём и юзать CGI.
Вопрос: Как подобрать версию ButterKnife под Android Support library (и почему бардак такой)?

Лучший ответ:
Ну, вы сами описали один из путей. Открываете maven central и подбираете.
Рекомендованный путь - всё должно быть самых последних версий.

Худший ответ:
Что бардак для одного, то порядок для другого.
Если хотите чтобы было всё чётко, строго и как вам удобно - нанимайте программистов, они вам всё напишут так, как вы скажете, за определённый $$$ в час.
Вопрос: Какой движок использовать для сайта фрилансеров?

Лучший ответ:
Основная проблема любого коммерческого сайта нифига не движок, а очень даже женьги на рекламу, наивные мысли о том что "я сам без рекламы контентом и ссылками раскручу" - нифига не работает. Никогда. Просто не работает. Нужна туева хуча денег, точнее деньжищ, чтобы хотя бы как то двинуться вперед в плане посещаемости, а выйти на самоокупаемость - вообще не один год скорее всего понадобится. В моем опыте крупные проекты взлетали 2 раза, оба с финансовыми вливаниями от 100к баксов.
Если есть желание просто "пощщупать" как оно в это сегменте и каково это вообще иметь собственный проект - это весело, дорого и быстро надоедает, когда через полтора года видишь что движухи нет и не предвидется, но если охота - кто же вас остановит )

Худший ответ:
Зависит от Ваших навыков и предпочтений.Каталог и доску можно собрать на любой популярной CMS. 
Это как магазин людей =) а их навыки - категории и характеристики.
Вопрос: Для каких задач Node.js является более приоритетным выбором среди других платформ?

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

зы я знаю огромный список успешных проектов на ноде, на пыхе, java, python или с# он не меньше это не аргумент
зыы видел засраные проекты на любом из вышеперечисленных яп

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

Лучший ответ:
Без всяких оптимизаций (голое сложение в цикле):кодvar arr1 = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]];
var arr2 = [[10, 20, 30, 40], [50, 60, 70, 80], [90, 100, 110, 120]];
var arr3 = [[100, 200, 300, 400], [500, 600, 700, 800], [900, 1000, 1100, 1200]];

function summ_array(...arrs){
   return arrs.reduce((acc,arr)=>{
      if( Array.isArray(arr))
         arr.forEach((subarr, i)=>{
            if(!Array.isArray(acc[i])) 
               acc[i] = []
            if( Array.isArray(subarr))
               subarr.forEach((v, j)=>{
                  if(!acc[i][j]) 
                     acc[i][j] = 0;
                  acc[i][j]+=v;
               });   
         });
      return acc;
   },[]);
}
var summ = summ_array(arr1, arr2, arr3);
console.log(summ);snippetsnippet

Худший ответ:
function sum(args, func) {
  const result = [];

  const length = Math.max(...args.map((item) => item.length));
  for (let i = 0; i < length; ++i) {
    const arr = args.map((item) => item[i]).filter(Boolean);
    const maxLength = Math.max(...arr.map((item) => item.length));
    result.push([]);
    for (let j = 0; j < maxLength; ++j) {
      result[i].push(arr.map((item) => item[j]).filter(Number).reduce(func));
    }
  }

  return result;
}


/* сложить */
sum([arr1, arr2, arr3], (acc, curr) => acc + curr);

/* умножить */
sum([arr1, arr2, arr3], (acc, curr) => acc * curr);
Вопрос: Как определить причину тормозов ноутбука?

Лучший ответ:
Меняйте диск. Ставьте ssd. Вин10 на обычных нормально не работает. 
И протестите ваш диск прогами. Битый/не битый он. Очень похоже что диску кранты

Худший ответ:
Памяти достаточно? Может одна планка памяти сдохла и отключилась?
Вопрос: Как редактировать код сайта с помощью python?

Лучший ответ:
Легко делается Селениумом:
driver.get('http://lenta.ru')
driver.execute_script('''
var aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {
  if (aTags[i].innerText.startsWith("07:50Опубликованы данные")) {
    aTags[i].innerText = "Утки с Марса захватили вселенную!";
    break;
  }
}
''')
time.sleep(1)

screenshot = driver.get_screenshot_as_png()
Я взял пример посложней.  В вашем случае наверняка селектор можно выбрать попроще



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

Лучший ответ:
Как обстоят дела с загрузкой цп и памяти роутера ростелекома во время ошибок? Ещё бы неплохо уточнить какой роутер от ртк стоит. У меня дома их онтшка от трёх пк + телефона перегревается и глючит. Пришлось колхозить охлаждение активное, только так от лагов избавился. На 30 пекарен... ну не рассчитан он явно.

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

Лучший ответ:
А пользователь, по вашему, должен страдать от вашего желания анимировать этот фон?
Во-первых, что и как должно анимироваться, трансформироваться и тому подобное? Где ТЗ или пример?
Во-вторых, вопрос тупой, ибо как вы собрались анимировать статическую картинку? 
Во-третьих, чтобы что-то такое анимировать, вам нужно разделить на несколько слоёв. Но анимация получится простой — а-ля движение звёзд с разной скоростью (на разных слоях). Но для этого вам ещё и нужно сделать бесшовный паттерн каждого слоя, если они будут не просто мигать, а двигаться.
В-четвёртых, если нужна сложная анимация, то тут уже надо делать на WebGL. Что как бы намекает.
В-пятых, никакой пользователь не захочет грузить 40 мб ресурсов ради этого. У вас не сайт крутого агентства.
В-шестых, если уж так надо, то найдите просто видео с разрешение 1080p и поставьте его на фон, грузите его лениво, иначе у вас разбегутся люди, никто не будет ждать. Про 4К-запись с хорошим битрейтом будет весить а-ля 100 мб за 10 секунд, а также будет глючить на слабых устройствах. А с учётом огромного количества мелких деталей на видео, то при хорошем визуальном качестве в 4К-разрешении 10 секунд такого видео спокойно может весить и 150–200 мб из-за битрейта. И ваш равно будет небольшое размытие. 
В-седьмых, я не описал ещё кучи моментов.
Типичный пример хотелки без понимания всех проблем, что эта хотелка в себе таит.

Худший ответ:
Выглядит, конечно, как говно#section0{
  background: url(https://images.wallpaperscraft.ru/image/luna_noch_zvezdy_134696_3840x2400.jpg) repeat-x 0 center/cover;

background-attachment: fixed ;
overflow-y: hidden;
height: 100vh;
  animation: city 30s linear infinite;

}

@keyframes city {
  from { background-position: -1000px 100%;}
  to { background-position: 0 100%; }
}
Вопрос: Где вы учите/ли PHP?

Лучший ответ:
Я могу сказать, где точно учить не надо
руселлер и прочие видеокурсы. это реальный ад
какой-то дятел на ютубе, который толкает RedBean - это полная жесть. новичкам этот редбин ни к чему, им надо основы учить, а основ он не даёт, его курсы для тех кто уже знает РНР и SQL. Но фокус в том что тем кто знает, его курсы даром не сдались, а новички из ничего вообще ничего не выносят, но потом со слезами и соплями пытаются что-то ваять и у них вообще ничего не выходит. 
otus . ru - я тут недавно увидел на их сайте пример кода, и чуть не поседел. Долго искал подпись что это коллекция примеров того как не надо писать, но это они всерьёз.
твое коде муму сейчас посмотрел - написано такими же макаками на материале прошлого века. Если будешь искать работу то тебя даже на порог не пустят с таким кодом.
В общем не знаю. скрепя сердце могу посоветовать хтмлакадемию, но там во-первых платно, а во-вторых материал тоже местами проседает. Но хотя бы менторы вроде нормальные, а не какая-то школота "с вконтакте".

В целом я рекомендую учить не какой-то конкретный язык, а программирование в целом

Худший ответ:
Не видел курсов по php лучше Борисова (учебный центр Специалист). Сам учился и другим советую. Жаль перестал преподавать. Последний поток от 2016 года можно найти на nnm-club.
Вопрос: Кто такие Inkitt? Были ли вы в ситуации, где в вас видят намного большего специалиста, чем вы являетесь на самом деле?

Лучший ответ:
имхо, HR не понимает ничего, либо слишком ленив, и вас отсеят на этапе общения с Тим лидом, если не будет хватать знаний.

Худший ответ:
Веерная рассылка по контактам из .... (заполните нужное).
Это называется именно так.
Вопрос: Автоматическое перемонтирование usb-hdd если он отвалился?

Лучший ответ:
mount | grep 1tb || mount /mnt/1tb
добавьте это в cron или куда угодно; смысл команды прост до неприличия: если не смонтирован, то смонтировать.
А уж с какой частотой это проверять - ваше дело.

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

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

Худший ответ:
Интересно, если процессор будет быстрее, повлияет ли это на скорость в программировании?
Вопрос: Что такое Эталонная модель взаимодействия открытых систем?

Лучший ответ:
Это так русскоязычные преподаватели, которые никогда не работали в области информационных технологий, а только по книжкам всех учат, называют модель OSI.
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D...

Худший ответ:
Это модель взаимодействия между общедоступными информационными (компьютерным, it) системами, любыми. Нигде не используется и никому не нужна. Даётся студентам для упрощённого абстрактного понимания работы любого протокола (ip, dns, http). Этакая общая формула протокола.
Вопрос: Сайт с таблицей вместо базы данных?

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

Худший ответ:
Вас Майкрософт покусал. Срочно сделайте антиёксельную прививку тут: https://sql-ex.ru/
Это поможет вам перестать бояться БД и начать использовать данные, а не таблички. Для будущего.
Вопрос: Почему вырубается дрон при увеличении оборотов?

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

Худший ответ:
Банальный вопрос, но вы пробовали его заряжать?) 3,7В - номинальное напряжение практически разряженного аккума, заряженный имеет напругу 4,2В
Вопрос: Как в JS понять, на какой я .html странице?

Лучший ответ:
window.location.href

либо сразу
window.location.pathname

Худший ответ:
// Например через регулярные выражения, если я на a.html
console.log(location.href.match(/[\d\w-]+\.\w+$/)) // a.html
Вопрос: Как ограничить скачивание документов в ВК. Сделать доступными только для подписчиков?

Лучший ответ:
Нет.
К документам доступ для всех, они видны в поиске и доступны по ссылке.

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

Лучший ответ:
Вордпрессу еще года два на восмерку путь заказан. Как минимум. 

Но вообще специально для таких вот печальных случаев именно в 8-ке придумали
<?php $cf = get_post_meta($post?->ID, 'n', true);

Но тогда этот код перестанет работать на всех предыдущих версиях.

Худший ответ:
Ошибка не имеет отношения к php8.
Используйте get_the_ID()

То есть так:
<?php $cf = get_post_meta(get_the_ID(), 'n', true);
<?php if (!empty($cf)) { ?>
    <meta name="robots" content="noindex,follow"/>
<?php } ?>

<?php if ( is_search() || is_404() || in_category(3) || is_tag() || is_author() ) { ?>
    <meta name="robots" content="noindex,follow" />
<?php } ?>
<meta property="og:description" content="<?= get_post_meta(get_the_ID(), 'd', true) ?>"/>