Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Где захостить свою не open source программу?

Лучший ответ:
Bitbucket, поддерживает приватные проекты.

Худший ответ:
А кто мешает использовать GitHub в качестве баг-трекера, а код держать в другом месте?
Вопрос: Вынужденный переход с Opera !?

Лучший ответ:
В Google Play после выхода Opera 14 появилась Opera Classic

Худший ответ:
Поснимайте «галочки» со всех проверок обновлений (проверка новой версии огнелиса, проверка обновлений плагинов и дополнений). На это тратится приличное время при старте, особенно если сеть медленная или вообще отсутствует.
У самого на буке огнелис стартует за пару секунд, несмотря на то, что там установлена толпа дополнений, всякие скрипты для greasemonkey, правила stylish и т.д., и т.п.
Еще проверьте, отключена ли у вас загрузка неактивных табов (например, в хромом это вроде как не отключается, из-за чего он стартует ужасно долго, если открыто ~30..50 табов).
Вопрос: Error 1962:no operating system found.Press and key to repeat boot sequence срочно,в чём проблема?

Лучший ответ:
Перевожу для нетерпеливых: "Ашипка 1962: опирацеонная сестема ни найдина. Нажмите anykey чтобы павтарить працыдуру загрузки". Наверное, вы не пробовали подсунуть BIOS'у нормальный загрузочный диск.

Худший ответ:
Такая же ошибка,пытался винду снести.Жесткий диск не читает
Вопрос: Многопоточные приложения на C++ под Linux?

Лучший ответ:
В.Е. Карпов, К.А. Коньков «Введение в операционные системы». Не про плюсы и не только про линукс, но свое первое многопоточное приложение я написал с помощью именно этой книжки. Может пригодится в качестве базы.

Худший ответ:
Можно посмотреть в сторону потоков от Qt, мне например они больше нравятся…
Вопрос: Запись разговоров на Android. На каких устройствах работает?

Лучший ответ:
Посмотрите на этот тред, например.

Худший ответ:
У меня Xiaomi Red Rice, он же Hongmi, за чуть больше 200$ с доставкой. 
В MIUI есть птичка "записывать все разговоры автоматически". Он их и пишет. Прослушать можно из журнала звонков контакта или через программу Recorder. Единственное но: использует MP3@8kb/s@8kHz. 
Ну и камера нормальная.
Вопрос: Можно ли восстановить данные после переформатирования с NTFS на Ext4?

Лучший ответ:
Вряд ли. Предлагаю связаться с компаниями, всерьез занимающимися восстановлением данных. Авось чего вытянут…

Худший ответ:
Runtime GetDataBack еще попробуйте выручал не раз, восстанавливал ~80% информации после форматирования и установки XP поверх. Но это как повезет.
Вопрос: Подскажите на тему Linux HA+shared storage?

Лучший ответ:
Используйте для доступа к стораджу iSCSI/FC/SRP (первое, наверное, будет предпочтительнее). Если сторадж один (что, кстати, уже делает конфигурацию неотказоустойчивой), то рейд собираете не нем, а на хостах виртуализации поднимаете cLVM поверх инициированных по сети рейд-массивов/массива и выделяете виртуалкам уже LV-шки.
Советы использовать кластерные ФС пропускать можно сразу (GFS или OCFS), NFS еще туда-сюда, но в данный конфигурации преимуществ перед сырыми блочными устройствами нету, скорее наоборот, сплошные недостатки (меньшее удобство управляемости, больше слоев абстракции и накладных расходов).

И пара советов напоследок:
 — прокидывать по iSCSI сами диски и собирать их в mdraid на хостах виртуализации — ПЛОХАЯ затея в данном случае. Mdraid не поддерживает полноценную работу с общим стораджем и более-менее функционировать будет только при отсутствии изменений в метаданных (т.к. нет поддержки конкурентной работы с ними), иначе (например, при ресинхронизации дисков после замены вылетевшего), чтобы не повредить его, придется разбирать все рейды кроме одного;
 — полка в данной ситуации — SPOF. Если будете ставить вторую, то, либо использовать DRBD между полками (как это делает селектел), либо таки экспортировать диски с стораждей и собирать network raids на хостах виртуализации средствами mdraid (похожим образом делается в скалакси, только там применяются отдельные проксирующие узлы SAN для сборки рейдов).

Худший ответ:
Proxmox, бесплатно, просто в настройке pve.proxmox.com/wiki/High_Availability_Cluster
Ну или KVM с каким-нибудь кластер менеджером вроде Eucalyptus, OpenNebula, OpenNode
Вопрос: Замыкания внутри циклов в JavaScript. Какова механика работы?

Лучший ответ:
в курсе сюрпризов JavaScript относительно замыкание внутри closures.
Если для вас это все еще сюрпризы - рекомендую перештудировать какой-нибудь туториал или документацию. В JS все как-будто асинхронно, на самом деле там просто есть event loop.
Давайте разберемся на примере:for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
Что у нас тут будет происходить. Мы берем цикл и 10 раз создаем отложенный вызов. Что при этом происходит... давайте представим себе что в JS все разбито на кадры. Цикл - один кадр, и пока он не отработает, какой бы он длинный не был - новый кадр так же не отработает. setTimeout не просто выполняет код с задержкой, через 1000 милисекунд в event loop будет добавлен очередной кадр. И любой "асинхронный" вызов так же просто добавляет кадр в event loop. Внутри же event loop все выполняется синхронно и по порядку.
Так вот, на момент, когда закончит выполнение кадр с циклом, значение i уже будет установлено в 9. А как мы выяснили ранее,  JS ничего более не будет выполнять до этого момента. Посему отложенный код выведет нам одно и то же значение так как все они ссылаются на одну и ту же переменную.
Теперь, что происходит тут:for(var i = 0; i < 10; i++) {
    (function(e) {
        setTimeout(function() {
            console.log(e);
        }, 1000);
    })(i);
}
Да собственно то же самое. Только за счет того что мы при публикации setTimeout используем замыкание и передаем i в качестве аргумента, срабатывает механизм называемый copy-on-write. То есть в замыкании не i а его копия (когда цикл перезаписывает значение i - все кто ссылался на это значение не по ссылке, копируют себе переменную, для простоты можно просто думать что каждый раз когда вы передаете что-то не по ссылке, происходит копирование).
Так как у каждого кадра, выполняемого в setTimeout есть своя копия i с нужным значением - все будет хорошо.

Худший ответ:
Нужно использовать let вместо varfor(let i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
Вопрос: Как перемешать строки в большом файле (до 1,5гб) средствами php?

Лучший ответ:
Какие-то неправильные у вас пчёлы, $arr=explode(NL,file_get_contents($file)); - это плохо для любого языка, не только php, читать весь файл в память. 
Вот тут есть пример для перемешивания файла, без его полной загрузки, с использованием позиций строк.

Худший ответ:
Не мешайте весь файл целиком, разделите на адекватное количество частей.
Вопрос: Переход с innodb на xtradb

Лучший ответ:
xtradb работает прозрачно, модификация БД — не требуется.

Худший ответ:
Все верно сказал пользователь subvillion.

В FAQ говорится однозначно 
The XtraDB plugin is designed to be used instead of InnoDB, and is fully compatible with your existing InnoDB tables and server settings.
Вопрос: Является ли статическая функция С++ потокобезопасной?

Лучший ответ:
Сделайте фабричную функцию проверяющую существование файла и создающее его если надо и затем:static inline Settings& applicationSettings()
{
    static Settings set = getSettings(settingsFilePath);
    return set;
}Cтандарт C++11 гарантирует, что getSettings будет вызвана только один раз вне зависимости от количества потоков дёргающих applicationSettings. Главное не забывайте что getSettings не потокобезопасна и не дёргайте её напрямую.

Худший ответ:
С чего бы этому вызову быть потокобезопасным, если у вас в функции статические переменные?Выполняется ли проверка File()::exists(settingsFilePath) при каждом обращении к функции
А почему она не должна выполняться?
Кстати, а зачем вам две разные статические переменные set?
Вопрос: Symfony 2 или Laravel для распределённой системы?

Лучший ответ:
без разницы, в принципе. И на том и на том можно сделать как просто и быстро так и плохо. Разница по сути только в подходах по работе с базой (доктрина - domain centric, ларавелевская ORM - database centric).
Ну и да, в Laravel вполне себе удобный IoC (даже не смотря на то что в symfony2.8 уже сделали автовайринг), и концепция мидлвэров. Но у Symfony2.8 можно включить микроядро, и по производительности он уйдет вперед (чисто фреймворк, без учета ORM и т.д.)

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

Лучший ответ:
У меня adBlock блокирует, может у вас тоже?

Худший ответ:
Голосовой ввод давно появился?
Вопрос: Выбрать SSD в ноутбук?

Лучший ответ:
У Crucial сейчас новое поколение hotline.ua/sr/?q=+Crucial+M500
Так же привлекательно смотреться OCZ Vector hotline.ua/sr/?q=OCZ+VTR

ps: ну и intel вроде бы всегда был не плох

Худший ответ:
Брал 3 таких диска ADATA XPG SX900, всё ок
Вопрос: Потерян USB ключ защиты. Законно ли требование покупки всей программы заново?

Лучший ответ:
Хех, в России и о законности :))) бугага… 6)
Теоретически модификация кода купленной программы прямо разрешена в ГК статью не помню… 

Вопрос в том насколько легко удастся доказать это проверяющим, которые вас посетят, без наличия ключика…

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

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


Толкование первое. Если расширение Файерфокса получает данные с какого-либо сайта, то можно ли изменить JS-код расширения таким образом, чтобы получить аналогичную информацию на произвольном другом сайте?

Может быть, можно… а может быть, и не выйдет.

Зависит это от формы и цели запроса.

Простой пример: есть расширение «Хабраголик», которое на Хабрахабре получает значения кармы и рейтинга через хабрахабровский API. И оно не позволит получить значение рейтинга на сайте FreeLance.Ru, выполнив тот же запрос — потому что на «Фрилансе» нету ведь того же хабрахабровского API.

Другой пример: вообразим расширение, которое получает значок сайта, используя общепринятый протокол, то есть сперва скачивает заглавную страницу, затем ищет в ней элемент <link rel="icon" …> (или даже <link rel="shortcut icon" …>) и выковыривает из него URL значка. Такое расширение позволит получить значок и с другого сайта, выполнив тот же запрос — потому что протокол тот же самый.


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

Худший ответ:
Может.
Вопрос: SheetJS/js-xlsx и форматирование файла?

Лучший ответ:
Я тут последний месяц активно работал с экселем из ноды и js-xlsx использовал исключительно для парсинга. Для создания очень хорошо пошёл этот модуль https://github.com/natergj/excel4node . Форматирование в нём задаётся очень легко. Память потребляет сильно меньше всех остальных.

Худший ответ:
https://www.npmjs.com/package/node-xlsx может по-адекватней будет.... это обертка для Ноды на  js-xlsx.
Я когда вижу на гитхабе js-xlsx их примеры кода - меня рвать тянет, простите за резкость)
Вопрос: Push нотификация для ios и android?

Лучший ответ:
А какие тут могут быть проблемы? Все разжевано в мануалах PushSharp (для небольших проектов) и Azure Notifications Hubs (для массовых рассылок). 
Для ознакомления можно глянуть видео https://www.techdays.ru/videos/7661.html , но лучше почитать статьи того же автора.

Худший ответ:
https://parse.com/ - сейчас пробуем параллельно с Azure Mobile Services. В парс очень удобный веб-интефейс отправки тестовых пушей для отладки + встраивается в приложение в два счета.
Вопрос: Как правильно разработать легкомасштабируемую платёжную систему?

Лучший ответ:
1. Скрипт на крон - однозначно плохая идея. Более правильная история - постоянно работающий скрипт который из очереди получает очередную задачу. Отличный вариант для организации очереди rabbitmq
2. Слабая связанность компонент это хорошо. В вашем случае однозначно api (не очень правда понимаю метания от php к java но дело Ваше. пишите на том, что лучше знаете) + расширяемые апи для внешних интеграций + интерфейсы цепляемые к апи.
По поводу синхронности/асинхронности - это вполне можно уместить в одном апи. Какие методы делать синхронными, какие нет - целиком зависит от вашей бизнес логики.
На мой взгляд получение баланса например вполне можно сделать синхронным.
3. С точки зрения быстродействия - Вы достаточно быстро упретесь в базу. Соответственно надо сразу думать о шардировании данных, о том как система будет себя вести в случае выхода из строя одной из задействованных в транзакции нод итд.
4. Вам важна data consistency. Сразу думайте про железо. Любые сервера горят. Брендовые сервера горят точно так же как и не брендовые. С учетом п3 - я бы делал полностью независимые друг от друга ноды, с физическим дублированием внутри ноды, и привязывал каждый счет к одной ноде.
5 [философский] Поймите  важный момент - без ОЧЕНЬ серьезных инвестиций в маркетинг, проекты не взлетают. Если бы эти инвестиции были - Вы бы тут не писали (не в обиду). Соответственно вероятность того что к Вам внезапно придет огромный поток транзакций - стремится к нулю. К тому моменту когда Вы раскрутитесь - Вы успеете 5 раз сменить архитектуру проекта. Нельзя иметь одну архитектуру у стартапа собранного одним человеком, и у проекта с высокими HL/HA.
Пишите на чем нравится, у Вас будет куча времени что бы переписать узкие места например на C.
6 [юридический] Вы в курсе что Вам нужна пачка лицензий на осуществление деятельности в качестве оператора электронных денег и денежных переводов без открытия банковского счёта? :)
PS Я хочу верить что Ваш вопрос - это задачка для саморазвития. Иначе я не представляю себе что это за система платежная, которую делает один человек, спрашивающий совета как делать такие штуки (опять же не в обиду Вам ) :)

Худший ответ:
Вам лучше подойдет решения на JVM типа Scala + Akka - так и работает PayPal.
Я имею опыт разработки финансовой системы с разными валютами и тд
Вопрос: Возвращение аккаунта YouTube?

Лучший ответ:
как-то аббревиатура «ТП» уже не ассоциируется с «Тех. поддержкой»…
А по теме думаю нового ничего не укажу: http://www.youtube.com/account_recovery

Худший ответ:
Теоретически есть полтора варианта:
groups.google.com/forum/?fromgroups#!browse – сотрудники гуголя раз в двадцать тысяч лет читают некоторые обсуждения оттуда
productforums.google.com/forum/#!forum/youtube – говорят, что они даже читают то, что постят в этот форум
apps.google.com – платным подписчикам доступен телефонный саппорт
+1 650 253 0000 – телефон штабквартиры в сша

Но шансов почти никаких, очень уж туго у гугля с решением проблемы простых смертных пользователей
Вопрос: Как работает IndexOf в C#?

Лучший ответ:
.net доступен в исходных кодах. Можно погуглить и открыть.

Худший ответ:
не подходит?

иначе reflector вам в помощь
Вопрос: PHP: Как отличить тестовую и рабочую версию приложения в консоли?

Лучший ответ:
Создавайте переменные окружения в настройке apache/nginx, а в скриптах используйтеif ($_SERVER['APP_ENV'] === 'dev') { // или prod, test
   // ....
}

Худший ответ:
Можно для тестового окружения создавать в корне файлик, например, "development". И дальше примерно так (index.php):if(file_exists('development')){

	defined('YII_DEBUG') or define('YII_DEBUG', true);
	defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);

	$yii = dirname(__FILE__) . '/../../yii/framework/yii.php';

	$config = dirname(__FILE__) . '/protected/config/dev.php';

}else{

	defined('YII_DEBUG') or define('YII_DEBUG', false);

	$yii = dirname(__FILE__) . '/../../../yii/framework/yiilite.php';
	$config = dirname(__FILE__) . '/protected/config/production.php';

}
Вопрос: Как синхронизироваться с git на на новом компьютере?

Лучший ответ:
Про выбирает тот вариант, который удобен ему и не имеет мозг окружающим.

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

Лучший ответ:
Linode.com — за 1 год и 3 месяца ни одного падения. Очень быстрые VPS, быстрая и вежливая поддержка, хороший форум, база знаний, крутейшая панель управления, API, NodeBalancer…

Худший ответ:
Рекомендую Чехию, там проблемы возможны только после решения чешского суда. Давно работаю с датацентром Host-Telecom, у них русский саппорт и есть представительство в России — atlex.ru
Вопрос: Какие задачи требуют большой вычислительной мощности и могут выполняться распределённо?

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

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

Лучший ответ:
Яндекс Танк
и вот https://www.youtube.com/watch?v=ndngDDiGaFw

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

Лучший ответ:
Скорее всего вы загружаете новый контент при клике на ссылку? В href стоит #? Самый простой способ предотвратить это:<a href="javascript:void(0);></a>
или на jQuery:$("a.link").on("click", function (e) {
    e.preventDefault();
    //... другой код
});

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

Лучший ответ:
Все то же самое что и для работы со своим кодом (рефакторинг нужен всем). А так же крепкие нервы.
Почитайте книжек по рефакторингу, видео-лекции дяди Боба (Боб Мартин)...

Худший ответ:
Не скажу, что очень большой знаток и умелец.
Поясню только свой опыт.
1. Пока работает код как надо - НЕ ТРОГАЙ его. Другими словами не обязательно что-то изменять. Вместо изменения можно написать обертки, другими словами вспомнить что существует паттерн проектирования Фасад.
2. Если же трогать нужно и в унаследованном коде бага - НАПИШИТЕ ТЕСТЫ. Не стоит на себя надеяться. Не надо из себя строить рэмбо. Подумайте как вы проверите результат своей работы после изменения? Другими словами, починив одно легко сломать что-то другое.
3. п.1 и п.2 со временем дают набор оберток и набор тестов, которые позволят Вам планировать работы по рефакторингу. Да, его надо бросаться делать не сразу, а только после серьезного набора тестов и оберток из вами написанного кода.
4. Чаще спрашивайте у заказчика о том, все ли фичи нужны или какие-то уже не приносят дохода? Другими словами : нет кода - нет багов и нет проблем с поддержкой!
Вопрос: Entity Framework DbContext

Лучший ответ:
Вы шутите? Зачем вам 2 контекста… сделайте 1 контекст с 2dbset… в одном контексте может быть сколько угодно сетов…

Худший ответ:
Попробуйте вызвать 
Database.SetInitializer(null);
Вопрос: Как бороться с клоном сайта по DNS?

Лучший ответ:
Можно получить URL или IP сайта и если не "ddt-sarov.ru" или некий IP, то вывести другую инфу )
А лучше все ссылки, если возможно, пропишите с указание домена: http://ddt-sarov.ru/ссылка

Худший ответ:
Эммм, а зачем вам бороться? К вам на сервер нагоняют народ, а вам не нравится? =)
Вопрос: Как поставить Ubuntu 12.04 с USB Flash?

Лучший ответ:
Unetbootin пробовали?

Худший ответ:
Вот статья как ставили debian с флешки или Вот про убунту
Вопрос: PDO или ORM в PHP?

Лучший ответ:
Простые запросы (их процентов 80) орм упрощают конечно, а вот если надо нестандарт, то проще нативным sql сделать. Имхо конечно.

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

Лучший ответ:
Скорее всего человека ожидал услышать процесс разбора, а не используемые методы. Т.е. то, что вы перечислили это все верно, но теперь из этого надо выстроить логическую схему где и когда из этих инструментов применять.

К примеру:
1) Нахожу точку входа в программу.
2) Глядя в код определяю какие классы создаются и что они запускают.
3) Если есть дока — читаю, что эти классы делают
4) С помощью навигации по коду вычленяю какой код за какие функции отвечает.
5) Ну и т.д.

Худший ответ:
На тупой вопрос Вы ответили более чем развёрнуто. Я бы на него ответил более просто: «Взял бы и изучал». Вопрос, действительно, идиотский.
Вопрос: Как автоматизировать загрузку обновлений на сайт?

Лучший ответ:
Заводите git репозиторий, работаете в нем, версий файлов у вас не будет, но будет удобная история всех изменений с возможностью отката в любой момент.
Если есть доступ к серверу по SSH, пишите такую команду для копирования файлов с вашего компа на сервер посредством rsync (можно попробовать утилиту scp, вроде есть и под windows):
rsync -avc /path/to/local/files user@192.168.1.107:/path/to/wordpress
Если SSH нет, можете сделать git clone репозитория на удаленном сервере, при обновлении заходить туда руками и делать git pull. Есть вариант посложнее, но в конечном счете удобнее, с bare репозиторием git'а на удаленном сервере, можете погуглить в интернете, что это и как делается.

Худший ответ:
Зачем все эти "style.css?001 --> style.css?002 или script.js?003 --> script.js?004"? Нельзя использовать один файл и его обновлять?
Попробуйте изучить GIT, возможно поможет вам с решением вашей проблемы
Вопрос: Какой внешний жёсткий диск выбрать?

Лучший ответ:
Я всегда за WD: market.yandex.ru/model.xml?modelid=6457623&hid=91033 (USB 3.0)

Худший ответ:
Не так давно обсуждали и пришли к выводу:
habrahabr.ru/qa/20441/#answer_83108
Вопрос: Какой язык программирования изучить новичку для написания GUI приложений?

Лучший ответ:
Python весьма неплох для всяких GUI, работаеет со многими популярными фреймворками(Qt,GTK,Kivy), не проблема нагуглить нужный код. И приложение можно легко перетащить под Linux(даже под андроед можно).
После освоения Python, можно приступать к освоению C++

Худший ответ:
Qt если под C++. Перешел с билдера на Qt в апреле, сделал свой первый САПР для предприятия(на конкурс молодых специалистов) за 2 месяца. Кстати даже без использования формочек, мне удобнее через gridlayout все размещать)
Сейчас создаю в свободное время для себя игры, начинаю делать клиент-серверные ПО, и другие небольшие приложения.
Словом впечатления - супер, супер, супер, всем рекомендую, Qt это очень круто