Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как реализовать вывод товаров из List у которых закончился срок годности?

Лучший ответ:
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;

namespace ConsoleApp2
{
    /// <summary>
    /// Не используйте транслит! Любой китаец или индус поймет английский, 
    /// а вот русский только поржет. 
    /// </summary>
    public class Product
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ImportDate { get; set; }
        public string Description { get; set; }
        /// <summary>
        /// Рубли умноженные на 10000. помним об этом то есть у вас копейка имеет 2знака после запятой!!!!
        /// </summary>
        public Int64 Price { get; set; }
        public int Discount { get; set; }
        public string Category { get; set; }
        /// <summary>
        /// Дата списания
        /// </summary>
        public string DueDate { get; set; }
        public string ДляОсобоУпоротыхЭтоТакиРаботает { get; set; }
    }
    public static class Extensions
    {
        /// <summary>
        /// Convert string from format dd.MM.yyyy to DateTime
        /// </summary>
        /// <param name="inputDate"></param>
        /// <returns></returns>
        public static DateTime ParseDateDayMounthYear(this string inputDate) =>
            DateTime.ParseExact(inputDate, "dd.MM.yyyy", CultureInfo.InvariantCulture);
    }
    class Program
    {
        static void Main(string[] args)
        {
            #region заполняем список товаров
            List<Product> tovar = new List<Product>()
            {
                new Product(){Id = 2,
                    Name = "Яблоки",
                    ImportDate = "11.11.2022",
                    Description = "Свежие яблоки.",
                    Price = 1000000,
                    Discount = 5, 
                    DueDate="11.11.2022",
                    Category = "Овощи"},
                new Product(){Id = 2,Name = "Молоко",
                    ImportDate = "16.10.2021",
                    DueDate="16.10.2021",
                    Description = "Свежее молоко.",
                    Price = 800000,
                    Discount = 10, 
                    Category = "Кисломолочные"}
            };
            #endregion

            // число месяц год
            var data =  tovar.Where(item => item.DueDate.ParseDateDayMounthYear() < DateTime.Today).ToList();
        }
    }
}

Худший ответ:
Сделайте дату датой, и потом такую выборку
tovar.Where(item=> (item.dataproizv.AddDays(21)) < DateTime.Today );
Вопрос: Как получить доступ к файлу?

Лучший ответ:
File.Create(path); а закрытие файла после создания где? Поэтому он и используется другим процессом.

Худший ответ:
А так?
File.Create(path).Close();
Вопрос: Какой роутер лучше по качеству/цене для того, чтобы поднять на нём socks сервер?

Лучший ответ:
Как вариант mikrotik , хоть железный , хоть софтовый на VDS , у него из коробки сразу есть SOCKS 4/5

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

Лучший ответ:
На шейдерах можно сделать
https://www.shadertoy.com/view/4df3Rn

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

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

Худший ответ:
Если оффер хороший и все устраивает, то зачем думать? А если не устраивает и хочется найти получше, то зачем его вообще принимать?

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

И напоследок, принятие оффера не означает выход на работу. Особенно учитывая наличие испытательного срока, когда не только Вас могут уволить, но и Вы можете уволиться одним днем без объяснения причин, приняв более выгодное предложение от другого работодателя. Это, наверное, несколько некрасиво по отношению к компании, но, будем честны, собственная выгода должна быть на первом месте.
Вопрос: Как реализовать авторизацию при запуске программы?

Лучший ответ:
Не надо считать, что есть "основная форма". У тебя есть много разных форм/окон. "Основным" окном считается то окно, что создано первым, но это лишь формальность.

Более того, создано оно должно быть через конструктор форм Application. А если создавать окна простым способом 
TFormAuth.Create(...) то оно не будет считаться основным. 

Итого, для того, чтобы по уму сделать окно авторизации, тебе нужно зайти в код программы (не в код модуля, а в код программы). Да, представь, такое место тоже есть. Делфи его прячет от новичков. Открыть его можно через контекстное меню проекта "View Source" или через меню "Project" -> "View Source".

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

UPD. Пример
program Temp;

uses
  Vcl.Forms,
  Vcl.Controls,
  Temp.Main in 'Temp.Main.pas' {FormMain},
  Temp.Auth in 'Temp.Auth.pas' {FormAuth};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;

  FormAuth := TFormAuth.Create(nil);
  if FormAuth.ShowModal = mrOk then
  begin
    Application.CreateForm(TFormMain, FormMain);
    Application.Run;
  end;
end.

Как ты видишь, я убрал автоматически созданную строку 
Application.CreateForm(TFormAuth, FormAuth);
и создал форму сам 
FormAuth := TFormAuth.Create(nil);
Дальше, я сделал простую проверку, если окно было закрыто с mrOk (т.е. нажата кнопка OK), то мы продолжаем, запускаем программу, в противном случае программа просто заканчивается.

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

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

Процесс авторизации можно воспринимать как выдачу ключа активации (например при покупке своей копии программы).

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

Лучший ответ:
Да. VPN или прокси скроют твой ip, заменив его своим. Заменить свой ip на какой-то конкретный чужой проблематично, для этого придется поднять прокси или VPN на нём.

Худший ответ:
Можно. Но работать не будет :) Потому что ответ пойдет на настоящий IP, который будет указан, а тот этот пакет просто отбросит.
Читаем олиферов и перестаем задавать глупые школотские вопросы.
Вопрос: Почему не срабатывает код из короткого видеоурока?

Лучший ответ:
Во-первых, в HTML у вас много глупых ошибок: тег начинается с , а заканчивается . Тоже самое и для  и 
Этот HTML должен выглядеть так:
<!DOCTYPE html>
<head>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="wrapper">
    <header class="header">Header</header>
    <main class="main">Main</main>
    <footer class="footer">Footer</footer>
  </div>
</body>
</html>

Во-вторых, добавьте в CSS к селектору body ещё и селектор html как в коде ниже. 
html, body {
  height: 100%;
  margin: 0;
  font-family: Helvetica;
  font-size: 25px;
}

.wrapper {
  min-height: 100%; 
  display: flex;
  flex-direction: column;
}

.header {
  background-color: lightsalmon;
  text-align: center;
  padding: 30px;
}

.main {
  text-align: center;
  padding: 30px;
  flex: 1 1 auto;
}

.footer {
  background-color: lightseagreen;
  text-align: center;
  padding: 30px;
}

Тогда всё заработает.
Для полного счастья вот вам ссылка на выполненный код - https://codepen.io/Comrues/pen/GRmYqjV

Не забудьте сделать этот пост ответом.

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

Лучший ответ:
Кто поможет?
Ответ на вопрос: автор данного расширения.

99 %, что оно перестало работать из-за изменений на сайте. (Тем более, что это "чит" для браузерки.)
Нужно его обновить.
Где взял, там и спрашивай.

Худший ответ:
Готов оплатить , если кто решит проблему
Вопрос: Как правильно вставлять картинки в данной ситуации?

Лучший ответ:
background(врядли), или псевдоелементом?А че, просто картинкой уже не модно или есть какие-то причины так верстать?

ЗЫ: Учитывая тег адаптивный дизайн, лучшее решение - picture + object-fit: contain;

Худший ответ:
Наушники псевдоэлементом, можно.. а остальное через background. Почему нет?
Вопрос: Как привязать домен к ip адресу с портом?

Лучший ответ:
Как пить дать нужно для сайта. Ответ: на этом хосте на стандартных портах (80, 443) повесить reverse proxy (nginx, можно apache с mod_proxy, но лучше nginx), который трафик по этому конкретному домену будет прокидывать на самого себя с другим портом.

Худший ответ:
Если протокол позволяет, то использовать SRV-запись.
Если не позволяет, то никак. Стандартные A- и AAAA-записи дают только привязку имени к IP, порт не указать.
Вопрос: Как поменять название переменной на ходу?

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

Худший ответ:
Можно создавать методом exec(), но не ясно зачем
Вопрос: Как шифровать файлы на python?

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

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

Лучший ответ:
Берите германию,голандию - самый наименьший пинг будет
Лично с моей точки зрения - что 5мс-30мс(это в РФ если сайт), что 60мс-80мс при открытии сайта(если в европе) вообще пофиг... я не замечаю разницы

Худший ответ:
В свое время мне нравился hetzner, держали там дедик за копейки и с отличным аптаймом.
Вопрос: USB флешка, которая имеет вдобавок свой сетевой интерфейс?

Лучший ответ:
1. Есть WiFi SD карты для фотоаппаратов. Вставить через картридер в ваш девайс, подключиться по WiFi, слить данные
1.5 - MicroSD WiFi переходник. Почти как прошлый пункт, но вы вставляете свою любую карточку, а переходник раздает её по WiFi
2. Если у вас есть девайс на эксперименты, полудохлая центральная плата или хотя бы прошивка от него, можно поизучать и действительно сделать программу для RJ-45

Худший ответ:
Может как вариант рассмотреть Wi-Fi microSD Adapter
https://habr.com/ru/post/227215/
Ez Share обещают поддержку тхт файлов.
https://www.aliexpress.com/i/32794984553.html
Это если найдете. Есть еще вариант с малинкой.
Вот статья которая тоже как вариант. везде поставить микроты которые ловили вайфай и в сеть могли вещать уже 
https://forummikrotik.ru/viewtopic.php?t=11142
Вопрос: Как школьнику побороть выгорания и вкатиться в программирование?

Лучший ответ:
Никак. 
Проблемы "выгорания" не существует. 
Если вам не нравится программировать - займитесь чем-то другим, тем, что вам нравится.

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

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

Если хотите - давайте обсудим в комментариях.
Вопрос: Как зайти на сайт?

Лучший ответ:
Дудосят их. Через Tor Browser попробуйте.

Худший ответ:

Прокси: 51.158.230.211 (Франция)
bt02.nnm-club.cc работает без прокси.
Вопрос: Можно ли сделать шину на оптоволокне?

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

Худший ответ:
Ближайший аналог шины на оптоволокне это xPON, в принципе, это и есть master-slave шина.
Одноранговую шину сделать на волокне, в принципе, сделать возможно, но зачем? Там будут слишком большие коллизии именно по этому нет скоростных одноранговых шин.
Да и на волокне трудно сделать делители чтобы сигнал равномерно проходил во все 3 стороны
Вопрос: Почему некорректно сортируется массив чисел arr.sort?

Лучший ответ:
isFromSmallerCode.value надо менять либо до, либо после сортировки, но не во время её.

Худший ответ:
Так вы на каждом сравнении зачем-то меняете направление сортировки. Вот sort и не может правильно выполниться.
Вопрос: Нужно ли Python Backend разработчику знать JavaScript?

Лучший ответ:

SQL
Python
Django
JS

И дальше без остановки. Чем больше знаешь, тем больше программист.

Худший ответ:
Python 3.6+
Flask
Django
JavaScript( node.js в лучшем случае )
SQL ( postgresql, mysql, sqlite что-то из этого желательно )
Вопрос: Как запустить браузер в изолированной среде на Linux?

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

Вообще если ты настолько беспокойный кабанчик что тебе надо именно сильная изоляция то посмотри на такие флешки-операционки как tails https://tails.boum.org/ они вот спецом созданы для мамкиных хакеров. Ничего не остаётся после них. Можешь прон смотреть. Или вещества в торе покупать. Или в хабре писать. Вобщем все можно.

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

Лучший ответ:
Прочитайте любую книгу по Java.
Можете начать с Г. Шилдт - Руководство по Java для начинающих.
А насчет ошибки:
у вас в одном java файле (Main.java) содержится 2 public класса 
public class Main{} 
public class BANKACCOUT{}
Также обратите внимание на Java naming convention. Вместо названия класса BANKACCOUT должно быть BankAccount

Худший ответ:
имя файла должно совпадать с именем публичного(public) класса
Main.java и public class BANKACCOUT
Вопрос: Какой почтовый сервер поднять на базе linux?

Лучший ответ:
У Вас неверное понимание принципа построения программ в Linux. 
В Windows любая программа, когда начинает расти - непременно тащит все фичи в себя, потому что интеграция между программами невозможна в принципе (за исключением программ одного производителя).
В Linux любая программа может интегироваться с любой другой программой (за исключением некоторых платных), поэтому "почтовый сервер" в Linux - это обычно комбинация различных программ: SMTP-сервер, IMAP-сервер, а средства интеграции с AD и всем, чем угодно входят непосредственно в систему - PAM, OpenLDAP, SSS etc.

Можно действительно поднять Zimbra Community Edition - там внутри все то же самое, просто поверх этого натянута морда.

Худший ответ:
Так как:

1. Нет собственного опыта по интеграции почтового сервиса в структуру

2. Нужно связать с active directory

То:

Exchange ваш выбор !
Вопрос: Какие почтовые сервера и почтовые сервисы позволяют организовать почту со своим доменом на кирилице?

Лучший ответ:
Вам стоит прочитать по Punycode, в котором "живут" все кирилические (все национальные) имена доменов.
После этого вы поймёте, что АБСОЛЮТНО ВСЕ почтовые сервера и сервисы работают с национальными именами доменов прозрачно, потому что они - в Punycode.

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

Худший ответ:
Почти любая, а вот в кириллическим логином как раз будут проблемы.
https://qna.habr.com/q/968093#answer_1917541
Вопрос: Как построить древовидный массив неограниченной вложенности?

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

Вот вариант за линейное время работы (из предположения, что хэш-таблица работает в среднем за О(1))
без рекурсии
на js, переведи в ПХП сам

код
const array1 = [
    {page: '1.ru', title: 'title 1'},
    {page: '3.ru', title: 'title 3'},
    {page: '6.ru', title: 'title 6'},
];

const array2 = [
    {page: '666.ru', title: 'title 666', referer: '66.ru'},
    {page: '33.ru', title: 'title 33', referer: '3.ru'},
    {page: '66.ru', title: 'title 66', referer: '6.ru'},
];

function createTree(roots, notRoots) {
    if (!roots || !roots.length) { return []; }

    const childsMap = new Map();

    // строим карту (page => список_чилдов), создавая узлы дерева для чилдов
    notRoots.forEach((child) => {
        let childs = childsMap.get(child.referer);

        if (!childs) {
            childs = [];
            childsMap.set(child.referer, childs);
        }

        childs.push({
            page: child.page,
            title: child.title,
        });
    });

    // всем чилдам (вновь созданным узлам), которые попали в карту, проставляем чилдов
    childsMap.forEach((childs) => {
        childs.forEach((child) => {
            child.childs = childsMap.get(child.page) || [];
        })
    });

    // обходим корневые элементы, создаем для них узлы дерева, подставляем чилды по карте
    return roots.map((root) => {
        return {
            page: root.page,
            title: root.title,
            childs: childsMap.get(root.page) || []
        };
    })
}

console.log(createTree(array1, array2));


Худший ответ:
Как
рекурсивно.

а связи-то у вас где хранятся? в изначальных массивах нужны идентификаторы и ссылки на родительские идентификаторы. потом надо проиндексировать их по этим ссылкам, то есть надо сделать массив где ключами будут иды, а элементами - массивы с элементами соответствующего родителя. потом рекурсивно идем сверху вниз, взяли первый уровень, листаем смотрим есть ли в том индексе элементы, ссылающиеся на текущий элемент, если есть, то погружаемся. перед подгружением нужно записать в результирующий массив данные по текущему пути. именно перед, потому что если после погружения, то вложенное затрётся. понадобится функция для записи в массывы по пути (типа такой https://laravel.su/docs/8.x/helpers#method-array-set). путём должно быть перечисление идов через спецсимвол. текущий путь можно хранить во внешней переменной, при погружении добавлять к нему сегмент с идом, в который погрузились, после погружения убирать его
Вопрос: Как открыть html файл через C# код?

Лучший ответ:
web.DownloadFileAsync(uri, "thr.html");
А кто авейтить асинхронные вызовы будет?

ЗЫ:
File.Copy(@"C:\Users\zm096\Downloads\index (2).html", "thr.html");

Худший ответ:
Puj, Async в конце названия метода значит "асинхронный". 
Происходит так: 
web.DownloadFileAsync(uri, "thr.html");
Задача запускается в новом параллельном потоке, а управление возвращается в вызывающий метод.
Дальше у вас происходит выход из блока using, который "под капотом" вызывает метод Dispose() у веб-клиента.
Сборщик мусора утилизирует веб-клиента и файл, скорее всего, не скачивается.
Что делать:
1. Прочитать, как работает модель TAP (Task Await Pattern).
2. Понимать, что необходимо ожидать await завершения асинхронного метода
3. Если файлик скачать нужно только один и он небольшого размера, заменить DownloadFileAsync просто на DownloadFile. Ценой нескольких миллисекунд блокировки основного интерфейса
Вопрос: Почему бот реагирует на себя и других ботов Discord?

Лучший ответ:
Проверять отправителя сообщение. Если сообщение отправил бот - игнорировать.
https://discordpy.readthedocs.io/en/latest/api.htm...

Худший ответ:
Для команд - используйте расширение команд, не изобретайте велосипед:
https://discordpy.readthedocs.io/en/stable/ext/com...

Для событий - как и сказано раньше - проверяйте, если автор - бот:
if message.author.bot:
    return
Вопрос: Можно ли использовать блок питания монитора с более низким напряжением?

Лучший ответ:
Даже если 14-вольтовый БП проработал некоторое время, это не гарантия, что проблем не создастся при более длительной работе. Так что лучше найти 19-вольтовый БП. Тем более что таких БП доступно огромное разнообразие. Я имею ввиду БП от ноутбуков, для них характерно выходное напряжение 18...20 вольт (для вашего случая самое то, что надо). 
Итак, берёте любой подходящий ноутический БП с напряжением 18...20 вольт и допустимым током бОльшим, чем требуемые для монитора 1,6 ампер. Проверяете совместимость штекера, и если не подходит, перепаиваете шнур с прежнего БП,  с тщательным соблюдением полярности.  Затем подключаете и пользуетесь.

Худший ответ:
Можно найти мастера который отремонтирует ваш блок питания, но можно и самому отремонтировать. Легче всего это если он перестал работать или не запускается, а в нём нет явных признаков чего то горелого. Если под небольшой нагрузкой Б.П. работает, то это явный признак что конденсаторы потеряли свойства, может они "вздулись" вниз и не видно. Если всё цело на вид, но Б.П. не запускается заменить конденсатор в цепи служебного питания ШИМ, очень часто встречается такое. Далее проверить наличие напряжения на служебном питании и в цепи запуска, в некотороых ШИМ это разные выводы микросхемы.
Вопрос: Где брать заголовки для компиляции ядра Linux?

Лучший ответ:
Возьмите в репозитории к вашему дистрибутиву.

Худший ответ:
на kernel.org лежат исходники уже с заголовками (отдельный пакет для этого существует чтобы для сборки модулей и не только не требовалось тянуть все исходники)

в принципе ядро собирается командами
make menuconfig
make
а устанавливается
make install
make modules_install

p.s. если тебе нужно собирать dpkg пакет, то либо ищи .dsc файл описывающий как собирать нужную версию либо пиши сам
Вопрос: На чем лучше написать игру веб разрабу?

Лучший ответ:
Да, думаю unity хороший вариант.

Худший ответ:
web assembly же
Вопрос: Как подключить компьютеры при недоступности старого домена?

Лучший ответ:
Старый домен еще живой?
Можно взять например микротик, поднять на нем VPN в старый домен и подключить в этот микрот ноут. Разблокировать админа, вывести из домена, переподключить ноут в локальную сеть, ввести в домен.

Или заниматься ана...м с live CD или windows переустанавливать.

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