Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: TypeError: TelegramObject.to_python() missing 1 required positional argument: 'self' что делать?

Лучший ответ:
скобок нет после InlineKeyboardMarkup

Худший ответ:
from email.message import Message
from aiogram import types, executor, Dispatcher, Bot
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup

TOKEN=("")
bot=Bot(token=TOKEN)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])
async def welcometxt(message: types.Message):
    markup=InlineKeyboardMarkup()
    but_1=InlineKeyboardButton('Как дела?', callback_data="but_1")
    markup.add(but_1)
    await bot.send_message(message.chat.id, "Привет!", reply_markup=markup)

@dp.message_handler(content_types=['text'])
async def welcometxt1(message: types.Message):
    if message.text.lower() == 'привет':
        await message.reply("Еще раз привет")
Вопрос: Хочу в геймдев, с чего начать?

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

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

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

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

Худший ответ:
Я ленивая жопа,  да и старая уже, но путь виделся таким: C# + Unity, C++ + UnrealEngine. Плюс куча математики, от которой я засыпаю. Установите движки, потыкайте их, посмотрите, ваше/не ваше. Еще можно в Android попробовать, пилить донатные помойки.
Вопрос: Как можно слушать порт у работающей программы?

Лучший ответ:
Зачем все эти сложности, если можно просто установить и настроить fail2ban или систему обнаружения вторжений, если нужна тяжёлая артиллерия. Головная боль - это писать своё решение при наличии готовых и проверенных временем.

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

Лучший ответ:
без толкового ТЗ, результат - ХЗ. 
это аксиома, даже не правило. 

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

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

p.s. Исполнитель за такую штуку платит около 5% бирже (есть правда биржи, которые дерут больше, но я про веблансер сейчас).
Вопрос: Почему при подключении к серверу на VirtualBox не отображается IP клиента, хотя в VMware отображается?

Лучший ответ:
не используйте нат, используйте мост. И все волшебным образом будет хорошо.

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

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

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

proxy API queries
cache API queries

что-то вроде такого 
https://medium.com/@brianhague/caching-api-queries...
Вопрос: Какие порты открыть, чтобы работало apt?

Лучший ответ:
вот это добавить в INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
объясняю - ответы от удаленного сервера должны возвращаться, а ваш общий DROP на INPUT этому препятствует.
правило выше разрешает принимать пакеты УЖЕ установленных соединений - то есть тех, которые вы инициализировали когда отправили свой запрос.

Худший ответ:
Проверьте команду dig ya.ru
Если произошла ошибка (нет нормального IP) - ваш компьютер не имеет доступа к DNS-серверу, на который настроен. Соответственно решайте проблему DNS-сервера (он указан в /etc/resolv.conf в строке nameserver ........).
Вопрос: Как ограничить видимость в локальной сети?

Лучший ответ:
Ну если масками, тогда ставьте на комп1 192.168.1.1/24, на комп2 192.168.1.32/32. Вот так и получится невидимость с комп2 никакого другого компьютера, в том числе и комп1.

Худший ответ:
Настроить фаерволл на комп 1.
Вопрос: Где нужно хранить файл с приватным ssh ключем?

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

Худший ответ:
Читайте: https://www.linux.org.ru/forum/general/13880497
Вопрос: Почему не получается сортировка по array в консоли JS?

Лучший ответ:
Функциия ожидает два аргумента, а передаётся один

Худший ответ:
Метод sort() изменяет сам массив.
Когда вызываете функцию myFunction() без второго аргумента, возвращается массив как есть. Как отсортировали его предыдущим вызовом.

Лучше делать копию массива, и сортировать-возвращать уже её:
function myFunction(arr, str) {
  const sortedArray = arr.slice(); // копия, чтобы не менять оригинал

  if (str === 'asc') {
    sortedArray.sort((a, b) => a - b);
  } else if (str === 'dsc') {
    sortedArray.sort((a, b) => b - a);
  }

  return sortedArray;
}

console.log(myFunction([1, 4, 3, 2], 'asc')); // [ 1, 2, 3, 4 ]
console.log(myFunction([1, 4, 3, 2], 'dsc')); // [ 4, 3, 2, 1 ]
console.log(myFunction([1, 4, 3, 2])); // [ 1, 4, 3, 2 ] без изменений
Вопрос: Какую БД выбрать для парсинга на питоне и использовании в app на котлине?

Лучший ответ:
sqlite
считай это отраслевой стандарт идеальный для мобильных пользователей

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

Худший ответ:
SQLite. Данная СУБД нативно поддерживается как питоном, так и андроидом.
Вопрос: Возможен ли одинаковый МАК адрес на двух устройствах?

Лучший ответ:
сделать можно, но работать будет только 1. 
Внутри широковещательного сегмента допустим только 1 мак. 

Но как вариант роутер!!!! и пусть он раздает на бук на комп и на мобилку

Худший ответ:
Роутер поставьте и раздавайте дальше как хотите)
Вопрос: Что значит ошибка: nothing to commit, working tree clean?

Лучший ответ:
Вы забыли произвести сохранение после внесенных изменений ctrl/s, дальнейшие команды вводите только после этого.

Худший ответ:
Это не ошибка, а лишь констатация факта, что в рабочем каталоге не появилось ничего нового после предыдущего коммита, либо проект не содержит вообще никаких файлов, если вы делаете коммит в первый раз. 
Сомневаюсь собираетесь опубликовать пустой каталог. Скорее всего, вы зачем то пытаетесь заново создать репозиторий, который вы уже инициализировали ранее.
Вопрос: Как можно сделать виртуальную «флешку», которая будет отображаться в проводнике windows 10?

Лучший ответ:
На винде есть родная (не требующая что-то устанавливать) команда subst, запускается с параметрами из командной строки и создаёт "диск" из локальной папки.
Той же командой с другими параметрами можно удалить такой "диск".
https://ru.wikipedia.org/wiki/Subst
Кстати, это способ из 90-х годов, ныне почти забытый.

Можно из Python'а выполнить системную команду.

Худший ответ:
Аналог linux-овму fusefs, но для windows - winfsp.dev
Но он на c++!

чтобы завести это на питоне, нужно писать прослойку, немного устаревшая статья но идея та же (в статье описаны обоа направления python -> c++ и c++ -> python)
Вопрос: Почему Thread работает так?

Лучший ответ:
Это не тред виноват, а замыкания.
Когда ты ссылаешься в лямбде на переменную - к ней обращение происходит по ссылке.
Вот и получилось, что на момент запуска значение i уже 2.
Решить эту проблему можно, если скопировать значение i в новую переменную вот так:
for (int i = 0; i < 2; i++)
{
    var i2 = i;
    Thread thread = new Thread(() =>
    {
        Console.WriteLine("main index: " + i2);
    });
    thread.Start();
}

Худший ответ:
потому что когда отработает Console.WriteLine то i уже станет 2. 

for (int i = 0; i < 2; i++)
{
    var index = i;
    var thread = new Thread(() =>
    {
        Console.WriteLine("main index: " + index);

    });
    thread.Start();
}

//main index: 1
//main index: 0
Вопрос: Есть ли способ пользоваться VPN так чтобы разработчик и сб приложения на моем пк не узнали что я им пользуюсь?

Лучший ответ:
Можно установит ВПН клиент на роутер и завернуть весь траф до этого сайта через ВПН
Можно установить ВПН клиент на виртуалку, сделать её шлюзом для твоего ПК и опять же завернуть траф в ВПН

Худший ответ:
Есть. Не использовать VPN. 

Купить VPS, поставить линух с гуем и ходить на него по VNC. Не слишком будет удобно и будет тормозить, да. Но тут нет VPN вообще :)
Вопрос: Как поставить кастомную скорость Ethernet?

Лучший ответ:
что такое
настройки сетевого порта 1950 на 50

выше головы не прыгнешь, если сетевая карта 1гбит, значит это максимум что она может

Ты можешь в лучшем случае настроить mtu в настройках ОС и уменьшить накладные расходы процессора на обработку пакетов за счет уменьшения скорости при передачи 'мелких файлов' (т.е. список файлов будет медленее передаваться но большие файлы ближе к теоритическому максимуму)

Кстати сетевые карты, способные работать буквально на 1гбит, обычно это не встроенные и дешевые (те могут давать скорость по iperf меньше, например 800мбит) плюс не забываем что скорость зависит от обоих сторон

Ты можешь сделать более стабильную скорость, отключив full duplex (запретив одновременную передачу и прием, они станут последовательными), но все равно гигабит - твой потолок

p.s. существует возможность объединения нескольких сетевых каналов в транк (это по разному называется, в linux - это bonding), один из режимов там как раз суммирование скорости, т.е. 2 сетевые карты дадут 2гбита (каждая сетевая карта свой кабель)

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

Худший ответ:
Это так не работает
подключайте либо несколько сетевых карт в режиме "объединения", либо исользуйте сетевые карты по 5-10Гб
Вопрос: Выбор игрового движка для C++?

Лучший ответ:
Много решений подходит под такие критерии. Смотри, изучай, выбирай.

Cocos2d-x является одним из самых популярных открытых движков. У него большое сообщество и масса поклонников. Есть документация и все нужное для старта.

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

Godot Engine не менее популярен и не менее поднят по возможностям. В чем-то Godot даже будет лучше чем Cocos. Сообщество у него тоже большое. Документация тоже присутствует.

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

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

Urho3D является нареченной Open-Source альтернативой Unity. Движок используется многими энтузиастами. По разным уголкам сети раскиданы многочисленные группы обсуждения этого движка. Документация и примеры у него на месте.

GDevelop - это довольно популярное решение для небольших игр. Документация на месте.

Panda3D - тоже довольно популярное решение со своим сообществом. Документация имеется.

Hazel Engine - один разработчик - один движок. Полностью вся разработка изложена в видео на youtube. Пользоваться можно... на свой страх и риск.

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

GZDoom - современная инкарнация движка DOOM.

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

CryEngine - от Crytek.
X-Ray - движок S.T.A.L.K.E.R.
UE 3 - для коммерческих проектов использовать нельзя.
Lumberyard - от Amazon. Да-да, тот самый.
Banshee Engine - он просто существует.
Diligent Engine - у него есть свое сообщество.
Atomic Engine - на нем тоже выпускают игры.
Lumix Engine - тоже что-то может.
Horde 3D - просто существует и этого уже достаточно.

Худший ответ:
Тут только Unreal Engine
Вопрос: Почему доступ к элементам vector-а O(1)?

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

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

Именно поэтому доступ к любому элементу вектора имеет сложность O(1). Это просто смещение на индекс элемента относительно начала блока памяти с помощью адресной арифметики.

Худший ответ:
То, что вы называете вектором - это связанный список, по своей сути. Вот статья навики. Слово вектор, насколько, я знаю, не используется в контексте классических структур банных. Если же под вектором имеется в виду std::vector, то данный вектор создан на основе динамического массива.
Вопрос: Макинтош или хакинтош?

Лучший ответ:
Если времени свободного много, то хакинтош, а если надо работать вместо танцев с бубном, то мак.

Худший ответ:
Недавно обновился со своего старичка MacBook Pro 2009 до модели 2015 года.
Для повседневной работы очень рекомендую. Retina, Mac OS обновляется до актуальной на сегодня Monterey, все необходимые порты еще присутствуют на корпусе и не трансформировались в USB-C. Нет тачбара, и это для меня тоже плюс, ибо он  потенциальная точка отказа (на MBP 2019 у меня часть бара потускнела и неприятно мерцала). Что немаловажно, можно обновлять SSD и RAM самостоятельно до 1TB и 16GB соот.

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

Как вариант, можно рассмотреть и довести его до ума Mac Pro 5.1, но это уже отдельная, хоть и интересная история.
Вопрос: Будет ли работать vpn для двух пересекающихся сетей?

Лучший ответ:
будет.. чего тунелю то не работать
а вот маршрутизация между сетями - нет)

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

Лучший ответ:
так если ты это сам написал, то делаешь -1 по аналогии

Худший ответ:
Добавляешь класс +1 , и при следующем клике удаляешь класс. Попробуй через classList.toggle
Вопрос: PowerShell выдает ошибку 0x80041001. Как решить?

Лучший ответ:
Ошибку выдаёт не Powershell, а WSL
вот тут рекомендуют переставить wsl
https://github.com/microsoft/WSL/issues/5050#issue...

А логи лучше поискать

Худший ответ:
Ненадо ипользовать WLS, это гамно полное
Ставьте виртуалку, например на VirtualBox, там уже ставьте нужный линукс. Производительность будет на том же уровне плюс\минус
Вопрос: Как сделать свой собственный интернет для дома?

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

Если у тебя нет физического кабеля (например линия электропередач), радио или оптического канала до того места, где интернет есть, то сделать собственный Интернет не получится.

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

До прихода спутникового Интернета от Илона Маска, пинги будут почти секундными!

p.s. Tсли тебе нужен интернет с маленькой буквы (без подключению к глобальному), то для этого достаточно две машины (или одна физическая и несколько виртуальных), чтобы соблюсти формальности, а по факту tcp/ip (на основе которого работает интернет) будет работать на loop back виртуальном устройстве в пределах одной машины (например localhost 127.0.0.1).
Ты можешь настроить локальный веб сервер, локальный dns (в т.ч. /etc/hosts) и наслаждаться любыми именами веб сайтов в браузере.

Будут некоторые проблемы с https но решаемые.

Худший ответ:
Спутник нужен    ,старлинк как вариант https://www.starlink.com/
Вопрос: Почему запрос к mysql внутри цикла while выполняется очень долго?

Лучший ответ:
Время получения 40000+ записей из таблицы offers = 0.2s
Вот такой код отрабатывается за 4s
то есть в цикле делается 40тыс запросов к таблице clients каждый из который выполняется за 0.0001 sec

вам точно надо прочитать про JOIN'ы чтобы одним запросом получить все нужные данные
https://www.w3schools.com/sql/sql_join.asp

Худший ответ:
Запросы в цикле надо избегать! Иногда бывает, что это трудно сделать, но в вашем случае выглядит легко как уже написал nokimaro используйте JOIN. Примерно так:
SELECT c.id, o.* FROM clients AS c JOIN offers AS o ON c.id = o.clientID WHERE <и тут условия по которым выбираете clients>.
PS. o.* - это плохо, перечисляйте те поля которые вам нужны для работы.
Вот тут хорошая статья про JOIN
Вопрос: Wireguard режет скорость. Как исправить?

Лучший ответ:
Сгененрируй на VPS большой файл например так:

dd if=/dev/urandom of=speedtest_file.bin bs=1G count=1
И скачай его через туннель - так проверишь пропускную способность канала (в зависимости от того чем будешь качать скорость передачи данных может быть показана, как в мегабайтах так и в мегабитах - не перепутай).

Худший ответ:
Насколько загружен процессор сервера и ПК в момент теста?

До разных хостов в интернете будет разная скорость. Тот же спидтест мог выбрать загруженный сервер или далёкий
Вопрос: Почему на работе в офисе и удалёнке от Django Backend Developer требуют не только Django?

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

Худший ответ:
Незнание html, css, и даже sql(sic!) не помешало мне устроиться.
Вопрос: Как называется такой тип верстки?

Лучший ответ:
Что такое "тип вёрстки" — затрудняюсь.. Тут верстальщик хотел сверстать лендинг, но случайно нашёл плагин  scrollmagic.io... И не смог остановиться )

Если интересно как сделать подобное, смотрите примеры: scrollmagic.io/examples/index.html, читайте доку.

Но пользуйтесь в меру. Не как в приведённых вами шаблонах.

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

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

Худший ответ:
Не понятно что значит «перезаписать».
Вы собираетесь внести изменение в файл с исходным кодом?
Если так, то это imho не «православный» подход.
Почему Вы не хотите хранить конфигурацию в ini-файле?
Если Вы хотите динамически импортировать модули, то прочитайте про importlib.
Опишите сценарий поподробнее. Не совсем понятно для чего Вы собираетесь менять исходный код.
Вопрос: Как вывести звук с наушников и колонок но чтобы активным был только одно устройство (Порт)?

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


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

Ну и последний вариант - переключать железякой. 

https://m.aliexpress.com/item/4001074240384.html

Худший ответ:
Вам нужна отдельная звуковая карта (можно USB), так как переназначение функций на гнездах одной звуковой карты предназначено, чтобы расширить кол-во динамиков - от стерео до 5.1 или 7.1. Можно, конечно, переназначать линейный и микрофонный вход, но при активации они будут иметь другие электрические характеристики, что будет вносить помехи.
Как вариант, можно пожертвовать выводом звука на переднюю панель и вывести звук из разъема F_AUDIO материнской платы на самодельную панель на месте PCI слота на корпусе (софт позволяет выключать звук на задней и передней панеле). Для этого вам нужно на барахолке отыскать PCI косичку jack 3.5 (от компов времен Pentium или Pentium II) либо самому изготовить такую косичку из PCI заглушки и запчастей вывода звука на переднюю панель.
Вопрос: Классификация вопросов?

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

причем буквально сравнением, удалив из строки с вопросом лишние символы (лишние пробелы, знаки препинания если конечно не дойдешь до фраз типа 'казнить нельзя помиловать' и т.п)

правильное решение как ни странно существует, но оно не подъемно для задающих такие вопросы

Худший ответ:
Если не нужна какая-то продвинутая система, которая анализирует разные формы слов и т.п., то самое простое - забить нужные ключевые слова или части слов, и проверять их на вхождение в строку вопроса. Например, так через regexp (проще комбинировать варианты)
import re

categories = {
    r"(время|времени|час)": "время",
    r"(зовут|имя)": "имя",
}

# тестовые вопросы
questions = ["Сколько времени?", "Какой час?", "Время", "Как тебя зовут?", "Как твоё имя?"]

for question in questions:
    for pattern, category in categories.items():
        if re.search(pattern, question, re.I):
            print(f"{question} = {category}")
Это для примера, структуру для шаблонов можно потом уже выбрать с учетом специфики задачи.