Жаль, что мои 450D и Galaxy S чуть-чуть не дотягивают и объединиться им не суждено. Пульт управления с такими возможностями, да еще всегда под рукой, был бы идеальным решением.
Одно дело договориться не нападать друг на друга, другое — договориться сообща нападать на кого-то. Это различается так же, как хипповская коммуна и банда гопников.
Да, многое написано правильно, но как-то стереотипно. Далеко не все айтишники «не от мира сего». Да и упор именно на айтишников страннен. Как мне кажется, эти правила подходят для любого человека умственного труда, увлеченного своей работой.
Вообще, я старался уменьшить потенциальное количество грабель, но может сделал все наоборот. Если кому-то будет не лень покопаться в коде и найти грабли, заранее благодарю.
Я сомневаюсь, что это имеет смысл использовать для действительно сложного многопоточного кода. Скорее этот модуль для простых случаев, когда нужно что-то выполнить в отдельном потоке, не мешая основному потоку.
В CPython такой проблемы нет — благодаря GIL в любой момент времени исполняеться только один поток. То есть можно не особо задумываясь обмениваться данными с стандартными python-объектами посредством атрибутов.
Да, непосредственно проблемы доступа к питоновским типам нет, но нельзя гарантировать атомарности группы операций. Здесь же мы не можем получить доступ к изменяемому объекту и изменить его — списки и словари копируются, а при попытке доступа к другим изменяемым объектам генерируется исключение.
Такой код не совсем Qt-friendly. Намного более идиоматичный вариант — сделать свой поток с сигналом textChanged(str) и присоиденить его соответствующему слоту — setText с помощью Qt::QueuedConnection соединения. Кода это особо не прибавит, а читать это потом будет намного легче.
Здесь, по большому счету, все так и делается, только скрыто от пользователя. Про размер кода и читаемость спорить не буду, просто мне так показалось удобней.
Кроме того если возникнет желание можно будет переписать такие потоки на С++.
Согласен, но у нас на работе гораздо чаще встречается обратная задача.
sudo vi /etc/hosts
Теперь Самсунгу надо куда-то девать девайсы, выпущенные для Европы. Ждем дешевых планшетов?
</fantasy mode>
Настоящий профессионал экстремизм увидит даже в детской сказке. И педофилию тоже.
Я сомневаюсь, что это имеет смысл использовать для действительно сложного многопоточного кода. Скорее этот модуль для простых случаев, когда нужно что-то выполнить в отдельном потоке, не мешая основному потоку.
Да, непосредственно проблемы доступа к питоновским типам нет, но нельзя гарантировать атомарности группы операций. Здесь же мы не можем получить доступ к изменяемому объекту и изменить его — списки и словари копируются, а при попытке доступа к другим изменяемым объектам генерируется исключение.
Здесь, по большому счету, все так и делается, только скрыто от пользователя. Про размер кода и читаемость спорить не буду, просто мне так показалось удобней.
Согласен, но у нас на работе гораздо чаще встречается обратная задача.