Собрали в одном месте самые важные ссылки
читайте нас в Twitter
В исследовательском проекте мне потребовался прототип медицинского браслета. Устройство должно было периодически измерять пульс, предупреждая об этом пациента, и отправлять результаты вместе с уровнем заряда батареи в облачный сервис. Таким устройством вполне мог стать и фитнес-браслет со стационарным ретранслятором вместо смартфона. Поэтому, прежде чем попытаться собрать прототип своими руками, я решил поэкспериментировать с чем-нибудь готовым. Так у меня появился новый Xiaomi mi band 1S Pulse (обзор на Geektimes) с оптическим датчиком частоты сердечного ритма.
ffi = FFIpp()
ffi.cdef("""
class testClass {
public:
testClass();
void test(int);
int returnsInt(int);
private:
void shouldNotBeInModule();
};
""")
self.assertTrue(ffi.has_class("testClass"))
ffi.set_source("example_module", """
class testClass {
public:
testClass(){}
void test(int){/*nop*/}
int returnsInt(int){return 1;}
private:
void shouldNotBeInModule() {/*nop*/}
};""")
ffi.compile()
import example_module
c = example_module.testClass()
self.assertEqual(c.returnsInt(5), 1)
Решил я познакомится с такой интересной для меня областью, как Machine learning. После непродолжительных поисков я обнаружил достаточно популярный курс Стэнфордского университета Machine learning. В нем рассказываются основы и дается широкое представление о machine learning, datamining, and statistical pattern recognition. Был для меня в этом курсе небольшой минус как Python программиста- домашние задания надо было выполнять на Octave\Matlab. В итоге я не пожалел, что получил представления о новом языке программирования, но как учебный пример для более тесного знакомства с соответствующими библиотеками решил переписать домашние задания на Python. То что получилось лежит на GitHub тут.
Модуль позволяет принять Github webhook для последующей удобной обработки
Дельные видосы от sentdex по питону на английском языке. Недавно стартовала серия уроков по джанго. Уровень 0+
Модуль collections содержит разные типы коллекций по-мимо встроенных list, dict, tuple
import keyboard
# Press PAGE UP then PAGE DOWN to type "foobar".
keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
# Blocks until you press esc.
wait('esc')
Модуль содержит набор моделей, view's. Можно адаптировать под обычную Django
Статья описывает способы ускорить сериализацию объектов - уменьшить вариативность данных, убрать валидацию, использовать С библиотеки.
~$ tag ~/frontend @frontend ~$ tag ~/backend @backend ~$ tag ~/frontend ~/backend @work ~$ tag ~/db @vm ~$ tag ~/web @vm # Or equivalently ~$ tag ~/frontend @frontend @work ~/backend @backend @work ~/db ~/web @vm # All tag names must begin with the @ symbol
# Execute 'git fetch origin' in all directories tagged @project ~$ run @project git fetch origin # Execute 'git status -sb' in all directories tagged @frontend and @backend ~$ run @frontend @backend git status -sb # Execute 'vagrant status' in all directories tagged @vms ~$ run @vms vagrant status # Directory paths can be specified along with tags ~$ run @backend ~/scripts ~/redis ls -la # The command can be executed in parallel as long as it doesn't wait for input ~$ run -p @backend 'sleep 5 && echo done' ~$ run -p @project git pull ~$ run -p @vms vagrant up
Вышла новая версия веб фреймворка Pyramid. Из особенностей можно отметить поддержку Cache busting.
from signaller import Signal logging.basicConfig(level=logging.DEBUG) def slot(arg): print('slot:', arg) # Creating signals (you can set signal name, but it is not required, # signals can be anonymous): sig_test = Signal('sig_test') # Connecting signals to slots (uses weak references by default, # but you can force strong references by specifying weak=False): sig_test.connect(slot) sig_test.connect(lambda arg: print('slot_lambda:', arg), weak=False) # You can also use decorators for connecting signals to slots: @sig_test.connect def slot2(arg): print('slot2:', arg) # And weak=False can be specified when using decorators too: @sig_test.connect(weak=False) def slot3(arg): print('slot3:', arg) # Slots are automatically disconnected from signals # when using weak references: del slot2 # Or you can disconnect slots manually: sig_test.disconnect(slot3) # Emitting signals (you can send positional and keyword # arguments to connected slots): sig_test.emit('Hello world!')