初探函数式编程
最近遇到了一些函数式编程的概念,心想我用 Python
的 map
reduce
不就是在函数式编程嘛,
但看了半天仍然一头雾水,什么是 UnitBox
?flatMap
和 map
差在哪里?于是先学了阮老师的函数式编程入门教程,
唉哟喂,和我原来想的还不一样,Python
这些操作虽然算是函数式编程,但要系统地理解为什么能这样,
还得从头说起。
《死亡细胞》——总有一款玩法适合你
周末在家肝了一天《死亡细胞》,第一次双塔流过了刺客,看了下 Steam 游戏时间记录, 我已经打了 60 个小时了,和《以撒》的 200+ 小时数比起来,简直不值一提。 强忍着“再开一把”的心情关上电脑,第一次通关一款游戏用这么长的时间, 当然这其中有这款游戏现在还是 EA 阶段,难度设计还需要调整的锅, 不过我想从另一方面来谈谈这款游戏给我的不一样的感受。
airflow priority_weight 计算方法
最近发现 airflow 任务执行顺序有些奇怪,于是看了下 airflow 关于权重的处理,解答了心中的疑问。
以最新的稳定版(v1.8-stable)为例,代码总共就这么一小段
@property
def priority_weight_total(self):
return sum([
t.priority_weight
for t in self.get_flat_relatives(upstream=False)
]) + self.priority_weight
airflow apply_defaults 赏析
最近在写 airflow 的脚本时遇到一个问题,出于方便把 BaseSensorOperator
包了一层,
后来想改下超时时间和优先级等参数,发现改了没用,于是看了下源码,发现 Operator
都有个 apply_defaults
的装饰器,细看一看,实现挺巧妙,也解释了我遇到的问题。因为我的问题属于个人使用不当导致的,
所以就不放问题代码了,但我会在分析后给出一些使用方面要注意的地方和建议。
learn vim script the hard way 笔记(番外)
CH41 Creating a Full Plugin
- 看到这里你可以停了,因为前面的姿势足够你完善自己的
~/.vimrc
脚本,去修复别人脚本的bug了,绝无讽刺的意思 - 往下学之前,建议先玩下Potion语言,这是个很小的语言,使用它的目的是为了辅助我们写vim script
CH42 Plugin Layout in the Dark Ages
~/.vim/colors/
在这里的文件记录了vim的颜色主题,如果运行:color xxx
就能看~/.vim/colors/xxx.vim
的配色方案了,查看当前配色都有哪些用:hi
~/.vim/plugin/
在这里的文件每次vim启动都会运行一次~/.vim/ftdetect/
这里的文件每次启动也会运行一次,ft
的意思是filetype
,这里的文件应该是包含autocmd
用来切换filetype的,所以一般就一行