Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как удалить содержимое C:\Users со всех компьютеров в домене?

Лучший ответ:
Нельзя удалять всё содержимое этих папок, и также не стоит удалять подкаталоги вручную. 
Используйте специально предназначенные для этого инструменты.
Удаление старых профилей пользователей Windows  с помощью GPO или PowerShell

Худший ответ:
Администраторы нынче радикальные пошли.
Либо предприятие образовалось с новыми работниками, политикой, руководством, но со старыми ПК, либо - всё равно так делать нельзя, так как каталог users - системный каталог, в нём кроме профилей юзеров ещё есть и дефолтные профиля - Администратора и шаблон.
Если это удалить, то корректная работоспособность Windows уже не гарантирована.
P.S. Вероятно человек слишком рано в должность вошёл.
Вопрос: Ошибка в скрипте backup?

Лучший ответ:
TIMESTAMP='data +"%Y-%m-%d_%H-%M-%S"'

У вас тут кавычки неправильные. Одинарные кавычки - это просто текст. Обратные одинарные кавычки - это command substitution (то, что вы хотели сделать)
Но лучше использовать $() конструкцию:
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

p.s. и да, у вас data вместо date

Худший ответ:
Может быть date а не data?
и другие кавычки:

TIMESTAMP=`date +"%Y-%m-%d_%H-%M-%S"`
Вопрос: Фриланс биржи без потверждения личности/пасспорта/ c 14-ти лет?

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

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

Худший ответ:
С крупными фриланс биржами без подтверждения личности работать вряд ли получится. Чаще всего, как раз таки, есть возможность регистрации от 16 лет. Могу посоветовать подать объявление на подобных форумах, где нет сильной модерации.
Ещё как вариант,  спросить у друзей/знакомых, не нуждаются ли они в чём-то в сфере IT, что ты мог бы сделать за небольшую плату.
Вопрос: Что тут надо отпаять/припаять что оно заработало?

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

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

Лучший ответ:
Вам нужно на роутере добавить маршрут до сети 192.168.5.0/24 через IP eth0.
На самом компе добавлять маршрут не нужно, т.к. он имеет IP адреса во всех задействованных сетях, то маршруты уже есть.
Пингами с роутера проверяете доступность IP eth1.
Т.к. eth2 работает мимо ОС, то схема должна работать.
Естественно на компе надо включить маршрутизацию пакетов и настроить/выключить фаервол.
Сниффером слушаете eth1.

Более "чистая" и точно рабочая схема была бы, если использовать второй ПК: eth2<=>второй ПК<=>router
На втором ПК можно настраивать сниффер и видеть весь трафик.

Худший ответ:
В итоге решил вопрос с помощью ip netns
Написал следующий скрипт:
#!/bin/sh

# установка и настройка изолированного сетевого пространства имен
ip netns add ns0
ip link set eth2 netns ns0
ip -n ns0 link set lo up
ip -n ns0 link set eth2 up
ip -n ns0 addr add 192.168.5.2/24 dev eth2
ip -n ns0 route add default via 192.168.5.1 dev eth2

# в дефолтном пространстве надо поднять NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.5.2/32 -j MASQUERADE

# и надо запустить отдельный SSH-сервер на новом пространстве
sudo ip netns exec ns0 /usr/sbin/sshd -o PidFile=/run/sshd-ns0.pid
Завернул этот скрипт в oneshot сервис и теперь systemd дергает его при запуске системы.
Можно подключаться ssh 192.168.5.2 и видеть ту же самую локальную машину, которая как бы находится в другой сети, весь трафик которой завернут через eth1 на eth0.
Вопрос: Как получить информацию по введенному пользователем в поиске запросу?

Лучший ответ:
Для начала обратите внимание сюда



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

Чтобы поисковик более точно определял содержимое, вы можете помочь ему.
Для этого существуют системы микроразметок.
На ситилинке используют довольно популярную schema.org



На этом скриншоте показана разметка хлебных крошек. Аналогично, есть схемы для разметки карточек товара, адресов организаций и т.д. (см на сайте schema.org и в справке яндекса).

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

Худший ответ:
это ведь незахардкожено, как поисковик понимает актуальность урлов ?Поисковики ориентируются на несколько параметров: Заголовок страницы на сайте, содержимое самой страницы (в частности тег h1), а так же всякие дополнительные фишки типа микроразметки, сайтмапа и схемы, а сайт просто выводит эти данные в заранее приготовленный шаблон страниц в нужные места. И все друг друга понимают и любят )
Вопрос: Как выбрать счётчик электроэнергии совместимый с Arduino?

Лучший ответ:
Если это не основной счетчик - то просто смотрите сразу ваттметр и все. Проще будет. Но легализировать его не получится 100% - никто с него показания считывать не будет.  Можете поставить обычный счетчик и СРАЗУ за ним ваттметр - будет то же самое почти.

Худший ответ:
Можно и с основного снимать. Например так: https://habr.com/ru/post/568314/
Вопрос: В чем соль использования хука Reducer кроме того что «мы так привыкли делать в Redux»?

Лучший ответ:
Если попробовать поразмышлять..

useState подразумевает плюс-минус простой стейт, который удобно обновлять через либо setState(newValue), либо через setState(prevState => ({ ...prevState, key: newValue })). 

useReducer для более сложных кейсов, где хранить логику обновления в компоненте становится нецелесообразным и/или будет слишком раздуваться компонент. Или же где логика переиспользуется. Впрочем, то же самое можно сделать и через useState, создав свои хуки, которые под капотом юзают useState/useReducer.

На выходе, самым логичным на ум приходит более плавная миграция в redux на useReducer.

Проблема в том, что redux не нужен в 90%+ проектах, и его можно было заменить голым реактом с его инструментами.

Худший ответ:
В общем, я в конце концов понял так:

- Reducer - это типа как мутации в Vuex, и в конечном итоге его уберут из релиза ...но это не точно))))
Вопрос: Сколько у вас держит заряд Macbook Air M1 при веб разработке?

Лучший ответ:
Скажу так, у меня MacBook Pro держит около +/-10 часов активной работы. Аккумулятор у Air слабее, думаю часов 6-8 должен держать. При работе использую chrome, safari, phpstorm, goland, docker и стриминг Spotify.

Худший ответ:
Скажу так, у меня MacBook Pro держит около +/-10 часов активной работы. Аккумулятор у Air слабее, думаю часов 6-8 должен держать. При работе использую chrome, safari, phpstorm, goland, docker и стриминг Spotify.
Вопрос: Обязательно ли кабель должен быть проведён к роутеру через модем или использование модема необязательно?

Лучший ответ:
Советую освежить свои знания о том,  что такое модем и роутер.  Эти устройства выполняют две разные функции, поэтому независимы. Использование определяется архитектурой сети

Худший ответ:
В настоящее время модем уже не нужен. Это морально-устаревшие технологии 2000х годов когда интернет пускали по сетям телефона или по коаксиальному кабелю телевидения. Вот для таких стеков и ставился модем. Более того. Такие квази-телевизорные сети работали очень хреново (у меня был максимум 25 мегабит) и еще и асимметрично. Тоесть скорость в upload была раз в 10 медленнее чем в download.

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

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

Худший ответ:
прогер с SQL и азами статистики
Вопрос: Можно ли измерять вероятность в процентах?

Лучший ответ:
Проценты - это просто способ указать сотые доли.
0.5 - это то же самое, что и 50%

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

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

Лучший ответ:
Ну то что ломятся это нормально, но то что Вы от этого не защищаетесь - ненормально

Закройте все порты фаерволом кроме нужных

Сделайте доступ к SSH только с определенных IP, если у Вас есть "белый" адрес дома
Настройте fail2ban для ssh

Худший ответ:
Боты тычутся во все ip подряд и пытаются авторизоваться под паролями из словаря. Советую перевесить ssh на нестандартный порт, отключить вход по паролю, ну и ознакомиться со стандартным набором мер безопасности.
Вопрос: Остановить работу крон задачи, которая выполняет бесконечный цикл?

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

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

Худший ответ:
Если опасаетесь, что будет подъедать память - то может и контролировать в самом скрипте использование памяти и выходить?
Если запускаете каждую минуту, то похоже, что процесс должен работать постоянно. Почему бы тогда не посмотреть в сторону gearman/beanstalk, перезпуск воркеров можно через systemd организовать. Или что имеется в виду по "алгоритмом работы" - сам запуск и получение задачи на парсинг или алгоритм парсинга?
Вопрос: Как добавить на сайт счётчики аналитики не ухудшая скорость загрузки?

Лучший ответ:
Что на счет такого варианта:
<script>
  setTimeout(function(){
      // Код счетчиков
    }, 5000); 
</script>

Даем на загрузку страницы 5 секунд и только 5 секунд спустя подгружаем все это барахло.

Худший ответ:
Для начало определите для себя что такое скорость загрузки, если это кб/с это ответ никак, обычно это время до взаимодействия с сайтом на 3г скорости, а для этого достаточно html и критический css загрузить, все остальное можно потом и не влияет понятие скорость загрузки сайта.
Вопрос: Как заставить открывать LUKS раздел только после поднятия сети?

Лучший ответ:
если системд, то прописать в  скрипт требование работающей сети
[Unit]
Wants=network-online.target
After=network-online.target

еще вариант поставить зависимость от монтирования nfs
еще лучше зависимость существования пути до указанного файла ключа

Худший ответ:
Понял в чем беда. У меня монтирование NFS настроено через autofs. Если перевести его монтирование на монтирование через fstab, то все ок. При загрузке монтируется nfs раздел, через ключ оттуда открывается luks и уже этот luks монтируется через fstab. Как можно это реализовать через монтирование autofs?
Вопрос: Почему генератор yield начинает работу с последней страницы сайта?

Лучший ответ:
data = soup.find_all('div', class_= 'col-lg-4 col-md-6 mb-4')
Ты перезаписываешь data на каждой итерации цикла, конечно там остаётся только последнее записанное значение. Совмести оба цикла внутри get_url() в один, иначе нет особого смысла в yield.

Худший ответ:
Ну так Вы же в своем коде прошлись до 8 страницы, и генератор возвращает данные из неё.
Вопрос: JavaScript — как проверить, есть ли в объекте циклические ссылки?

Лучший ответ:
Поиск в глубину.

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

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

Код
const data = {
  "index.js": ["foo.js"],
  "foo.js": ["baz.js", "lol.js"],
  "baz.js": ["bar.js", "lem.js"],
  "bar.js": ["baz.js", "k.js"]
};

function searchCircularDepengency(entry = "index.js", path = []) {
  const branch = data[entry];
  const newPath = [...path, entry];

  console.log("Path", newPath);

  // Если есть вложенные элементы,
  if (branch) {
    // проверить каждый
    branch.forEach((nextEntry) => {
      // на предмет прохожения ранее,
      if (path.includes(nextEntry)) {
        console.warn(
          "Found Circular Depengency " + nextEntry + " in " + entry,
          path
        );
        // если нет идти глубже
      } else {
        searchCircularDepengency(nextEntry, newPath);
      }
    });
  } else {
    console.log("Branch complite. All OK!");
  }
}

console.log(searchCircularDepengency());

В песочнице
Вопрос: Какой настольный клиент использовать для работы с Git?

Лучший ответ:
В любой IDE есть встроенный git-клиент. Самая удачная реализация как всегда у продуктов JetBrains.
Если же ищите именно отдельный клиент, по мимо тех, что уже предложили:
От разработчиков Sublime Text: https://www.sublimemerge.com/
И в комплекте с git-ом под Windows идёт git-gui: https://git-scm.com/docs/git-gui/

Я использовал многие клиенты - и все они в удобстве уступают тому, что встроен в *Storm.

Худший ответ:
git bash
ну и еще черепаху иногда использую. В целом за глаза
+ PHPStorm
Вопрос: Как парсить json response в java?

Лучший ответ:
Ну, например, gson https://github.com/google/gson

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

Лучший ответ:
Я в своей системе реализую некий UI Builder.
Есть предопределенные поля Input, Checkbox и т.д.
Однако, должна быть возможность создавать пользовательские поля.
При этом такие поля обязаны придерживаться определенных соглашений, чтобы система не сломалась. Например, поля обязаны реализовать метод render. И не как-то, и именно так, как положено.
Для этого я во всех встроенных полях реализую интерфейс FieldContract

interface FieldContract {
  public function render(Repository $repository): ViewContract;
}

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

Худший ответ:
Пример интерфейса
interface StorageInterface
{
    /**
     * Сохранить файл. Возвращает строкой относительный путь до файла
     *
     * @param string $directory - директория
     * @param string $content - контент файла в бинарном представлении
     * @param string $fileName - название файла для сохранения
     *
     * @return bool
     *
     * @throws Exception
     */
    public function save(string $directory, string $content, string $fileName): bool;

    /**
     * Метод проверки наличия файла по относительному пути
     *
     * @param string $filePath
     *
     * @return bool
     */
    public function isFile(string $filePath): bool;

    /**
     * Получить файл в виде ДТО
     *
     * @param string        $directory
     * @param string        $realFileName
     * @param string | null $fileName - пользовательское имя файла
     *
     * @return GetFileDTO
     *
     * @throws FileNotFoundException
     */
    public function getFile(
        string $directory,
        string $realFileName,
        ?string $fileName = null
    ): GetFileDTO;

    /**
     * Удалить файл по пути
     *
     * @param string $directory
     * @param string $fileName
     *
     * @return bool
     */
    public function deleteFile(string $directory, string $fileName): bool;
}

Его реализуют LocalStorage, AWSStorage, и еще куча куча других хранилищ для файлов. 

И делая вот так, 

public function methodFile(StorageInterface $storage): mixed
    {
        $storage->save();
        $storage->deleteFile();
        $storage->getFile();
        $storage->isFile();
    }

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

Лучший ответ:
И как понять, где использовать абстрактный класс, а где интерфейс?
Так же, как и раньше. Интерфейс - просто контракт, как правильно было сказано.
Мало ли чем они там в Java8 упоролись, концепция ООП не должна из-за них страдать.
Ну и, классика, следуй принципам SOLID, не смотря на особенности каких-то ЯП какими бы они ни были.

Это холиварная тема, вот здесь есть обсуждение
https://stackoverflow.com/questions/19998454/when-...

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

Лучший ответ:
Купил винт на 6 Тб (WD Blue) и записал много файлов, около 500к
Главный вопрос сейчас в том, насколько важны для вас эти файлы и есть ли у вас их копия.

потом пошел треск с винта с периодичностью в 0.5 секунды
По описанию сложновато представить однозначно, вот примеры издаваемых HDD звуков. Что-нибудь похоже на то, как трещит ваш жёсткий диск?

Это заводской брак, или неправильное использование винта?
Дальше нужно понимать что важнее - сохранить информацию на диске, или разобраться в проблеме? 
Если данные критически важны, то лучше вообще остановиться и не мучать диск ничем и никак. 
Если есть копия или возможность рискнуть, то начните с просмотра SMART, это можно сделать в Р.тестере: https://rlab.ru/tools/rtester.html

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

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

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

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

Худший ответ:
Писать за деньги. Ваш К.О.
Вопрос: Рекурсия.По какой причине ответ всегда 0?

Лучший ответ:
Учитесь писать красиво. Вместо нагромождения вложенных if/else используйте ранний выход из функции.
float power(float X, int N) {
    if (N == 0) {
        return 1;
    }
    if (N < 0) {
        return 1. / power(X, -N);
    }
    if (N % 2 == 0) {
        float b = power(X, N / 2);
        return b * b;
    }
    return X * power(X, N - 1);
}

Худший ответ:
Аккуратно расставьте отступы. У вас там логика if else напутана, и программа делает совсем не то, что бы вам хотелось. Кроме того, посмотрите внимательно на warning-и от компилятора (он точно скажет, что power иногда не возвращает никаких значений, хотя вам кажется, что return есть во всех ветках if else). Это как раз потому, что у вас скобки не так расставлены и else относится совсем не к тому if, как вы хотели бы.
Вопрос: Как сбалансировать жёсткие диски на компьютере?

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

Худший ответ:
Карандаш и Лист бумаги, разделенный на две колонки устроит?

Тогда берете и составляете для себя укрупненный план размещения программ и данных.

Далее разово переносите / переустанавливаете ручками, а потом вешаете листок рядом с монитором и пытаетесь жить по похожим правилам. 

Как перестает хватать места, то чистим или покупаем диски большего объема.

Также учти, что в ряде случаев может помочь автозапуск программы при загрузке компьютера или при входе в систему. 
Добавь оперативной памяти. Некоторые месяцами живут не закрывая среды разработки / ТоталКомандера / веб-браузера / etc.
Только для них каждая перезагрузка компа - это стресс.
Вопрос: Как перевести код с JQuery на JS под Bootstrap5?

Лучший ответ:
document.addEventListener('DOMContentLoaded', function () {
  var forms = document.querySelectorAll('form');
  for (var i = 0; i < forms.length; i++) {
    forms[i].addEventListener('submit', function (event) {
      event.preventDefault();
      // Получение ID формы
      var formID = this.getAttribute('id');
      // Добавление решётки к имени ID
      var formNm = document.getElementById(formID);
      var xhr = new XMLHttpRequest();
      xhr.open('POST', 'mail.php', true);
      xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
          // Вывод текста результата отправки
          formNm.innerHTML = xhr.responseText;
        } else if (xhr.readyState === 4) {
          // Вывод текста ошибки отправки
          formNm.innerHTML = 'Ошибка отправки: ' + xhr.status;
        }
      };
      xhr.send(new FormData(this));
    });
  }
});

Худший ответ:
Чуть более современный способ через fetch, но можно и axios библиотеку
document.addEventListener('DOMContentLoaded', function() {
  const forms = document.getElementsByTagName('form');
  for (let form of forms) {
    form.addEventListener('submit', function(event) {
      event.preventDefault();
      const formId = this.getAttribute('id');
      const formNm = document.getElementById(formId);
      const formData = new FormData(this);
      fetch('mail.php', {
        method: 'POST',
        body: formData
      })
      //axios.post('mail.php',  { body: formData })
      .then(response => response.text())
      .then(data => {
        formNm.innerHTML = data;
      })
      .catch(error => {
        formNm.innerHTML = error;
      });
    });
  }
});
Вопрос: Как установить VMWare Tools на виртуальную машину Ubuntu если кнопка неактивна?

Лучший ответ:
Они с репозитория устанавливаются.
open-vm-tools
При наличии доступа к репозиторию в момент установки ubuntu ставятся автоматически.

Или монтированием образа с тулсами вручную, если по какой-то причине нет доступа к интернет.

Худший ответ:
Устанавливается просто
sudo apt install open-vm-tools
Установка через менеджер пакетов позволит ещё и обновлять автоматически.
А монтировать CD и вручную запускать установщик оттуда нет никакого смысла.