Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как сделать рандом в питоне?

Лучший ответ:
import random
round(random.uniform(1,5),2)
Это будет выдавать десятичную дробь в диапазоне от 1 до 5, с двумя цифрами после запятой.

(ОТРЕДАКТИРОВАНО) после небольшой проверки выяснилось что данный код иногда (редко будет выдавать) числа такие 1.1 или 2.3 что бы избежать этого написал вот такую функция которая всегда будет выдать случайное число с двумя цифрами после запятой.
import random
def get_random(a=1,b=5):
    while True:
        number = round(random.uniform(a,b),2)
        if len(str(number).split('.')[1]) == 1:
            continue
        else:
            return number

Худший ответ:
Ты мог генерить целые случайные числа в диапазоне от 100 до 500 и потом сдвигать запятую влево на 2 знака.

А вот фильтровать все которые не равны целым величинам ... эээ такое себе. Ты не получишь линейное распределение вероятностей. Короче это уже не рандом. Лохотрон.
Вопрос: Что означает этот синтаксис handleChange = (name) => ({ target }) => {}?

Лучший ответ:
https://learn.javascript.ru/arrow-functions-basics

Функция возвращает функцию

Худший ответ:
handleChange возвращает функцию с изменением стейта.

используется скорее всего как то так:
<input onChange={() => handleChange('name')} />

в handleChange ты передаешь имя свойства в state во второй функции target инпута
Вопрос: Что означает символ % в операторе if?

Лучший ответ:
В гугле забанили?
Остаток от деления это

Худший ответ:
Может так понятней будет
numbers = [1,2,3,4,5]
for counter, item in enumerate (numbers):
    print("counter",counter,"    item",item,"      counter % 2=",counter % 2)
    if (counter % 2 == 0):
        print (item)
print("print(counter)",counter)

counter 0     item 1       counter % 2= 0
1
counter 1     item 2       counter % 2= 1
counter 2     item 3       counter % 2= 0
3
counter 3     item 4       counter % 2= 1
counter 4     item 5       counter % 2= 0
5
print(counter) 4
Вопрос: Как заменить все вхождения на различные значения?

Лучший ответ:
Очень просто. Решение «в лоб»:

Разложить число на цифры (в виде массива)
Разложить шаблон на массив кусков (где разделителем будет "#")
Убедиться, что количество цифр и «дырок» - совпадает
Склеить два массива, чередуя элементы (в цикле или нативной функцией)

Как по мне, никакой из пунктов не может вызвать трудности даже у начинающего программиста.

P.S. Есть варианты решения лишь с одним массивом или вообще без них.

Худший ответ:
Очень просто. Решение «в лоб»:

Разложить число на цифры (в виде массива)
Разложить шаблон на массив кусков (где разделителем будет "#")
Убедиться, что количество цифр и «дырок» - совпадает
Склеить два массива, чередуя элементы (в цикле или нативной функцией)

Как по мне, никакой из пунктов не может вызвать трудности даже у начинающего программиста.

P.S. Есть варианты решения лишь с одним массивом или вообще без них.
Вопрос: Логотипы на QR-кодах, какого размера?

Лучший ответ:
Лучше всего никакого. Это в очередной раз маркетологическая хрень побеждает здравый смысл.
QR устроен так, что в нём избыточная информация, это сделано специально для надёжного считывания, например, когда попала грязь, или уголок кода оторвался, или камера не может как следует сфокусироваться, и т.д.
Чем больший кусок вы заслоните логотипом, тем меньше останется избыточной информации. Т.е. ваш QR ещё будет считываться в идеальных условиях, но чуть какой-то дефект или помеха - не считается. А ведь люди старались, изобретали, как закодировать именно с избыточностью. Если бы они знали, что их непростую интеллектуальную работу вот так маркетологи будут спускать в унитаз, то они бы заранее оставили пустое место в середине - вперёд, ребята, лепите логотипы вот сюда.

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

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

Худший ответ:
Ноль - это хорошо. Отсутствие ошибок. Если ты хочешь возвращать какие-то
статусные коды из функции main - то ее надо объявить как-то так

int main(int argc, char **argv) {
   return 555;
}
И тогда операционка увидит 555 и можно делать какую-то логику принятия решений. В Windows кажется переменная %errorlevel%  отвечает за статусы.
Вопрос: Как учить C++ если будешь знать С?

Лучший ответ:
Знающему C учить C++ так же, как незнающему C. Это разные языки.

Худший ответ:
то с какого аспекта или момента учить C++
Нет такого момента или аспекта. Просто учишь и все. Языки похожи по синтаксису. Но начиная с каких-то 80х
годов С++ стал отдельным форком и сегодня это два разных языка которые не должны быть под-множествами
друг друга.  Кроме С++ еще придется изучать и библиотеки STL/Boost и это отдельная тема.
Вопрос: Локальный порт это 8080 или 3000?

Лучший ответ:
Все порты - локальные.

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

Лучший ответ:
У магистральщиков, вестимо - крупных провайдеров.

ЗЫ: Про СОРМ не забудь :)

Худший ответ:
У вышесточщего провайдера имеющего соответствующую лицензию
Для примера в городе открываешь провайдера, нужен конал связи
Чаще всего это РТК (ростелеком) делаешь у них запрос на тех условия подключения и т.д.
Мтс, биллайн и т.д. Также дают канал
Платишь ежемесячно и все
Выше написали за СОРМ, ну это не по теме но СОРМ согласовать надо с ФСБ, и потом ставить, или если вышестоящий провайдер аутСОРМингом занимается, можешь купить эту услугу, опять же с разрешением ФСБ и т.д.
Вопрос: Как правильно построить взаимодействие своей «внутренней» базы товаров с движком интернет-магазина?

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

А в чём сложность? Ставите тот же Mysql, складываете в него товары, потом подключаетесь, берёте данные и выводите.

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

Когда каталог обновляется, он экспортит эти таблицы в xlsx и присылает мне -> я выгружаю из движка интернет-магазина текущий каталог в csv -> загоняю в Excel, вручную правлю -> загружаю назад.

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

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

Еще есть вариант, что эту Excel заказчик формирует из 1C, тогда логично разобраться с импортом из него прямо в базу магазинов.

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

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

Код который внедряется в какой-то процесс "посередине"

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

Код который внедряется в какой-то процесс "посередине"
Вопрос: Как продолжить цепь запросов в php?

Лучший ответ:
Если отбросить всю не относящуюся к вопросу чепуху, типа каких-то "внутренних запросов"(?!), то ответ сводится цепочке вызовов.

Худший ответ:
Может, конечно поздно, но вдруг 

Смотри  вкладку "пример из реальной жизни"
https://refactoring.guru/ru/design-patterns/builde...
Вопрос: Первая работа. Стоит ли идти в такую компанию новичку?

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


Как часто вообще используются CMS в создании сайтов компаниями? 

Практически все небольшие компании делают свои сайты/интернет-магазины при помощи CMS.

Более крупные - практически никто не использует CMS (либо используют своё узкоспециализированное решение).


 И вообще имею такой стереотип, что CMS - это не серьезно.

Смотря с какой стороны смотреть:

С точки зрения бизнеса - вообще насрать, каким именно образом решена задача, если она решена и даёт пользы больше, чем убытков.

С точки зрения твоего личного роста как инженера - да, CMS - это тупиковая ветвь.


И еще: на что стоит обратить внимание на первой работе? 

Узнавать заранее, как будет устроена работа и как тебя будут оценивать - это нормально.
Просить прибавку к зп - это нормально.
Иди с вопросами к твоему руководителю, если тебе не нравится работать в той команде/над тем проектом, на который тебя поставили - это нормально.
Менять работу, если новое место работы обещает более интересные для тебя условия - это тоже абсолютно нормально.


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

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


Как бы вы поступили?

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

Если с деньгами точно проблем нет (есть родители которые закидывают деньги или ещё какой спонсор) - можно попробовать ещё какое-то время потратить на учёбу (при работе фуллтайм времени и сил будет уже меньше)

Худший ответ:
99 процентов всей верстки это цмс
Вопрос: Как запретить игрокам общаться по дискорду?

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

Худший ответ:
Никак. Вы не можете запретить другим людям пользоваться другими программами.
Вопрос: Mikrotik: l2tp client -> только для устройств с определённых IP. Как?

Лучший ответ:
Роут для впн выставите больше 2х...
Остальное - маркировка трафф
Маркируем, в мангл, потом в роуте задаем куда

Погунлите - микротик, обход блокировок. Принцип тот же

Худший ответ:
создаем адресный лист
/ip firewall address-list add address=192.168.88.200 list=VPN-USERS

создаёте дефолт маршруты с маркировками для VPN, gateway указан для примера, можно привязать в интерфейсу LT2P
/ip route add dst-address=0.0.0.0/0 gateway=3.3.3.3 routing-mark=VPN

на входе через mangle вешаете routing-mark по нужному src-address
/ip firewall mangle add chain=prerouting src-address-list=VPN-USERS action=mark-routing new-routing-mark=VPN

на выходе в nat делаете src-nat/masquerade по маркировке
/ip firewall nat add chain=src-nat action=masquerade routing-mark=VPN
Вопрос: Как сделать docker pull на определенный диск?

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

Тогда sudo ls -l /var/lib/dockerпокажет
типа /var/lib/docker -> /path/to/var-docker

Худший ответ:
no space left on device Почистить место на диске
Вопрос: Какая cms лучше всего подойдет для создание более 100 000тыс. страниц?

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

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

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

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



Худший ответ:
*Почитайте это*
Вопрос: Для получения визы должно быть профильное образование?

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

Худший ответ:
Виза это вообще не про ИТ. Спрашивать и искать информацию нужно непосредственно в посольстве той страны, куда вы собрались.
Политика получения визы может меняться из года в год, и то, что было 5 лет назад, на сегодня может вообще не работать.
Визовый офицер вас может завернуть даже не объясняя причин и будет в своем праве.
Опять же, смотря какую визу ты хочешь. Чтобы новичку без опыта получить визу, нужно быть исключительным и самостоятельным.
Вопрос: Как там у линукса со сменой темы dark/light?

Лучший ответ:
Для меня важно уметь менять тему одним чекбоксом в системе
А что, в винде такое есть? И прям все-все-все приложения (а не только из стора от MS) понимают? CAD различные, системы проектирования? Или как обычно "система - это MS и мой редактор"?

Худший ответ:
Deepin linux имеет две темы, можно руками переключать. Интерфейс -  закос под мак ос. Посмотрите может вам подойдет.
Вопрос: Почему не отображаются данные на странице, а вылазит ошибка?

Лучший ответ:
Что, "posts.map is not a function"? Давайте взглянем, что такое posts:

const [posts, setPosts] = useState([]);
Изначально это массив. У массивов map есть. А раз воспользоваться map'ом всё-таки не удаётся, значит, где-то вместо массива в качестве значения posts устанавливается какой-то мусор. Смотрим, где вызывается setPosts:

setPosts(fetchReq);
Окей, а что такое fetchReq? Давайте узнаем:

const fetchReq = fetch(`${fetchURL}/posts`).then(res => res.json());
Надо же, это промис. Зачем вы промис кладёте туда, где нужен массив? У промисов метода map нет. Надо дождаться выполнения этого промиса и передавать в setPosts результат. Исправляем:

fetch(`${fetchURL}/posts`)
  .then(r => r.json())
  .then(setPosts);

Худший ответ:
К моменту рендера списка у вас еще не получен массив. 

Делайте сначала проверку на заполненный массив, и только после пробегайтесь по нему map-ом. 
posts && …
Вопрос: Что делать если нет опции смены/установки приоритета boot на USB в меню Bios/Uefi?

Лучший ответ:
Да все уже с Legacy, нет его в ноутах. Только EFI. И соответственно флэшка должна быть с EFI. Флэшку с EFI система сама увидит в бут менеджере, если не видит - это не EFI.

Худший ответ:
При загрузке нажать F12, откроется boot menu, после выбрать загрузочное устройство. На первом же вашем скрине данная настройка указана активированной.
Вопрос: Как вычислить мат.выражение представленное в виде дерева?

Лучший ответ:
Можно пройтись поиском в глубину (DFS) до последнего узла и дальше двигаясь в обратном направлении выполнить вычисления.
1. вначале мы находим самую нижнюю ноду, а она точно цифра (в противном случае смысла нет)
2. делаем шаг назад и выполняем вычисление
3. редактируем имеющуюся структуру "укорачивая" дерево (то есть вместо знака действия у нас теперь цифра)
4. делаем так пока не получим дерево состоящее только из корня, которое и будет решением.

Попробовал написать решение твоей задачки, код по ссылке
https://godbolt.org/z/PzWjYjvfz

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

Лучший ответ:
@dp.message_handler(content_types=['photo'])
async def cmd(message):
    if message.chat.type == "private":
        # действие
   else:
      await message.reply("Пользуйтесь ботом в личных сообщениях!")

Худший ответ:
Можно проверять по ID чата. Если ID пользователя совпадает с ID чата, то это лс

async def echo(message):
    if message.from_user.id == message.chat.id:
        #что-то
    else:
       #что-то
Вопрос: Будет ли хорошим подспорьем сертификат DBA для бекенд-разработчика?

Лучший ответ:
DBA - это не "строчка в резюме", это очень сложная и обширная область, которая требует очень изнурительного изучения (если мы, конечно, не говорим про курсики "dba senior за 7 дней!!!").

Мой совет - идите, возможно, станете DBA, а это гораздо почётнее, выгоднее и уважаемее, чем бэкэнд-разработчик.

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

Лучший ответ:
Вопрос, нужно ли что-то предпринимать в этой ситуации?
Чекнуть конкурентов в органике по этому запросу, посмотреть, как они решили эту задачу.

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

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

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

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

Array.prototype.add_save = function( data ) {
    this.push(data) //вставляем данные в массив
    save_function(data) //вызов вашей функции сохранения данных
}

Потом просто вызываете на этом массиве метод save_add, передавая в него требуемые данные, и все будет работать.

my_array.save_add(data)
Вопрос: Как реализовать проброс видеокарты под множество виртуальных машин?

Лучший ответ:
Такое возможно только с серверами и видеокартами nvidia серверными типа a100
Вот полистай, вот настройка vgpu у vmware

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

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

На каждую специальность есть стандарт. ФГОС. Этот стандарт в открытом доступе.

Зачастую можно запросить более конкретный учебный план и узнать, чему будут учить на конкретной кафедре по конкретной специальности.

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

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

На каждую специальность есть стандарт. ФГОС. Этот стандарт в открытом доступе.

Зачастую можно запросить более конкретный учебный план и узнать, чему будут учить на конкретной кафедре по конкретной специальности.

К моменту когда определитесь с кафедрой и специальностью, уже можно в профильных сообществах или даже выпускникам задавать вопросы и там уже могут ответить точнее.
Вопрос: Как реализовать премодерацию запросов добавления/изменения в БД?

Лучший ответ:
Очевидное - самое простое.
А очевидное решение, создать таблицу черновиков (или как лучше придумаете ей название), куда будут попадать все новые или изменённые записи в ожидание модерации. Как они пройдут модерацию, они добавляются или изменяются существующие записи.
Можно ещё дальше пойти и развить её так же для истории, то есть все записи в таблице черновик остаются, но привязываются к нужной записи и человек может посмотреть историю всех изменений.

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

Какая тут схема?
Вопрос: Как работает автогенерация плейлистов?

Лучший ответ:
Я-бы не спешил обзывать это явление искусственным интеллектом. Может быть просто кластеризация?

Худший ответ:
1. Это вообще не искусственный интеллект
2. Просто выделяешь для каждого трека признаки (какие люди его слушают, жанр, настроение, язык вокала, ещё что-то) и собираешь в такие подборки.
Есть куча разных методик

Статей в интернете полно, как подобное устроено.
Просто гугли "Как устроены рекомендации в Netflix/Spotify/яндекс музыке"
Вопрос: Как реализовать Алгоритм Решето Эратосфена от определенного числа, до данного?

Лучший ответ:
Решето Эратосфена всегда начинается с 2. Его принцип - на каждом шаге находим следующее невычеркнутое число, оно является простым. Для построения массива от 900000000 до 1000000000 необходимо вычеркнуть из этого массива все кратные простым числам от 2 до 500000000, а для этого надо эти простые найти.

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

const int BE = 900000000;
const int N = 1000000000;

std::vector<int> small_primes;

bool DivisibleBySmallPrimes(int x) {
	for (int i = 0; i < (int)small_primes.size() && small_primes[i]*small_primes[i] <= x; ++i) {
		if (x % small_primes[i] == 0) return true;
	}
	return false;
}

void ComputeSmallPrimes() {
	int n = sqrt(N);
	for (int i = 2; i <= n; ++i) {
		if (!DivisibleBySmallPrimes(i)) {
			small_primes.push_back(i);
		}
	}
}

void ComputeSieve() {
	ComputeSmallPrimes()
	std::vector<bool> sieve(N-BE+1);
	std::vector<int> primes;
	for (auto &x : small_primes) {
		int i = (BE-1) - (BE-1) % x + x;
		while (i <= N) {
			sieve[i-BE] = true;
			i += x;
		}
	}
	for (int i = BE; i <= N; ++i) {
		if(!sieve[i-BE]) {
			primes.push_back(i);
		}
	}
}

upd:
ComputeSmallPrimes можно переписать простым решетом - будет еще быстрее.
Вопрос: Как перейти с mysql на elasticsearch?

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

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

Худший ответ:
Хранить в elasticsearch важные данные в качестве основной бд не желательно, хотя и возможно, думаю. Я бы вам порекомендовал во-первых пытаться оптимизировать mysql, а там где тяжёлые запросы, к примеру много join-ов, группировок, сортировок и т.п. индексировать в es и там уже осуществлять поиск. В любом случае вам придется делать эти тормозные запросы в mysql, но вы их будете делать только на этапе индексирования es