Долгое время у меня в кабинете на столе жил "Куб управления Aqara" — специальный беспроводной пульт умного дома, который разными жестами позволял совершать разные действия. Но по-настоящему различимых работоспособных жеста было всего 4: поворот на 90, поворот на 180, горизонтальное вращение, встряхнуть. Не хватало еще парочки.
И вот Aqara выпустила новую версию. Хотя на самом деле конечно добавить такую функциональность можно было обновлением прошивки, но маркетинг диктует необходимость продать людям тот же продукт ещё раз. В любом случае, "новая версия" умеет понимать, какой гранью вверх она находится, и отстраивать функцию от этого. В оригинале там на каждой грани нарисованы точки, как на игральной кости. Но я использовал этикеточный принтер (на удивление удачная и полезная покупка для дома) и сделал наклейки. Теперь достаточно повернуть куб нужной картинкой вверх и потрясти, тогда будет включена/выключена, например, люстра, открыты/закрыты шторы, включен рабочий компьютер и так далее. Занял все слоты, удобно.
#gadgets#life
http://www.paulbrownmagic.com/blog/python_partial_application
Python Partial: Code Your Intention
Of all the functional programming inspired features in Python, partial application must be the best kept secret that you really need to know. Partial application lets you create highly abstract functions and make them more specific for use, pass a function arguments without calling it yet, and so much more.
#tuple#sort
http://wla.berkeley.edu/~cs61a/fa11/lectures/streams.html
In this chapter, we continue our discussion of real-world applications by developing new tools to process #sequential#data. In Chapter 2, we introduced a sequence interface, implemented in Python by built-in data types such as #tuple and #list. #Sequences supported two operations: querying their length and accessing an element by index. In Chapter 3, we developed a user-defined implementations of the sequence interface, the Rlist class for representing recursive lists. These sequence types proved effective for representing and accessing a wide variety of sequential #datasets.