Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как записать вебинар который идёт ночью?

Лучший ответ:
Студент за небольшую сумму.

Худший ответ:
Универсально - только запись с экрана

но вот нестабильный интернет потребует более сложной автоматизации и разбираться с конкретныйм сервисом, как там все устроено и реализовано
Вопрос: Насколько эффективна эта схема?

Лучший ответ:
Насколько медленнее будет интернет при схеме 2? Интернет это глобальная сеть.
Никакие настройки вашего оборудования не изменять его характеристик. Так что медленнее он не станет в любом случае.

Увеличится ли пинг?Да. Пинг зависит от расстояния пройденного сигналом и задержек на оборудовании.
Чем больше сетевого оборудования на пути пакета, тем больше задержки.
Если локальная сеть будет не сильно нагружена  - задержки вырастут незначительно, поэтому скорее всего вы не заметите изменений.

Худший ответ:
Будет медленнее. Зависит от скорости коммутатора.
Но врядли сильнее, чем на 1мс
Вопрос: Как набрать опыта на позиции Frontend разработчика?

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

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

Можешь поискать всякие стажировки для фронтендеров - часто всякие большие компании устраивают пару раз в год стажировки/буткампы/школы разработчиков.

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

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

Но я-бы предложил тебе стратегию как в будущем не залетать с такой бедой. 
Тебе надо стартовать новый проект который точно работает (hello world) на ботах.
И потихоньку начинай переносить свой функционал в новый проект. И делай запуск и тестируй.
И делай каждый раз git commit.

Наступит момент когда он упадет - это и будет проблемное добавление. Дальше - откатывайся взад
и разбирайся какое изменение привнесло дефект. Процесс можно ускорить если добавлять дихотомически.
Сначала +50%. Упало. Удалил 25%. Едет. И так далее.

Худший ответ:
Ошибка в попытке применить вызов функции к переменной типа int, а не функции.
Возникает, когда в bot.register_next_step_handler(message, x1) передается не функция x1, а значение типа int,  которое записывается в global x1 после первого запуска функции x1.
Начните с переименования функций или переменных.
Вопрос: Литература по этапу инициации IT стартапа?

Лучший ответ:
Учебники по маркетингу и экономике.

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

Лучший ответ:
$! - одна из "волшебных" переменных bash, содержит pid последнего процесса
wait - думаю понятно

Худший ответ:
Вадим, это сделано чтобы докер не убивал контейнер когда предыдушая команда завершилась
более читабельный вариант бесполезного "но надо удовлетворить docker" "последнего процесса" это
например с коммерческим томкатом

tail -f /logs/catalina.out

как уже обсудили в вашем примере ждется именно 
sleep infinity

то есть это просто заглушка
Вопрос: После закрытия скомпилированной программы появляется ошибка Debug Assertion Failed?

Лучший ответ:
Как исправить?
Прочитать сообщение об ошибке для начала. Понять, что оно говорит о том, что поломана куча. Силой мысли найти место в программе которое её ломает. Если силой мысли не получается, то скомпилировать программу с какими-нибудь полезными отладочными опциями, запустить и проанализировать вывод. Для gcc это была бы опция -fsanitize=address, что у M$ для этого есть я не знаю.

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

Вижу как минимум одно такое место. delete_reload_virus иногда удаляет virus, а потом что-то делает с r_vir. Но в качестве аргумента ей из viruspodMoving передается этот же самый r_vir. 

Какая-то каша у вас там творится. Одни и те же переменные использются как члены класса и передаются как указатели по всей программе. Там черт ногу сломит.
Вопрос: Как поменять порядок битов в байте C?

Лучший ответ:
Вручную, наивно. Представьте, что это массив из 8 значений. У вас есть операции "прочитать i-ое значение" ((x >> i) & 1) и "записать значение a в позицию i" ((x & ~(1 << i)) | (a << i)). Дальше остается написать цикл и руками менять биты местами.

Дальше, конечно, можно извращаться с оптимизацией и всякмими битовыми хитростями.

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

Худший ответ:
Как поменять порядок битов в байте C?
Посмотреть какой бит стоит на каждом месте и поставить такой же на каждом новом месте?
Можно обойтись без сдвигов. Удобно пользоваться битовыми операциями, но можно обойтись и без них. Это можно сделать одной чистой арифметикой. Для ускорения можно анализировать не отдельные биты а группы -- например по 2 или по 4 и выполнять для них замену по таблице.
Вопрос: Можно ли в python создать скрипт, который будет управлять сторонней программой в фоновом режиме, пока я занимаюсь своими делами?

Лучший ответ:
Попробуй pywinauto, он вроде умеет (в отличие от pyautogui).

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

Если просто управлять, без кликов - запросто.
Вопрос: Можно ли ограничиться JS в проекте?

Лучший ответ:
можно.
но не нужно.

Худший ответ:
Конечно можно. Для отправки писем можно использовать сторонние сервисы, такие как: https://www.emailjs.com
Для отправки уведомления на Телеграм и вовсе достаточно постучатся на их API, в интернете полно примеров.
Вопрос: Будет ли такая команда удалять папку старше определённого времени?

Лучший ответ:
Нужно пойти в Google, задать поиск по "find search directories older than",
найти строку с директориями и добавить ее в скрипт с ключем -delete

Худший ответ:
find $dest -type d \( -name "*-1[^5]" -o -name "*-[023]?" \) -ctime +30 -exec rm -R {} \; 2>&1
find $dest -type d -name "*-*" -ctime +180 -exec rm -R {} \; 2>&1

Зачем -exec rm -R {}, если у find есть опция -delete ?

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

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

При чем здесь самоуверенность  - вообще непонятно
Разумеется весь код джуна будет проходить код-ревью, то есть прямо в продакшен никто эту БД заливать не будет.
Но при этом и создавать за него простенькую БД для небольшого сервиса, типа отзывов на товары, никто не будет: такой беспомощный джун никому не нужен. Предполагается, что еще на этапе обучения он уже делал подобные проекты и умеет спроектировать для них БД.

Худший ответ:
Похожий вопрос обсуждался, можете заодно и мой ответ к нему прочитать
https://qna.habr.com/answer?answer_id=1360668#comm...
Вопрос: Взаимодействие с данными с использованием нескольких серверов?

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

При подключении к базе данных вы же указываете адрес. Так вот, там можно писать не только localhost, оно через интернеты тоже работает.

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

Лучший ответ:
Да, можно, считай
Если что, скажешь Влатька разрешил

Худший ответ:
Даже успешный опыт может пойти вам как в "плюс", так и в "минус". 
Поищите статьи про наем бывших предпринимателей, почитайте. Если вкратце, то часть работодателей их не берет именно из-за опыта ведения собственных проектов. Опасаются, что те разведают секреты и уйдут создавать конкурирующую контору.
Но это не универсальный принцип.
В общем, вам придется всю жизнь индивидуально продумывать свои резюме, прикидывать, насколько понравится такой опыт конкретному работодателю, и корректировать это место в тексте в ту или иную сторону.
Вопрос: Куда развиваться Python разработчику (не для поиска первой работы)?

Лучший ответ:
А с чего ты за пол года решил, что ты ограничен?) Основываясь на своем личном опыте, я сейчас понимаю, что первые два года вообще не понимал, что делаю, хотя тогда я так не думал:) А развиваться надо не в технологии, а а направлении, если хочешь заниматься вебом, то занимайся им. Разбери в деталях как работает все mvc. Как можно реализовать одно и тоже на django, flask, fast api и aiohttp, если тебе зачем то захотелось разобрать несколько фреймворков. Разберись как работает фронт, выучи react, angular, vue. Разберись в деталях асинхронности, что бы слова async и await, не вызывали у тебя вопросов. Изучи как работает многопоточность в питоне (херово), и что вообще такое GIL и зачем это надо. Разберись с другими протоколами, как минимум с веб сокетами. Копни глубже в архитектуру и проектирование и изучи хотя бы все основные патерны и антипатерны, научись писать код согласно SOLID. Копни глубже в питон и разберись как работают метаклассы и в чем их суть. Залезь в детали разных CI/CD и деплоймент процессы, разбери как минимум докер, кубкрнетс и/или ансибл. Копни глубоко в тестирование и разберись со всеми деталями юнитов, интеграционных, ацептанс, перформанс текстов. Закопайся в детали баз данных, что бы вообще хорошо понимать SQL, что бы вопросы чем where отличается от having, или в чем разница между postgres и mysql вообще не вызывали проблем. Опять же понимание транзакций и уровня изолированности транзакций. Понимание и умение использовать NoSQL базы, и как минимум знать где и какие применяются. Понимание где и зачем нужна микросервисная архитектура. Если вдруг ты действительно все это понял и разобрал за пол года, то я искренне тебе завидую и готов помогать и подсказывать куда развиваться и что изучать. Если что сам senior python developer / release manager, в крупной международной компании:)

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

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

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

С точки зрения бизнеса - идет просто почасовая оплата за активности разработчиков. И бизнесу по большему
счету все равно как распределяется время внутри спринта. Но во власти команды разработки принять какие-то
решения которые уменьшают вероятность возникновения бага за 5 минут до релиза. С моей точки зрения
здесь модульные тесты и код-ревью полезны. Но бизнесу об этом сообщать не надо. Это внутренняя кухня
разработки и написание тестов идет просто как часть процесса разработки.

И если например сравнивать риски появления бага в релизе с одной стороны или еще +20% времени
на написание логики с тестами с другой стороны - то я выберу второй вариант. Так - спокойнее.

Так разработчик спокойно идет в пятницу пить пиво и не думает о нежданчиках или о том 
что ему позвонят и дёрнут на работу.
Вопрос: Как инвертировать строки в массиве, имплементировав интерфейс Function?

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

Вашу задачу можно решить, например, вот так:
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        Arrays.stream(args).map(Main::reverse).forEach(System.out::println);
    }

    private static String reverse(String s) {
        final StringBuilder result = new StringBuilder();
        for (char c : s.toCharArray()) {
            result.insert(0, c);
        }

        return result.toString();
    }
}

Тут интерфейс используется неявно (в функции map), туда подставлена другая функция - reverse. Если хочется - можно обернуть её в интерфейс.

Худший ответ:
В смысле, а чего тут непонятного ? У вас есть метод который на вход принимает String[] input, а выдать должен массив String[] но с инвертированными строками. Т е ровно тоже самое, что вы написали бы, если бы было так:
public String[] reverseString(String[] input) {
...
}
Вопрос: Почему не получается склонировать репозиторий?

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

Кстати, на Stackoverflow обсуждают слишком длинные имена.
Тоже можно проверить. русские буквы - в utf8 занимают больше байт, чем английские.
можно попробовать 
git config --system core.longpaths true or edit gitconfig (от админа)
или попробовать склонить в папку ближе к корню диска.

Худший ответ:
директории создавались на линуксе в названиях были лишними точки
склонировать я пытался на вин10

Решение.
заходим на сайт --- 
открываем реп --- 
проходим к файлу лежащему в директории с "плохим именем" жмём карандаш приступаем к редактированию. ---
 сверху в "адресной строке репозитория" ставим курсор в начало имени файла и жмём бекспейс пока не доберёмся до директории с "плохим именем" - задаём правильное имя директори = файлу ---
сохраняем комит нажав кнопку внизу ---
проделываем это с каждым файлом находящемся по этому адресу---

// у меня там было всего 2 файла и проблемой это не стало

https://qastack.ru/programming/31861651/how-to-ren...
Вопрос: Как найти ближайшие точки на координатной плоскости?

Лучший ответ:
Координаты строго целочисленные?
Тогда обходи точки с помощью алгоритма floodfill, с центром в исходной точке.
Например, для небольшого участка порядок будет таким:
5 4 3 4 5
4 2 1 2 4
3 1 X 1 3
4 2 1 2 4
5 4 3 4 5
Цифра - на какой итерации проверяются эти позиции.
Т.е. сначала проверяешь соседние с исходной, потом соседние с ними, потом соседние с теми, и так далее.
Если в позиции есть точка, добавляешь её в список найденных. Когда в списке найденных набралось 3 точки, останавливаешься.

Худший ответ:
Не понимаю, зачем обходить точки для решения задачи? 
Предположим, у вас поле не 10х10, а 100х100. А точек - 5. Вопрос: Сколько клеток вам надо обойти, что-бы найти оптимальную точку?  Правильный ответ  - 100х100-1.
А теперь вспоминаем школьную математику. Расстояние между двумя точками "a" и "b" в двумерном пространстве  определяется как sqrt(Xa-Xb)**2 +(Ya-Yb)**2).
Все. Есть пять точек. Для каждой из них вычисляем расстояние до нашей точки и отбираем  три (или сколько надо) для которых эти расстояния наименьшие. 
Даже на небольшой доске 10х10   и - предположим - 10 точках  выигрыш прямого решения против последовательного обхода всех 99 точек очевиден.
P.S. Ни к Python, ни к JavaScript эта задача не имеет отношения от слова совсем.
Вопрос: Как переписать на php такой js код?

Лучший ответ:
$e = count($d) - 1;
$f = false;
$g = 0;
$h = 0;
if ($c < 0) {
    $c = -$c;
    $f = true;
}
$i = 2 / (2 + $c);
$j = 4 * $i - 2;
for (; $e > 0; $e--) {
    $k = $g;
    $g = $j * $g - $h + $d[$e];
    $h = $k;
}
$l = $i * exp(-$c * $c + 0.5 * ($d[0] + $j * $g) - $h);
return $f ? ($l - 1) : (1 - $l);
Но результат может оказаться разным из-за разной точности вычисления exp.

Худший ответ:
Вообще, тут обычная математика. Просто запятая, как сказал Вадим, используется вместо записи полноценного блока операторов в цикле for() и в операторе возврата. Т.е. первая строка читается примерно так:
if (c<0) { c=-c; f=0;}
i=2/2+c;
j=4*i-2;
Здесь выполняется нормировка значения 2/2+abs(c) в рамки (-2,2) из исходных (0,1). Вторая строка итерирует массив d с конца, заполняя g и h промежуточными вычислениями, начиная с 0, переменная k всего лишь нужна хранить старое значение g. В третьей строке выполняется расчет для 0-го элемента цикла (формула та же, можно было закончить цикл и потом в формулу подставить полученный g), и возвращается значение sgn(c)*(1-l) где l вычисляется сразу перед return. Вот только что эта функция такого считает - несколько непонятно, может, корреляцию для некоего распределения известной формы и полученными из него значениями в d с предполагаемой величиной параметра c.
Вопрос: Как с начала загрузить список, а затем его обновлять с помощью SwipeRefreshLayout?

Лучший ответ:
Второй случай явно неправильный, т.к. всетаки сначала должен загружаться список, а потом он должнен по свайпу обновляться. Поэтому ты ничего и не видишь, т.к. формирование списка происходит не вначале, а после срабатывания листенера setOnRefreshListener на элементе mSwipeRefreshLayout.
Почему не работает вывод списка в первом случае - х.з., т.к. код ты скрыл (что за дурацкая привычка?), а телепаты все разъехались на Бали прочищать свои чакры.
Но если там какой то RecyclerViever, то это работает приблизительно как то так:
spoiler
RecyclerView historyRecyclerView = binding.adrecyclerView;
        historyRecyclerView = historyRecyclerView.findViewById(R.id.adrecycler_view);
        HistoryViewRecycler historyView = new HistoryViewRecycler();
        historyView.initRecycler(historyRecyclerView);

        swipeRefreshLayout = binding.swipeRefreshLayout.findViewById(R.id.swipeRefreshLayout);
        swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                //make new recycle view on swipe refresh
                RecyclerView newhistoryRecyclerView = binding.adrecyclerView;
                HistoryViewRecycler newhistoryView = new HistoryViewRecycler();
                JSONArray newhistory = new HistoryViewRecycler().updateHistory(getContext());
                if (newhistory == null) {
                    new History().getFullHistory(getContext());
                    //Snackbar.make(getActivity().findViewById(android.R.id.content), R.string.auth_error, 3000).setDuration(5000).show();
                }
                newhistoryView.initRecycler(newhistoryRecyclerView);
                swipeRefreshLayout.setRefreshing(false);
            }
        });

Не претендую на исключительность кода, это просто для примера.
У тебя же в коде onRefresh() никакого обновления списка нет, кроме остановки кручения индикатора... ну и с какого перепугу он должен что-то там обновлять?
Размести тогда уж код формирования списка в обоих разделах (как бы 1+2 пример совмести) и посмотри что получится.

Худший ответ:
Вынеси код загрузки данных в отдельный метод, и вызови его в двух местах(при создании активити и внутри метода onRefresh)
Вопрос: Как удалить папки в домашней директории Linux?

Лучший ответ:
Смотрите тут:
https://freedesktop.org/wiki/Software/xdg-user-dirs/
https://wiki.archlinux.org/title/XDG_user_directories
Вот конфиги:
$HOME/.config/user-dirs.dirs
 /etc/xdg/user-dirs.conf

Худший ответ:
Можно убить в /etc/xdg/autostart ярлык с именем "чего-то-там-xdg-userdirs" Точно название не помню, но смысл такой. Или же такой ярлык мог прописаться в локальный autostart. Меня тоже бесят эти папки, но я поступил гуманнее:
> cat user-dirs.dirs 
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/personal/downloads"
XDG_TEMPLATES_DIR="$HOME/personal/templates"
XDG_DOCUMENTS_DIR="$HOME/personal/documents"
XDG_MUSIC_DIR="$HOME/personal/music"
XDG_PICTURES_DIR="$HOME/personal/pictures"
XDG_VIDEOS_DIR="$HOME/personal/video"
Вопрос: Купил я видеокарту rx 560 4gb захожу в GPU-Z и там пишет что только 2 gb памяти, что делать?

Лучший ответ:
RX 560 на 2гб существует: https://www.e-katalog.ru/ASUS-RADEON-RX-560-RX560-...
Так что вы невнимательно смотрели, раз говорите "У всех магазинов видеокарт на модели написано 4gb"

Если вы купили в магазине, то просто верните обратно.
Если купили с рук, и вам говорили, что там 4гб, то вас обманули.
Если вы купили с рук, и вам не говорили, что там 4гб, то ССЗБ.

Худший ответ:
Скорее всего вас обманули...
Вопрос: Как число 10 разложить на 1 2 3 4 5 6 7 8 9 10?

Лучший ответ:
Так подойдет?)) 
Или число тоже должно изменяться?
const num = 10;

for(let i = 0; i <= num; i += 1) {
  console.log(i);
};

Худший ответ:
Это циклы называется
Вопрос: Как реализуется enum в JS из Typescript?

Лучший ответ:
Потому что enum в typescript может мержиться:
Валидный код:
enum Membership {
  Simple,
  Standart,
  Premium
}

enum Membership {
  SimpleX = 99
}
Почему компилятор не собирает его воедино, если такие штуки тока на этапе компиляции работают - я хз, но наверное есть причины.

Худший ответ:
Можете, пожалуйста, объяснить, что выполняет эта часть кода: (Membership || (Membership = {})Если в Membership не falsy значение (например объект), то передать ссылку на него в функцию, иначе (если в Membership undefined) присвоить в Membership новый объект и передать ссылку на него в функцию

И почему это всё обёрнуто в функцию?Сложно сказать, думаю кто-то скопировал код отсюда в код сюда и не стал париться, так как в обоих случаях есть declaration merging, о котором уже написал Aetae 

А вообще стоит узнать про const enum, который не оставляет артефактов в JS и в подавляющем большинстве случаев его достаточно.
Вопрос: Какие устройства ввода можно посоветовать дизайнеру для решения проблем с эргономикой?

Лучший ответ:
Советую отрегулировать высоту стола, стула и монитора. 
Это необходимо, и, скорее всего, будет достаточно.

Худший ответ:
Мне всякие там эрго неудобны, но! 

Клавиатура должна быть с рестом! То есть с подставкой под запястья. Это такой хвост ниже пробела, который плавно сходит на нет к столу. Рест должен быть широкий - 5-6 см, клавиатур с таким рестом довольно мало, сейчас я использую Microsoft Wireless Comfort 5050.
Мыш я давным-давно вожу левой рукой, чтобы освободить правую для набора текста, мыш обычная универсалка, из комплекта, довольно массивная.
Очень важна посадка! Локоть висеть не должен, должен опираться на стол. Второй локоть - обычно на подлокотник, для этого стул должен быть подобран по высоте (в зависимости от Вашего роста, я роста среднего и стул у меня подогнан так, чтобы при посадке ноги были чуть выше 90 градусов (то есть колени образуют угол не 90, а примерно 100 градусов).
Кресло ни в коем случае ни распонтованное геймерское с механизмом качания - обычное офисное с пружинящей спинкой - в геймерском хорошо развалится и позвать секретаршу на отсос, но восемь часов в нем не проработаешь.
Вопрос: Как найти файлы, у которых в содержимом встречаются 2 слова?

Лучший ответ:
Поискать по первому слову, составить список файлов. Аналогично поискать по второму. Найти совпадения между списками.

Худший ответ:
grep --max-count=1 -z -l "СЛОВО1.*СЛОВО2" ФАЙЛ1 ФАЙЛ2 ...