Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Почему упала производительность базы MySQL при переносе на новый сервер?

Лучший ответ:
Самый тупой вариант: в "самой последней версии mysql" query cache отключен по умолчанию. Но если речь о конкретном запросе с воспроизводимым результатом, то наверное дело не в этом. 

Поэтому надo задавать не вопрос "почему упала в два раза после переезда",  а надо разбираться с конкретным запросом. 
Вообще, вопрос конечно из серии "Дорогие учёные. У меня который год в подполе происходит подземный стук. Объясните, пожалуйста, как он происходит". Неужели так трудно задать конкретный вопрос?

создали два LXC контейнера... С какими характеристиками?
поставили последнюю версию MySQL... Какую?
на некоторых запросах... Каких?
меняли настройки базы... Какие?
перерыли рекомендации... Какие?


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

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

Худший ответ:
1) Проверьте скорость дисков на старом и новом сервере
2) Сколько памяти у MySQL на старом и новом сервере?
3) Покажите ваш my.cnf
Вопрос: Как поступить в случае если наши картинки используются в контекстной рекламе конкурентов в яндекс директ?

Лучший ответ:
Ещё раз могу Вам написать от себя, как практикующего специалиста по контекстной рекламе и Яндекс.Директ в частности, что автоматически никакие картинки с ЧУЖИХ сайтов в контекстную рекламу подставлены быть не могут.
Есть некоторые подходы к рекламным объявлениям, когда могут автоматически использоваться изображения со своего сайта, но с ЧУЖОГО никогда.
Вероятнее всего Вы были просто невнимательны или не полностью осведомлены о том, как и кем подготавливается Ваша реклама. И тем более не можете знать откуда взял изображение для своей рекламы Ваш конкурент.
Если не хотите, чтобы Вам это всё заново повторили уже в суде, и не хотите встречный иск, то прежде чем поднимать панику, тщательно разберитесь в вопросе.

Худший ответ:
Ставьте вотермарки, запретите индексирование картинок в robots.txt И
Вопрос: Какую сеть выдать клиентам OVPN?

Лучший ответ:
192.168.22.0/24 например.
10.0.0.10/24 например
можете взять любой диапазон из 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 . Как удобно.
при добавлении сети у вас будет маршрут из локальной сети в OVPN. надо лишь доступ в фаерволе настроить.
А вот обратный маршрут вам на клиенте нужно будет настраивать. смотря что на клиенте OpenVPN

Худший ответ:
192.168.22.0/24 например.
10.0.0.10/24 например
можете взять любой диапазон из 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 . Как удобно.
при добавлении сети у вас будет маршрут из локальной сети в OVPN. надо лишь доступ в фаерволе настроить.
А вот обратный маршрут вам на клиенте нужно будет настраивать. смотря что на клиенте OpenVPN
Вопрос: Как переписать данный скрипт?

Лучший ответ:
Если я правильно понял задачу, чтобы основная кнопка мыши имитировала нажатие W, а вторая кнопка мыши - пробел с автоповтором:const buttonChars = {
  1: 'W',  // левая (основная) кнопка мыши
  2: ' ',  // правая (второстепенная) кнопка
};
/* коды кнопок см. в https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons
    0 : No button or un-initialized
    1 : Primary button (usually the left button)
    2 : Secondary button (usually the right button)
    4 : Auxilary button (usually the mouse wheel button or middle button)
    8 : 4th button (typically the "Browser Back" button)
    16 : 5th button (typically the "Browser Forward" button)
 Могут быть нажаты одновременно несколько кнопок мыши - их коды суммируются.
*/

let timer;
const clearTimer = () => {if (timer) clearInterval(timer);}
const root = window;

root.addEventListener("mousedown", e => {
  if (buttonChars.hasOwnProperty(e.buttons)) {
    const func = () => e.target.dispatchEvent(
      new KeyboardEvent('keydown',{
        'key': buttonChars[e.buttons],
        'bubbles': true,
        'cancellable': true,
      })
    );
    
    func();
    clearTimer();
    timer = setInterval(func, 80);
  };
});

root.addEventListener("mouseup", clearTimer);snippet

Худший ответ:
https://codepen.io/andrejsharapov/pen/pmdNKW
https://codepen.io/32bitkid/pen/LKZzMR
может поможет
Вопрос: Кто платит за шрифт?

Лучший ответ:
Заказчик заказывает музыку и оплачивает ее...

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

Лучший ответ:
То  что вы прислали это формат apng  сделать  можно например тут
https://ezgif.com/apng-maker

Худший ответ:
Png (png not gif) формат - который был создан для замены gif, но такая возможность как анимация в нем не реализованна
Вопрос: Как защититься от кражи cookie не используя мета информацию (ip, etc..) и js?

Лучший ответ:
Что подразумевается под "залез в браузер" ? 
Если у злоумышленника полный доступ к компьютеру/браузеру, то помимо cookies точно так же можно достать данные localstorage и любых других "приблуд". И в принципе можно просто отправлять запросы из браузера как легитимный юзер, тут вы бессильны.

Если речь про воровство cookies через XSS, то есть флаг HttpOnly который предотвратит доступ к cookies через JS
https://owasp.org/www-community/HttpOnly

Против  MITM-аттак, используйте HTTPS + HSTS.

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

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

Лучший ответ:
Там просят не большую сумму для того чтобы дать вам ссылку, активировать аккаунт
Работа - это когда они тебе платят, а не ты им.

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

Нет, я не плачу интернет магазину за заказ, пока его не привезут, а те у которых оплата ДО получения товара - не использую никогда.
Вопрос: Можно ли с arduino nano сделать джойстик?

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

Худший ответ:
Да, можно. От pro mini она отличается только форм-фактором.
Но, имхо, полноценный джойстик лучше делать на более мощных МК, у которых будет более качественный АЦП.
Вопрос: Почему не моку скопировать папку процесса к себе в директорию? Как это сделать?

Лучший ответ:
Потому что /proc это псевдо файлсистема, и cp не умеет с ней работать.
А что собственно вам нужно сделать?

Худший ответ:
Из /proc ничего нельзя скопировать. Это специальная такая файловая система, она на самом деле вовсе не файловая система :)
Вопрос: Редизайн книги для портфолио нарушение авторских прав?

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

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

Лучший ответ:
Подключить оба роутера lan>lan
Присвоить им lan ip как у первого роутера 192.168.0.2-50
Выключить на тех двух dhcp
Теперь будет одна сеть, без танцев
Или на всех попробовать поставить маску 255.255.0.0
Ну или там nat стоит, вот и не видит

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

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

Худший ответ:
Да ничего не даёт. VDS это лотерея. К ресурсам диска и CPU это относится в первую очередь.
Вопрос: Какие последствия от закрытия сайта на обслуживание?

Лучший ответ:
А сейчас он не работает? Делайте правки локально, тестируйте по максимуму, потом выливайте на поддомен и проверяйте на хостинге. Когда всё будет ОК, то заменяете основной сайт. Простой в час будет с перекурами ))

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

Но лучше таки на тестовом домене делать)
Вопрос: Как сделать нейросеть-бота на Python?

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

Худший ответ:
Поддержу комментаторов выше: а/ при чем тут нейросеть? б/ если в питоне/математике слабы - ничем кусок кода не поможет.
Вопрос: Где хранить id сессии php?

Лучший ответ:
Вопрос какой-то странный.
Идентификатор сессии не нужно хранить.
Единственная его функция - это предаваться на сервер с каждым запросом. 
Содержимое localStorage само по себе на сервер не передаётся. То есть смысла класть туда ид сессии я не вижу. 

Кроме кук нормальных вариантов все равно нету.
Если пользователь хочет отключить куки - это значит что он хочет отключить и сессии. 
Имеет полное право.

Худший ответ:
Пользователь может не только куки, но и localStorage отключить.

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

Лучший ответ:
В пакете inetutils GNU есть утилита talk - https://www.gnu.org/software/inetutils/
Ну и на очередях сообщений можно замутить, если самому писать - https://www.opennet.ru/docs/RUS/lpg/node6.html#SEC...
Вот экзампла - https://gist.github.com/Mark-htmlgogogo/e024c36541...

PS. Ну и посредством файлов передавать сообщения - очень плохая идея. Пайпы тоже не очень хорошее решение.
Самое лучшее - использовать сокеты!

Худший ответ:
В posix файловых системах есть такая сущность как pipe

mkpipe ./chat1
mkpipe ./chat2

одна программа пишет в chat1 и читает из chat2, вторая наоборот
Вопрос: Чем плоха (хороша) данная конфигурация компьютера?

Лучший ответ:
Стоит выкинуть HDD, заменить на SSD (тем более, что один M.2 разъем мать имеет).

Далее, из личных ощущений опишу. Я бы собрал с AMD процессором. По параметру "цена/производительность" будет выгоднее в текущих реалиях. Возможно, стоит взять видеокарту более позднего поколения, напр. RX 5500 XT, которая незначительно дороже, чуть-чуть более производительна, но несет на борту больше памяти, что может оказаться преимуществом в современных играх.

Худший ответ:
Gigabyte Z390Планируете ставить мощную видеокарту, или разгонять процессор? Иначе зачем чипсет Z?

 DIMM 8Gb DDR4 PC21300 2666MHz Crucial (CT8G4DFS8266) - 2 шт.Лучше одной планкой на 16Гб.

DVD±R/±RW LiteOn iHAS122-04/14 SATA Black - 1 шт.Оно вам надо? Ими кто-то еще пользуется?

Не вижу в сборке SSD диска - куда систему будете ставить?
Вопрос: Почему нельзя вызывать методы объекта через свойство делегата Target?

Лучший ответ:
Приведи Target к его типу SomeClass, и тогда будет можно.

Худший ответ:
можноusing System;

namespace SomeNonStatic
{
    class Program
    {
        delegate void someDelegate();
        static void Main(string[] args)
        {
            var so = new SomeClass();
            someDelegate sd = so.SomeNonStaticMethod;

            Console.WriteLine($"someDelegate.Target == someObject => {sd.Target == so}");

            (sd.Target as SomeClass).SomeMethod(); // а вот так почему-то нельзя
        }
    }

    internal class SomeClass
    {
        internal void SomeNonStaticMethod() => Console.WriteLine("it's SomeNonStaticMethod");
        internal void SomeMethod() => Console.WriteLine("it's SomeMethod");
    }
}а еще лучше такusing System;

namespace SomeNonStatic
{
    class Program
    {
        delegate void someDelegate();
        static void Main(string[] args)
        {
            var so = new SomeClass();
            someDelegate sd = so.SomeNonStaticMethod;

            Console.WriteLine($"someDelegate.Target == someObject => {sd.Target == so}");

            if(sd.Target.GetType() is SomeClass)
                (sd.Target as SomeClass).SomeMethod(); // а вот так почему-то нельзя
        }
    }

    internal class SomeClass
    {
        internal void SomeNonStaticMethod() => Console.WriteLine("it's SomeNonStaticMethod");
        internal void SomeMethod() => Console.WriteLine("it's SomeMethod");
    }
}
Вопрос: Как будет лучше новичку вникнуть в мир программирования?

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

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


Худший ответ:
Все для всех индивидуально, тянет в gamedev? Учи C#.
back-end - PHP, Python
Под мобилки - Котлин или Джаву. 
Десктоп ПО - c#
Фронт-енд: JS ( Вообще js очень крутой ЯП ;3 )

Главное учиться и практиковаться)
Вопрос: Где можно посмотреть подробные реальные примеры применения концепций и возможностей языков программирования?

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

Худший ответ:
1. Архитектурные паттерны - на подробных и понятных реальных примерах.

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

Лучший ответ:
Параметры функции, объявленные как const ссылки, могут инициализироваться результатом выражения (rvalue), а обычные ссылки, без const - только присваиваемому выражению (lvalue). В С++11 появились также rvalue ссылки, которые могут быть изменяемыми. Сложные объекты лучше передавать в функции по ссылкам (или указателям), чтобы избегать копирования.
Значит если параметр передаётся по ссылке, то ссылка с const может быть входным параметром функции, а без const - скорее всего выходным (или двунаправленным, который передаётся в функцию и там модифицируется, и служит результатом выполнения). Параметр по ссылке без const может быть входным, но это неудобно - в нём нельзя передать выражение, а только переменную (или в общем случае lvalue). И ещё это сбивает использующих функцию программистов с толку, наводя их на мысль, что параметр по ссылке должен модифицироваться внутри вызываемой функции.

Сразу понятно назначение параметров, какой параметр входной, какой выходной. Параметр по значению всегда входной, по указателю - аналогично ссылке, с const только входной, без const скорее всего выходной (но не обязательно).
rvalue ссылки нужны в том случае, если нужно сохранить объект, переданный в функцию, без копирования (объект по const ссылке пришлось бы скопировать внутри функции, а это неоптимально). Параметр по rvalue ссылке - тоже входной параметр функции, как и по const ссылке.

Худший ответ:
const (в Java final) нужно использовать везде, где это возможно.

В некоторых языках даже сделали val и var для того, чтобы сравнять эти два случая, и не было повода писать var (мутабельный) вместо val(иммутабельный).
А в Rust даже сделали ключевое слово mut, по сути инвертировав const и сделав его умолчанием.

Всё это нужно, потому что с неизменяемыми данными работать проще. Сокращается количество вариантов использования. Увеличивается надёжность.
Вопрос: Есть ли софт для отслеживания процесса, пробуждающего систему?

Лучший ответ:
Чтобы процесс пробудил систему, этот процесс должен работать. Процессы работают под управлением операционной системы. Значит операционная система должна работать. Значит она не спит, будить не нужно.
Вывод: любой процесс не может пробудить систему. Это так не работает. Пробуждают аппаратные прерывания (от клавиатуры, от сетевой карты, от таймера, и т.п.).

А вот какой процесс установил таймер - IMHO, это надо отслеживать в момент установки таймера, т.е. до засыпания системы. Софт посмотрите здесь: https://docs.microsoft.com/ru-ru/sysinternals/down...

Худший ответ:
Если еще актуально тут краткое решение 
https://blog.hqcodeshop.fi/archives/459-Windows-10...
Тут полное
https://superuser.com/questions/1513150/why-does-s...

з.ы.
Если и они вдруг не помогут то попробуй
1) Перейти в Панель управления\Все элементы панели управления\Электропитание\Изменение параметров схемы (выбери предварительно включенную схему)
2) Сон-> разрешить таймеры пробуждения -> отключить
Вопрос: Почему var привелся к int?

Лучший ответ:
7 - это int
2 - это int
int / int = int
Вот и всё.
Если хочется double, то надо писать 7.00 / 2.00

Худший ответ:
Евгений  Семашко, Это не тонкости и приколы, а часть спецификации языка.
(Вот ссылка, если интересно).

Если в двух словах, для каждого оператора предусмотрено несколько перегрузок, в зависимости от типа операндов. В частности, для деления (подробнее здесь) предусмотрено целочисленное деление, деление с плавающей точкой (IEEE 754) и десятичное.

Здесь, поскольку оба операнда одного типа, применяется целочисленное деление. Чтобы использовать другую перегрузку, необходимо, чтобы хотя бы один из операндов был числом с плавающей точкой или десятичным. 
7 / 2 = 3
7f / 2 = 3.5
Вопрос: Как проставить правильные ключи в массиве?

Лучший ответ:
выкинуть $c, т.е. 

$arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][]=[
    "ID"=>$values["ID"],
    ...
];

Худший ответ:
https://www.php.net/manual/ru/function.array-values.php
upd
или переместить $c++ внутрь if. А то получается, что когда условие не проходит, и в массив продуктов не добавляется элемента, то счётчик все равно плюсуется.
foreach ($n as $keys => $values) {          
            if ($values["PROPERTY_DAYTIME_VALUE"] == 1366 && $values["PROPERTY_TYPE_VALUE"] == 1375) {
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["ID"] = $values["ID"];
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["NAME"] = $values["NAME"];
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["PREVIEW_PICTURE"] = $values["DETAIL_PICTURE"];
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["PREVIEW_TEXT"] = $values["DETAIL_TEXT"];
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["PREVIEW_TEXT_TYPE"] = $values["DETAIL_TEXT_TYPE"];
          $arItem[0]["SUBCATEGORY"][0]["PRODUCTS"][$c]["IMAGE_URL"] = $values["IMAGE_URL"];
          $c++;
            }
Вопрос: Как отсортировать кучу принтеров Kyocera в сети?

Лучший ответ:
Домена нет и не будет
ССЗБ...

Худший ответ:
Все очень просто.
Создаете "эталонную" установку со списком всех нужных принтеров на одном компьютере.
Затем через оснастку mmc экспортируете их, драйвера, и все что необходимо в один файл.
Ну а затем через оснастку, на всех остальных компах, разворачиваете все те же самые принтеры из ранее созданного с эталонного компа.
Если у вас, конечно же, prof редакция, и всем требуется одинаковый список принтеров.
Вопрос: Какие главные направления в Python-разработке?

Лучший ответ:
1) для зарабатывания бабла
2) для фана
3) для вопросов на Тостере  (про боты, тензорфлоу, нампай и задачки от учителя)

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


Не поленюсь вместо тебя на вики зайти:

Python — стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов, также он активно используется для создания прототипов будущих программ. Python используется во многих крупных компаниях[102]: Dropbox, Google (например некоторые части Youtube и Youtube API написаны на Python[103]), Facebook[104], Instagram[105].

Python с пакетами NumPy, SciPy и MatPlotLib активно используется как универсальная среда для научных расчётов в качестве замены распространённым специализированным коммерческим пакетам Matlab, IDL и другим. Библиотека Astropy — популярный инструмент для астрономических расчётов.

Сочетание простоты и лаконичности с возможностью использования сложных абстракций и мощных разнообразных инструментов делает Python удобным в качестве скриптового языка. Возможность его встраивания ограничивается объёмом интерпретатора, но в крупных системах это ограничение несущественно. В профессиональных программах трёхмерной графики, таких как Autodesk Maya, Blender, Houdini и Nuke, Python используется для расширения стандартных возможностей программ[106][107]. В Microsoft Power BI Desktop Python, наряду со встроенными языками запросов и языком программирования R, может использоваться на этапе загрузки данных в ETL-процессах, расчётах и графической визуализации данных[108][109].

Также Python подходит для выполнения нестандартных или сложных задач в системах сборки проектов, что обусловлено отсутствием необходимости предварительной компиляции исходных файлов. В проекте Google Test он используется для генерации исходного кода mock-объектов для классов языка C++[110].

Интерпретатор Python может использоваться в качестве мощной командной оболочки и скриптового языка для написания командных файлов ОС. Лёгкость обращения из Python-скриптов к внешним программам и наличие библиотек, дающих доступ к управлению системой, делают Python удобным инструментом для системного администрирования.[111] Он широко используется для этой цели на платформе Linux: обычно Python поставляется с системой, во многих дистрибутивах инсталляторы и визуальный интерфейс системных утилит написаны именно на Python. Используется он и в администрировании других Unix-систем, в частности, в Solaris и macOS.[111] Кросс-платформенность самого языка и библиотек делает его привлекательным для унифицированной автоматизации задач системного администрирования в гетерогенных средах, где совместно применяются компьютеры с операционными системами различных типов.
Вопрос: Как написать красивое графическое приложение на Python?

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

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