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

TGINSIGHT SIMILAR POSTS

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

Изходен канал @clockstackwheels · Post #28 · 24.05

Я очень долго не покупал робот-пылесос, несмотря на свою любовь к технологиям. Не шибко верил в эти штуки, да и жил в небольшой квартире с пушистым ковром. Но теперь у нас квартира побольше и почти без порогов, а ещё кот, от которого везде остаётся шерсть. К тому же, рынок неплохо развился за эти годы, индустрия набила шишек, так что я взял Roborock S5 Max. Робот-пылесос, пожалуй, одна из самых по-настоящему умных бытовых технологий нашего времени. Посудомойка и стиральная машина все ещё требуют много дополнительной работы руками, автоматическая глажка вообще ещё в адекватном виде не появилась, 3D принтер тот вообще хочет много внимания... А робот-пылесос — недаром там в названии «робот» — запустил и забыл. S5 Max довольно дорогая модель с лидаром и хорошей программной частью. Он и правда весьма умён, свободно ориентируется в квартире, грамотно строит маршрут и понимает, где находится. В моем случае проблема возникла лишь один раз — пылесос втянул кошачью игрушку, которая застряла во вращающейся щётке. Это, кстати, приучает к порядку: если всякие рюкзаки и тапки ещё могут валяться у стен там и тут, то мелочам на полу делать совершенно нечего — ваши ступни вам потом за это спасибо скажут. В остальном Roborock прекрасно объезжает ножки стульев, перекатывается через провода и заползает на всю глубину под диван и кровать (а это недоступно даже при чистке ручным пылесосом!). При первом запуске робот объезжает всё пространство, куда способен пролезть, и строит карту квартиры, на которой позже можно разметить комнаты, невидимые стены и другие зоны, а затем, по желанию, убирать точечно. Ещё прикольная фишка — детектор ковра: машина понимает, что движется по ворсу, и сама увеличивает мощность всасывания, а затем обратно уменьшает, когда попадает на обычный пол. Но насчёт самой уборки совсем чудес ожидать не стоит. Сильный ручной пылесос тянет лучше, а робот не избавлен от всех проблем своих предков: волосы наматываются на щётку, пылесборник нужно вытряхивать и мыть. Кстати, для волос прямо под крышкой небольшой нож-лезвие, очень практично: взял и обрезал. Я бы сказал так: человек уберёт лучше, но робота вы будете запускать существенно чаще, чем стали бы пылесосить сами. Особенно если квартира большая. 30-метровую студию я в своё время обходил с вертикальным пылесосом за 20 минут. Но квартиру втрое больше — нет уж, пусть машина старается. Из серьезных для меня недостатков я бы выделил три: • Моющий режим конкретно в моей модели — полная ерунда. Он едва протирает поверхность, так что я бы скорее назвал его увлажняющим режимом. Так что не особо нужен в корпусе и контейнер для воды, и пристегивающаяся на липучках тряпка-расходник. • Робот не умеет понимать, что пылесборник заполнен, и как-то предупреждать об этом. А пыли и грязи он находит много, даже если запускать каждый день. Вот бы сам в туалет ездил выбрасывать... • Машина умеет понимать, где ковёр. Но разработчики не догадались сделать функцию «почистить в этой комнате только ковёр». А было бы очень кстати. В остальном однозначно мастхэв, одно из самых полезных вложений денег за последние много лет. #gadgets

Hashtags

Резултати

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

Търсене: #concurrent

当前筛选 #concurrent清除筛选
djangoproject

@djangoproject · Post #90 · 11.07.2016 г., 11:56

https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor 17.4.1. #Executor Objects class #concurrent.futures.Executor An abstract class that provides methods to execute calls asynchronously. It should not be used directly, but through its concrete subclasses. submit(fn, *args, **kwargs) Schedules the callable, fn, to be executed as fn(*args **kwargs) and returns a Future object representing the execution of the callable. with ThreadPoolExecutor(max_workers=1) as executor: future = executor.submit(pow, 323, 1235) print(future.result()) map(func, *iterables, timeout=None, chunksize=1) Equivalent to #map(func, *iterables) except func is executed asynchronously and several calls to func may be made concurrently. The returned iterator raises a concurrent.futures.TimeoutError if __next__() is called and the result isn’t available after timeout seconds from the original call to #Executor.map(). timeout can be an int or a float. If timeout is not specified or None, there is no limit to the wait time. If a call raises an exception, then that exception will be raised when its value is retrieved from the iterator. When using ProcessPoolExecutor, this method chops iterables into a number of chunks which it submits to the pool as separate tasks. The (approximate) size of these chunks can be specified by setting chunksize to a positive integer. For very long iterables, using a large value for chunksize can significantly improve performance compared to the default size of 1. With ThreadPoolExecutor, chunksize has no effect. Changed in version 3.5: Added the chunksize argument.

djangoproject

@djangoproject · Post #261 · 16.02.2017 г., 06:56

http://www.giantflyingsaucer.com/blog/?p=5557 In spring 2014 Python 3.4 shipped a provisional package (#asyncio) which according to the docs “provides infrastructure for writing single-threaded #concurrent code using #coroutines, #multiplexing I/O access over #sockets and other resources, running network clients and servers, and other related primitives“. I can’t possibly cover everything in this article but I can introduce some of the things you can do with it. As per my New’s Years resolution I’ll be building these #examples using Python 3.4.2 (Asyncio has been ported back to Python 3.3 now as well).

djangoproject

@djangoproject · Post #290 · 04.04.2017 г., 21:36

https://pymotw.com/3/asyncio/executors.html Combining Coroutines with Threads and Processes A lot of existing libraries are not ready to be used with #asyncio natively. They may block, or depend on concurrency features not available through the module. It is still possible to use those libraries in an application based on asyncio by using an #executor from #concurrent.futures to run the code either in a separate thread or a separate process. #Threads The #run_in_executor() method of the event loop takes an executor instance, a regular callable to invoke, and any arguments to be passed to the callable. It returns a Future that can be used to wait for the function to finish its work and return something. If no executor is passed in, a #ThreadPoolExecutor is created. This example explicitly creates an executor to limit the number of worker threads it will have available. #Processes A ProcessPoolExecutor works in much the same way, creating a set of worker #processes instead of threads. Using separate processes requires more system resources, but for computationally-intensive operations it can make sense to run a separate task on each CPU core. #learn