TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #759 · 6.02

Попробовали с друзьями детективный квест «Безмолвный свидетель» от Лавки Игр. Это такая мини настольная игра, работающая вместе с навыком для Алисы. В Алисе записанные профессиональными актёрами реплики и атмосферный звук погружают вас в сюжет некоего таинственного убийства, которое вы должны раскрыть, разговаривая с персонажами. Физически при этом есть карточки с людьми, предметами и локациями, которые вы открываете в нужном порядке, чтобы видеть ваш инструментарий. Например, какой-то человек упоминает другого, и Алиса вам командует открыть карточки с такими-то номерами. У вас появляется новый персонаж и реплики с вашей стороны, которые вы можете теперь говорить в том числе всем предыдущим персонажам, получая доступ к новым веткам диалогов. (Не рассматривайте детали на фото, если не хотите словить спойлеры). С этим квестом связана прикольная история: когда Лавка только презентовала его, я им написал: «Так и так, я аккредитованный Яндексом и Сбером разработчик под голосовые платформы, большой опыт, давайте вам сделаю что-нибудь». Меня проигнорировали, а в итоге игра вышла с техническими и UX проблемами. Про часть этих проблем написано несколько раз прямо на карточках для игры. В конечном счёте со мной всё-таки связались, и я описал алгоритм решения, посмотрим, внедрят ли его в следующих частях. Если говорить о самой игре, то приключение вышло очень интересное и захватывающее. Мы с друзьями убийцу не нашли, потому что слишком много думали: отбросили первую же гипотезу из-за простоты, а она в итоге и оказалась верной. Да, в диалогах есть пара нелогичных и запутывающих кусочков, но, если бы вы были настоящим детективом, беседующим с настоящими людьми, путаницы было бы ещё больше, так что посчитаем это изюминкой. В остальном оригинальная механика, действительно хорошее погружение в атмосферу и вполне решаемая задачка (хотя мои друзья после игры сказали, что им ответ не нравится и кажется притянутым за уши, но лично я с этим мнением не согласен). В качестве недостатка отмечу очень плохое техническое состояние навыка. Допустим, UX вылизать не смогли, потому что не было опыта в Алисе. Но просто обеспечить бесперебойную работу — не великого ума дело. У нас (и, судя по чатам, не только у нас) постоянно навык сваливался в «Не отвечает», и приходилось ждать неопределённое время, пока он заработает. Навскидку возможных причин четыре: 1. Плохая обработка ошибок времени выполнения, программа сваливается в пятисотую, пока что-то её не перезагрузит по таймеру. 2. Плохая обработка возможного состояния сессии, программа сваливается в пятисотую, пока Яндекс не сбросит кэш состояния игрока. 3. Слабый сервак, устаревший медленный язык программирования. 4. Плохое проектирование программы на многопоточную нагрузку: какие-нибудь синхронные операции оправки данных в статистику, отсутствие горячего кэша, неэффективные структуры данных — всё, что может периодически увеличивать лаг выше разрешённого Яндексом. В какой-то момент уже в самом конце мы были очень злы из-за багов и почти полезли в сеть тупо смотреть прохождение. Если бы навык не ожил, впечатления от игры были бы критически негативные. А так они скорее позитивные. Если Лавка исправит проблемы, то очень рекомендую. Да, игра по сути одноразовая, но и стоит она как билет в кино: вы покупаете классное развлечение на целый вечер для компании почти любого размера. Вторую часть обязательно возьму, когда выйдет. #games

Hashtags

Резултати

Намерени 2 подобни публикации

Търсене: #multithreading

当前筛选 #multithreading清除筛选
djangoproject

@djangoproject · Post #95 · 11.07.2016 г., 12:14

https://docs.python.org/3/library/asyncio-dev.html#asyncio-multithreading 18.5.9.3. #Concurrency and #multithreading An event loop runs in a thread and executes all callbacks and tasks in the same thread. While a task is running in the event loop, no other task is running in the same thread. But when the task uses yield from, the task is suspended and the event loop executes the next task. To schedule a callback from a different thread, the BaseEventLoop.call_soon_threadsafe() method should be used. Example: loop.call_soon_threadsafe(callback, *args) Most asyncio objects are not thread safe. You should only worry if you access objects outside the event loop. For example, to cancel a future, don’t call directly its Future.cancel() method, but: loop.call_soon_threadsafe(fut.cancel) To handle signals and to execute subprocesses, the event loop must be run in the main thread. To schedule a coroutine object from a different thread, the run_coroutine_threadsafe() function should be used. It returns a concurrent.futures.Future to access the result: future = asyncio.run_coroutine_threadsafe(coro_func(), loop) result = future.result(timeout) # Wait for the result with a timeout The BaseEventLoop.run_in_executor() method can be used with a thread pool executor to execute a callback in different thread to not block the thread of the event loop. See also The Synchronization primitives section describes ways to synchronize tasks. The Subprocess and threads section lists asyncio limitations to run subprocesses from different threads.

GitHub Trends

@githubtrending · Post #14740 · 23.05.2025 г., 12:30

#python#async#asyncio#cross_platform#downloader#gui#multithreading#pyqt#pyside6#python#qt#software#streaming Ghost Downloader 3 is a fast, AI-powered download manager that works on Windows, Linux, and macOS. It speeds up downloads by splitting files into many parts and using multiple threads, dynamically adjusting to use your full bandwidth. It supports resuming downloads, proxy settings, SSL security, and clipboard monitoring for easy link capture. The interface is modern and user-friendly. This tool helps you download files more quickly and efficiently, with options to control speed and use proxies, making it ideal if you want faster, smarter, and more reliable downloads on your computer[1]. https://github.com/XiaoYouChR/Ghost-Downloader-3