Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Сложно ли подделать IP апдрес при запросе $_SERVER['REMOTE_ADDR']?

Лучший ответ:
Насколько я помню сетевые технологии, к которым на самом деле относится вопрос "Можно ли подделать IP адрес", подделать исходящий адрес в TCP заголовке можно. И такой запрос пройдет проверку. Но ответ на него уйдет на этот поддельный IP. То есть соединение оборвется на этапе TCP хэндшейка

Отсюда можно сделать вывод:  подделать адрес можно, но это не поможет сделать что-то вредоносное. 

Если поставить этому вопросу нормальные теги, а не взятые с потолка, то ответят настоящие специалисты в этом вопросе.

Худший ответ:
Целый микрорайон, или даже город, может сидеть в интернетике с одного адреса. Так что ваша проверка - просто лажа.
Используйте нормальные очереди (RabbitMQ, Kafka) и не занимайтесь колхозом.
Вопрос: Нужно ли оптимизировать статьи для SEO в 2021?

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

Проверять текст тем же главредом (оценка 7+) и тургеневым (риск до 4 баллов) - можно, но после них нужно обязательно вычитывать каждый абзац с тем, чтобы исключить все лексические, грамматические, логические и др. ошибки. Провести т.н. фактчекинг (проверка фактов на достоверность). Снабдить текст подходящими изображениями, видео или анимацией. Избавиться от лишней воды - это могут быть фразы или целые абзацы, которые можно удалить без потери смысла.

Ну и конечно, ссылки никто не отменял. В идеале провести крауд-кампанию - ставить органические ссылки (обязательно безанкорные) на статью с тематических форумов и Q&A сервисов и т.д. Дальше можно заказать рерайт (желательно - несколько и постепенно, а не сразу) и разместить его на тематическом сайте в виде гостевой статьи с анкорной dofollow ссылкой на свою статью. После - отслеживать динамику. Много ссылок с одного домена - не эффективно, много ссылок с разных доменов - хорошо, в идеале: один домен - одна-две ссылки.

Это то, что вспомнилось в моменте. Если намерены заниматься продвижением, я рекомендую постоянно отслеживать актуальную информацию. В частности, рекомендую подписаться на мой телеграм-канал по SEO, которому, кстати, 17 сентября стукнет 4 года =)

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

Лучший ответ:
Зачем так сложно?
Прочтите внимательно это

Худший ответ:
for i in range(word_count, 0, -1):
На первой итерации цикла i примет значение word_count.
Символы в строке word имеют индексы от 0 до word_count-1.
Так что индекс, равный word_count, не существует. Ты поймаешь исключение IndexError.

 И можно ли его написать более компактно? Если да, то как? 
Освоить срезы (slice). part = word[a:b:c] будет (условно) эквивалентно
part = ''
i = a
while i < b:
    part = part + word[i]
    i = i + c
для положительного c. А для отрицательного будет while i > b:.
Если a опущено, по умолчанию это начало последовательности (для c > 0) или конец (для c < 0).
Если b опущено, по умолчанию это конец последовательности (для c > 0) или начало (для c < 0).
Если c опущено, по умолчанию это 1.

Так что для обращения строки нам нужно пройтись по всей строке с шагом -1. Получим вот что:
word_reversed = word[::-1]
# это эквивалентно
word_reversed = word[len(word)-1:-1:-1]
Вопрос: Считывание ключа домофона через NFC?

Лучший ответ:
Бесконтактные ключи работают на 125 kHz RFID-метках, а не на NFC.

Худший ответ:
Нет, нельзя. NFC и таблетка работают на совершенно разных физических принципах
Вопрос: Создание файла txt и запись в него C++?

Лучший ответ:
https://stackoverflow.com/questions/15667530/fstre...

Про флаги можно подробнее почитать, внезапно, в документации https://www.cplusplus.com/reference/ios/ios_base/o...

Худший ответ:
Смотри сначала сюда: https://en.cppreference.com/w/cpp/io/basic_fstream
Потом сюда: https://en.cppreference.com/w/cpp/io/basic_filebuf/open
fstream открывает файл по умолчанию (как у тебя) в режиме in|out, а это значит, что если файла не существует, то возникает ошибка (смотри таблицу по второй ссылке). Логика такая, что если ты открываешь файл для чтения (тут не важно, что он открывается еще и для записи) без дополнительных флагов, то файл должен существовать.

В пару с ifstream, который открывает файл для чтения, существует и ofstream - он открывает файл для записи. При использовании ofstream не существующий файл будет создан (смотри таблицу по второй ссылке).
Вопрос: Как запретить наложение div с position: fixed друг на друга?

Лучший ответ:
Сделать им общий контейнер и выстраивать все дочерние элементы в столбик.

Худший ответ:
Позиционирование fixed всегда будет размещать блок по абсолютным координатам экрана.
Могу посоветовать разместить в нужном месте блок-обёртку, в который добавлять дочерние блоки с предупреждениями.
Вопрос: Как PHP код понимает, где находится БД MySQL?

Лучший ответ:
База mysql по умолчанию работает через TCP подключение, порт 3306. В конфигурационном файле будет указан адрес (host) 127.0.0.1 или localhost, что означает, что подключаемся сами к себе.

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

Пример подключения из документации PDO
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

Пример подключения из документации Doctrine
$connectionParams = array(
    'dbname' => 'mydb',
    'user' => 'user',
    'password' => 'secret',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
Вопрос: Можно ли запустить игру Diablo в Docker'е под mac?

Лучший ответ:
Паралелс, туда винду, туда игру

Худший ответ:
Docker работает только под Linux. А на macOS через емулятор линукса.
Если игра доступна под Windows то лучше пробуйте запустить через wine, виртуальную машину либо BootCamp
Вопрос: Почему так странно работает findOrFail()?

Лучший ответ:
$this->renderable(function (NotFoundHttpException $e, $request) {
    if ($request->is('users/*')) {
        return response()->json([
            'message' => 'Юзер не найден'
        ], 404);
    }
});

Худший ответ:
В общем, благодаря дискуссии в каментах с коллегой jazzus я пришел к выводу, что приемлемого решения этого вопроса на данный момент не существует.

Можно конечно отлавливать исключение ModelNotFoundException в месте вызова при помощи try-catch:

try {
            $user = User::findOrFail($id);
        } catch (ModelNotFoundException $e) {
            return response()->json(['model' => $e->getModel()], 404);
        }

но это такое себе...
Вопрос: Как Не ждать input от пользователя в python?

Лучший ответ:
Внучок, используй библиотеку threading

Худший ответ:
async def some_func():
    while True:

        print("OK")
        await str(input("Какойто текст:"))

some_func()
Вопрос: Почему JS выдаёт ошибку Cannot set properties of undefined (setting 'onclick') при попытке повесить на кнопку Onclick?

Лучший ответ:
Данный скрипт срабатывает до того как есть 2 кнопки на странице, вот и все

Худший ответ:
Дождитесь загрузки страницы, только потом ищите кнопки.
Вопрос: Как сейчас можно купить лицензию PHPSTORM?

Лучший ответ:
Купите предоплаченную карту или закажите карту казахстана или молдовы. 
Фирмочек этих расплодилось куча.

Кстати попробуйте следующее. 
Войдите в профиль и смените страну. 
Потом выберите лицензию и метод Wire Transfer. Дальше оплати этот счет с карты банка тинькофф. Сбер, втб, альфа не пропустят

Худший ответ:
Купите предоплаченную карту или закажите карту казахстана или молдовы. 
Фирмочек этих расплодилось куча.

Кстати попробуйте следующее. 
Войдите в профиль и смените страну. 
Потом выберите лицензию и метод Wire Transfer. Дальше оплати этот счет с карты банка тинькофф. Сбер, втб, альфа не пропустят
Вопрос: Как запустить Doom на пк без ос?

Лучший ответ:
Сделай загрузочную флешку с DOS'ом и туда-же запиши Doom, загружаешься в DOS, запускаешь exe-шник и всё.

Худший ответ:
Если он с uefi, то можно прикольнуться: https://github.com/Cacodemon345/uefidoom.
Иначе - только с загрузочных дискет/дисков/флешек
Вопрос: Стандарт WIFI распространяется на сеть или на роутер?

Лучший ответ:
Обычно в роутере 1-2 чипа вифи
Так что - для всего роутера, сети это просто "виртуальная" точка, на общие настройки не влияет

максимум что можете сделать - wifi 2.4 - отдельно, wifi 5 - отдельно

Но, если есть на роутере wifi6 - то он сам разберется скорее всего. каждый клиент будет на своём стандарте сидеть

ПыСы - вифи 2.4 и вифи 5  - разные протоколы и работают обычно отдельно друг от друга

Худший ответ:
Минимальный стандарт для каждого диапазона (2.4 и 5) для всего роутера и всех подключённых устройств. Иногда на роутере есть функция блокировка старых устройств, чтобы обеспечить более продвинутый стандарт. Иногда все роутеры в здании работают по минимальному общему стандарту.
Вопрос: Почему в js нельзя полностью перезаписать объект?

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

Худший ответ:
"let" - в помощь тебе.
Вопрос: Есть ли польза от курсов по веб-разработке?

Лучший ответ:
Курсы бесполезны. Они приносят пользу только их авторам.

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

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

На юдеми если найдете купон, чтобы купить интересный курс за 1000р или ниже - берите - не думайте. Я там в период таких акций все подряд курсы скупаю - ни разу не пожалела. Опять же только англоязычные. Наши авторы пока еще привыкли халтурить из-за низкой конкуренции.

Польза, конечно, будет. Интересно проведенное время - это уже польза. 

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

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

Лучший ответ:
Bash/Python, затем Ansible.

Худший ответ:
Для линукса - shell
Для винды - powershell

также полезно немного python/js

и запилить минимальное приложение для мониторинга под windows/android, не заморачиваясь над фронт-ендом. 
Grafana
Вопрос: Как работают dll файлы?

Лучший ответ:
Только вот в чем их отличие?
У них нет точки входа, так что их нельзя просто взять и запустить - это раз.

Два - под .dll может прятаться сборка .NET, а не классический бинарник.

И, раз это те же исполняемые файлы, можно ли сделать в начале, допустим, jmp my_function в самой dll при её импорте?
Нельзя, тк это не исполняемые файлы, а набор функций.

 Каким вообще образом происходит импорт?
Динамическое связывание

Худший ответ:
Читайте для прояснения: https://docs.microsoft.com/en-us/windows/win32/api...
При загрузке dll функцией LoadLibrary вызывается функция DllMain, которая может присутствовать в dll. Она же вызывается и в других случаях. Из этой функции вы уже можете вызывать другие функции внутри dll.
Если же вам просто нужно вызвать какую-то функцию dll, например, из командной строки, без программирования, то смотрите ответ Константин Цветков 
DLL то же исполняемый файл, в том смысле, что внутри содержится исполняемый код. Но DLL отличаются от EXE и их нельзя запустить непосредственно. Нужен посредник (EXE), который прямо или косвенно будет импортировать функции DLL и вызывать их. Rundll.exe является "универсальным" посредником, но он, конечно, далеко не универсальный, его можно использовать только в простых случаях..
Вопрос: 10 000 строчек проще рефакторить или переписать?

Лучший ответ:
Обычно код такого качества проще переписать. Есть и дополнительные плюсы:
- вы в деталях поймёте, как работает проект и что делает;
- вы, вероятно, найдёте и исправите какие-то баги по дороге.

Но это индивидуально, вообще. Кому-то проще инкрементально рефакторить, лично мне проще в такой ситуации писать с нуля, ориентируясь на имеющийся код, но критически его оценивая.
Это и от размеров проекта ещё зависит, от общей его сложности, от нагрузки на разработчиков (можно ли остановить активную разработку на какое-то время). 10k строк, в принципе, не очень большой размер.

Худший ответ:
Тут зависит от ситуации с работодателем.
Если он готов это все оплачивать, а именно с нуля, то конечно же с чистого листа. 
А если не готов, я бы даже не трогал это.

Когда мне попадается ужас даже на 1% от твоего объема и если это никому кроме меня не нужно, то я не трогаю....
Это конечно сугубо мое мнение...
Увы, денежные отношения они такие.
Вопрос: Какой оптимальный алгоритм для однозначного определения слагаемых в сумме?

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

После получения платежки мы получим в сумме в младших битах те заказы - что оплачены, и для последующих заказов берем эти освободившиеся битовые позиции.

Пример, берем младшие 4 бита для адреса (возможность одновременно быть в обработке 4-ем заказам)
1 - 10110001 цена 177р
2 - 01100010 цена 98р
3 - 11110100 цена 244р
4 - 00011000 цена 24р
если платежка пришла по 3-ем заказам, например 1+2+4 то это даст сумму 299р - 100101011, смотрим на младшие биты, установлены 1,2 и 4


Недостаток, 20 заказов это 2^20 копеек - это разница в цене на 10т.р. (т.е. 20-ый заказ может отличаться по цене от первоначального на эту сумму), так же это накладывает ограничение на минимальную цену заказа (можно подбирать для дешевых заказов младшие биты а для по дороже - по старше.

Логично что это подойдет только если заказов мало, например 2^10 это всего 10.24р

К сожалению если не добавить какого то еще знания о возможностях группировки заказов, то это никак не оптимизировать

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

Сначала полным перебором найдите суммы всех подмножеств. Если есть совпадения, возьмите минимальную сумму, которую можно набрать больше 1 раза. Вычтите из случайного заказа 1 копейку. Повторяйте процесс. Если цены правдоподобны, сильно больше 100 копеек и цены различаются, то даже для 20 заказов вам придется лишь несколько копеек вычесть.

Правда, если куча заказов с одинаковой ценой, то тут придется также младшие биты менять.
Вопрос: Каким образом идет связка Active Directory Users and Computers с сервисами microsoft по типу outlook и teams?

Лучший ответ:
Репликации данных из AD в Azure Active Directory используя Azure AD Connect

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

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

Образование не ограничивает круг возможных профессий, а жизнь иногда складывается так, что приходится заниматься совершенно неожиданными вещами. Выбирайте ту специальность, которая ближе Вам в данный момент, интернет здесь вряд ли подскажет оптимальный выбор, тем более что у каждого здесь свой собственный путь и своя правда - кто-то оканчивает ВУЗ и всю жизнь работает по специальности, а кто-то ищет себя в самых неожиданных областях.

Худший ответ:
Математика 99% программистами не используется. Да, она полезна для формирования соответствующего мышления, но для этого достаточно математики и на ИТ специальностях, если ее конечно учить.
Вопрос: Почему разные значения в операторе is в Python?

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

Худший ответ:
Легко проверить же:
Скрипт выдает такое:
a = 1234
b = 1234

print(id(a))
print(id(b))
print(a is b)

# 2221342169168
# 2221342169168
# True
Как видим -  a и b ссылаются на тот же адрес памяти - python соптимизировал использование переменными памяти, поскольку в скрипте во время выполнения переменные не меняются.

В то же время в консоли создаются переменные в разных областях памяти:
>>> a = 1234
>>> id(a)
2715578112304
>>> b = 1234
>>> id(b)
2715578112432
>>>
>>> a is b
False
поскольку значение переменных больше 256 и заранее неизвестно как вы с переменными поступите дальше
Вопрос: Почему виснет комп на низкой температуре?

Лучший ответ:
Аккурутно вытащить процессор, подуть в сокет, если на контактных площадках процессора есть окисления, то аккуратно резинкой протереть и нежно собрать всё обратно. Оперативку тоже передёрнуть.
Из банального - не очень хороший контакт ножек. После нагрева чуть расширяется и контакт становится хорошим.
Вряд ли "отвал" процессора, он слишком новый, чтобы умирать. Но, если на гарантии, я бы попробовал процессор обменять.
Но это пальцем в небо, по 12600 статистики ноль.

Худший ответ:
Я бы нес сдавать комп по гарантии
в идеале исключить проблемы с софтом, протестировав его на чистой системе или аже к примеру загурзившись с usb/livecd linux
Вопрос: Внешний винт LaCie сломан USB-C разъем, поможет ли донор?

Лучший ответ:
1. Старый Usb-3 адаптер может не мочь перекодировать команды Sata больше 1Tb емкости. Будет либо видеть первые 700 с  лишним Гб, если диск не форматировался раньше, либо считать поврежденным раздел, так как не может транслировать всю емкость диска.
2. Если диск подключить напрямую по Sata и не в древнюю мать, и использовать либо Linux систему, либо дисковую утилиту, например, Paragon Disk Manager, то все прекрасно прочитается.
3. Если у Type-C разъема отошла только пайка, а он сам целый, то его починит любой умелец с маломощным паяльником или паяльным феном.

Худший ответ:
У Вас на фото не 2,5", а 3,5".
Если цепляете его к ноуту, лучше этот крупный хард запитать от любого компьютерного БП, которые сейчас выбрасывают со старыми компами кучами (в любом сервисе сотни за 1,5-2 продадут), по широкому разъему, так как ноут может не потянуть, 
 а данные через узкий разъем пустить кабелем-SATA(мама-папа) на SATA-разъём бука, если есть свободный (от второго харда или привода, если есть).
  Если есть кабель только мама-мама,  надо с помощью паяльника заменить одну маму на папу, аккуратно снятого или с дохлой платы или с дохлого SATA харда любого форм-фактора. И незачем будут эти заморочки с переходом USB-SATA.
Вопрос: Зачем в HTTPS нужен SSL-сертификат?

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

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

Благодаря цепочке цифровых подписей клиент может проверить, что сертификат выдан доверенной третьей стороной - удостоверяющим центром
Вопрос: Как правильно должна проходить практика для программиста?

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

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

Лучший ответ:
Поисковые системы выше ранжируют сайты с https в поисковой выдаче. Можно установить бесплатный SSL от Let's Encrypt если у вас сайт не связан с коммерческой деятельностью. Вот хороший генератор настроек https://www.digitalocean.com/community/tools/nginx...
Хорошая инструкция по установке Let's Encrypt
https://interface31.ru/tech_it/2017/04/poluchaem-s...

Худший ответ:
Необязателен. Ставя даже самый просто SSL вы повышаете доверие к своему ресурсу, как со стороны тех кто на него входит (не получают предупреждение от браузера), так со стороны поисковых сайтов.

В конце концов базовая версия не такая дорогая, некоторые хостинги его предлагают дешевле. Хотя в моем случае, он стоит на 40% больше, чем оплата хостинга за год.
Вопрос: Реально ли дизассемблировать dll?

Лучший ответ:
IDA Pro или ghidra, например, если говорить об ассеблере.
Если это .NET, то ildasm, dotpeek, dnspy, ilspy
Обходить все защиты придётся руками, если они есть.

Худший ответ:
Дизасемблировать реально, подойдет любой дизасм.
А вот изменить и собрать обратно, да так чтобы винда приняла этот файл и не выеживалась - вот это очень не факт что получится - вроде длл можно тоже подписать, да и чексуммы никто не отменял. +высок шанс что после обратной сборки что то не будет работать )