2017-11-27

coroutine的一些问题

为了绕开繁琐的发布流程,选了python套hadoop的pb做rpc.
主要还是走coroutine的方式.

在一些场景夹杂了callback.
主要是为了一个逻辑里访问访问多个不同服务的时候尽可能得减少block.

只是单纯yield的话,叙事还是单线条的.

比如从yarn拿一批application的信息过来,然后拿对应的配置文件路径,然后读写.

纯粹coroutine的话,大概就是for一下application然后逐个yield getconfig.
再发起read请求,继续yield.

这样的话,至少理论上可以并行发出去的请求只能串行等待了.

当然,一个折中的办法是阶段batch得yield.
就像做map reduce一样,人为分出synchronize point去集中batch yield一个stage.

而且从实现上来说,考虑到coroutine是单线程形式.
要从非IO流程激活IO流程只能人为再加一个yield先切出去给IO一个启动的机会再切回来.

这多多少少不是很符合直觉.

而比较intuition的做法就是直接加callback.
毕竟when ready的语义算是最少认知负担的了.
并且天然地就是一条条并行的处理流水线形式.

尽管实现上并没有什么太本质的区别.

callback的另一个好处或者说coroutine容易犯的一个错就是context的有效性问题.

从形式上来说,callback是一个limited的environment.
所以会比较容易地迫使去带入context,并保持其有效.
至少从个人习惯上来说是这样.

但写coroutine的时候容易有一个错觉.
就是天生的单线程线性形式.
容易陷入写串行代码的一个思路.

比如以写blocking IO的风格写coroutine.

一个例子就是直接持有self.stream去反复做读写.

这里的一个问题在于虽然coroutine保持了代码组织层面的线性执行.
但实际上来说,每一次yield触发的都是隐性的context switch.

也就是说,yield前后的reference指向就存在类似多线程情况下的concurrent modification问题.
上下两行代码的实际指向存在差异.

尽管这个可以从一个local reference来解决.
但始终无法规避前后状态会有不一致的形式的存在.

而这个对于coroutine作为提供一种简化的并发编程模型的初衷是有所违背的.

并且,为了尽可能地enforce这种local reference的做法.
在相关的API调用的接口设计上就可能需要显示的要求传入需要的context.

当然,这可能只是个风格取舍问题.

不过至少从这个层面上来说,跟callback的隔离机制还是某种程度上一致的.

但至少从简化模型的层面来说,coroutine算是没有什么意义的.

因为并行模型的核心要就是并行处理.
强行地约束成一个线性执行条件/形式的话,多多少少算是一种自欺欺人的方式.

相比之下,goroutine算是一种比较好的折衷方式.

原始的callback的when ready虽然是最符合直觉的.
但也存在为人诟病的组织形式上的嵌套callback hell的问题.

虽然可以通过注册一种binding/routing的形式,减少这种欠优雅性.
但随之而来的是叙事流程上的打散,重构,再打散的反复过程.

一个例子就是event机制.

形式上来说,就是通过一个key或者envelope去做mail routing.

相对于直接的when ready来说,感觉上多了一层可有可无的多余描述.
因为本质上来说,event名称成为了具体流程的一个代号索引.

而这个索引,在很多语言和实现里是有些无谓的.

作为对比的goroutine.
形式上就是去掉了不必要的key索引的event dispatcher.

事实上,从意图上来说就是把blocking的东西从当前执行环境移除.

这一点跟coroutine来说,算是一种哲学层面的不同.

因为coroutine虽然同样是基于把booking从当前环境移除的理念.
但做法上是为了保持线性模型.

而goroutine则更像是纯粹的把blocking的东西扔出去彻底不做.
目的是保持当前执行流程里不存在可能阻塞的东西.
然后在实现上提供一个双生的环境,只做blocking的东西.

从直觉上更符合硬件形式.
把实际的IO等操作offload到外围并行设备处理.






2017-11-23

新计划经济

传统意义上来说,收紧流动性无非就几种方法.

一个是准备金.
一个是加息.

而准备金率在现代社会来说,尤其是近几年各种金融自由化和创新.
基本上从资产构成上来说居民成面存款已经不是主要成分了.

尤其在现在各种资产焦虑和中年危机以及个别市场的超额收益驱动下.

所以,某种程度上来说,准备金作为一种宏观手段已经显得有些无力和多余.

于是,剩下的就是加息.

就信用支撑的现代经济来说,流动性的根源还是在于央行.

毕竟某种程度上来说,央行是一种平行于市场的存在.
银行以及各种经济主题的交互到底是在一个闭环的市场内进行.
短期内的内在流动和货币乘数制造的信用货币不如央行直接投放来/收紧来得快速有效.

那么为什么要收紧流动性呢?
或者说为什么不能继续宽松?

因为从手段上来说,准备金已经失效.
而利率操控方面可选的方向只有收缩.

如果可以继续信贷扩张的化,也就不会启用这个唯一的手段和方向.

那么,就现在来说,如果继续宽松会有什么后果么?

存款结构的变化某种程度上来说就是资产证券化扩大的过程.
证券交易的一个属性就是不受时间地点的限制,以及具有高度的交易流动属性.

另一个重要的特征就是容易结构化和对赌性质.

比如次贷中的CDO/CDS.
把不同资质的资产打包然后做远期对赌交易.
带来的后果就是一旦一个环节出问题带来的就是连锁效应.

如果一个市场当中证券资产越多,流动性越高,玩法越多样的化.
也就说隐含的系统变量和因素越多,整体系统的可控程度和稳定性就容易使人产生怀疑.

所以如果要增加安全感的化,只能是降低系统复杂度.
增加更多的管制和限制.

这也就是为什么要收缩信贷的一个原因.

那么为什么是信贷.

金融产品的本质特征是利息差.

原则上来说,可以针对各个系统比如证券保险金融泛金融做具体的管制措施.
但从收效程度和系统性来说,总容易顾此失彼.

而缩简利息差是相对来说一劳永逸的普适增加成本的措施.

所以理论上来说收缩信贷能够比较大范围地通过影响流动性限制和消灭一些金融形式.

加息则是最显著的收缩信贷的一种方式.

于是,加息会有什么其他影响呢?

一个就是融资成本.
尤其是在非经济上行阶段.

这么一想,看IPO政策就不难理解了.

一个还是融资成本.
不过是居民层面的.

负债的升高和融资渠道的缩窄.
带来的自然就是流动性的相对缩减.

从稳定房地产的角度来说,倒也算一种意外所得.
毕竟在没有其他政策的前提下,会在维持价格或者群体合理性的情况下,缩简交易量和流动性从而实际上的达到调控目的.

所以关键的还是看企业融资情况.
毕竟这个是直接影响经济状况的.

如果通过公开市场无法很好地解决的话,只能说是通过特定行业的特定政策倾向.
而这点无论是从架构设计还是实际操作来说,都是会有明显问题和不可控因素的.

所以,totalitarianism的计划经济形式.
只不过使用的都是市场手段而已.


2017-11-06

一些渣事

大概去年4月份的时候吧.
当时还在某卖保险公司.

接到个猎头电话,问能不能谈下某司跟某司的情况.
说手上有个候选人有这两家的offer,刚好在linkedin上看到在这两家都呆过.
所以想详细了解下.

想了想,应该是一个开始在Linkedin然后通过Google+/handout/Twitter问了微信和电话才有了以上的.
不管怎样,大概就是有了这通电话.

电话那头听起来就是一个明显刚毕业或者工作不久的 妹子声音.
有略微明显的情绪升降带来的语调细微 起伏,以及若有若无的 生涩感.
不像一些工作多年的人,听起来积极健康不卑不亢而略显空洞.

内容大概就是问两家公司的环境氛围之类的.
频率比较高的"一个朋友如何如何,觉得这样但又怕那样"的摇摆不定的选择鼓励.

当时的一个印象大概就是刚毕业的妹子做猎头,然后帮男朋友问工作背景帮做决策的感觉.

觉得还蛮有趣的.
也就是顺着"你朋友"如果是如何如何的话,A公司是怎样,B公司能怎样之类的对了起来.

大概就一个午休的时长.

末了礼节性地问是不是最近想换工作,因为看twitter timeline有类似表达.

当时在 某司虽然才一两个月,不过恶心的事确实不少.
加上当时也没现在这么无所谓,于是也礼节性地麻烦留意.

挂了.
便算一段落.

过两天接到小猎头的电话.
还是之前那些问题.
再就是问认不认识某司的某人之类的.

大概是觉得人好,可以套话吧.
想想前面从基本渠道拿到联系方式,倒也是个有思路的会灵活变通的人.

一来当时在职,也确实时间不长,只是知道也谈不上说认识.
二来也算避嫌,便没有深入谈下去.
也算回避了正面回答.

后来一些有的没的,说要请吃个饭,算感谢.
出于宅和懒惧于社交,也就说不用了吧.

忘了是当次后续还是后面还有另外个交流.
总之,大概也就是答应了.

可能约了五,六月份的某个周末.
见了个面,边走边聊.

从某司的一些情况到工作的琐碎和吐槽再到私人的一些状况.
大概就是她问此大的被动应激模式.

算略活泼和外向的一个妹子.
毕竟能这样撑一下午.

晚上吃饭的时候开始爆情史和感情观.
礼尚往来地,也就谈了谈9点20的故事和一些感受想法.

末了,虽然名义上是她要请客吃饭.
不过礼节上来说还是先买了单.

于是回地铁的路上又基于此展开了一些所谓男女思维差异之类的对话吧.

分别的时候说有空去找她玩啊.
笑笑说不觉得自己无聊的话.
不会呀.

就此别过.

某个周末想起这段话.
又想起了9点20.

问自己到底还在意不在意呢.
要不要约约看呢.

也算是了了件事.

于是问要不要看个电影.
答曰好.
就看了.

完了她说想去海边走走,便去着.
然而走错路,便晃悠了一圈.

回去了路上说要要把上次的饭前和这次的开销AA回来.
笑了笑说不用了.

推脱再三,心想分寸感还是挺强的,便说随便吧.

也算收到了可能是第一笔微信转账还是红包吧.

后来便是会问一些某司的情况和联系方式等.
出于职业道德,也就不方便多说什么.

想,大概就是当成一个活查询入口了.
某种程度上来说,也算毫不掩饰地坦白过头了.

接着的日常大概就是忙着想如何离开某司.
从一个火坑跳到另外一个火坑.

至于某天也终于更新了Linkedin.

想着当时帮进某司的某猎头也算把自己从无业游民的道路上拉了回来.
而自己连试用期都没呆满就跑了,于情于理对于他来说都太好.

尽管以自己的收入来说,对对方的佣金也造成不了多少损失就是了.
但请吃个饭应该还算必须.

虽然想到要两个人尴尬地吃还是有些头皮发麻.

于是,还是硬着头皮邀了约.
还好对方也答应了.

小猎头大概是看到状态更新通知便来问了问.
聊的时候提到了上面那位,便问能不能一起吃介绍她认识.
可以晚些到,说就是妹妹一起蹭吃的.

想了想,还挺拼的.
一来她不怕尴尬.
二来自己也算某种程度上送了口气,毕竟不用想着如何避免空气忽然的安静.
便说了好.

生活的戏剧性大概就在于本来三个人的饭局,当天对方有事,于是变成了两个人.
于是又变成了她谈工作生活倒苦水,这边只管听的局面.

由于地方离海边不远.
也就终于在海边走了走,坐了坐.

聊的时候自言自语地翻着手机问一些意见.
可能是气氛像闺蜜的情况,没知觉地冒出一句亲爱的你看觉得这个如何如何之类的问句.

瞬间的尴尬选择了假装没听到这句回了一下.

后面还是前面又问起了9点20故事的一些点.
可能自己入戏太久,编的感觉太真实倒引起了八卦剧的好奇心的原因.

一边听一边偶尔忽然噗嗤的笑.

大概可能各方面各层面来说挺典型挺有趣的一个故事吧.

心情微妙地好像在跟现任谈前任.

那晚过完的一两个月还是两三个月.
可能每周或者隔周会看个电影吃个饭什么的.
就好像真地在谈恋爱一样.

事实上,可能除了没有肢体接触确实看上去是那么回事.

应该是中秋的时候吃饭.
她问"你觉得现在是什么关系"
"你觉得呢?"
"在问你呀.那换个问法,你觉得男女之间有没纯洁的关系".
"有吧..."

大概就是回避了正面的回应吧.

某种程度上来说,不否认是在当作女朋友相处的.
但用她的话说,也没当是男的看.
大概,可能就是男闺蜜?

虽然说想和喜欢的人kiss之类的.
可能只是喝了点酒的关系.

不过也只能笑笑.

如果没有9点20的经历.
可能会回句要不借你亲下之类的.

毕竟牵牵手就像旅游.

但是没有.

因为不知道有没有/算不算放下.
或者纯粹只是根本不想再主动了.

假如是9点20这么说,至少以上是没有成立的理由的.

所以,除了笑笑还能怎样.

也所以想,能不能认真点.

毕竟小猎头也没什么不好.
差的可能只是自己的态度.

于是11月的时候她生日.
准备了个礼物,上面一个银手镯.
掀开下面是个钥匙卡住发条的星之所在音乐盒.

场景可能是二次惊喜和可能只有自己知道的寓意吧.

或者可能纯粹是把选择丢出去还是求解脱之类的.

大概就是又一次的"该做的都做了,该你了"之类的逃避选择模式.

她收到大概也还是挺开心的.
或者至少回应地挺开心的.

但生活的有趣点就在于,你不确定的事情,并不会因为丢出去了而变得确定.
或者说并不会变得结果显而易见.

后来越小猎头大概就是有各种事脱不开身.
朋友圈偶尔也对应的有各种事件照.

但于己来说,是如何已经无所谓了.

因为很奇怪也可能有些理所当然的有种解脱感.
自己这么做,就好像9点20忽然翻过去了.
小猎头也无所谓了.

就像某种意义上的贤者时间.

忽然的一种"能做的就做咯,结果怎么样其实不关自己事"的心态挥之不去.
也就可能从那时候起觉得无所谓了,有空构造负面不如想想怎么讲段子.

对于9点20,喜欢过或者可以说迷恋过.
但那个她真的是她么,还是喜欢又如何都已经无所谓了.

毕竟喜欢是一个事实,也只是一个单一的事实.
并没有其他什么衍生附加品.

对于小猎头,至少能编造出自己该做的都做了的理由.
就像她自己说的各种别人追她的有趣的事.
至少可以给个理由心安理得.

何况可能只是她当自己闺蜜,自己当她女友游戏的一种微妙的平衡.

事情本来是可以这么简单的.
或者本来就是这么简单.

今年大概跟小猎头接触了4次.

一次过年的时候礼节性地来问候.

后续两次大概就是年中换工作的时候点赞然后吃饭看电影了两次.

还有就是今天还是昨天吧,问要不要爬山.

大概主题就是失眠焦虑,家里催找男朋友,想回广州但深圳又还有留恋的东西.

坦白说,这算不算暧昧,事实是不是暧昧还是纯粹朋友间闺蜜间想倾诉一下.
这根本不重要.

重要的是,自己真地在考虑是不是暧昧这才是问题所在.

而问题的核心在于,自己是真得喜欢她了还是说考虑的是如何选立场面对的问题.

下午爬完山在她家.
依然谈了下这些问题.

然后忽然就觉得自己这样算不算渣男.

毕竟不管事实是什么.
再假设对方又这样心意的情况下,考虑对策的思路都不算是要解决问题.
而是想的如何保持现状.

尤其自己可能只是存粹享受约会这种游戏的情况下.
而不是基于有以后.

晚上她手机碎片.
Apple Store没预约了于是到街边小店修.

等的时候聊天.

更确切得说还是她问自己答的形式.

"心情不好能不能给个拥抱安慰下啊".
笑笑,看了眼转会柜台.
安静了一会,唉.

"好困,能不能靠一下啊".
在柜台挪了过去.
额头贴在右手手臂上.
然后左手翻开了群氓之族.

大概事实不管怎样.
想,已经是这么想了.










聊聊卡布里尼

最近看了部片叫卡布里尼,算是可能这段时间来比较有意思的一部电影. 故事也不算复杂,就是一个意大利修女去美国传教,建立慈善性质医院的故事. 某种程度上来说,也很一般的西方普世价值主旋律. 但是如果换一套叙事手法,比如共产国际的社会主义革命建立无产阶级广厦千万间的角度来看的话,也不是...