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

Лучший ответ:
Взять и сделать.

1. Ловишь события "бот присоединился к новому серверу"/"участник зашел на сервер"/"участник вышел с сервера"
2. По приходу события пересчитываешь участников.
3. Выводишь в статус.

Есть конкретные вопросы? Читай документацию, или пиши код и выкладывай сюда, обсудим.

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

Лучший ответ:
Так у того же Spotify API есть. https://developer.spotify.com/documentation/web-api/

Худший ответ:
https://www.jamendo.com/
https://developer.jamendo.com/v3.0
Довольно много музыки (в том числе очень неплохой) на либеральных лицензиях. Но исполнители преимущественно малоизвестные.
Вопрос: Как подрезать слово(переменную) в python с двух сторон?

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

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


Худший ответ:
s = "1-2$3%4 5a"
    s1 = "".join(c for c in s if  c.isdecimal())
    print(s1)
    # Результат: 12345

Ответ легко ищется поисковиком.
Вопрос: Как разделить среду линукса на две?

Лучший ответ:
Логично  сделать 2 учетки. 
соответственно при старте  из скриптов запускаются нужные сервисы как то vpn ssh tunnel докер и прочее
в logout скрипте гасятся

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

Лучший ответ:
Будет ли этот запрос быстрее работать, если для столбца `time` есть индекс?Это покажет EXPLAIN, а ещё лучше - само выполнение запроса с индексом и без него. Скорее всего - будет.

Вообще насколько целесообразно делать индексы на все столбцы, которые есть в условии выборки и в которых много уникальных значений?В этом и заключается смысл индексации.

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

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

OpenVPN это не волшебное что-то, это просто виртуальный сетевой интерфейс с шифрованным каналом.

Когда ты открываешь VPN соединение, то представь что у тебя в компьютере появляется еще одна виртуальная сетевая карточка и виртуальным сетевым шнуром идет в сервер, к которому ты подключаешься. И все остальные участники вашей VPN сети тоже подключаются виртуальным проводом к VPN серверу.

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

Поэтому чтобы не городить такую сложно маршрутизируемую чушь и нужен один VPN сервер.
Поэтому в общем случае - без сервера нельзя.

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

Лучший ответ:
отдельный БТ купить и воткнуть в передний порт ПК
скорее всего глюк из-за того что Вы вифи юзаете...
подключите ПК проводом, протестите с отключенным вифи

Худший ответ:
Воткни отдельный модуль блютуса в USB порт подальше от штатной антенны, а штатный блютус выключи.
Вопрос: Можно ли при end-to-end тестировании ссылаться на другие кейсы?

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

Старайтесь сразу автоматизировать сценарии и пусть тестовая документация генерируется из кода. Гуглите - "тест кейсы как код"

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

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

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

Средства для контроля над контентом для детей предлагают почти все антивирусные программы типа kasperski или drweb (если нужен уклон на русскоязычную аудиторию)

p.s. гугл для своих сервисов предлагает: https://support.google.com/youtubekids/answer/6172...

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

Лучший ответ:
Перепиши в ООП-шном стиле.
https://refactoring.guru/ru/replace-conditional-wi...

А большие строки хранить можно в константах или ресурсах, в зависимости от требований

Худший ответ:
А чем плохо? пользоваться не удобно? строковые константы почти одинаковые, отличаются по чуть чуть?
Лично я не вижу в простом нагромождении switch case ничего зазорного, если это простое описание логики если то... многоуровневая логика уже сложнее (если внутри тоже есть условия) такое читать сильно неудобно и легко пропустить ошибку.

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

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

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

Все другое это другие статьи УК и ГК которые квалифицируются дополнительно.
Вопрос: Как действовать, если SSD завис?

Лучший ответ:
попробуйте сделать с него снапшот а затем создать из снапшота новый вольюм.
Если проблема именно в присоединении (а не в самом ebs томе) то с большой вероятностью данные вы свои получите обратно.
p.s. не забывайте про бэкапы данных, хранящиеся вне рабочих инстансов.

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

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

А для редких (одноразовых) запусков Python действительно может быть быстрее. Это я сам наблюдал в AWS-Lambda.
Функция лямбда которая вызывается 1 раз в сутки должна быть написана на чем-то вроде Python/NodeJS.

Худший ответ:
могу еще добавить что не умеешь измерять скорость программ с виртуальной машиной
Вопрос: Есть ли видимое отличие между 2к 24 и 4к 27?

Лучший ответ:
Скорее, невидимое. На 4K 27'' будете с лупой по всему экрану ёрзать, как азиат из мемасов.
У меня 33'' 2K, очень рекомендую.

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

Если отвечать по своему опыту...
Оптимально брал 
для\от 1080р все что до 24'
для\от 2к все от 24' до 30'
для\от 4к думаю взял бы не менее 35..ну камон, зачем телевизор?
Вопрос: Как настроить батарею ноутбука или это брак?

Лучший ответ:
Это можно как-то настроить или же это брак аккумулятора? Это не брак аккумулятора. Это неисправность ноутбука.
Бракованный аккумулятор не может заставить ноутбук питаться от себя при подключенном адаптере питания, это не в компетенции аккумулятора. Управляет питанием электроника на плате ноутбука, а не аккумулятор. Вот эта схема управления питанием и неисправна.

Худший ответ:
Добрый день, Заводской брак рекомендуем вернуть товар в магазин.
Вопрос: Какой язык хорошо подходит для C#?

Лучший ответ:
Java ближе всех к C# из предложенных.

Другое дело, что институтская программа подразумевает такой низкий уровень владения языком, что на институтском уровне можно все три плюс C# изучить за это время и потом уже специализироваться.

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

питон – офигенный. но, другой.
Вопрос: Как подключить телефон к адаптеру мыши?

Лучший ответ:
Хотя беспроводные мыши соединяются с компьютером через свой usb донгл на частотах 2.4GHz, что и обычный wifi, стандарта на протокол общения - нет, (гуглятся какие то левые rfc), поэтому сначала нужно провести реверсинженеринг.

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

Смысла в этой деятельности нет никакого, дорого, сложно, цели не ясны.

p.s.  другое дело bluetooth устройства клавиатуры/мыши, стандарт определен, радиомодуль смартфона умеет подключаться по bluetooth, а со стороны приложения можно выдавать необходимые сигналы. гуглплей завален приложениями симуляторами клавиатур и мыши.

Худший ответ:
А какие проблемы? Берёте мышь, откручиваете верхнюю часть корпуса, колёсико не совместимо с формой телефона - поэтому выламываете его вместе со стойками, в которые оно крепится, затем синей изолентой, именно синей приматываете телефон к оставшемуся, при этом не закрывая микрики кнопок, а то неудобно будет пользоваться, вот и всё! Ах, да, приложение... Вот тут сложнее, Android Studio даже синей изолентой не примотать, тут гвозди нужны. Гвозди в доме есть?
Вопрос: Отключил биос в биосе на Lenovo ideapad 3?

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

Худший ответ:
многократные нажатия F2 при включении/перезагрузке (это официальный способ, описанный Lenovo - проверено на IdeaPad 5 Pro)
Вопрос: Можно ли в Grafana собирать статистику по запросам NGINX?

Лучший ответ:
Мне кажется надо собирать информацию там где она возникает. Если ошибки сыплет приложение то и оно должно генерить лог файл типа http-statuses.log:
200
403
500
и дальше графана его нормально проглотит и нарисует вам pie-chart или что там еще надо.

А бедный nginx тут вообще не при делах. И не его задача генерить 500-тки. Это ведь ошибка аппликейшена вобщем-то.

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

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

Худший ответ:
статей навалом, все вопросы к яндексу

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

вариант2 "сложный" пропатчить в исходниках дефолтные пути конфигов и скомпилить свой бинарь.
Вопрос: Как считывать путь к файлу без \n?

Лучший ответ:
Использовать r строку r"E:\nrivet.txt", либо экранировать бэкслеш "E:\\nrivet.txt"

Худший ответ:
Экранируй бекслеш: \\
open("E:\\nrivet.txt")
Вопрос: Уменьшает ли деление ssd на лог. разделы его срок службы?

Лучший ответ:
если диск поделен на 2 раздела, на одном ОС установлена, то раздел с системой же перезаписывается чаще 
Механизм трансляции SSD не должен учитывать никаких разделов. Микропрограмма диска не знает как вы его будете использовать, как поделите, и чем и что будете записывать. 
ОС хочет писать в сектор №322223 (который у вас в границах системного раздела), диск скажет ей, что записал, а сам запишет в "сектор" №184639305, установив в таблице трансляции соответствие между ними. При перезаписи реальное расположение данных снова изменится.

если, например, у терабайтного диска свободно только 100гб(системный раздел 100гб), а остальное лежит мертвым грузом, то ресурс tbw можно делить
Да, иметь мало незанятого/неиспользуемого объёма всего ССД плохо. "Заездить" малую часть диска проще, чем весь его объём.

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

Лучше постарайтесь не опускать объём свободного пространства ниже 25%. Чем современнее модель SSD, тем это важнее.

Худший ответ:
Уменьшает ли деление ssd на лог. разделы его срок службы?Нет.
только в пределах одного лог. диска внутренняя оптимизация работаетДиск вообще не знает ни о каких разделах, он тупо данные пишет.
то раздел с системой же перезаписывается чаще, а ssd старается записывать равномерно по ячейкам в расчете на износНет.
Даже если вы возьмете  SSD на 120 гигабайт, на 100 гигабайт запишите фильмы, и не будете их трогать их в течении года, а на остальное место начнете постоянно записывать и удалять данные - все ячейки будут изношены равномерно, даже те на которых записаны данные и они не менялись.

Есть ли в этом какая-то доля истины, стоит ли оставлять ssd одним разделом для увеличения его срока службы?Нет, это полная чушь.
Единственное что стоит делать - оставлять на SSD неразмеченное пространство, если планируется интенсивная работа с ним.  Но делается это не ради увеличения срока службы, а для нормального быстродействия.
Вопрос: Где и как предложить идею нового свойства CSS?

Лучший ответ:
Спецификаций CSS занимается рабочая группа в составе W3C. Там же есть и информация о том, как принять участие / предложить свою идею.

К примеру вы можете создать issue в репозитории рабочей группы.

Однако вам стоит понимать, что работа над спецификацией уровня CSS Grid - это многолетний труд сотен людей для того, чтобы довести её до реального использования. Если вы предполагаете что за всё это время никто из них не додумался до этой идеи - то вам стоит подумать ещё раз.

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

За примерами далеко ходить не нужно: parent selector - мечта уже нескольких поколений разработчиков и тема постоянных вопросов. Однако его нет в спецификации (хотя он был в первых драфтах CSS 3 насколько я помню) и скорее всего не будет. Причину, если интересно, попробуйте поискать сами.

Или, к примеру, такое очевидное, казалось бы, опущение как отсутствие аналога :hover для "stuck" состояния элемента с position: sticky. Ведь его явно не хватает почти любому кто использовал этот стиль. Однако его не будет, о причинах (логичных, но далеко неочевидных) можно почитать в соответствующем issue.

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

Худший ответ:
а https://habr.com/ru/company/netologyru/blog/431616/ не подойдет? вообще я бы на твоем месте смотрел в сторону сахаров вроде less/scss - пишешь как тебе удобно, а потом конвертишь в стандартный css
Вопрос: Как усовершенствовать алгоритм для уравнения Диофанта?

Лучший ответ:
Логика вашего решения вообще непонятна. Какие-то жадные сдвиги одной из двух переменных на 1, да еще и ответ ровно один раз вернется, когда как в задаче надо найти все решения уравнения.

Там по вашей ссылке в задаче есть подсказка: уравнение можно переписать в виде (x-2y)(x+2y)=n

Отсюда получается решение: Перебирайте все делители n, не превосходащие корень. Пусть делитель d, тогда второй множитель будет n/d.

Осталось решить систему линейных уравнений:

x-2y=d
x+2y=n/d

Решается в уме - x=(d+n/d)/2, y=(n/d-d)/4

Отслось только учесть диофантовость уравнения - ответ должен быть неотрицательные целые числа. Значит, надо чтобы оба делителя d, n/d давали одинаковый остаток от деления на 4 и 2. Ну и d<=n/d, но это учтется перебором делителя до корня.

Вот и все решение - циклом переберите делитель до корня, убедитесь, что он и оставшийся множитель дают один и тот же остаток по модулю 4, вычислите x и y и выведите их.

Худший ответ:
Во-первых, у вас в корне неверное решение, хотя бы потому что не соответствует условию:

find all integers
Тут же тест:
solEquaStr(90005) --> "[[45003, 22501], [9003, 4499], [981, 467], [309, 37]]"

Ваше решение вернет лишь первый и единичный случай. Нужно вернуть все.
Поэтому, цикл вайл тут тоже не подойдет. 
Во-вторых, у вас неверное условие итерации. Нужно итерироваться iterator <= sqrt(N) (или pt1 <= sqrtN в вашем решении)
Нецелых чисел может быть очень много, особенно для больших чисел, поэтому по условию нужно вернуть целые числа(isInteger). Если при итерации не будет пары целых чисел, то решений нет, возвращаем пустой массив.

Ну и двигать поинтеры - тоже в корне неверно, нужно искать x,y. 
x = (d + i) / 2;
y = (d - i) / 4

Решение выше вполне норм. Вот что-то похожее.

function solequa(n) {
    const sqrtN = Math.sqrt(n);
    const result = [];
    let x, y, d;
    for (let i = 1; i <= sqrtN; i++) {
        d = n / i;
        x = (d + i) / 2;
        y = (d - i) / 4
        if (Number.isInteger(x) && Number.isInteger(y)) {
            result.push([x, y]);
        }
    }
    return result;
}
Вопрос: Как добавить один коммит в три ветки?

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

Старые бранчи хранить не нужно и смысла откатывать комит, править и потом думать чего будет при мерже в мастер, нет никакого смысла

Худший ответ:
git cherry-pick же
Вопрос: Что происходит в момент добавления нового столбца в БД?

Лучший ответ:
https://ru.stackoverflow.com/q/721985/203622

Вот есть таблица с 1000 записей. В ней 9 колонок. На 3 из них есть индексы.
На такой мелочи без разницы. Перезапись такой крохи штука быстрая.

1. Возможно ли дозапись новой колонки в существующую структуру? Или под капотом происходит полное копирование всех данных в новую таблицу (табличное пространство?)
В зависимости от конкретного alter table add column.
Если вы добавляете add column score float default random() - то будем переписывать всю таблицу и перестраивать все существующие индексы.
Если default с константой и у вас pg11 или новее - то обновим в системном каталоге описание таблицы, а саму таблицу трогать не будем.
Если нет default (т.е. null) - то без оглядки на версию базы просто обновим описание таблицы и сами файлы таблицы трогать не будем.

 2. Происходит ли пересоздание индексов?
да, если выполняется table rewrite

 3. Происходят ли какие-то еще важные для понимания сути работы в БД процессы? 
классическая история частых даунтаймов, что для операции нужна эксклюзивная блокировка. То есть для взятие блокировки не должно быть совсем никого, кто эту таблицу трогал в транзакции, начавшейся до alter table. Если у вас в это время работает какая-то аналитика на 10 минут или pg_dump - будут приключения, нужен statement_timeout

Худший ответ:
я не понял, что имеется ввиду под дозаписью колонки в существующую структуру. если колонка создаётся без указания default-значения, то перезаписи строк в таблице не происходит, меняется лишь заголовочная часть (в которую добавляется информация о новой колонке) и битовая карта null'ов (относительно дешёвая операция). если колонка создаётся с указанием default-значения, то происходит пересоздание (удаление и новая вставка) всех строк в таблице с добавлением нового поля с default-значением (со всеми вытекающими в виде сбросов грязных страниц на диск, частичным вымыванием кеша, генерацией WAL, запусками автовакуума). индексы при этом также перезаписываются в моменты проходов автовакуума (при вычищении мёртвых версий строк указатели в индексах меняются на актуальные версии строк).
Вопрос: Безопасен ли зараженный отключенный SSD диск?

Лучший ответ:
нет
НО! если на диске руткит, записанный в бутсектор, то достаточно загрузиться с этого диска в режиме legacy boot (а вирус уже загрузит систему, никто и не заметит что порядок загрузки неверный, ун к примеру новый диск вставили) и вирус на ходу.

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

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

Так что безопаснее в любом случае отключать физически. Если паранойя)
Вопрос: Что нужно и на каком уровне знать в математике чтобы читать Дональда Кнута?

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

Худший ответ:
Читайте, он сам говорит что у него задачи от 1 до 5 по сложности. И рекомендут перечитывать книгу