Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как получить доступ к свойству объекта window, до загрузки страницы?

Лучший ответ:
window.addEventListener('DOMContentLoaded', () => { ... });

Либо порядок скриптов меняйте, конечно, если window.ZC_CONFIG устанавливается синхронно.

Худший ответ:
Если установка window.ZC_CONFIG происходит асинхронно, можно как-то так: 

async function setZcConfig () {
  window.ZC_CONFIG = 'some_value'
}

const setZcConfigPromise = setZcConfig()

module.exports = async (page, scenario) => {
  await page.evaluateOnNewDocument((localStorageData) => {
    await setZcConfigPromise
    // some code
  }
)
Вопрос: После переустановки Windows загрузка процессора под максимум?

Лучший ответ:
ищи кто и что, дыма не бывает
вот это
https://processhacker.sourceforge.io/
или классика Process Explorer

я так когда-то при*уел от хромовской SOFTWARE REPORTER TOOL: криворукие индусы написали код - комп запускал штук 20их, только успевал смотреть как растет температура и вырубался комп

Худший ответ:
Еще можно отключить sysmain, windows search, обновления. 
И проверить
Вопрос: Выдаёт ошибку AttributeError: 'NoneType' object has no attribute 'get' почему и как это исправить?

Лучший ответ:
вызов функции get() пытается дернуть нусуществующий ключ
скорее всего здесь
"link": HOST + item.find("a", class_="js-item-slider").get('href'),
пытается получить значение по ключу 'href' но такого ключа нет, так как там None

Худший ответ:
item.find("a", class_="js-item-slider")
У вас скорее всего вот этот вызов возвращает None. А у него нет метода .get
Вообще в таких случаях нужно полностью приводить трейс-бэк, чтобы нам не приходилось гадать на кофейной гуще.
Вопрос: Какие фундаментальные труды можно почитать по основам веб-технологий?

Лучший ответ:
Вот отличное видео на эту тему
https://www.youtube.com/watch?v=BcmUOmvl1N8

Худший ответ:
По клиент-серверной архитектуре мне нравится книга "Компьютерные сети: Нисходящий подход". Как раз читаю её вторую главу. Книга про сети в целом. Состоит из следующих глав:
Первая глава - вводная. Можно почитать её бегло. 
Вторая глава как раз по нашей теме - протоколы http, ftp и др. 
Остальные главы тоже лучше прочитать. Хотя бы бегло.
Вопрос: Как написать программу, выводящую следующий список: ['a', 'bb', 'ccc', 'dddd', 'eeeee', 'ffffff', ...]?

Лучший ответ:
В списке 26 элементов, их индексы от 0 до 25.
Когда в цикле переменной i присваивается значение 25, то abc[i+1] пытается получить элемент с индексом 26, которого не существует в списке.

Но, помимо этого, решение в целом не правильное.
Я бы сделал как-то так
abc = 'abcdefghijklmnopqrstuvwxyz'
ls = [char*count for char, count in enumerate(abc, 1)]
print(ls)

Худший ответ:
abc = 'abcdefghijklmnopqrstuvwxyz'
ls = []
for i in range(0, len(abc)):
    ls.append(abc[i] * (i + 1))
print(ls)

Есть такой вариант
Вопрос: Скажите, пожалуйста, что за формат pdf?

Лучший ответ:
https://medium.com/octopus-labs-london/downloading...
Содержимое PDF кодируется в base64, пользователю передается ссылка вида <a href="data:application/pdf;base64,[base64]" download="file.pdf"> - и браузер послушно открывает содержимое этого файла у него на компьютере или предлагает его сохранить. 
Заставить браузер тут же печатать PDF вряд ли получится, но пользователи умеют делать это сами, в конце концов.

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

передавать его на фронт – бред (если не знаете как с ним работать).
обычно на фронт передается только ссылка на скачивание. а если вам надо отобразить сам документ – есть варианты.
Вопрос: Как убрать адрес из спама навсегда?

Лучший ответ:
сообщение->мой домен->редирект r01->гугл(спам)
Последовательно отмечать такие сообщения как «не спам» — возможно, со временем поможет.
Если не помогает или не хватает терпения, то в настройках Gmail создать фильтр «не помещать в спам» письма, содержащие в Кому полный адрес в своём домене или его часть (например, только домен). Если вы, как и я, предпочитаете упрощённый интерфейс Gmail, то создание такого фильтра в нём недоступно и для этого надо временно переключится на «стандартный». Письма будут помещаться во Входящие, но в своём большинстве будут содержать пометку, что не помещены в спам из-за соответствующего фильтра. Эту пометку убрать нельзя и явным образом дать понять Google, что это не спам тоже нельзя.
Можно также попробовать воспользоваться двумя ящиками в Gmail. Пересылать из своего домена на первый. Для него настроить ничего не помещать в спам, пересылать на второй и удалять, и больше в него не заходить. По моему опыту доля попавших в спам писем во втором (основном) ящике при таком двойном перенаправлении будет меньше, а их уже можно попробовать помечать как не спам вручную для обучения Google.

Худший ответ:
Последовать рекомендациям одного из многочисленных гайдов по настройке почты. И не слать спам, разумеется.
Вопрос: Какие коммерческие программы посоветуете для создания образа линукс на bare metal?

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

Худший ответ:
Dd наше все сто лет в работе ни одного бага
Вопрос: Как можно осуществить шифрование трафика?

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

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

Худший ответ:
Ну либо SSL, либо просто отправлять из приложения на сервер в зашифрованном виде, а на сервере расшифровывать. Что именно не понятно?
Вопрос: Можно ли обойтись без php, для создания логина?

Лучший ответ:
Вы можете отправлять html форму хоть на что, на nodejs, на go, на c++, на websocket, главное чтобы это принимало данные и обрабатывало как надо.
И на перле можно, есть модуль для nginx, экспериментальный правда

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

Можно также привязаться к какому либо сервису с логином - например к VK или Google
Вопрос: Вёрстка двух блоков разной ширины с разными фонами до краёв экрана — как?

Лучший ответ:
Так нужно?snippet
https://codepen.io/web-tech/pen/zVRxeW

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

Лучший ответ:
Кажется, уже десятки раз задавался подобный вопрос и здесь, и на других сайтах.
https://www.google.com/search?q=nginx+virtual+host

Худший ответ:
Можно сделать отдельный серверный блок, который будет обрабатывать соединения по IP-адресу, а не домену. Настраивается аналогично.
Вопрос: Оцените вёрстку?

Лучший ответ:
Отсутствие отступов в input'ах - автоматически лишает вас рабочего места. Я бы даже после такого на порог вас не пустил.

Худший ответ:
))) Ну ты попал))) 

1)<link rel="favicon.ico" type="image/x-icon"> нету href <link rel="icon" type="image/png" sizes="16x16" href="./favicon.png">

2)  А зачем туда подключать все? Скриншот

3) на 320px горизонтальный скролл + иконки в блоке about, не по центру! И по идеи это совсем другой блок! 

4) Форма обратной связи, уехала в низ на пол экрана!  
Меньше 900px горизонтальный скролл
Так же, в textarea полосы скрола! 
Зато фавиконка подключени правильно

5) И не совсем хорошо писать css в html style! Засунь все в 1 css фаил, и подключи на  всех страницах
Вопрос: Как полностью безопасно работать с деньгами?

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

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

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

Худший ответ:
Ну так создайте пользователя в AD и с помощью GPO добавте его локальные администраторы на ПК.
Задача вполне тривиальная, мануалов на эту тему много. Вот например первая же ссылка
Вопрос: Стоит ли изучать python по книге Лутца 5 издание, когда вышел python 3.9?

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

Худший ответ:
Нету большой разницы.О новом вы можете спокойно прочитать в Google
Вопрос: Как определить на ранних стадиях что в PostgreSQL что-то начало сбоить?

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

Худший ответ:
Если носитель информации - ненадежный - то к нему добавляют дополнительные коды типа Хэмминга которые восстанавливают поврежденные биты после сбоя. На 99% нормальных носителей это реализовано аппаратно. Если твоя флешка сбоит или не очень надежна то желательно купить новую. Если ты всё таки хочешь наковырять золота в навозе - посмотри в сторону утилиты par2 manpages.org/par2 она на десяток процентов увеличит размер твоих бэкапов но будет гарантировать фиксацию нескольких бит если такое будет. Она работает поверх обычной файловой системы и ее коды контроля будут просто дополнительными файлами рядышком.
А проверить восстановистя ли бэкап в принципе - невозможно. Как в той философской мысли - нельзя узнать какой пудинг пока ты его не съел. Поэтому и гарантировать целосность бэкапа на логическом уровне можно только проведя симуляцию его полного восстановления в БД.
Вопрос: Какую книгу прочитать по C?

Лучший ответ:
во первых между разница гиганская C и C++ потому что это два разных языка
какие книги читать:
Язык программирования C обязательно к
прочтению
Head First C не скучная книга по Си
Язык Си на примерах
Программирование на C в примерах и задачах

P.S если вы где-то услышали что перед изучением си++ надо учить cи это не так, лучше выучить c++ потом выучить Си

Худший ответ:
Спецификация Стандарта C18 -- 540 страниц.
Спецификация Стандарта С++20 -- 1900 страниц.

Разница есть? :-D
Вопрос: Возможно ли в linux системными насторйками ограничить пиковую скорость передачи UDP (per-socket)?

Лучший ответ:
А вот на ноуте с USB сетевой картинка рвалась и обнаружились потери пакетов.
т.е. потери пакетов обнаружились не на сервере, не на коммутаторах, а уже на конечном устройстве.
Ну и решайте проблему с конечным устройством тогда. Сервера и сети не должны решать проблемы индейцев.
стандарт 1000Base-T это вообще говоря не про скорость, а про принцип кодирования и передачи информации по физической среде (4 медные пары). т.е. это больше про совместимость по уровням сигналов. 
Да, используя эту среду теоретически можно передать и получить (одновременно) поток фреймов в 1000Мбит/с. 
Но если у ноута тормозной чипсет и он может передать максимум 150Мбит/с, то все равно в характеристиках его сетевухи будет 10/100/1000. Ведь 150 больше 100, а промежуточных от 100 до 1000 форматов нет.
Когда идет TCP поток, то flow control встроен в протокол и там проблем не возникает
с UDP все хуже. тут flow control обычно выносится дальше на уровень приложения.
В случае мальтикаста вроде таких механизмов из коробки нет. Можно только подписаться на канал с худшим качеством. 
Кстати, ваш IGMP снупинг действительно может не работать или быть неправильно настроен. Или вы правда вливаете в ноут больше 10 потоков по 10 метров?

Худший ответ:
Настройте шейпер для IPTV трафика.
Вопрос: База данных фиас и гар фиас в чём разница?

Лучший ответ:
И да и нет, ФИАС и ГАР по сути разная интерпретация одних и тех же данных
В ФИАС только административно-территориальное деление, в ГАР административно-территориальное и муниципальное. Отличаются уровни в иерархии объектов. В ГАР больше дополнительных данных. При всем при этом guid объекта в ФИАС и ГАР совпадает

Худший ответ:
Если коротко, то ГАР - это наше будущее, а обычный ФИАС оставлен для облегчения перехода. В новом формате серьёзно поработали над нормализацией данных, избавились от повторов и пришли-таки к использованию целочисленных ключей вместо GUID.

В настоящее время адресная информация размещается в двух форматах:
- ФИАС (старый формат, который содержит сведения об адресах в структуре административно-территориального деления);
- Государственного адресного реестра (ГАР - новый формат с информацией об адресах в муниципальном делении).
Ведомство прекратит представлять файлы выгрузки адресных сведений в формате ФИАС в августе 2021 года.
Взято из источника.
Вопрос: Работает ли jumbo frame на linux?

Лучший ответ:
Пытался с помощью ethtool увеличить фрейм, выводиться сообщение о невозможности
А зачем? Размер пакета задаётся на интерфейсе в MTU

Худший ответ:
Пытался с помощью ethtool увеличить фрейм, выводиться сообщение о невозможности
А зачем? Размер пакета задаётся на интерфейсе в MTU
Вопрос: Как войти в UX/UI?

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

В подспорье - https://andreasbm.github.io/web-skills/
Пункт 10й  - Design & UX. Там кратко описана программа(основная база, которую должен знать каждый дизайнер), которую юзают большинство школ. Далее прокачиваете навыки Illustrator, Figma, Adobe XD, и других продуктов дизайнеров или проектировщиков.

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

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

Худший ответ:
Сохраняйте после первой выборки данные в кеш. Если кто-то(вы, например) добавит новый маршрут в БД, то очищайте кеш.
Вопрос: Как передать в шаблон компонента данные?

Лучший ответ:
в шаблоне компонента добавляем файл .parameters.php
в этот файл вставляем:
$arTemplateParameters = [
    "MENU_TITLE" => [
        "NAME" => "Заголовок"
        "TYPE" => "STRING",
    ],
];
после этого в настройках компонента появится поле "Заголовок", а в шаблоне можно достать заполненное поле через $arParams["MENU_TITLE"]

Худший ответ:
Смотрите содержимое $arParams. Оно будет таким:
Array(
      ...
      "MENU_TITLE" => "О гостинице"
      "~MENU_TITLE" => "О гостинице"
      ...
    )
Вопрос: Как работает for of в javascript?

Лучший ответ:
For of просто перебирает элементы и привязывает ко всем кнопкам событие клик, и все он один раз заработал привязал событие к кнопкам и всё, и уже когда на какую то кнопку нажали вызывается анонимная функция в контексте для конкретной кнопки.
forof просто цыкл как и for и смысла он тут не меняет, и вообще можно было бы сделать более красиво с for использую event или this пример. for(let i =0; i<keys.length; i++){
keys[i].onclick = function() {
display.textContent +=this.textContent;
  }
}

Худший ответ:
Гугл бан?
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Вопрос: Какой ЯП для Десктопа?

Лучший ответ:
C#. Идеальный язык для всего.
Можно Qt, но это кресты, может быть сложнаа.Как вариант рассматривал Delphi.
Мертво.

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

Лучший ответ:
Сталкивался с похожей ситуацией.
Речь идёт о просмотре общей категории (Шкафы купе), да?

Есть там глюк с определением памяти, выделенной для PHP.
В последних версиях исправлено. Но может, у Вас не последняя.
Если разбираетесь в PHP обратите внимание на это:
forum.virtuemart.net/index.php?topic=136025.msg517...
Если не разбираетесь, позаботьтесь либо об обновлении VM в целом, либо об обновлении данного участка кода.
Позаботьтесь - имею в виду, привлеките того, кто хорошо разбирается.

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

Лучший ответ:
про основые читайте
artimovich.com/#boock

на физлицо можно принимать платежи картами с помощью яндекс деньги

тех документация  и там  есть емейл поддержки
https://money.yandex.ru/docs/wallet

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

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

>> Как решит вопрос со счетами, на которые переводятся деньги, при их отсутствии и соответствующей регистрации

Если речь идет о приеме денег на счет юрлица в РФ, то внчале юрлицо, счет, договор с платежной системой - а потом уже мерчант. Зачастую есть "тестовый мерчант" который работает с тестовыми картами и реальные деньги не гоняет, а есть рабочий. 

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

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

Худший ответ:
Посмотри конкурентов в ТОПе по тематике Заработка в интернете. Но смотри не на вёрстку (хотя он тоже важна), а на качество контента, уровень SEO-оптимизации, авторитетность авторов контента. Сделаешь лучше по всем параметрам - будешь 30 тыс. рублей ежемесячно иметь легко. Ну и бюджет/время на все это дело нужны. В это тематике как минимум 200-300 тыс. рублей + от 1,5 лет работы.
Вопрос: Как отправить форму на почту помощью JS?

Лучший ответ:
Никак, js не работает с email нужно делать запрос на бекенд ajax а там уже отправлять email

Худший ответ:
Письмо отправляется серверным языком.
Вопрос: Как проверит количество цифр в числе с помощью if else?

Лучший ответ:
let a = prompt("Введите целое число");
let text = '';
let num = Math.sign(a);
if (!isNaN(num) && a) {
  if (num === 1) {
    text = 'положительное число';
  } else if (num === 0) {
    text = 'число равна 0';
  } else if (num === -1) {
    text = 'отрицательное число';
  }
  alert('Число: ' + a + ', ' + text + ', Длина: ' + Math.abs(a).toString().length);
} else {
  alert('Не число');
}

Худший ответ:
Видимо  так.  Обратите внимание на проверку на число и вычисление разрядов в случае отрицательного числа .
Ну  и до кучи на проверку на -0
let a = prompt("Введите целое число");
if (isNaN(a)) {
  alert(`Не является числом`);
} else {
  var digit = a.toString();
  var sign;
  if (a > 0) {
    sign = "положительное число"
  } else if (a < 0) {
    sign = "отрицательное число"
    digit = digit.substring(1);
  } 
 else if(a == -0){
  	sign = "число ровно 0"
    digit = digit.substring(1);
  }
  else {
    sign = "число ровно 0"
  }



  alert(`Число ${a} ${sign} и содержит следующее количество разрядов: ${digit.length}`);

}
Вопрос: Как в C++ или Си вставить данные в файл без загрузки всего файла в буффер?

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

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

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

Учебников масса - начиная с классики: 
Вентцель Е. С. Исследование операций: задачи, принципы, методология.

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

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

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

Лучший ответ:
Тут по-моему вообще можно без процессоров, и без контроллеров обойтись. Гуглить пороговый датчик температуры хотя бы. Или термостат. Или термопредохранитель - самовосстанавливающийся или нет. 
Смотря что конкретно вам требуется.
И вообще при таком условии:
if TEMP=50 and TEMP>50
then [разорвать цепь]
else [ничего не делать*]
Можно вообще и без всего этого обойтись - все равно работать не будет, поскольку условие невыполнимо

Худший ответ:
Проще и надёжней купить термостат. Тот же SQ0832-0020
Вопрос: В какой области программирования попробовать себя?

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

Худший ответ:
Спортивное программирование