Silence & Solitude makes...

Pu's mind space

妈妈的世纪预言

多年以后,在奥克兰拥挤的早高峰路上,面对前面的老爷车,作为程序员的我又想起了上世纪末盐渎小镇上的那个平凡午后。

但想起的其实很有限,没有人物的表情和动作,也没有场景和年份,我自己的状态在记忆里也是缺失的。应该是在 90 年代后期,
我现在知道当时马云可能刚刚访问美国回来,着手做中国黄页,而我面前的这辆车应该还在车主为它骄傲的年纪,在我的家乡西团小镇上已经有几辆私家车了,但网吧的出现还要几年以后。那时候的人们娱乐活动不是很多,以至于我妈妈辈有一个现在看来很神奇的习惯,就是在家吃一半午饭然后捧着饭碗串门,到东家聊会儿天,去前面家尝个菜这样。这天不知道时候谁,照例在午饭时间访问我家,我应该还是在拖延一下时间等着说“真的吃不下了”,但是却 can’t stop overhearing 她跟那个邻居说“21 世纪,开车,计算机还有英语是人才的基本素质”。我没有看到表情,但是声音里有她独特的自信。我当时已经知道,或者她自己也提到了,这是她读的某个报纸的生活指南版或者育儿心得版的原话,并非她自己的见解。所以,真的是个很平凡的瞬间,直到最近我回味起来,才越来越觉得它的不可思议。

前情
当时我的父母在工作之余也赚点“雅”外快,就是给各个省市报纸的休闲版投稿赚稿费,这个活也只有在那个特定年代才能够成为外快。因为当时各地的本地报纸虽日渐式微但还未倒闭,也就是说为它供稿的人少了,因此有内容需求,但互联网还没有把他们完全击败,各地报纸的内容也不会互通,加之休闲版的内容如生活技巧,育儿经验,心灵鸡汤等还是很有通用性的,他们就一稿多投,如果有发表使用了的,会寄回来稿费和样张。这个事情做到全盛的时候是不需要自己编写内容的,因为全国各地的报纸寄来我家,只需读一读,挑点好的,把这家的内容发给另一家就可以了。很快(记不清持续了几年),中稿率越来越低–大概寄过去的那些县市小报都关门了吧–得不偿失,也就没有继续做下去了。但是对我至少有一个好处,就是地理知识学得不少,什么攀枝花是四川的,六盘水是贵州的这些我都和年龄不相称地早早记住了。另一个好处当然就是他们读了很多的报纸,见识也提高了不少,以至于有上面那个让我记忆犹新的言论。

发展
话虽然这么说出来了,可是我并没有感觉到教育资源向这方面可以倾斜。哈哈,别说倾斜了,就是把家底都倾倒出来,也没有能力买一台电脑,更别说出国旅游或者买一台车了。但我父母其实是有重视这方面的教育,比如我的买个随身听(听英语磁带)的请求就被批准了,我驾照也早在毕业之前就拿到了。
而我自己更是没有刻意这些,比如你知道的随身听其实是用来听歌的。大学也没有选计算机,而是误打误撞,想学工科因为不懂专业设置其实报了理科,研究生又任性学了更是纯理科的东西,但是做理科研究是离不开编程和英语的,而我的研究做得不好,所以三年下来往求职市场上一放,核心竞争力就只剩编程和英语了,真是错进错出。

前些年,看到新一代大学生们聊”转码“和”润“之类的,很感慨我这样的小镇做题家,居然不自觉地和高中就上新东方的“城里孩子”们走上了同样的路,更神奇的是,居然还被我妈在和麻友闲聊时预言到了。
妈,你真厉害!

带娃随想

带娃和开车其实蛮像的,都是只需要时不时分出一点注意力确认安全,其他时候可以“一心二用”--不鼓励,安全第一--做点其他什么事情。今天带娃的时候就走了一会儿神,把胡思乱想记在这儿罢

带娃的一个常见问题在于要如何平衡满足宝宝的探索欲和保护它的安全。磕磕碰碰的伤害往往很明显而且立刻发生,而对于宝宝过分限制让它的探索欲被压制,自信心受挫这样的伤害不是即时发生后果也不如外伤那么明显,所以我们往往过度保护孩子的物理安全,据我观察爷爷奶奶外公外婆们的这一倾向要大于父母们。因着我们文化里持久存在的家国观念,这样的情况也自然地出现在国家政策里。对于婴儿的控制,保护安全是一种原因,还有可能是纯粹自私的原因,比如有时候他自己玩耍的时候发出怪叫,我看到他可爱的样子想抱他了,就抱起来玩了,并不在乎是否打断了他正在专注的事情。这样的控制仅仅是为了满足我自己的愿望而已。

原谅这里跳跃一下,从另一个话题讲起,先聊聊我初中政治课级别的政治经济学知识。我们概念里对资本主义的种种批评,都是从资本的贪婪本质讲起,其实贪婪的是人,只是因为资本自增长的特质 – 这样的特质不仅资本有,很多东西都有,比如病毒 – 而使它适合成为贪婪性的载体。所谓自增长,也就是

 X=IX 

简单理解 I 就是投资回报率+1,你手里的钱 X,经过一轮投资,会增长为 IX。别看这仅仅是一个简单的线性表达式,它是指数增长的基础,非线性的源泉,无数个体的经济行为不停地迭代会让系统迅速非线性化,于是我们需要国家干预而不让系统失控。干预就是权力,在我们的认知里权力是没有自增长特质的,管交通的不会有收你的税的权力,收你税的人不会有审查你的网站的权力。但是行使权力本身是可以增长的,只不过通常情况下也没有无限制迭代增长的可能。譬如说收税的今年收 1 次,明年可能收两次,或者今年收 1%,明年可以收 2%,这都可以,但是因为政府系统法律制度等等的存在,这种增长不会无限扩大或者无数次地迭代,因此是可控的。但在系统 bug(法律或者官僚体制不完善)或者某些特殊外部条件下–小行星要撞地球了或者大灾难等,某项权力的行使可能会无序增长。譬如核酸从某些区域的人某些天需要做,到所有人每天都要做,健康码从密接会变色到“时空伴随”会变色到政府官员可以直接“赋黄码”“赋红码”。这样非线性行权也可以造成混沌。

问题是为什么,并不是所有可自增长的都必然要自增长,资本自增长会变成现实是因为人的贪婪,但是行权的自增长在可能发生窗口期内为什么会立刻必然地发生呢?其实也还是因为“纯粹自私”的原因,或者说一种广义的贪婪吧。举个例子,今年初我回国的时候在浦东机场,填写第 n 个微信公众号表单的时候,里面有一项 ID 注明填身份证号或者护照号,我填了护照号(可能因为短一些吧,也可能因为用的护照号订的机票,之前的很多表格需要跟订机票的 id 一致所以都用的护照号,总之顺手就填了)。我排在队伍最后,终于排到我了,一个年轻的工作人员查验我的表单,他扫了一眼就问我是不是中国人,我说是,他就把声调变得特别官僚,对我呵斥“是中国人为什么不填身份证号?回国了就要用身份证不知道吗?“,我说表格上标明都可以的,需不需要我重新填写?他低头玩着手机,说“不需要了,下次注意”,这短暂的交流就结束了。他的态度很明显地告诉我他是在“管理”而非“服务”,管的还是不必管的事情,我只能猜测他的动机仅仅是耍个官威开心一把。指挥别人(行权)会满足自己的控制欲,这就跟我为了抚摸宝宝柔滑的小肌肤开心一把而不管他在玩什么就直接抱到怀里是一样的。所以资本的自增长和权力的自增长是一样的,只不过一个是贪欲的满足,一个是控制欲的满足。所不同的是,放纵贪欲的坏处是人所共识,有完善的制度和法律去控制去警戒,但是控制欲的发泄却很隐蔽,很容易以保护安全为幌子,而被滥用。回到带娃的比喻上,如果宝宝会说话,反问我为什么粗暴地把他抱离玩具,我很容易找到防止他撞头地借口,因为这两个动机在解释控制行为上几乎无法区分,同样地,在一个家国观念很重,父母官观念很重的文化里,放纵控制欲的行为很容易找到“为你好”的幌子。

总结:

  1. 资本因人的贪欲而失控和行权因人的控制欲而失控没有本质不同,都是自增长特质带来的混沌。
  2. 资本的贪婪人所共知,有成熟的法律制度限制,权力在特殊情势下的失控却让社会猝不及防,对此毫无免疫力。
  3. 家国情怀,父母官文化让权力更容易以保护为名而失控。

诗意的生活和诗意地生活

我一直想让自己的生活更有诗意,却没有了解诗意的生活和诗意地生活是不同的,甚至是截然不同的。

有诗意的生活,是一幅画,你是画中人,诗人把它描绘出来便有了诗意。假设有个虚拟的无所不在的诗人,要让你和你的生活能进入他的笔下,你可能需要漂亮整洁干净,可能需要做善事。至于在画中的你是何种体验或者所思所感,那是读者和诗人都不关心的问题。

诗意地生活,是诗人的行为,它讲得是如何感受身边的人,发现身边的美,如何反思所做的事,它是指你的情感和理智在纷繁的大千世界的刺激下偏向于光谱的哪个部分。这个二维谱(情感和理智两个维度,生造的词,可以想象成取色板那样的东西)里其他的部分有苟且地生活,积极地生活,麻木地生活,拼搏地生活,放纵地生活等等。有些人特别理智,有些人特别敏感,我理解在现代社会诗意地生活需要中等的理智和特别地敏感。

这两者当然有联系,不管你想过有诗意的生活还是想要诗意地生活,一定程度上都需要追求真善美,在生活中遇到某些决策时是会作出相同的反应的。

但是更多的是不同。通过上面的描述也很容易看出来,这不同就像孤舟蓑笠翁和柳宗元的不同,就像瓦工和梅尧臣的不同,柳宗元可能完全是个钓鱼的外行,瓦工也不可能知道梅尧臣每日如何处理公文。

更可怕的是,我发现这两者很可能不可兼得。

初读海子得知他原名“查海生“时,我误以为他是浙江人,后来了解多了才知道是安庆农村人,即使有海边生活的经历也不会很久。但因为他追求美且联想丰富语言优美,给我们描绘了有海的美好画面。同时那个真正有了”面朝大海“的房子的顾城,却在面朝大海之后杀了人,他的最具诗意美感的作品全都是在国内的时候写成的。尼采说:“一切文学,余爱以血书者”,有一定的道理的。我在新西兰发现了很美的景色,但是在这样美丽的景色里,这样怡人的气候里,人们更多地时候是去享受美景,反思和狂想的触发点反而变少了。我并没有说这里艺术家少,事实上我看过很多社区画展的风景画很漂亮,我的同事就有写歌的,十几岁的小孩子玩星空摄影特别棒,但是因为少了“血“,很难刺激出杰出的艺术品 – 也有可能这是我苦大仇深的中华审美观在作祟而形成的偏见。所以生活在诗样画卷里的人很难出真正的大诗人,反过来也一样。激烈的追求真善美,或者有天才去被自己的生活激发出奇绝幻想的人,往往没有心力把生活打理得精致美好,把自己活到画卷一样的环境里去。

知道了这些,我终于想问自己了,当你说你想要更有诗意的生活,你是想要过有诗意的生活还是诗意地去生活呢?是当一个模特还是希望当一个摄影师呢,当一个演员还是导演呢?虽然他们可能有共同话题,但是他们作为人的特质,以及修炼的路径是完全不一样的。

填写新西兰入境表(2022

写在前面:在飞机上听说新西兰入境卡由中英双语改成纯英语了,很多老华侨拿着入境卡也犯了难不知道怎么填,我想我的父母或者朋友可能也需要人来帮助填写这个,所以就动了写这个文章的念头,除了翻译入境卡,还简单提了入境流程,这篇写于2022年6月,很多政策都在改变,有一部分内容的有效期很可能不是很长。

出发前

来新西兰需要准备的东西(可以打印出来,不打印也没关系,确保手机有电可以现场展示电子版

  1. 出发前48小时内的英文核酸阴性报告(不是社区普筛的那种,需要去医院做,拿到中文报告和护照去补英文报告
  2. 疫苗证明
  3. 护照和行程单
  4. 新西兰旅客声明,在 NZTD 上填写上面3项内容,最后会在邮箱收到一个二维码

出发

无论从广州还是上海出发,看好买的机票的行李配额,一般是2个大箱子,随身可以带一个小箱子。
出发时办登机时需要查看上面准备的那些东西,拿到登机牌之后,扫描海关二维码,填写信息(其中包括航班座位号,所以需要办完登机之后再填)。
然后就是出关,展示刚才的海关二维码,同时给海关人员解释一下出国原因,工作/探亲等,放行后就是正常安监登机了。

到达

上飞机后空姐会给你一个入境卡,可以在飞机上填,找空姐要笔,也可以下飞机之后再填。这个卡是填写你的基本信息和你的行李需不需要申报。我建议是不带以下物品且不申报,这样入境直接走xRay通道(就跟过地铁安监一样,不用开箱过一个闸机就好了)比较快。当然如果对政策细节比较熟,一定要带,就如实填报,然后入境时走申报通道,再和海关工作人员解释。

简单说不能带的东西是:

  1. 超过3个月量的处方药或者不是自用的处方药
  2. 任何食物(不管是包装的还是自制的
  3. 动物制品,植物种子等
  4. 用过的户外装备等等有可能沾染上了外国土壤的东西
  5. 其他刀枪毒品大额现金等就不说了

入境卡是一个对折的小卡片,除了封面,有三面需要填写,翻译如下。

1
2
3

填好后的样本如下:
Example1
Example2
Example3

如果不带需要解释的物品,还是很好填的,基本上4填yes, 5&6就无脑填no就行了。下飞机之后,在取完行李后,过海关,给工作人员看你之前准备的那些材料,海关闸机最右侧是辅助通道,如果不会说英语可以找身边的工作人员申请走辅助通道,一般会有会中文的工作人员帮忙翻译。过关后顺着走到有个领快速新冠检测盒(RAT)的地方过去就是行李申报通道了,如果全部都打了no,就走x-Ray通道,相应的,还有1,2,3,4通道,都是申报通道,需要开箱人工检查的,不要因为那些队人少就走那些通道了。在xRay的队伍里排到的时候,把在飞机上填写的小卡片交给工作人员,把行李放到履带上过一下就可以了,最后就提着行李出去了,出门前可能会有一个稽毒犬最后再嗅一下行李,然后就入境成功啦!写的挺多,其实还是很容易的,就我自己的经历,我从取完行李到见到接机的人群总共不超过20分钟。

后续

到家之后会受到邮件,让你把快速抗原检测(RAT)的结果报告到邮件中给的一个网站,基本上这个网站只需要填两项yes/no,不要上传图片视频什么的,你是不是真的做了核酸没有人查验的。
第5天的时候还会再收到一份这样的邮件,需要再做一次RAT并提交结果。
在机场领的检测盒可以做3次RAT,所以不用自己准备任何东西。这样就算履行完所有入境手续了。

寻代码小伙伴

更新

原型做得差不多但还有些 bug 在慢慢改的时候,我的朋友告诉我有这么个网站:
https://visualping.io/ 完整地做了我想做的事情。本着不重复发明轮子(做得没人家好)的态度,我对继续完成这个工具失去了兴趣,我后面会把代码整理以下,代码库的链接会放在这里。

update 2022-06-19:

Code repo made public here: https://github.com/guanpu/collector

!!!!!!!以下为原文!!!!!!!!!

疫情期间有一阵子每天打开网站第一件事就是去刷新新增病例数量,然后查查汇率。我就写了一个小工具, 部署在自己的服务器上,用于自动抓取并汇报这些更新。之前收藏夹里存着的一些有用的网站,比如什么时候在你的城市可以看到国际空间站,又比如什么时候有极光活动等等,也通过一键配置由该工具每天扫描。结果很有意思,这些平时躺在收藏夹里的快被遗忘的网页,现在不时地提醒我新的内容,虽然去看空间站的那一趟云太厚没看到,极光活动那次也没飞到南岛看(后来看报道确实有),但这是另一个故事,工具本身的汇报还是很准的。总之,任何你感兴趣的公开网站的任何一部分信息,都可以通过这个工具订阅其变化,生成每日(正在开发每小时/实时选项)的报告,以 RSS 或者邮件的形式汇报给你。我觉得这应该是一个可玩性很强的小工具,你甚至可以订阅当地小餐馆的菜单更新。它可以取代一众看似高大上的 app,譬如你知道某个权威的极光预测网站,再加上这个小工具,就可以不需要专门下载极光预报 APP 了。

详见 https://udigest.app, 配套的浏览器插件还没有上架,目前只能以开发者模式安装。网站名就是这个工具的名字(udigest),直接中文翻译大概可以叫“你的文摘”,不过不很好听,考虑到网络环境(浏览器插件市场还被墙着)这个工具可能不会有大陆用户,所以中文名就暂且搁置着。

本来打算自己慢慢开发,但是自己平时上完班要做饭,吃完晚饭再顺着把下饭视频看完,除了周末的时间很少能挤出开发时间,因此进展太慢。现在想添加的功能越来越多,譬如先比较新旧内容再决定汇不汇报–一个简单的例子就是我只想纽币兑人民币涨回 4.5 以上了才收到更新,而不是每天汇报一下数值–但是我码代码的速度却远不如刚开始的时候了。眼看着这个 side project 可能又要黄了(嗯,又),我决定找几个开发的小伙伴来互相监督互相帮扶。

架构

比较老的一个架构图

技术栈

从上面的架构图也能看到,主要就是 一个网站+一个浏览器插件+数个后端微服务。

UI 选的是 react+material UI, 所有后台组件目前都是 nodejs(typescript)写的,消息队列用的是 kafka,数据库 mysql。如果你不熟悉 nodejs,我们可以用其他语言重写一遍,毕竟现在只是原型阶段,go 或者 java 都可以, rust 也行,but not C#.

我们从哪儿来?我们是谁?我们要去哪里?

2021年11月28日凌晨于奥克兰

一个孩子正在妻子腹中
一个变种新冠远在非洲
母亲牵挂的声音不远万里
游子极目之处白云悠悠

我从哪儿来
我是谁
我要去哪里

故事并不复杂
一个小镇青年
30多年后不再好奇,开始怀疑
需要新鲜的环境重新探索
去了远方

外向的追寻很成功
成功到可以向内探索
找到了我
才开始关心我们

于是
我们从哪里来
我们是谁
我们要去哪里

有人说我们勤劳隐忍,
心怀千年文明,背负百年屈辱
才有这几十年来世界的熙攘
有人说我们如酱缸之蛆
或逐食争利,或冷漠沉沦
以致大千世界牛头马面

我们是热情地款待客人
自豪地介绍本地风情
却又缄默地犁着自己的一亩三分地的农民
我们是以度己为己任而去努力度人的僧人
我们是通了公路却又扎紧篱笆的地球村民
我们努力地,甚至极度自我地
要去把我过好
而这好,是由“我们”定义的

我们的存在就如同记忆
能被记起的不一定是因为印象深刻
而很可能只是新鲜,暂未忘记
到后天答案会被揭晓
而我们的终点只在明天

民族复兴的标准

很少在博客里谈政治,偶尔写一篇居然就出来这么个标题,希望不要被当成想当伟人的妄人。这个标题的来源其实很简单,刷推特时看见了这么个内容:(来自王志安)

我认为国家复兴的标准,是经济长足发展,民众有足够的自由,社会和谐稳定。
官员廉洁奉公,媒体乃社会之公器,富人低调而仁慈,知识分子得风气之先。
穷人不被歧视,孩子都被善待,教育医疗平等,不同地域都能享有同等的公共服务。
有邻和睦,无人视中国为威胁,拿着中国护照,令人心生羡慕。

虽然评论区有评论说这内容无甚新意,我认为这个话题并非已有广泛接受而且简单的定义而不值得思考了,所以展开了一些思索,整理如下。

国家的概念是绕不开政权的,而民族则是关于人,人们活动的土地,使用的语言,共有的文化等等。政党把“民族复兴”作为使命当然正常和无可厚非,但仅仅谈民族复兴本身的定义却可以和政党毫无关系。这里不打算谈政党政权,所以上来就得用一下话题转进的话术,从原推里的“国家复兴”转到如标题所提的“民族复兴”,因此可以说本文和原推无甚关联。试想,把现在中国大陆上的中国人都敢跑,移居来一群有着懂点中国历史和中文却有着其他民族性的人,建立一个叫做中国的国家,保留古迹和城市的名称,并建设成一个经济强国,这样的情形在原推里似乎是“国家复兴”了,但显然不是民族的复兴。

首先说“民族的就是世界的”,一个民族不可能占尽所有民族的优点,要承认民族性固有的缺点,即使是一个“复兴了的民族”,也会有这样那样的缺点,因为这些缺点或者因为邻居们的缺点,可能会跟邻居有摩擦,被人视为威胁,所以“有邻和睦”不应该被视为复兴的标准。而民族性这个东西因为文化,地理,语言,甚至是共同DNA片段的作用,是不会发生突变的,所以我认为在道德准则(信仰)和文化上的微调不会消灭民族性,相反,这应该是去除糟粕良性演化的正常方式。当然像古代帝王那样直接宣布国教为基督教或者伊斯兰教这样的动作,确实是会斩断民族性的某些部分但这不会在中国发生。所以我认为民族复兴的一个标准就是中国人还是那个“深沉,博大,纯朴,有点性灵”的中国人,同时渐渐的抛除近现代种种挫折带来的“自卑“,”自大“,甚至”迷信“(非指宗教迷信)等”劣根性“。

同时中国人是全面发展的,这个全面既指每个人(残疾人,女人,LGBT)又指人的各种方面(健康,智识,财富等),这个全面发展需要和社会协同。简单点说就是社会给每个人以尊严,人们给社会以信任和责任。从这个角度说,原推中的

民众有足够的自由,社会和谐稳定。
官员廉洁奉公,媒体乃社会之公器,富人低调而仁慈,知识分子得风气之先。
穷人不被歧视,孩子都被善待,教育医疗平等,不同地域都能享有同等的公共服务。

我是同意的。这些都是社会和人的发展良性的互相促进后的自然结果,并不需要也无法一一罗列。这里当然有具体实现的问题,譬如一部分人和另一部分人的发展权益冲突时行政的策略,以及初始的不信任如何消除的问题。我的想法也只够聊标准至于路径那就无法了。但关于路径我还是有两点想法:

  1. 权力意志和人群的普遍行为格格不入时,人总是第一位的,永远只能是公权实体的行为方式首先作出改变,这种改变不仅应该处理当前的权益冲突,更应该考虑对人的后续行为方式的影响。(注:公权实体不仅仅是政府和政权,而是任何有公众影响的有机组织。)

  2. 关于不同人对于发展方向/发展优先级的定义冲突,我们当然不应该照搬或者迷信其他文明关于普世价值的定义,但是我们总得有一套自己的“普世价值”的定义,是共同认可的东西,是“常识”,这套定义就是社会和人能形成合力的基础。而且这套定义总该是有50%以上和其他文明关于普世价值的定义是相似的,毕竟人类的DNA都有99%以上的相似度,以当代的科技发展水平,以人类历史上共同经历过的教训,因为信息不对称或者认知能力不足等等造成黑白颠倒总不会很大吧。所以关于发展方向的讨论和冲突如果一直有那也不奇怪,譬如如今与新冠病毒共存策略以及清零策略不同造成的社会行为不同是可以接受的,但是以增加民族自尊心或者经济发展等借口抛出“你要自由干什么”,或者“牺牲一些人让另一些人活得更好”这样的纳粹或者社会达尔文观点不应该出现在我们的“常识”里。

至于经济发展,这个的必要性毋庸赘言,但是经济的长足发展并非民族复兴的标准,譬如沙特或者阿联酋,人均收入再高也并没有让其他地方的人见了裹着头巾的中东人多一份尊重。只是想说一句,以中国的土地物力,中国人现有的民族性,如果人和社会的发展形成合力,经济的强盛几乎是必然的。而人的发展对于经济的依赖程度可能并不如我们想象的那么高,一部良法,一本好书等等所谓的软实力并不需要话多少钱,政令里为残疾人多考虑一下并不是以每人每天多生产100个毛绒玩具作为基础的,相反的,超负荷地生产玩具更容易导致因工作致残,形成人和社会发展的负反馈而非合力。

所以,如果我也发一条像王局那样口吻的推特的话,它会是这样的:

我认为民族复兴的标准,
是中国人被看作 “深沉,博大,纯朴,有点性灵”,而非 “自卑“或”自大“。
人的发展和社会形成良性互动,社会给予每一个个体以自由,尊严和发展空间,而个人对于社会有信任尽责任。
经济发展则是水到渠成的事, 至于睦邻,如果中国的民族性没有丢的话,即使有不友好的邻居,应该也不会超过一两个吧,何必强求。

Azure Logic Apps -- 要不要用

一直对微软技术栈不是很熟也不很感冒–所以这篇文章很可能不算客观–但是工作必须要用,所以也不得不做了更多的了解。在用Logic App的过程中我发现了一个现象,那就是搜索关于Logic App具体问题的时候,总是只出现“怎么用”,从来没有看到“应不应该用”或者“什么场景下用”的讨论。即使我在谷歌搜索里删除了所有来自微软官网的结果(by -site:microsoft.com),也没有发现什么有意义的综述,所有的布道者都在教你如何用,而没有(或者不愿意)认识到让使用者了解某工具在架构中的定位才是选择学不学习怎么用的先决条件

可能大家也已经从我上面的语气里听出来了,所以不妨先把结论放在前面,以防没空看论据(其实是论据本身也不充分)。结论就是: 如果你是在乎软件工程师体验的架构师或者你就是软件工程师,同时你做的项目是用一定复杂度需要多人协作,预计运行超过3个月的非原型项目,而不是那种给客户/领导汇报完就可以拿钱走人的项目,不要用Logic Apps,如果非要用,不要过度使用, 否则你的工程师可能会离职,项目可维护性会变得很差。

下面开始具体聊聊。azure 自己给logic apps的定义是: 是一个基于云的平台,用于创建和运行集成应用、数据、服务和系统的自动化工作流。 借助此平台,可以快速为企业和企业到企业 (B2B) 方案开发高度可缩放的集成解决方案。 它的特点是:

  1. 很多内建的connector,可以很方便的与其他azure或者非azure资源进行集成
  2. 有图形化的配置界面,理论上不需要写代码就可以完成集成

先说Connector,这可能是很多使用Logic App的唯一理由了,因为访问没有管理权的资源安全性的考量常常是企业系统集成最头疼的问题,而Logic Apps提供了很多内建的connector,譬如访问CRM,或者service bus/event grid等等,几乎是配置一下就可以直接用数据了,省掉了很多安全认证等麻烦的部分。而图形化页面也是一大亮点,平时我们做软件是先画设计图再写代码,把代码跑起来了再做PPT汇报,这个Logic Apps可不一样里,基本上POC和最终运行的项目以及拿去给领导展示的图几乎都可以用同一个图形设计界面搞定。乍看上去很不错,然而用起来全是坑。

Connector在省了很多初期的对接讨论的同时,基本上也把软件方案和能力限定死了,比如日志的集成,API并发调用和重试逻辑,或者希望方案能部分重用于集成其他项目等等都被束缚。
Logic Apps不像普通代码项目扩展性很强,譬如部署在azure上的不同语言的不同程序都可以把日志写到Papertrail里统一查看,设置警报等,Logic Apps的metrics和日志都只能在LogicApp里面查看。因为Trigger/Connector的定义掌握在对接方手里,一旦初期决定用Logic Apps, 后续遇到的任何问题都只能靠把Logic APP逻辑写得更复杂来弥补Connector本身的缺陷。

但是Logic Apps一旦复杂问题就更大。

首先它无法被Code Review, 即使你的Logic Apps 不是直接在UI上定义,而是作为ARM template放在项目代码里,这个template也是完全没法review的。
也因为同样的原因,它没有办法本地开发,如果因为某些原因你的网速比较慢或者鼠标右键不灵,开发体验可以说差到极致(但是你的老板却会因为“它的UI看上去那么简单直观”而无法理解你的开发效率为什么会低)。
而线上的开发环境本身和生产环境有差异造成的其他问题就更难排查,譬如因为Connector无法被Mock, 很难在测试环境有效地进行压力测试。
除了开发效率低,它本身的运行效率也很低,普通的API call如果超过1秒钟,工程师可以排查原因作出改进,Logic Apps不行,只能接受。

所以,和很多不告诉程序员如何转变方法(观念)去解决(适应)上述类似问题的serverless平台一样,Logic Apps是一个看上去很美,写起来很烦的,“面向架构师和领导”的方案。任何靠谱的架构师都应该知道如果说它确实有一点用户,那也应该仅限制在用Connector获取数据,获取之后立刻转到其他app/service进行处理,而不是Logic Apps内写数据处理逻辑。任何在超过5个步骤的Logic App集成方案都应该加入其他方案而使Logic Apps的worflow步骤少于5。 在包含Logic Apps的技术方案确定之前,问一下拍板的人:

  1. 如何做Code Review
  2. 如何和现有的监控以及日志等运维报警工具结合
  3. 如果性能跟不上怎么办
  4. 如何保证复杂度可控

如果答案是非用Logic App不可,因为虽然上面这些很成问题,但是某资源非用Logic App Connector访问不可,那也可以追问一句,如果某待集成的资源只能用Connector访问,是不是说明资源方本身对于集成这件事还没有ready.

Good Luck.

新冠吉他手开唱啦

去年3月25日, 新西兰 PM Jacinda Ardern 宣布当晚24:00进入封城(Lockdown)状态, 我当时正在家办公–在lockdown之前公司已经认识到问题严重性可能会长期远程办公,当时已经开始试行work from home – 听到这一消息,怕漫长的隔离闷在家里过分无聊,于是打算买个switch或是吉他,考虑到颈椎问题觉得不能让娱乐也对着屏幕 – 后来证明费脖子的不仅可以是屏幕,也可以是探着脑袋看吉他指板 – 也没有过分犹豫,就冲到楼下不远的乐器店买了人生中第一样乐器:吉他。后来才知道买的是把古典吉他而不是我想要的民谣吉他😳

和大部分新冠吉他手一样,我就这么看着youtube上的台湾的,大陆的,德国的,美国的各种up主,杂七杂八地自学着。
一年后,除了童谣和上古的简单歌曲,终于可以弹一些自己喜欢的歌了,虽然也仅止于自嗨的程度而已。但是不同的歌练习的熟练度总有不同,希望有一个仪式让我自己认识到一首歌已经“练成了”,所以决定把这些录下来。

P.S. 虽然大部分歌网上都有谱子,但我多少都加了些自己的东西(譬如节奏型没有照着谱子走而是根据自己听来的,或者凑个lick/间奏什么的),如有同好欢迎邮件交流。

下面这个列表会更新:

阿珍爱上了阿强

十年水流东,十年水流西

平凡之路

光阴的故事

时光

停更通知:

十八年前,如果我能想像自己会学吉他,一定以为录的第一首歌会是Beyond的歌,没想到现在学了一年多里才开始录第一首Beyond的歌《长城》– 可能因为beyond入门级难度的歌太少的缘故。更没想到的是这首歌还没有传上去。我其实也有感觉这歌词可能稍显犀利,墙内脆弱的神经应该接受不了,删了也就删了,魔幻的是平台方既不通过审核,还不让我删 – 要删需要花什么硬币, 虽然不是什么值钱的玩意儿,但好歹也是在我私权概念里的东西 – 合着就是非要留着恶心我呗。得,那我也不删了,留就留着呗,你的硬盘你爱存就存着。
现在不让传,我其实可以传到油管,但问题是本来传回内网视频平台,也只是为了博国内的亲友一乐。油管上并没有我的观众,因为说实话弹得水平实在不高,非亲非故的拿去污人眼球也没必要。
所以也就停更了,当然还会继续玩琴,等哪天练得满意到让陌生人看了都不反胃,我可能会腆着脸扔到油管上去。

审核未通过
掏你的“钱”删你传的而他不让发的东西

把歌词贴在这儿:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
遥远的东方
辽阔的边疆
还有远古的破墙
前世的沧桑
后世的风光
万里千山牢牢接壤
围着老去的国度
围着事实的真相
围着浩瀚的岁月
围着欲望与理想
迷信的村庄
神秘的中央
还有昨天的战场
皇帝的新衣
热血的樱枪
谁都甘心流连塞上
围着老去的国度
围着事实的真相
围着浩瀚的岁月
围着欲望与理想(叫嚷)
朦着耳朵
那里那天不在听到在呼吼的人
WOO--AH WOO--AH AH AH
朦着眼睛
再见往昔景仰的那样一道疤痕
WOO--AH WOO--AH AH AH
留在地壳头上
无冕的身躯
忘我的思想
还有显赫的破墙
谁也冲不开
谁也抛不低
谁要一生里流浪
围着老去的国度
围着事实的真相
围着浩瀚的岁月
围着欲望与理想(叫嚷)
朦着耳朵
那里那天不在听到在呼吼的人
WOO--AH WOO--AH AH AH
朦着眼睛
再见往昔景仰的那样一道疤痕
WOO--AH WOO--AH AH AH
留在地壳头上
朦着耳朵
那里那天不在听到在呼吼的人
WOO--AH WOO--AH AH AH
朦着眼睛
再见往昔景仰的那样一道疤痕
WOO--AH WOO--AH AH AH
留在地壳头上

有关职业道德的两点思考

最近看见和听见的事情总是让我开始一些关于职业道德的思考,都很零散,但一来二去也逐渐攒出来一些东西让我觉得可以写下来一些了。我很崇拜罗素讨论社科基础问题时也能像做数学证明一样,从基本人性为第一原理然后推演出宏观结论,那种条理清晰逻辑严谨的能力和洞察力,但是我力有不逮,恐怕此篇不过是有偏差的样本推演出的有偏见的结论罢了,诸位若当催眠小品胡乱看看也可。

职业道德,企业道德与私德

先从我听到的故事开始吧。

首先是几个月前的花呗广告风波,看到评论说做这个宣传的设计师没有良心。我最开始是不认同这样的说法的,我认识一些底层做事情的阿里人,了解他们也不过跟我一样,是个道德层面普通,甚至职业道德上很“优秀”的打工人,被公众批评私德是不公平的。因此想发声,想讲一个故事,阿里的入职培训叫做百年阿里,70多个人一个班,两周时间各种活动,最后一个活动是去报告厅见合伙人。我们那一批见的合伙人是昆阳,饿了么老大,我一个同学拿到了问问题的机会,她问的是饿了么是打算如何应对外卖包装产生的大量垃圾造成的环保问题,我当时听了觉得倍有面子,别的班都是问什么“您是如何在百忙中保证身体健康”之类的拍马屁问题,我们这好歹问了个有挑战又有现实意义的问题,我相信她不是那种标新立异或者持记者心态刁难别人来让自己窃喜的人,而是事实上在杭州工作的那段时间,我每天看到自己消费的成堆的白色垃圾也会对自己有道德审视,会感到愧疚,因此这个问题我自己也常常想到。当时的回答已经不记得了,总之大意是击败对手后就有资格用相对来说更环保更不计成本一点的包装材料了,然后是一片掌声……我知道她在日后的工作中无法解决这个问题,甚至因为出色的工作使得这个问题变得更严重了,但我也相信她当时问这个问题确实是出于较高的私德修养。讲这个故事想说的就是组织的恶行和具体个人的私德应该是不挂钩的,确实阿里作为组织有很多恶,但是打工人与组织之间的道德纽带只是职业道德,似乎不应该用组织的恶来评价个人的私德。

与之对比的是另一个听来的故事,Github员工为抗议Github与ICE(Immigration and Customs Enforcement, 美国移民及海关执法局,主要只能是采取执法行动驱逐非法入境者)的合作而辞去了Github的职位。这类员工为数不少,去网上搜一搜会出来很多。这当然值得赞扬,虽然不知道是否应该鼓励。这就让我想起上面的说法是否有问题,也就是职业道德和私德冲突时,是否应该以私德优先,以离职的方式来拒绝旅行职业道德。很多人说国内的某些公务员,例如城管在执行某些恶法时,虽然没有拒绝履职的权利,但有“把枪口抬高一公分”的自由,似乎也是在支持这种观点。

通常情况下,对于法人的道德要求应该比个人要高一点,所以恪守职业道德往往和私德不冲突。但实际上往往企业作恶的情况也很多,那当你在一个恶企工作时,是否应该鼓励个人以私德为先而拒绝履行自己的职业道德约束?我的观点是如果这样做了,那是值得赞扬的,但是如果没有这样做,也不应该受到批评,就像奋勇杀敌的军人永远不会被判战争罪,正常履职的军人在战后也不应该受到道德谴责。

职业伦理与职业道德

这一些故事则是我亲身经历的,而且是来新西兰之后感触颇深的一些经历。

  1. 首先是一个印度小哥来修东西,在迟到几次上门几次之后没有修好,据中介说还是收了修理费。
  2. 有一个来自哈萨克斯坦的同事,所谓在家上班基本就是在看孩子,没有产出也就罢了,还动不动要开全员会就说喉咙疼,请病假去考驾照,或者口头请假而不在系统里提请假单。因为扁平化管理和团队自治,这样的事情基本上只有团队内部人知道,但是谁也不愿当告密者。
  3. 再有一个就是我的客户奥克兰交通局的安全专员,我需要配置一些网络权限,就给他提了工单,这哥们直接把他的账号密码甩给我让我登到他们内部系统上自己操作,我真是下巴都惊掉了。偶尔他可以自己完成工单的时候,也是跟我开着视频我一步一步的“click this, enter that”的手把手教他操作,第二次干同样的事他还又忘了,一切都那么自然地继续拉我视频让我教。这哥们听名字应该也是印裔,关键是我后来差了一下他的组织树,发现他的那一支几乎全是印裔。

总之就是深切体会到我们这样偶尔摸个鱼都心里过意不去的真是对自己的要求太高了,人家明着混的也上班上的煞有介事似的。我理解不了,就想搜索一下新西兰有没有基础职业道德标准之类的东西。这才发现所谓我们从小耳濡目染的“爱岗敬业”还真不是所有社会都有的道德标准,很可能是某些国家某个时期的一个特例。新西兰的职业道德其实更侧重于道德伦理,类似于医生要敬畏生命,教师要保护孩子,警察不要滥杀无辜这种,是限制职业权力的一类规范,而并不提倡最低职业义务,更没有“爱岗”,“干一行爱一行”的说法。我本想把这类“义务型”职业道德标准的缺失归因于多种族国家不好形成统一的职业道德标准,但回想来就我以前在甲骨文接触的美国同事而言,相对来说工作是要认真很多的,所以可能不是人口的种族数量太多造成的,应该跟人口总数以及发展阶段也有一定关系。当专业人员很少,导致专业素养不够不会威胁到职业安全;当重视平等超过重视公平,社会阶层很平社会发展速度很慢,导致专业素养很高和专业素养一般在个人回报上不会有很大的区别 – 个人失去提高职业能力的内在驱动力几乎是必然的。

但是话分两头,我在这里遇到的导游,餐厅服务员,酒吧侍者等等往往都很热情客气服务周到,几乎没有碰到国内那样无缘无故不给你好脸色的情况。自然的理解是他们由于要服务的人少,不会很累,赚得也比国内相对要多,所以心情好。但是这样的解释不能作为一种理论合并进上面讲的里面,我只好这样理解,这里的服务业的体验加成部分其实更多的是私德普遍较高所致而非对自己较高的职业道德要求所致。举个例子,我们去萤火虫洞玩,有一男一女两个导游/安全员带队,一路上服务也好还不时讲段子,给客人的体验很好。我更相信那是因为他们确实生活无忧,性格开朗,爱自己的家乡,爱对来自世界的游客秀自己的家乡才这样,而非习惯于努力做好工作所致。

综上,我觉得这个图可能比较能明确地展示我的见解:

中新职业行为准则构成对比

首先解释一下上图中我现编的两个词

  1. 善力,其实就是各种超过道德要求的约束力或者自发的一种拉力,可能来自宗教,可能来自传统等等。如果你的职业自律力落在了这个范畴,那么大概率社会和你都会感受到正反馈。
  2. 平均自律力(职业),其实就是所有职场人在职业行为中的相对于不管任何尺度的行为守则的符合程度。之所以这个Bar高度比较高(或者说这个平均数的方差较大),在中国是人多(林子大了什么鸟都有),在新西兰是种族/文化差异大导致的。

阐述一下就是中国对于各职业规范的立(执)法(国家级别)和职业伦理的规范的制定(同行业协会或者组织级别)其实不够具体,但是道德要求过分地高 – 从适应工作到努力工作到热爱工作到不要命的工作 都是作为对打工人道德层面的要求而出现。相对而言的国人虽然很努力地工作,但却没有多少人觉得自己用了爱和善在工作,只是履职而已因为爱岗是大家都“应该”做的。而在新西兰,几乎没有职场道德要求,大部分工作让自己守法守则就可以就几乎是满足了所有的内在道德要求了,如果还能开心地做好一点,那几乎已经是用爱在发电了,为这个世界做善事了。当然像我上文说的那种有事请病假或者请假不提工单这种其实已经到了违反职业伦理的范畴了。

我没有智慧去说这两种形态孰好孰坏,只能说存在即合理。新西兰作为发达国家,增速慢,但是用较高的立法和合规要求来保证职场人能“守成”,其内涵就是不需要职场人太拼但是要有足够的合法合规的意识,而社会只期待你做到合法合规(同时这个合法合规的约束力其实比发展中国家高),但经历过高增速下的人(更甚者如我,这辈子都生活在改开的环境下)常常会对这样的静止和“社会级的不作为”感到绝望。而中国作为发展中国家,增速快,要“守”的还没有要“追”的多,所以职业伦理和法律只是托底,通过更高的职业道德要求让职场人提升对自己的驱动力,这当然可以提高社会发展速度,但很多认真工作的人却不是听从了内心的爱/责任感的召唤,从而失去了自我成就感,也就失去了来自工作的那部分快乐。