pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как поставляются игры на компьютеры?

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

Кто такие "обычные люди"? Есть разработчики, есть клиенты, которые покупают и играют.

Что такое "поставка"? Кто-то по старинке покупает игры на дисках, кто-то качает в торрентах или стим.
О чем вообще речь?

Игра - такая же скомпилированная программа, как и любая другая программа, зачем передавать клиенту исходники игры и собирать на его компе? 

но в таком случае как читы пишут
Декомпиляция, сканеры памяти, процессов и т д.

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

Лучший ответ: Это же простейшая школьная тригонометрия.
xA + a·sin(angleA) = xB + b·sin(angleB)
yA + a·cos(angleA) = yB + b·cos(angleB)
Решаете систему уравнений, получаете a и b. Подставляете в уравнение прямой, получаете точку пересечения.

Худший ответ: все я сделала    готовую программу    это можно сделать вот так https://planet.mblock.cc/project/704229

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

то есть можно    спросить   где нарисовать линию  начальные точки и тогда можно  без проблем      делать даже голосовой набор и программа сама покажит

я не знаю как это записать     математически или    выражением, но это очень легко   ,как видишь   программа работает ,а код можно посмотреть и переписать ,я потратила на это целых 10 минут
Вопрос: Статический белый IP выдается роутеру через DHCP, или надо его настраивать?

Лучший ответ: 172.23.х.х - это не внешний IP если что, вы находитесь за NATом провайдера у которого адрес 37.114.27.3

Худший ответ: В зависимости от реализации. Обычно да, белый адрес падает на wan порт. В зависимости от ISP может меняться тип подключения (отлично описано на сайте провайдера, если нет - по идее дополнительных действий не требуется).
А вот если говорить про "необычно", был у меня провайдер который при активации услуги "статический ip", продолжал выдавать роутеру "серый" адрес, но с его стороны адрес выходного роутера фиксировался и осуществляться полный проброс всего входящего трафика на мой роутер 1 в 1, так сказать DMZ.
Вопрос: Как менять Title у сайта каждые 30 минут?

Лучший ответ: $titles = [
    '7:00' =>  "Название сайта one",
    '7:30' =>  "Название сайта two",
];
$half_hour = date('G:i', floor(time()/1800)*1800);
echo $titles[$half_hour] ?? "Default title";

Худший ответ: Зависит от того, как устроен сайт. 
Если статический - нужен скрипт, который будет запускаться, определять какой тайтл должен быть и записывать его в файл.
Если динамический - то надо посмотреть как генерируется тайтл, в эту функцию и вставить проверку на время и вывод нужного тайтла.
А ещё пользователи могут быть из разных часовых поясов, например. Что делать в таком случае?
Вопрос: Когда вы используете type, а когда — intefcace, в React?

Лучший ответ: Если надо описать некоторый перечень значений, то type:

type ResponseStatus = "error" | "success";

Если надо описать объект, то intefcace:

interface ApiResponse {
    status: ResponseStatus;
}

И никто не запрещает написать через type:

namespace Api {
    type Status = "error" | "success";

    type Response = {
        status: Status;
    };
}

Худший ответ: У нас на галере юзают interface когда нужно описать объект, например объект пропсов или стейта. Через interface это проще. 

А type юзают для какой-то отдельной переменной, допустим значение этой переменной может быть строго определённым, например "error" | "warning" | "good". Тогда как я и написал юзают type.
Вопрос: Как исправить ошибку discord.py?

Лучший ответ: Во-первых, фигачить cursor.execute() прямо в f-строку - это очень, очень плохая идея. За такое бьют по пальцам.
Во-вторых, not subscriptable означает, что ты пытаешься обратиться по индексу (типа x[0]) в то время как объект (x) - это None.
90% шанс что это вызов .fetchone()[0] - запрос к базе не находит нужную строку, тогда fetchone() возвращает None, а дальше попытка получить индекс от None генерирует исключение.

Никогда, НИКОГДА не пиши в f-строках выражение сложнее чем 2*2. Вынеси промежуточный результат в переменную, проверь её значение на корректность, затем уже используй.

Худший ответ: Нонтайп объект не подписан на вас
Вопрос: Блокируют ли хостеры Wireguard?

Лучший ответ: Вряд ли впн блокируется "с той стороны", это фетиш местных дуболомов. Пока централизованно вайргард не трогали, но если переживаете - настройте, например, cloak + openvpn.

Худший ответ: Вангую, что хостер - это pq.hosting?
Если да, то совет один: бегите от них как можно быстрее. 
Это самая отстойная из всех отстойных хостинговых компаний. Почитайте отзывы на тематических ресурсах.
У меня уже много лет VPS в Нидерландах от vdsina.ru (не реклама, если что).
В целом доволен. Да, бывают иногда небольшие косячки с пропускной способностью канала, но в 95% времени все хорошо.
Вопрос: Как сделать обработчик коллизий в OpenGL?

Лучший ответ: OpenGL - Open Graphics Library.
Это - открытая библиотека работы с графикой. И в ее API содержатся только функции работы с графикой.
Для обработки коллизий нужна отдельная библиотека обработки коллизий, в зависимости от мировой системы координат. Простую библиотеку можно и самому сделать.
Для обработки коллизий используют библиотеки коллизий и физические движки.

Худший ответ: Коллизии никто не пишет с применением OpenGL. В задачи этой библиотеки такие функции не входят. Если вы желаете написать свой собственный обработчик коллизии в 3D, то рекомендую обратить внимание на алгоритмы GJK и EPA. Вот хорошии уроки, по которым я сам недавно реализовывал коллизии: GJK EPA

По желанию можете также глянуть мой код, где я их реализовывал: код

Ещё раз уточню, что в задачи OpenGL входит только рендеринг графики. Не стоит пытаться использовать его для чего-то ещё.
Вопрос: Как вместо null подставить какое-нибудь другое значение?

Лучший ответ: function showTest(data) {
  const moviesEl = document.querySelector(".test");

  moviesEl.innerHTML = (data.title) ?? "что-то другое";
}

не катит?

Худший ответ: Вместо  if (${data.title} != 'null') попробуй  if (${data.title} == 'NULL'), у меня работает даже if (${data.title} == ' ') так
Вопрос: Что учесть с точки зрения закона при разработке сайта, позволяющего своим пользователям выполнять денежные переводы друг другу?

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

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

Худший ответ:  Конкретно хотелось бы уточнить, законно ли вообще такое делать, не являясь банком или платежной системой.Это возможно делать, если вы являетесь банком или платежной системой.
А если вы не банк и не платежная система - вы просто не сможете этого сделать.

 И что в этом случае изменит тот факт, что сайт будет брать комиссию с этого перевода?Ничего не изменит.
Вопрос: Как передать запрос в базу данных MySQL с помощью html?

Лучший ответ: Здравствуй. Это невозможно. Тут хоть как нужно использовать php.

Худший ответ: Никак, html - не язык програмирования
Вопрос: Нужно ли сжимать архив с паролем и шифровать имена файлов?

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

2) шифровать имена файлов внутри архива? 
If archive headers are not encrypted (“encrypt file names” option is disabled), file checksums for encrypted RAR 5.0 files are modified using a special password dependent algorithm. This prevents third parties from guessing file contents based on checksums.
What is the "Encrypt File Names" Option?

If you set the "Encrypt file names" option, WinRAR will not only encrypt the file data, but all other sensitive archive areas like file names, sizes, attributes, comments and other blocks. This provides a higher level of security.

If you want to prevent third parties from drawing conclusions about the content of the archives based on the meta files, you should enable this function. Without entering the correct password, it is impossible to even view the list of files that have been encrypted.https://www.win-rar.com/encryption-faq.html?&L=0

Худший ответ: 1. Максимальное сжатие увеличивает время на разжатие незначительно, Но увеличивает, усложняя подбор перебором.

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

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

Лучший ответ: В Яндексе есть упрощённая регистрация.  С помощью неё можно зарегистрироваться в Яндексе, используя только свою почту (причём можно использовать не только Яндекс Почту).
Действуйте так:
1) Зайдите на yandex.ru
2) Нажмите на кнопку "Войти" (именно "Войти", а не "Зарегистрироваться")
3) В открывшемся окне появятся две кнопки с полями для ввода: "Почта" и "Номер телефона". Выберите "Почта" и введите Ваш e-mail. Яндекс отправит на указанный электронный адрес код с подтверждением. И далее регистрация будет без номера телефона.

Худший ответ: сменить Яндекс на Рамблер

или попросить друга
Вопрос: Почему такая разница между Nginx и Apache в метрике «Content Download»?

Лучший ответ: Скорее всего все зависит от того как приложения отдают http заголовки.

Когда работает через apache, TTFB ждет долго потому что пока приложение не отработает до конца, даже заголовки не будут отправлены, т.е. время, которое занимает работа приложения это TTFB+content download

Когда же работает через php fpm, за заголовки отправляются тут же, nginx не ждет когда закончится работа приложения для этого, а значит TTFB маленький (кстати 122мс это ДОЛГО что там происходит?) а уже генерация контента происходит пока идет content download

Худший ответ: Я бы не назвал условия "равнозначными".

Просто установить вместо апача нгинкс и php-fpm недостаточно, чтобы гарантированно получить прирост производительности. Нужно смотреть, как было настроено, как настроено сейчас, крутить крыжики, профилировать...
Вопрос: Рендер только новых элементов при добавлении их в массив?

Лучший ответ: key={elem * Math.random()}
при добавлении новых 20 в массив перерисовываются ещё и старые 300
нет слов

Худший ответ: Вы же слышали про shouldComponentUpdate ?) Просто добавьте его к вашим item-компонентам
Или React.memo для функциональных компонентов

Но вообще, если у вас компоненты в цикле выводятся, а не просто div-блоки, то при тех же пропсах ререндера не будет. Просто это не в map нужно в консоли проверять, а внутри самого компонента-item. map в любом случае обязан перебрать все элементы
Вопрос: ASUS Vivobook S15, неправильно отображает зеленый цвет, можно ли исправить в настройках?

Лучший ответ: Откалибровать, если экран IPS или VA. Самому, или заплатить человеку с калибратором. Экран телефона тоже не эталон для сравнения.

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

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

да, свитч тоже подходит

нет, не всё. надо будет прописать им IP адрес и маску, для каждого ПК

Худший ответ: Для ethernet сети из только двух хостов вообще ничего не нужно кроме собственно самих двух хостов и кабеля.
Вопрос: Как сформировать хлебные крошки (Breadcrumbs) если один товар находится в нескольких категориях?

Лучший ответ: Для первой категории хлебные крошки будут такими: site > мужчинам > термобелье > товар_1
Для второй категории хлебные крошки будут такими: site > женщинам > термобелье > товар_1
Все элементы хлебных крошек, кроме последнего являются ссылками. Страница товара одна единственная и имеет адрес, например, site.com/products/tovar_1
Большинство CMS позволяют один и тот же товар разместить в десятках различных категорий.

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

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

Так что придётся делать унисекс категорию.
Вопрос: Насколько плоха идея сохранять все параметры запроса к странице в cookie?

Лучший ответ: потому что он олень. 
для шаринга давно придуманы сессии.

Худший ответ: запрос
/index.html?a=1&b=2&c=3
самодостаточен, это дублирование кода и это однозначно плохо. 
И да в посте плохая практика передавать параметры, пусть они идут в теле запроса, хотя это не строгое определение. 
В post нормально отправлять запросы в REST нотации
Например
/user/orders

а в теле запроса добавлять параметры фильтрации.
Вопрос: Можно ли в нынешних условиях работать на зарубежных фриланс биржах?

Лучший ответ: Если кратко, то для живущих в РФ нельзя.

Худший ответ: Официально нельзя, лично я работаю со старой базой. 
На работе мы не обсуждаем политику, но изредка прорывается w@f в отношении одной страны любящей трусики
Вопрос: Как обратиться к COM-порту?

Лучший ответ: Если хотите вручную отправлять AT-команды, то можете использовать putty.
Если программно, то уточняйте ЯП.

Худший ответ: так то в консоли можно
echo AT+CMGF=1 >> COM5
echo AT+CMGS="+79260000000" >> COM5
echo My test message >> COM5
Вопрос: Где и как лучше создавать базу данных?

Лучший ответ: По инвентарицации - разверни GLPI с агентом fusioninventory. По мануалу делается за 20 минут, ресурсов на виртуалке жрёт мало.
MySQL не ставь, он тупой, тяжёлый и тормознутый. Смотри в сторону Postgres

Худший ответ: Порадовала фраза:
Я хочу применить свои навыки (mysql, postresql docker, python) в текущей работе. 
Со стороны выглядит как - у меня в руке молоток и хочется повбивать как можно больше гвоздей :)

По теме вопроса и по задаче инвентаризации. Не существует общего шаблона как это делать. Тоесть ты можешь брать любую БД из списка и любая подойдет пока нет требований по фичам например (Postgres поддерживает географические типы данных (линия-точка-полигон) но вряд-ли тебе такая специфика нужна).

По Python - что есть то есть. 

По виртуализации. Если у тебя есть контейнеризация где всё работает - то виртуализация тебе нафиг не нужна. Виртуализация вообще это продукт который давно устарел. Да и нерационален он в части ресурсов. Поэтому бери docker (compose а лучше kubernetes). И поднимай там сразу всю инфраструктуру. Кстати это автоматически закрывает вопросы всяких выделенных линуксов.
Вопрос: «I’m a monoid in category of endofunctors» — что это значит?

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

Худший ответ: Добавлю для информации, что монада очень легко объясняется по-другому: это вычисление с эффектом.
На Haskell заменяем определение функции (т.к. функция может быть и параметром, то всё сводится к одному параметру):
а -> b
на стрелку Клейсли:
а -> m b
И тут же нам дают примеры. (можете посмотреть первый курс на Степике от Дениса Москвина)
Вопрос: Как при добавлении новых записей в базу данных обновлить данные в PHP?

Лучший ответ: Ваш вопрос правильнее звучит так:
"У меня реализовано приложение чата в виде клиентской и серверной части.
Когда один экземпляр приложения (клиентская часть) отправляет сообщение и оно фиксируется на сервере, необходимо, чтобы другой экземпляр приложения (клиентская часть) получил эти сведения без дополнительных манипуляций пользователя и как можно быстрей."
Ответ:
Есть несколько технологий общения клиента и сервера, чтобы получать актуальные сведения с сервера:
- Длинные опросы,
- Частые опросы,
- Непрерывающееся соединение (web socket).

Худший ответ: В РНР - никак.
Этот код один раз отрабатывает на сервере, когда браузер запрашивает страницу, после чего никак на то, что отображается в браузере, уже не влияет.
Вопрос: Как в текстовом формате сделать перенос строки аналог /n?

Лучший ответ: div:before {
	content: "Перенос\000A\000DСТРОК В BEFORE\000A\000DПеренос\000A\000DСТРОК В BEFORE";
	white-space: pre;
	display: inline-block;
}

Худший ответ: div:before {
	content: "Перенос\000A\000DСТРОК В BEFORE\000A\000DПеренос\000A\000DСТРОК В BEFORE";
	white-space: pre;
	display: inline-block;
}
Вопрос: Что лучше: больше полей или больше Join?

Лучший ответ: Куча count - возможно, но не join-ов.
SELECT 
    posts.id, 
    posts.name, 
    count(case when s_vk.social_name = 'vk' then 1 end) as count_vk, 
    count(case when s_vk.social_name = 'tg' then 1 end) as count_tg,
    count(case when s_vk.social_name = 'ok' then 1 end) as count_ok,
    count(case when s_vk.social_name = 'tw' then 1 end) as count_tw
FROM posts
   LEFT JOIN socials as s_vk on s_vk.post_id = posts.id 
GROUP BY posts.id, posts.name
В вашем случае для ускорения не подходит ни то, ни другое.
Нужно вести отдельную таблицу в качестве кеша с аналогичными полями:
 posts_id, 
 count_vk, 
 count_tg,
 count_ok,
 count_tw
При возникновении события клика на соц. сеть - добавлять запись в socials, а также триггером плюсовать значение по полю кеш-таблицы (и предварительно создавать запись в этой таблице по post_id, если не было ранее событий).
Для необходимости сброса кеша нужно сделать хранимую процедуру для его перегенерации на основе данного запроса.
PS:
Еще бы разбить таблицу socials - на справочник соц. сетей:
id - идент. соц сети.
full_name - полное название соц. сети, 
abbrev - аббревиатура, например, ОК, ВК и т.д.
tag_name - тех. название, например, ok, vk и т.д.
... - другие параметры соц. сети

И таблицу для фиксации кликов:
soc_click_events
id - идент. события,
post_id - идент. поста,
social_id - идент. соц. сети,
event_date - дата и время клика,
... - другие параметры клика

PPS:
В итоге, для фиксации событий клика и поддержания структуры базы в нормальной форме вы используйте три таблицы - posts, socials и soc_click_events.
Для решения статистических задач вы делаете отдельные кеш-таблицы и обслуживаете их либо триггерами, либо хранимыми функциями и процедурами, получая статистические данные из первичной структуры.

Худший ответ: Больше джоинов - нужно больше индексов и запрос дольше и сложнее будет выполняться из-за необходимости джоинить и обращаться к разным областям диска.

Больше колонок - больше места занимает отдельная запись, больше места занимает вся база, нужно больше индексов, если нужно по этим колонкам фильтроваться. Запрос дольше выполняется из-за необходимости больше данных с диска читать.

+ Учитывай, какой вариант тебе будет поддерживать легче, если нужны будут какие-то изменения.

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

Конкретно в этом случае мне больше нравится вариант, где будет по колонке на каждую соцсеть - так СУБД сможет в один проход и без каких-либо индексов всё посчитать.

А ещё в вашем кейсе можно посмотреть в сторону БД временных рядов.
А ещё можно вообще не фиксировать каждый отдельный клик, а хранить уже в агрегированном виде количество кликов на каждом посте (может быть как дополнение к предыдущим вариантам, чтобы ускорить запросы)
Вопрос: Как опубликовать локальные сервисы в интернет если у меня серый IP?

Лучший ответ: Либо купить у провайдера белый IP, либо арендовать VPS/VDS с белым IP и поднять до него VPN-канал.

Худший ответ: DDNS Как самый простой вариант?
Ну или - сделать собственную впн до куда-нибудь где есть белый айпишник, оттуда пушить маршруты и гейтвей, и тогда впринципе можно будет выходить в инет с тем белым айпишником (но путь это - самурайский, не простой).
Вопрос: Есть ли аналог программы FastStone Image Viewer для Mac OS?

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

Поставить ffmpeg – можно скачать под мак. У него есть фильтр vstack – который как раз берёт много входов, лишь бы одинаковых по ширине, и склеивает их вертикально. Допустим, есть одинаковые по ширине 4 фотки котэ
В Терминале запустить команду. Для примера:ffmpeg \
  -i 320.jpg  -i 180.jpg  -i 360.jpg  -i 540.jpg  \
  -filter_complex vstack=inputs=4 \
  output.jpgПотрясающий результатoutput.jpgНе удобно, что надо вручную прописывать для каждой входной картинки -i имяфайла. А при выделении в Finder'е в каком-то нужном порядке и перетаскивании в Terminal, порядок собъётся на алфавитный.

Зато это можно запускать хоть на сервере (ffmpeg есть под Linux, Windows), и работает очень быстро.

Худший ответ: Photo Collage Maker - CollageFactory Free подойдет?