刚刚看了《海边的曼切斯特》

略闻获奥斯卡不知道什么奖,电影名字不错,就看了。
剧情顺畅平凡打动观众,看着男主的行为观众也被牵动代入剧中。各个角色的性格表现安排也合适出色。

整个片子的呈现,拿捏很好。留意片子每个细节每个小动作吧,嗯

Manchester by the Sea
2017.

Manchester By The Sea

成功把门禁的 NFC UID 复制到手机

其实就是照着 如何利用Nexus 5伪造一张门禁卡修改NFC手机的默认UID 搞就行。
楼层里发现原始来源:http://stackoverflow.com/questions/28409934/editing-functionality-of-host-card-emulation-in-android,厉害了

最近因为要提取 WIFI 密码而把手机 root 了,也用了有些年了,保修早就过了。正好手上有个门禁卡,也刚好再需要多一个,就把留在脑袋的一丝印象捞出来玩玩。

第一次漏了长度字节没加上,不成功之余,手机的 NFC 功能也不能工作,一度以为不兼容搞不定。后来发现后加上漏掉的一字节就好了。

虽然只能复制 Mifare M1 的 UID,但在我的情况里就已经够用了。其实x宝也是三四十块钱就能买一个简易的复制工具(需要配套可写 UID 的 NFC Tag)。

Visual Studio Code 挺好用的

我在 macOS 上要开发一些简单的 C/C++, 不想要完备的 IDE, 一个编辑器就很方便。

可是我还想要一些有用的开发插件例如智能代码提示、智能引用、快捷键构建之类。
这些功能其实任何编辑器依靠广大群众的智慧也有各种好的解决方案,VCS 则是更简单就可以配置到足够好,而且免费。

Read More

这样理解 Python 闭包

看了 12 步轻松搞定 python 装饰器 里的描述后,对『closure 是上下文』有了些形象的理解,一些应用了 closure 的实践可以参考文章里的一些例子,例如函数参数定制生成,装饰器功能等

g_var = 20
def outer():
loc_var = 30
def inner():
print('I can access g_var: %s, loc_var: %s' % (g_var, loc_var))
return inner
in_fun = outer()
# 内层使用到的[外层函数的本地变量]会加入到 func 对象的 __closure__ tuple 里面
print(in_fun.__closure__)
# 全局变量不包含在 closure tuple,并不是副本
g_var = 5000
# 效果就是 in_fun 本身函数内的代码,加上 __closure__ 里的上下文副本实现了 closure 功能
in_fun()
# 也就是说 __closure__ tuple 包含一个 cell 元素,cell 装有外层的 loc_var,值是 30
print('There is %d cell inside' % len(in_fun.__closure__))
print('This cell contain %d' % in_fun.__closure__[0].cell_contents)