Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему все так рьяно говорят о том, что C++ ужасен и не нужен, но при этом он стабильно входит в топ 10 яп?

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

Худший ответ:
Почему все так рьяно говорят о том, что C++ ужасен и не нужен, но при этом он стабильно входит в топ 10 яп?
Во-первых, не все. Во-вторых, аргументацию лучше спрашивать у тех, кто так считает. Ну и в-третьих, вам вероятно стоит переформулировать вопрос на что-то вроде: "какие существуют аргументы в пользу утверждения "С++ ужасен и ненужен"?". Но даже в случае изменения формулировки, аргументация будет, скорее всего, субъективной в такой постановке вопроса. 
PS
Язык программирования -- это инструмент формализации модели. По факту, какой он там, не так уж и важно, в отрыве от контекста. Контекст, в данном случае, это решаемая задача и окружение.
Вопрос: Мехмат НГУ или ПММ ВГУ. Какой университет лучше?

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

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

Анализ данных и нейронки - это математика и практика. Сможете сами осилить потом легко.

И вообще, стоит ли фундаментальную математическую подготовку предпочесть некоторому опыту в профессии?ДА! Именно так и нужно сделать!
Вопрос: Перенос сайта wordpress. Почему перекидает на /wp-admin/install.php?

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

Чисто теоретически больше вариантов и быть не может

Худший ответ:
Лучше плагина Duplicator ничего нет)Если не помогут решением,делай с помощью него)
Вопрос: Почему не работает игра?

Лучший ответ:
Ведьмак 4 ?

Худший ответ:
Начните с туториала. https://riptutorial.com/ru/pygame
Вопрос: Segmentation Fault не доходя до main?

Лучший ответ:
Варнинги правильные. Прочитайте, что написано и исправляйте.

Segmentation Fault не доходя до main?
Не думаю, что не доходя до main. Скорее просто прога падает, не успевая зафлашить буфер stdout (добавьте \n к строкам, после этого должно выводить сразу).

struct win **window;
  printf("here");
  initwin(*window, 100, 100, default_display);
Кто выделяет память под window?

Худший ответ:
gdb в зубы и вперед
Вопрос: Почему null == null — true?

Лучший ответ:
Потому что:
жидкость == кофе
жидкость == вода
жидкость == пиво
Но:
кофе === кофе
вода === вода
пиво === пиво

Мне так когда-то Jewbacabra на киберфоруме на пальцах пояснял :)

Худший ответ:
Рекомендовано к прочтению: adripofjavascript.com/blog/drips/equals-equals-nul...
Вопрос: Почему на iphone автоматический не начинается играть видео?

Лучший ответ:
Вот так надо:snippet
Вот эти 3 атрибута для тега video:playsinline muted autoplay

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

Лучший ответ:
Используйте событие "oninput", если надо без кнопок:
<!DOCTYPE html>
<html>
<head>
<title>Testing</title>
</head>
<body>
<script>
function srav(){
  var diag_nap_uchr = document.getElementById('pass-old');
  var diag_osn = document.getElementById('pass-new');
  if (diag_nap_uchr.value === diag_osn.value){
    alert ("Совпадение");
  }
}
</script>
<input type="password" id="pass-old" class="field-custom" placeholder="Старый пароль" name="password" value="123456">
<input type="password" id="pass-new" class="field-custom" placeholder="Новый пароль" name="password" oninput="srav()">
</body>
</html>

Худший ответ:
просто соответствие двух полей типа password на одинаковое значение? знаете как такой код написать?

Знаем конечно. Мы используем оператор сравнения === и секретную конструкцию языка - if!

if (pass1.value === pass2.value) {
   ...
}
Вопрос: Как начать зарабатывать начинающему web-разработчику в 17 лет?

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

Худший ответ:
Зашёл сюда с серьезными намерениями, но прочитав советы школьников - школьнику - поржал. А я еще зайдя к ним в профиль поржал. 
Не надо никуда идти. Пока ты делаешь говно - на заказы идти не надо. О заказчике подумайте
Вопрос: Как сделать ping в cmd через каждые 5 минут?

Лучший ответ:
1. Скачать/создать консольную утилиту задержки времени исполнения.
2. Использовать менеджер назначенных задач.

Тут все способы.

Худший ответ:
Добавил перед ping -4 -n 1 %ip%| find/i "TTL="&& goto # строку TIMEOUT /T 300 /NOBREAK.
Вопрос: Как обойти блокировку парсера?

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


Худший ответ:
Вопрос решил.
Да, можно сказать проблема была в кукки, но конкретно в каких?
Как оказалось, когда человек авторизовывается через Steam ему дается кукки, называется 'steamLoginSecure'
И надо делать сделающим образом:
cookie = {'steamLoginSecure': '765611981543677583%7C%7C5CB7310C056E83SG4D501FHGFJHGJ3T44BB1182C'}
url = 'https://steamcommunity.com/profiles/76561199079142...'
res = requests.get(url, cookies=cookie)
И всё готово!
Проблему решил когда хотел подгрузить графики предметов из Торговой площадки, без этого steamLoginSecure они вообще не подгружаются. Теперь всё по кайфу)
Вопрос: Что нужно, чтобы стать junior-разработчиком или компании взяли на работу в качестве стажёра?

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

https://www.ozon.ru/context/detail/id/144895863/
https://www.ozon.ru/context/detail/id/24939188/
https://www.ozon.ru/context/detail/id/146287471/
https://www.ozon.ru/context/detail/id/140939231/

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

Лучший ответ:
Попробуйте вытащить данные из базы openstreetmap.
Снапшот их базы доступен бесплатно.
Вот есть штука для импорта в posgtres. Надо сказать, что кроме неё есть еще osm2pgsql, который делает примерно то же самое.
На OSM Wiki можно найти теги, которыми промаркированы точки городов. А дальше вам, возможно, и ваш список названий не нужен будет, там они все (эти города) есть, причем на нескольких языках.

Вот, кстати, был даже вопрос про фильтрацию на этом ресурсе.

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

Лучший ответ:
В качестве ограничителей можно выбрать любой символ, кроме букв, цифр или обратного слеша. Чаще всего в качестве ограничителей шаблона выбирают слеш (/), решетку (#) или тильду (~).
Евгений, на мой взгляд вы слишком усложняете себе задачу по изучению регулярных выражений :) Я считаю, что вам будет достаточно знать, что в PHP шаблон имеет строчный тип данных, а значит он должен быть записан внутри кавычек (двойных " " или одинарных ' '). А символы ограничителя (какие бы они не были) всегда будут прописаны после первой и перед последней кавычкой. Строго говоря, перед последней кавычкой ещё может быть прописан какой-либо модификатор(ы).

Худший ответ:
Один раз была проблема, что в моем регулярном выражении были экранированные слэши и ограничители-слэши, из-за этого регулярка не работала, замена ограничителей на # помогла (это было давно, возможно я сейчас я бы грамотнее ее пофиксила). Я думаю Вам сначала поможет гугление готовых решений с разбором примеров, а для быстрой проверки своих гипотез есть https://www.phpliveregex.com/
Вопрос: Как апгрейдить SSD?

Лучший ответ:
Видимо, вам нужно полностью клонировать ваш старый ssd, сохранив образ на жесткий диск или на внешний жесткий диск, а затем, после замены ssd, восстановить систему из образа.
Т.к. одновременно вы не можете диски подключить, придется использовать LiveUSB решения.
Попробуйте:
https://clonezilla.org/
https://trinityhome.org/

Худший ответ:
Backup and restore. Можно встроенными средствами.
Вопрос: Как грамотно изолировать сервисы на linux-сервере?

Лучший ответ:
Технологий конечно же есть.
1) Это виртуализация - KVM/Xen
На мой взгляд предпочтительнее KVM, лучше поддержка, не нужно специальное хост-ядро.
Немного, процента на 2-3 проигрывает перед XEN, но в удобстве выигрывает однозначно. XEN - только линукс, и только со специальными патчами в ядре на хосте и клиенте.
Фактически получаете полноценную виртуальную машину, ставите туже все, что душе угодно, хоть линукс, хоть BSD, хоть винду.
Проблема одна - требует жесткого выделения ресурсов. Поэтому только десяток-другой виртуалок (да и то заивисит от нагрузок).
По сравнению с железом, сожрет от 3 до 7-10 процентов производительности.
Тем не менее: мой выбор KVM.
2) Контейнеризация - Docker/LCX/Virtuozzo.
Сразу скажу за virtuozzo - ничего про нее говорить не буду. В принципе - очень похожа на XEN.
Остальные две основаны на CGroups, более того, docker внутри использует LXC.
Docker - очень распространен и популярен, фактически лидер рынка. Заточен на запуск одной задачи в одном контейнере. Контейнеры можно объединять в группы.
LXC/LXD - менее распростанен, но очень удобная технология, если нужно контейнеризировать окружение операционки с кучей процессов.

Мы пользуем и Docker и LXC/LCD. И даже в LXC пускаем Docker. 
Все зависит от задачи.
Нужен сервис с кучей процессов и окружением - LXC
Нужен один процесс - docker.
Нужно полноценное окружение с ядром, куртизанками и гусарами - KVM.

По факту - около 10 виртуалок KVM, порядка 10 контейнеров LXC, и порядка 20 контейнеров Docker.

Худший ответ:
Лучше разделить по стекам через KVM или другую нормальную виртуализацию. 
Например LAMP в одну VM, почту в другую и т.д.

LXC/LXD возможны проблемы из-за кастрированности технологии
Docker вообще не про это

Virtuozzo Containers пока единственная более или менее полноценная среди контейнеров. Если делить на виртуальные машины.
Вопрос: Какое расположение дата центра выбрать?

Лучший ответ:
Если клиенты расположены в Европе, предлагаю выбрать Германию.
Там есть ДЦ AWS, DigitalOcean, Hetzner.
Из Великобритании и Франции есть оптические магистрали через Атлантический океан в Америку.
https://www.submarinecablemap.com/

Худший ответ:
Чтобы перестать думать про расположения датацентра пора давно узнать про CDN и гонять трафик через них. И кэшировать. А хостинг выбирайте по вашим к нему требованиям, но никак не по местоположению
Вопрос: Если ОЗУ 2гб, не будет ли тормозить 64 битный Windows? Или лучше ставить 32 бита?

Лучший ответ:
Будет.
Для нормальной работы, желательно минимум 8гб

Худший ответ:
В целом винде и гигабайта хватает, но тормозить будет особенно если нет ссд. 32 бита не особо помогут и они уже не поддерживаюся многими современными программами.. поэтому ИМХО смысла в них нет.
Вопрос: Что в компаниях подразумевают под «основы js»?

Лучший ответ:
Вот. Читайте до посинения.

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

Лучший ответ:
Особых преимуществ между видами приложений нет. Это просто разные виды приложений и всё.

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

Ведь мобильное приложение может, например, пользоваться железом мобильного телефона, как то, захват изображений с камеры и их удобная загрузка "в два касания". Или можно через шеринг передать файл в приложение. Это также и GPS, отслеживание маршрута и передача данных о твоем передвижении на сервер, для улучшения пользовательского опыта. Например, такси может видеть на карте где ты и быстрее и удобнее к тебе подъехать. Это и использование голосовых сервисов, и сервисов искусственного интеллекта, например, захват изображения с камеры распознавание текста на нем и произнесение "вслух".  Или ты делаешь приложение для управления бюджетом и с помощью камеры и искусственного интеллекта даешь пользователю удобную возможность просто засканировать всю корзину и продукты автоматически добавятся в список и распределятся по категориям и так далее и тому подобное.

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

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

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

Худший ответ:
Надо навесить на все картинки обработчик события onClick, в котором прописать нужные действия - для каждой картинки свои.
Вопрос: Что делать, если на ПК не устанавливаются Windows?

Лучший ответ:
В продолжение q716417 и q716023.
Наличие в компьютере компонент, не дающих установить Windows, решается заменой оных на исправные.

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

Лучший ответ:
То есть, не то, что до Винды, даже до БИОСа добраться нельзя - перезагружается?
Комп поломался, чинить надо.
Как выше рекомендовали, искать "виноватого", начинать с БП, и дальше стандартно - память, видюха, диски откинуть, ...
Нет запчастей и "донора" - в сервис.

Худший ответ:
Случайно, речь не идет о Windows 10?
Если да, то попробуйте так.
Вопрос: Как отправлять самому себе сообщения через бота телеграм?

Лучший ответ:
Ошибку, вообще-то надо показывать, кто ж будет решать то не знаю что?

Но давай я повангую.

Во-первых, Bot - это класс. Нужно создать его экземпляр:

from aiogram import Bot
bot = Bot(token=config.bot_token)

Во-вторых, при этом всё равно будет ошибка coroutine was never awaited. Потому что асинхронные функции нельзя просто так вызывать из синхронного кода.

Вызвать можно так:

async def main():
  await bot.send_message(my_chat_id, my_message)
  await bot.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Худший ответ:
Привет, Я тоже не особо разбираюсь в телеграмм ботах, но попробуй вот это:
Bot.send_message(message.from_user.id, "hello")
Или message.chat.id
Должно сработать
То есть тут бот получает id пользователя(твой) и отправляет сообщение. 
P.S если не выйдет сильно не бей)
Вопрос: Различие между хостом и узлом?

Лучший ответ:
Wikipedia.
Узел сети — устройство, соединённое с другими устройствами как часть компьютерной сети. Узлами могут быть компьютеры, мобильные телефоны, карманные компьютеры, а также специальные сетевые устройства, такие как маршрутизатор, коммутатор или концентратор
Хост — любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах.

Коротко:
узел сети – любое сетевое устройство
Хост – оконечное устройство, предоставляющее сервисы

Худший ответ:
Различие между хостом и узлом?Сильно зависит от контекста.

Узел - любое устройство, имеющее ipНе обязательно. Например банальный свич не имеет IP, а является узлом.

Хост - ОБЯЗАТЕЛЬНО сервер, имеющий доменНет.
Зачем хосту домен? Ну если для удобства - можно, но не обязательно. 
Хост это сервер, тут правильно. Но тут надо понимать что такое сервер. А то некоторые думают что сервер это обязательно такая крупная железяка стоящая в серверном шкафу. Сервером может быть программа запущенная на вашем смартфоне.

У клиента может и не быть доменное имя. А у сервера оно есть.И у клиента и у сервера может быть доменное имя, а может и не быть.
Вопрос: Возможно ли сделать полный RDP?

Лучший ответ:
Если кратко, то по всем пунктам нет.

Худший ответ:
RDP это не просто удаленный доступ, как например это делают TeamViewer, AmmyAdmin, Radmin и прочие. RDP работает по другому принципу и перебросить видеокарту у вас никак не получится. Звук и микрофон должны работать, видимо у вас просто проблемы.
Рекомендую использовать TW, и видимо либо крякнутый, либо купить лицензию.
А по поводу RDP.
Прямой доступ хоть откуда тебе должен обеспечивать провайдер, дав тебе белый ip адрес. Настроив роутер, на проброс портов ты подключишься к компу хоть откуда. И никакого сервера поднимать не нужно.
Также, если создать два пользователя на компе, то ты сможешь работать на этом компе одновременно с кем-то другим пользователем. Чего кстати невозможно сделать не с RDP. Т.к. для него создаётся полноценная сессия и т.д. 
VPN поднимается в том случае, если тебе нужна сеть, а не отдельный комп. Для VPN сервера тебе также нужен будет белый ip адрес. Или какие-то замароченные VPN с клиентом на компе.
Вопрос: Что делать, если с именем нашего стартапа зарегистрировали торговую марку в США?

Лучший ответ:
согласиться на деньги
This.

Мы не регистрировали трейдмарк
ССЗБ. Теперь будете.

Худший ответ:
согласиться на деньги
This.

Мы не регистрировали трейдмарк
ССЗБ. Теперь будете.
Вопрос: Как сохранить здоровье глаз?

Лучший ответ:
Анита Ковалева, Добрый день.
Я не отвечаю ни одному критерию который вы выдвигаете к фокус-группе, но этот вопрос для меня так-же актуален. Вот результаты моих "поисков".
1. Это качество освещения в помещении !!!
а) Только лампы накаливания и под потолком, и ни как не в настольной лампе направленной на монитор.
2.  Настройки монитора !!!
а) Яркость - МИНИМАЛЬНАЯ !!! (у меня - 9%!!!), но в зависимости от производителя при данном уровне яркости у многих бюджетных мониторов появляется эффект - ШИМ
У меня - стабилизатор напряжения и ТЕСТ КАРАНДАШОМ монитор проходит на отлично с уровнем - 9%))
б) Контрастность - МАКСИМАЛЬНАЯ!!!, у меня 87%
"Что бы не на глаз" - установите Natural Color Pro
3) Исключите - инфекционные заболевания поражающие слизистые (в том числе и глаз). Обязательно минимум - 3 разных офтальмолога)). 
По пути к гинекологу (ну это по умолчанию))
4) Сухой глаз - у 70% населения (но правда только после 40)), но если вы работаете за ПК по 8 часов в группе риске, проблема актуальна даже после 24 (ну а если ещё и генетические баги, тогда....)  
Т.е каплям - ДА.((
5) Заканчивайте день - чтением, но ИСКЛЮЧИТЕЛЬНО НА БУМАЖНОМ НОСИТЕЛЕ - 1 - 1,5 час !!!

Худший ответ:
Анита Ковалева Добрый день!
Не нашел у Вас обратной связи, напишите мне в телеграмм или почту пожалуйста
Вопрос: Как защититься от взлома по ssh ключу?

Лучший ответ:
Защититься очень просто:

Никому не давайте свой секретный ключ. Зашифруйте его сверху еще и паролем, если уж совсем неймётся.
Используйте для разных серверов разные ключи. Если один из них будет скомпрометирован, остальные не придётся менять. Хотя что сложного в том, чтобы поменять ключи?


Худший ответ:
Он и должен их показывать - на то они и открытые ключи. А закрытый ключ хранится у вас
Вопрос: Чем просканить систему на предмет вредоносного ПО?

Лучший ответ:
Антивирусом. Устанавливать не обязательно.
KVRT, DrWeb CuteIt.

Худший ответ:
Поставить антивирус например и проверить!
Вопрос: Сетевое хранилище на Windows 10, как настроить историю файлов?

Лучший ответ:
История файлов в Windows 10

Худший ответ:
Для начала определитесь, как вы будете создавать файловый сервер на windows 10  с лимитом полуоткрытых соединений в 20.
Вопрос: Vue.js Как в роуте вызвать обновление компонента, вызванного в App.vue?

Лучший ответ:
Сам по себе localStorage не реактивен, так что ваш computed не имеет особого смысла.
По-хорошему token просто надо хранить в рективном store(не обязательно vuex, можно просто observable), и во всех местах получать и класть его через этот store. Тогда всё будет работать из коробки.
Если же в localStorage token прилетает откуда-то сам, то придётся вам повесить событие onstorage и отлавливать изменения вручную в нужных местах.

Худший ответ:
Почему эти данные в mounted? Просто занесите их в data, в чем проблема?
Вопрос: На чем сделать упрощённый zoom?

Лучший ответ:
можно, конечно, взять webrtc и sfu и самому всё запилить, но это сложно и долго. Гугли jitsi-meet, это готовое бесплатное решение, которое просто устанавливаешь на сервер, настраиваешь и можешь подключаться через свой домен или jitsi-meet мобильное приложение, либо своё приложение можешь запилить. Там можно настроить разные типы авторизации (кто может создавать/присоединяться) - по паролю, по токену и тп.

Худший ответ:
Лучшее что сегодня есть - это QuickBlox
https://quickblox.com/
Условно-бесплатный SDK
https://quickblox.com/pricing/
Вопрос: Как сделать так, чтобы бот писал в канал вовремя?

Лучший ответ:
Нужно каким-то образом узнать id нужного канала. Самый простой способ: в клиенте Discord ПКМ->Копировать ID.

Далее:

my_channel = client.get_channel(ID_нужного_канала)
await my_channel.send('Сообщение')

Худший ответ:
@tasks.loop(seconds=20)
async def timer_notify():
    await client.wait_until_ready()
    message.channel.send('lol')
    cur_time = localtime(time())
    for user_id,counter in user_counter.items():
        global msg
        user = client.get_user(user_id)
        msg = msg+' >> ' + user.name + ': ' + str(counter)  + '\n'
    msg = 'Статистика:\n'

P.S. найди одно отличие, код работает)
Вопрос: Как приспособить программу к многочисленным изменениям?

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

Худший ответ:
Работал, как то на одном жирном клиенте. Была подобная ситуация. Даже сложнее. Паттерн стратегия определял тип инстанцируемого приложения. 
Фич было очень много и некоторые деградировали периодически. Выбрали ворклоу  - GitFlow. С нашими целями справлялся.

Рекомендую. Но не навязываю.

Вы уже определились хранением версий в гите. Осталось выбрать workflow. Предлагаю прочитать сравнение от Atlassian : link
Выберете, что более подходит для ваших целей.

Спасибо.