Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Есть сервисы или библиотека для склонения слов?

Лучший ответ:
Тег "морфология" указан, бросаем в Гугль "PHP морфология", среди первых же ссылкок - phpMorphy. 
Быстрее, чем вопрос на Тостере.

Худший ответ:
https://github.com/wapmorgan/Morphos проверенный временем стафф
Вопрос: Чем реально на работе занимаются безопасники?

Лучший ответ:
Чем реально на работе занимаются безопасники?
1 хмурый вид.
2 подозрительный прищур глаз.
3 написание, переписывание, дописывание всяких инструкций - временами.
4 запрещение.
5 кофебрейки с перекусами и перекурами - в основном.
6 устращение.
7 в некоторых случаях предание воспоминаниям о бывшей работе оперативником.
8 совещание с руководством.
9 поиски крайнего.

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

Лучший ответ:
Хотя с ES мало работал и мне показалось странным, что индекс нужно строить по такому количеству полей. Какой в этом практический смысл? Почему не хранить в ES лишь то, что требуется искать и/или анализировать? Ведь для остальных случаев можно использовать реляционную СУБД.
Маш. перевод про индексы и мощность

Худший ответ:
Записей в БД более 2 миллионов
В среднем в elasticsearch записывается 23 000 товаров в час, это получается, что для записи все БД потребуется где-то 4 дня

У меня два вопроса, один из которых слегка офф-топик
1) на каком сервере это бежит и что показывает top?
2)  а чем вас не устраивает 4 дня на первичное заполнение базы? Дальше-то будете добавлять только новые записи?
Вопрос: Как сделать такой эффект затемнения текста, по бокам?

Лучший ответ:
snippet
::before и ::after - позиционируем и добавляем градиент.

Худший ответ:
1. Наложить сверху элемент или псевдоэлемент с радиальной(я вижу тут радиус)\линейным градиентом с альфой 0 для «выключения прозрачности», спозиционировав абсолюино относительно родителя и выключить захват мышой (чтобы можно было выделять текст) pointer-events:none.
2. Использовать псевдоэлементы справа и слева (если у виньетирования специфичные размеры не зависящие от общего размера) и дальше как в первном пункте.
3. Богомерзкие маски на CSS для текста (оптимально, если увести в прозрачность надо только текст)
Вопрос: Почему сбиваются настройки сети ipv4?

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

Худший ответ:
Заметил что интернет отваливался из-за постоянно пропадающего адреса основного шлюза. 
Решение нашел такое: route -p add 0.0.0.0 mask 0.0.0.0 192.168.0.1
+Проблема возникает из-за лишней пустой строки в реестре.
HKLM/System/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/
далее нужно выбрать из нескольких веток ту, что относится к вашему проблемному сетевому соединению. Проще всего опознать по IP адресам. Далее находим и открываем DefaultGateway. (Возможно у вам этого параметра нет вовсе. В таком случае его нужно создать.) Вы увидите список IP адресов и пустую первую строку. У меня например это было так:
_пустая строка_
192.168.0.1

Всё, что требуется - убрать пустую строку в начале.
Вопрос: Не запускается комп после апгрейда системника. Нужно ли переустанавливать windows после обновления железа?

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

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

Лучший ответ:
Нужно написать код на js, который будет находить выбранный option, помещать его в hidden input, если это отправка формы или добавлять в данные для отправки, если это ajax, и тогда уже на беке работать со значением этого option'а

Худший ответ:
Нужно написать код на js, который будет находить выбранный option, помещать его в hidden input, если это отправка формы или добавлять в данные для отправки, если это ajax, и тогда уже на беке работать со значением этого option'а
Вопрос: Существует литература для понятия основ работы процессора?

Лучший ответ:
1. "почему процессор Intel младшего поколения хуже старшего"
Нужно сравнивать  https://ark.intel.com/content/www/ru/ru/ark.html#@...

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

3. "Прошу не писать глупых советов"
Нужно учиться "гуглить в яндексе" нужную информацию.

Худший ответ:
и для чего нужно так много разных моделей? чтобы занять весь рынок, условно у Васи Пупкина есть 99 долларов - вот ему проц. А у Пети Васькина есть 105 баксов - вот пусть на все 105 купит другой проц, и т.д.
Почему выходит удачная модель? сделали дешево (брака мало, оборудование освоенное и т.д.) - продали не очень дорого.

А откуда работник берет знания для устройства в компанию для разработки новых процессоров? в школе учит физику, в универе - схемотехнику.
Вопрос: Возникла проблема с установкой gulp, что делать?

Лучший ответ:
Английский под-учите товарищ и будет вам счастье.
не nmp, а npm.

Худший ответ:
task never defined: default
Переводя на русский: вы не определили таску по умолчанию. В gulpfile. Gulp по умолчанию думает, что ваши таски в этом файле, а не где-то еще. Не зная, что за видео вы смотрите, не сказать, где вы потерялись, но определять таски нужно было там. В теории у gulp есть опция, позволяющая задать другой файл как замену gulpfile, но все привыкли к варианту по умолчанию. Если нет явных причин от него отходить - и не надо.

nmp
Ясное дело, что система не может найти nmp, когда он называется npm. Это сокращение от Node Package Manager.
Вопрос: Почему getElementById возвращает null?

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

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

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

Худший ответ:
Сервис для вычисления 2+2 не нужен? А то есть у меня
Вопрос: Как написать скрипт на флешке, который будет сам запускаться, при ее подключении на любой платформе (win, mac, lin)?

Лучший ответ:
Никак.
Скрипт это программа, а программа сама не может запуститься, ее должен кто-то запустить.
Сама ОС или пользователь

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

Худший ответ:
Тут на самом деле интересная тема!
Хоть и говорят Вам, что нужно по-другому это делать (отчасти согласен), но способ со скриптом вполне имеет право на жизнь. 
И вот тут придётся разделить на 2 части: 1. Социальная и 2. Техническая.
1. Социальная инженерия. Нужно сделать так, чтобы целевая аудитория (это придётся прикинуть кто в основном будет использовать флешку) захотела запустить этот файл. Назвать его как-нибудь.... чтобы было интересно потенциальной аудитории, например "iq тест" (да, забавно, можно сделать вывод на весь экран картинки с "Е***ть ты лох!"). Короче, чтобы просто запустили его.
2. Технический. Нужно обеспечить чтобы этот файл запустился и на винде, и в линуксах. На флешке чаще всего exFAT, и флаг "x" (выполняемый) там как бы и нельзя поставить на файл, но если просто в консоли или другом скрипте указать выполнить файл - он выполнится (зависит ещё и от способа монтирования в конкретной системе, можно запретить запуск исполняемых оттуда). Собственно, далеко нетривиально сделать скрипт, чтобы один и тот же файл выполнялся и в винде и в линуксе, но МОЖНО (я так делал, не спрашивайте зачем). Гораздо проще сделать отдельно для винды и отдельно для линукса.
Прописать в автозагрузке - для винды autorun.inf в корне, ну и там прописать что и как запускать (да, автозапуск может быть отключен на компе, поэтому нужна проработка варианта 1).
В линуксах - есть (или была?) дыра в КДЕ и других оболочках, точнее даже это не совсем к оболочке относилось, что-то ещё там, но суть в том, что некоторые файловые менеджеры (Dolphin, например, который файловый менеджер по умолчанию в КДЕ) используют файлы .directory (скрытый по умолчанию), в которых можно прописывать (и они сами прописывают) режим просмотра, и другие данные. Так туда можно указать путь к значку, и вместо картинки показать на скрипт, при открытии папки (флешки, если в корень положить) будет этот скрипт выполнен. Но, кажется, это уже пофиксили обновлениями, но есть ещё разные способы и в линуксе, и в винде тоже, чтобы сработал нужный файл.

А уж как вызвать curl с нужными параметрами и как на сервере считать попадания - это уже сами думайте, не сложно.

Короче, тут большое поле для полёта :)
P.S. Антивирусы могут на это ругаться...
Вопрос: Как войти на сервер через SSH под root?

Лучший ответ:
/etc/ssh/sshd_config
Параметр PermitRootLogin
Но удалённый вход под рутом - не самое лучшее решение.
Заходите под обычным пользователем и используйте sudo.

Худший ответ:
Настройте авторизацию по SSH-ключам, намного удобнее и ничего вводить не надо.
Вопрос: Стоит ли таким образом устанавливать слушатель?

Лучший ответ:
Короткий ответ: Нет.
Длинный ответ:
Общение между разными активити должно происходить с помощью Intent'ов, startActivityForResult, onActivityResult.
Общение между фрагментом и активити должно происходить через аргументы фрагмента, поиска по тегу/айди и кастования фрагмента к определенному интерфейсу, getActivity() и кастования активити к определенному интерфейсу.
Общение между фрагментами, лежащими на одном уровне(лежащими в одном FragmentManager'e) должно происходить через активити и интерфейсы(фрагмент А просит у активити интерфейс Б, активити ищет фрагмент В, реализующий интерфейс Б и предоставляет его), либо через механизм TargetFragment(см get/setTargetFragment).
Общение между фрагментами, лежащими в разных фрагмент менеджерах и связанных отношением родитель-потомок(см getChildFragmentManager) должно происходить через  getParentFragment + интерфейсы.

Всё это довольно сложно и запутано, но вот такой вот API.

Худший ответ:
Я конечно не андроид программист, но вот в своих проектах (просто ява и ничего больше) использую https://greenrobot.org/ru-eventbus/
На мой взгляд, гораздо приятнее, чем использование Intent, если они не очень нужны.
Ну и для традиционной явы - есть несколько механизмов диспетчеризации, в том числе и через мастер-тред. Ну и не изобретать свой велосипед. Раньше пользовал guava eventbus, но этот лучше.
Вопрос: Откуда берут данные регистраторы доменных имен?

Лучший ответ:
Whois - база данных доменных имен. В нее делает запрос регистратор с доменом, получает ответ: свободен или нет.
Whois есть как у регистраторов доменов, так и у реестра. Например, у whois.internic.net

Для доступа используют специальный протокол по tcp на порту 43
У некоторых доступен так же веб-интерфейс на http/https

Но получить полный дамп базы практически невозможно - не все доменные зоны публикуют их. Например, .RU есть полный дамп обновляемый каждый день самим реестром. .COM такой дамп не делает.

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

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

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

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

Почитать тут: 

Типы данных
про Числа и parseInt()
Преобразование типов


А если не читать?
Чтобы не читать, а разбираться с проблемой на месте, можно смотреть, что именно происходит.
Повсюду навставлять console.log(), через который выводить значения и типы. Или дебаггером в Инструментах разработчика в браузере останавливать в каждой строчке и смотреть в какой переменной что лежит.

Ключевые вопросы:

что возвращает prompt() – какой тип
что происходит если к строке прибавить строку  "тос" + "тер"
что будет если в строке лежит число  "2" + "2"
чем отличается от деления "2" / "2"
Поздравляю, вы на верном пути!

p.s. на чём летаешь? )

Худший ответ:
Если совсем в двух словах. Интерпретатор делает не то, что мы от него хотим, а то, что мы от него запросили. А знаком "плюс" в JS можно запросить две разные операции.

Одна — это склеивание строк: "aaa" + "bbb" = "aaabbb"

Вторая — это арифметическое сложение: 333 + 222 = 555

В остальной арифметике — деление, вычитание и т.п. — такой двойственности нет. Нельзя, например, вычесть одну строку из другой: "aaa" - "bbb" = ?, поэтому для строк при использовании знака "минус" JS автоматически приводит строку к числу и мы получаем ожидаемый результат: "333" - "222" = 111

Но для знака "плюс" такое не работает, т.к. интерпретатор не знает, что нам нужно, и делает то, что ему сказали:
333 + 222 = 555

"333" + "222"  = "333222"
Поэтому приведение строки к числу должны запросить мы сами явно. Для этого мы и вызываем функцию parseInt(), которая делает такое приведение, т.е. превращает строку в число.
Вопрос: Удалил раздел. Шанс вернуть есть или нет?

Лучший ответ:
Можно через testdisk, легко и просто.
WoW прекрасно запускается в Wine, кстати.

Худший ответ:
WINDOWS+поиск+восстановление+разделов
Вопрос: Как продолжить выполнение функции на сайте после закрытия вкладки?

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

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

Худший ответ:
JS тут не при чём. Это делается на стороне сервера(PHP). В браузере вы только получаете результат.
Вопрос: SpeechKit API на JS?

Лучший ответ:
Смог.  Записывается голос с микрофона с помощью WebAudioRecorder, есть в github Запись преобразуем в blob blob преобразуем в base64 с помощью FileReader base64 передаем с помощью POST к php в php создаем файл из base64 с помощью file_put_contents($audioFileName, base64_decode($file)); Открываем файл созданный только что и передаем к Speechkit Возвращаем ответ

Худший ответ:
вариант 1 (взят с qaru)
Это возможно только при использовании XHR FormData API (ранее известный как часть XHR2 или XHR Level 2, в настоящее время известный как "Расширенные функции XHR" ).
Учитывая этот HTML,<input type="file" id="myFileField" name="myFile" />
вы можете загрузить его, как показано ниже:var formData = new FormData();
formData.append("myFile", document.getElementById("myFileField").files[0]);

var xhr = new XMLHttpRequest();
xhr.open("POST", "myServletUrl");
xhr.send(formData);
XHR позаботится о правильных заголовках и запросит кодирование тела, и файл в этом примере будет доступен на стороне сервера как form-data с именем myFile.
Вам нужно иметь в виду, что API FormData не поддерживается в старых браузерах. В caniuse.com вы можете увидеть, что он в настоящее время реализован в Chrome 7+, Firefox 3.5+, Safari 5+, IE 10+ и Opera 12+.вариант 2 (взят с qaru)
(более подробное описание fetch API)// Это базовый пример с комментариями. Функция upload - это то, что вы ищете:

// Select your input type file and store it in a variable
const input = document.getElementById('fileinput');

// This will upload the file after having read it
const upload = (file) => {
  fetch('http://www.example.net', { // Your POST endpoint
    method: 'POST',
    headers: {
      // Content-Type may need to be completely **omitted**
      // or you may need something
      "Content-Type": "You will perhaps need to define a content-type here"
    },
    body: file // This is your file object
  }).then(
    response => response.json() // if the response is a JSON object
  ).then(
    success => console.log(success) // Handle the success response object
  ).catch(
    error => console.log(error) // Handle the error response object
  );
};

// Event handler executed when a file is selected
const onSelectFile = () => upload(input.files[0]);

// Add a listener on your input
// It will be triggered when a file will be selected
input.addEventListener('change', onSelectFile, false);
ЗЫ: не забудьте указать правильные параметры аудиофайла
Вопрос: Оптимизация поиска по БД?

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

Худший ответ:
В своё время неплохо ускорил процесс поиска Sphinx, у него другая организация индекса, поэтому скорость резко отличается. Если на сервере мощности достаточно, то можно попробовать.
ну и базовая оптимизация - LIKE "%...%"работает в разы медленнее, чем  LIKE "...%"
Вы мало сказали про состав типичной строки в БД и по какой её части планируете искать.
Если что, то запрос "explain select ...." полезная штука
Вопрос: Как в обычном JavaScript правильно получить доступ к нужному дочернему элементу?

Лучший ответ:
const table = document.getElementsByTagName("table")
в переменной table будет HTMLCollection, а не один элемент.

tabledata = table.childNodes[0] //  ошибка, у коллекции нет свойства childNodes
исправить не сложно:
const tables = document.getElementsByTagName("table")
const tabledata = tables[0].childNodes[0] 
теперь в tabledata первый узел из первой таблицы. Непонятно только зачем называть пустой текстовый узел словом tabledata.

const columnsdata = tabledata.getElementsByTagName("col"); // ошибка, у пустого текстового узла нет дочерних элементов

Так можно и дальше продолжать. Вы лучше почитайте внимательнее что возвращают методы, которые вы используете. И присмотритесь в querySelector и querySelectorAll
Половину кода можно выбросить заменив на 
const table = document.querySelector('table') // первая попавшаяся таблица
const cols = table.querySelectorAll('col') // NodeList c колонками
cols.forEach(col => console.log)

браузер не хочет выполнять выполнять операции с сhildren и childNodesчто значит "не хочет"?  На самом деле он не может выполнять те команды, которые вы ему понаписали, и сообщает об ошибке. Которую вы даже не стали приводить в вопросе :)

Худший ответ:
Ошибка номер 1
Вы надеетесь что элемент markdown-data точно есть в коде и не делаете ни каких проверок нашли вы что то или нет
Ошибка номер 2
Какой тип возвращает getElementsByClassName
https://developer.mozilla.org/ru/docs/Web/API/Docu...

Просто почитайте теорию по методам которые используете, половина вопросов отпадет.

А еще ест метод debug, на крайняк console.log неужели лениво было самому продебажить свой код ?
Вопрос: Почему не инкрементируется переменная?

Лучший ответ:
Для начала оно и со второго раза не заинкрементируется потому что вы её локально в функции инкрементируете, и во втором вызове всё равно 0 передаётся.

Во-вторых постфиксный инкремент сразу возвращает текущее значение, и только потом увеличивает значение.

++$var и тогда вернет сразу 1
(и при втором вызове тоже сразу 1 будет, 2 не появится никак)

Худший ответ:
потому что она не глобальная/статическая/переданная по ссылке.
Вопрос: Лучшие практики или скорость в вёрстке?

Лучший ответ:
Сейчас изучил вёрстку
Не изучили.

 уделять всему внимание и гордиться качеством

Худший ответ:
Полностью зависит от того, какую цель вы преследуете.
1. Угодить поисковикам - одно.
2. Угодить пользователю - другое.
3. Угодить заказчику - третье.
4. Срубить бобов за 1 час работы и 3 дня отдыха - тоже вариант!))

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

Лучший ответ:
Можно заменить иконку у вкладки, автоматически изменится и у соответствующей закладки.
Например, с помощью такого юзерскрипта:document.querySelectorAll(`head > link[rel="icon"]`)
        .forEach(element => element.href = "https://s.imgur.com/images/favicon-96x96.png");

Худший ответ:
можно попробовать(я бы сделал так)
в программе sqlitestudio открываем файл favicons.sqlite ,
который находится в профиле браузера (это для firefox,как в хроме не знаю - не пользуюсь,думаю что подобно)
редактируем линк на нужную иконку как то так
вместо линка можно/лучше  преобразовать иконку в base64 и эти данные вставить в базу sqlite
смотри 11 строку на скрине ,там как раз таким образом представлена иконка
Вопрос: Как оптимизировать этот php код?

Лучший ответ:
Сравнить пересечение массивов можно так: https://www.php.net/manual/ru/function.array-diff.php

Но возможно еще быстрее будет залить все в базу, во временную таблицу (load data infile) и потом добавить куда нужно используя insert ignore.
1. создать временную таблицу (без индекса)
2. load data infile ...
3. создать индекс по id
4. insert ignore into ... select (или on duplicate key update?)
5. удалить временную

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

Худший ответ:
я думаю, даже in_array будет быстрее чем это.
Но по-хорошему надо сделать значения индексами
тогда проверка будет проходить мгновенно
$base = array_flip(array_column($base, 'ID'));
foreach($data as $dates) {
    if (!isset($base[$dates['ID']])) {
            $itog[] = $dates;
    }
}
Вопрос: Как узнать адрес ip-адрес коммутатора в настроенной немаленькой сети?

Лучший ответ:
идеальный сферический свитч в ваккуме, или все же конеретная модель ?
из вариантов - cdp, lldp, консоль (если локально-брутально)

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