2024-11-30

爽文

去看了好东西.

坦白说,多少是带着点挑刺的味道去的.
毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了.

看完之后倒是有些新的想法.

某种程度上来说,现在的年轻人或者说声音就像小叶.
只要说点贴心的话就能哄好.

也是那种可以不用很努力了.
留在自己的舒适区避难所小圈子抱团就好.

也并不是说这种知足常乐有什么问题.
但是另一面的小孩特性,或者小孩的另一面特性倒是颇为推敲.

影片结尾的live house镜头叠加学校正式乐队的场景,本以为是打算玩那种不同选择不同mix的手法.

可能是民谣/摇滚背景乐叠加体制一本正经的管弦交响乐团,穿插地下乐队和大会堂表演的对比.
来营造某种不同精彩,甚至哪边更精彩的叙事.

事实上,倒确实也有一点这个意思.
在乐队现场的各种鼓励应援和礼堂里早退刷手机聊聊无几关心的场景的几个镜头.

但是可能不知道是出于什么考虑,这个演绎嘎然而止.

并没有期望中的像之前一样抖开心麻花版的段子,对比一边对成功与另一方的可能落寞或者滑稽.

于是当你想批评它支持非主流叙事的时候,倒显得有点底气不足了.
毕竟这边某种程度上的成功来源于这种张弛有度,或者说左右横跳.

一个比较有意思的点就是女主这个形象的树立.

影院里比较多的大笑也来源于跟她有关的一些场景.

形式上来说,或者说表面上来说,她在构造一个某种形态上典型的进步主义女性视角.
坚强,有能力,叠加单亲开放,以及设定上就是女权运动调查记者的身份.
可以说是属性点满.

观众之乐于敞笑大抵也是来源于这种大女主特性.

然而比较微妙的是当你把铁梅性转一下的话.
大概在出场的几秒就会被评价为爹味普信与油腻了.

有趣的是,导演或者说编剧倒也似乎有意无意地在提示这个关系.
以至于开场在入职点评职场的时候,就直接植入了油腻这个词.

所以当后面连续有意无意地给90%荒谬的衣服似有若无的反复特写的事,多少是有些会心一笑的.

就像你深究设定上从调查记者到自媒体爆款小编的转变也多少有种二度的讽刺在里面.

一个借主编口说的无情的10w+机器,以及眼镜小妹对于出差即旅游的肯定.
叠加直播从invisible women遮脸到复刻直播卖爆款剧本的转变.

让人多少会在女性主义的意义背后打个问号.

尤其如果同时把前夫也性转的话.
大抵就是一般备受口水的丧偶式婚姻和雌竞问题.

从这个角度来说,剧中的男性角色反而更像是一种变装的二度讽刺.

包括前夫的女权理论演绎,以及重复两次的结构性问题.
尤其是鼓手在床上看小肚子的极其女性化风格的演绎.

当然,你也可以理解为是尝试用男权的角度去重放和构造女权语境.
但是显然的,欢乐的观众可能并没有想那么多.

只是觉得是一个颇为爽朗的笑料集合.

角色聚餐的饭桌情节某种程度上来说属于全剧左右横跳的巅峰.
一边是雌竞和女主位的男权女性化视角.
一边则是小孩的反复不想打拳.

交织在一起你很难说是在讽刺什么.

所以有时候觉得,这个剧的Her其实更多的可能是指小叶.

一个本质缺爱就把爱寄托在一切驯服自己的事物上.
外表的不羁叛逆更多是有意无意的跟过去的切断.

就像跟铁梅谈论的时候,自己也不自觉地对母亲时候爱过自己产生怀疑,却又咬死不愿承认.

于是,当你回想第一次说要带小孩的时候,一边受着铁梅扮演的stereotype啰嗦老妈的形象,一边欢乐地送出门喊出妈的注脚的时候,会对编剧的这声妈到底有没二重意思产生遐想.

还有一点比较有意思的是电影中谈电影的部分.

一边是贾樟柯是名人但nobody cares.
一边是对山西平遥之于法国类比的揶揄.

你很难捕捉到这种淡淡的自嘲里,透露的是导演什么样的一种心境.

联想结尾登场那个经典背光造型和时不时穿插的歌曲.
无时不在暧昧一种难以言喻的界限感.

尤其如果考虑四字弟弟在此刻只配作为一种笑料辅佐,而泰勒斯威夫特则承前启后作为一种励志形态.

所以从这个角度来说,牵扯爱情神话倒也不算太离谱.

如果说徐峥是把市井气变成了某种艺术形态的话.
这片大概就是把精致进步打包成了一种可消费的商品.

在一个在即使可以对大多数女性羞辱议题说不的同时,精准地保留了未出过国的原始羞耻感.

这片就像医生之于小叶,除了提供一种难以言喻的情绪价值之外,更会营造一种自己很重要的氛围.

然后可能更诛心的是,没人会那么有空在意你这种戳破意识过剩的句子确实在结尾由小叶本人说出.

可能这也是这片有意思的一点.

在所谓被作为现代女性意识对立面的各个角色形象都有意无意地也在塑造某种醒世名言.

甚至于医生在阳台上的最后一句台词也颇为值得玩味.

毕竟爱就行了.

就像可能很多人曾经嘲讽起点爽文,乏味龙傲天,看不起霸总小视频一样.

多多少少,每个人都在享受属于自己的一套爽文.






2024-11-24

能用就行

前段时间做一些小性能优化相关的东西.

然后想起了go的benchmark工具.

起因是spark/scala的一个json解析的micro benchamrk问题.

一个utf16转ut8的过程总是有着不到7%左右的差距.
后来同事提醒一个allocation的细节才明白缘由.

大致就是特定test case下,一个缓存开启/命中带来的有没有新allocation的一个副作用.

想到go是因为想起go的benchmark,相比jmh的throughput模式,还多了alloc的相关统计.

大概这就是所谓的工程细节.
成熟度和经验的一些不显著的不易被察觉的点.

如果对应的jmh有相关指标的话,可能就比较一目了然了.

然后其他的也是一些micro或者说对应scale范围下才显现的问题.

一个是scala的type check和类型推导的问题.

代码和语法层面的显示typecheck/cast带来的安全性comfortable的代价是一些runtime时候的性能损失,根据写法的不同有些还是不是neglectable的.
而换一些写法让compiler happy地能够做出type inference的,可以把这部分的开销抹去.

而比较讽刺的是本质上来说,由于类型擦除这个jvm特性,两者在某种程度上的逻辑其实都是object到处裸奔.
区别只不过是runtime check还是compile time check罢了.

这时候也就又些理解c++的一些复杂语法和奇技淫巧了.

就像理论上来说,都是一回事.
但工程实现的不同,可能就是所谓的差距了.

类似的还有scala functional风格的另一面.
一个foreach里buffer append的风格和一个纯map/flatmap的风格在性能上的hotspot也是有些差异的.

当然,这部分差异可能来源于对结果取值的处理场景.
毕竟一定程度上来说,后者是个compress的lazy evaluator.
在只需要特定subset元素的时候,确实会有一定程度上的作弊效果.

因为只需要evaluate一部分就行了.

这点倒是想起来以前pytorch跟tensorflow的设计差异了.
后者基于graph的lazy特定也让前者的所见即得带来习惯上的使用冲突.

毕竟lazy对于debug print有时候还是不太友好的.
尤其一定程度上来说,语义是不等价的.

其他的一些就是更low level的可观测性问题了.

就像开头的allocation的问题.

后面case by case地看了下,有显著性能差异的时候还是buffer比较大的时候的情况.

一个稍微简单的intuition解释大概就是small allocation在runtime可能更容易被更底层的memory management的cache命中,可能是gc的一些特殊case,甚至malloc的一些具体实现都可能对small allocation可以更容易地被reuse/命中.

而稍微大点的allocation则很容易命中到page fault从而引发一些application层面看不到的更重的差异调用链了.

这个在latency到micro second层面就算比较显著了.

所有反过来说,如果只是毫秒级,那可能这方面的差异优化又显得没那么重要和必要了.
这也就是前面说的scale的问题.

另外一个相关的就是cache这个概念的意义的问题了.

比较初期的prototype的时候,也考虑过加一些cache policy.
直接用guava的结果出来之后自己都笑了.

后来手写了一些简单策略看效果也并没有特别显著的提升.

本质上来说,还是scale的问题.
因为caceh逻辑可能在复杂度/开销方面跟主逻辑已经具有相当的可比性了.

所以即使在命中的场景下,能明显地提提升,但回退到miss的时候,回退可能更显著.

这也就是有时候会开始觉得,cache并不难算是一种算法层面的优化方式.
或者说它是一种比较speculate的优化选择.

形式上来说,天然就带有某种不确定性.

剩下的一个题外话就是关于内存数据结构layout的问题了.

以前刚接触Arrow的时候也颇为嗤之以鼻.
觉得算是可以有,但意义没宣传得那么大.

现在觉得,就像utf16转utf8这种.
本质上来说还是一位representation不一致引入的额外routine.

类似的还有jni接口带来的overhead.

这些借用一个名字就是non-unify memory access带来的代价.

所以如果像Arrow或者其他adoption比较广的message格式,多多少少还是能避免这种也算是碎片化带来的问题的.

当然,剩下的问题可能就是都想解决碎片化带来的进一步碎片化问题.

这可能就是工程化的另一面.

可观测性带来的避免重复性驱动,然后就是新的工具链在试图更广而全地解决问题.
也就是所谓的silver bullet构想.

比较现实的例子可能就是堪称日新月异的前端工具链生态.
可能隔一两个月就有一套新的概念和东西出来.

然后相似的就是不管实现目标如何,最后还是要兼容老的一套.

在生态和工程化创新之间举步维艰.

于是在回头看褒贬不一的对于go大道至简的哲学揶揄可能就显得不那么充分了.

可能它的工程化实践的已经是考虑了历史债务的成本问题了.

毕竟之前尝试重构某东西的时候也发觉了.
有时候重写本身并不难,难的可能是兼容性/一致性问题.

老旧系统/工具链的价值一方面固然是能work.
另一方面更多的是对于现有使用场景的覆盖度问题.

尤其有些时候一些bug可能变成了某种形式的feature.
以及有些衍生工具链和平台已经依赖了某些难以分类为bug还是feature的东西.


就像一个社会系统.
纷繁链条,你也很难评价一个切面的功过是非.

能用就行可能是一种需要特别角度去看待的工程哲学.

2024-10-13

两个电影及其他

看完死侍与金刚狼.
倒也不是有什么太大的粉丝热情,只是有些感慨.

算一下,人生也差不多过半了.
有些想法可能也在不知不觉中变化.

就像想用随着年纪增长这个表达的时候,也会犹豫退却下.
尝试用随着时间之类的表达.

年龄是个什么意义?

可能更多的是一种经历与日渐消失的新鲜感之间的拉锯.

年轻的时候总觉得不要给自己设限.
想做什么做什么.

本质的还是说可能性大于变化.

时间久了,大抵也不一定是可能性变少了.
而是变化变少了.

套用句俗话就是变化的只有变化.

就像片子里金刚狼因为不在意/逃避/醉酒,而错过了救其他人的机会而抑郁余生一样.

很多事情变得无所谓或者麻木不仁无以为意了.
尤其在草台班子理论的洗脑下,很多事情一定程度上的觉得无所谓了.

X-Man和人类的纠葛冲突也不是一天两天了.
所以有矛盾和甚至局部战争也正常,过两天就好了.
殊不知这是狼来了之后的这次不一样了.

大致就是这么种心态.

也可能是像前段时间看的Joker 2.

在陈奕迅般的自我浮夸陶醉后,还是回到监狱被脱下裤子连累别人才明白一切的无意义.

Joker之为Joker在于它就是Joker.
这种同意反复循环递归世界的坍塌在于无间道梁朝伟想做个好人的瞬间.

无非是另外一种的对于boring生活的叛逆.
只不过这次叛逆的是叛逆本身.

就像看着Lady Gaga只能以女性身份出演哈利奎茵而不能本色出演Joker本人意义.
虚假的或者旧时代的Joker只想回归生活做个好人.

有时候会想是这个世界变无趣了.
还是自己真的老了.

前段时间又翻了些开源项目的代码.
发觉少了以前看代码时候的那种会心一笑的场景.

可能也并不是说代码质量不够好,不够多技巧,或者想法不够新颖.

像Clickhouse的Merge Engine(非Merge Tree),运行时归并异源数据为统一View,倒也不是没有提起一点精神.
但是在现在所谓DataLake之类概念横行下,只不过是野心放在哪一层的问题而已.

要么都是支持catalog/external试图把数据在meta层面归纳过来管理.
要么是像Velox试图做个跨模式的execution engine.
又或者像Arrow/DataFusion一样,干脆把数据交换格式和执行计划做成某种形式的IR.
甚至于像Spark一样,小孩子才做选择,既有catalog又有remote plugin还有事实上的IR.

无非就是老生常谈的在存量环境里尽可能的占位.

就连偶尔翻下Google的论文,也难免会有toB的这些所谓大数据架构和实现相关话题.
尽管有些可能确实也有眼前一亮的感觉.

不过跳脱出来看,像stream process也不过是套个kafka类的merge策略而已.
虽然在比较abstract的层面来说,确实逻辑上的stream可以是构成上的fragment构成,剩下的就是存储的选择和runtime归并问题了.

可能这就像技术发展到一定程度,更多的是比拼的工程能力.
毕竟理论创新已经到了一个天花板时期,很难再有新的东西了.

所谓的智子时期.

这么一想的话,似乎也有些能理解理论物理的尴尬局面了.

但你也很难说,这到底是因为世界乏善可陈,还是自身的问题.

像支撑deadpool的是什么,奔溃joker的又是什么.

如果说共同点是美式family情节的话,那问题就变成了为什么是美式,为什么是family了.

最近有段时间也会开始反思所谓的政治立场问题.

从年轻时的愤青,到读了点西方理论的自由派.
再到草台班子渐长的中间立场.
然后是自觉的算马克思/社会主义信徒/理解了.

有那么段时间看到别人发表的以前各个阶段可能也会说的话,会有一种可能算是说服的冲动.
也可能是好为人师的中年心态.
虽然大多时候都抑制住了,但总的来说倒也不能说是了然无趣漠不关心的.

甚至有时候可能还是偏所谓粉红的.
尤其在所谓意识形态问题上.

就像刚刚谈到美式family情节的时候,也算条件反射式的会对美式有种对立情绪.

倒也不是仇视或者其他什么.
只是一种可能是矫枉过正的警惕感.

毕竟相对来说,东西方各自的表面价值观上,西方很多是比较tricky和ridiculous/drama的.

就像你很难在一个倡导私有产权神圣和自由竞争至上的语境里,认为生而平等/equality是不矛盾的东西一样.
在这种宏大而片面的叙事里,习惯性地试图跳出这种看上去context-free的价值观导向,去寻找context- aware的部分.

但它的问题在于,思路上拒绝了其隐含的积极意义一面.

就像你认为它不现实,但不代表它的一些取向和行为不值得考虑意义.

甚至于所谓对立面的东方/社会主义本身就是一种过于over optimistic的理论描述.
基于的也是一种不算矛盾,但是过于大胆的本质基于过剩的解决思路.

所以跳脱来看的话,就像马克思晚年在哥达纲领批判里对最低工资之类的批判和嘲讽一样.
意识形态本身就是一种意识形态/枷锁.

最低工资或者说社会主义这个描述本身的一定程度的畸形和冲突在于它本质还是在所有制归属问题上的论证.
最低工资保障基于的也还是所有制归属问题之后的分配保障制度.
强调的是由所有者/雇主进行的再分配.
本质还是所有权导向的.

就像社会主义理论虽然本质上把异构的私有产权归纳到集体/社会所有这个虚拟唯一实体下面,但是它的理论基础和衍生论述也还是基于所有权展开的.

所以马克思在哥达纲领批判才会重新把最低工资攻击本质为基于所有制展开而非面向分配设计.

因为他可能直到晚年才意识到论述结论的分配/再分配导向才是社会主义这个命题应该基于的论点.
而不是试图在所以制框架内反对所有制.
尽管从结果上来说,这种论述确实指出了所有制结构的弊端.

于是基于分配/再分配设计的系统形式上就可以是所谓的公有制,也可以是私有制.
只有能够保障分配/再分配的执行就行了.

这也是为什么当代政府本质上都应该是在主动或者被动的面对和解决贫富差距和收入不公问题.
只不过系统设计上,会受到对应体制的制约和阻碍罢了.

所以,如果说指责或者定性是社会主义还是资本主义已经不重要了的话.
那么衍生的意识形态对抗还重要么?

否定的原因在于本身是个虚无的命题了.
而肯定的原因大抵在于它不是一个纯粹的理论问题,而是现实政治的综合竞争strategy.

就像在当下问一个人关于某个观点的想法态度一样.
恐怕本人也很难明确地说是自己的观点,还是被植入的观点.

可能就像现在流行的AI/LLM一样.
看上去多元fancy前景无限.

本质可能只是复读机的hallucinate.

maybe that is the boring part.





2024-08-25

聊聊黑神话

最近算跟风玩了下黑神话.
用的Geforce Now加月卡.

勉强到第二回打完沙国父子,回头准备去打地狼吧,然后20小时优先卡就被踢出去了.

难度对于个人这种没接触过的玩家来说还是挺大的.
一个Boss花个三四个小时很常见,或者说必然吧.

像第一个头目幽魂就卡了挺久.
后来学会拆分模式之后才比较轻松了的.

一个是右闪绕道身后无脑追击.
另一个主要就是立棍躲范围攻击加打断了.

这个算是后面的基本手法了.
尤其像广智和白衣秀士第二形态这种快速攻击类型,顺便广智还带近身灼伤效果的.
立棍命中然后拉距离恢复气力,剩下的就是第一章的主题不贪了.

第二种类型就是黑熊精/金池长老/沙国父子这种大体型的Boss了.
因为体型的问题翻滚和躲闪有特定方向判定,加上有范围追加,基本上就是打两下跑的模式.

后来看了下其他人的视频主要都是劈棍蓄力/棍势识破+打断辅助定身和排位的速推方式.
这个还是学不来的.

一方面就只有键盘连鼠标都没有,同时操作不了太多动作.
另一个面确实主要是操作不行.

所以基本上就是拉距离,保持心态平A的方式.
甚至连定和变身一场战斗最多也就一次,而且基本是为了保命的.

某种程度上来说,每个Boss能过都是靠的某种形式的运气.
毕竟残血对残血是常态.

尤其白衣秀士几次二阶段残血最后一击心态变急被反杀的例子.
后来也就慢慢看开了.

也算是一种体验和修行吧.
正如一回的剧情指向不贪一样.

仔细想想的话,纯理论来说,这类游戏就是某种模式识别和匹配的玩法.
给定双方的行为patten,构造一种类似出牌的克制策略.

本身的手牌数量不会太多,只是考研的反射意识/匹配速度.

纯看面板数值系统的话,是没什么太大意义的.
或者说就是没有意义.

初期尝试加点了基础属性的天赋,然后马上发现没有效果,后面就全部忽略了.
主要还是看连击技能的产生效果,也就是手牌的模式积累.

这大概也是为什么会有方便的洗天赋的功能设定.
一方面是方面及时调整策略.
一方面也是为了玩得下去,不然一失足就得重开,加上难度系数,很容易劝退.

形式上来说,把血条和打击数值换成次数也是没问题的.
内容表现上虽然有不同的视觉效果,但本质就是一个时间序列的打击节奏判定而已.

如果没有在某个特定的时间节奏节点给出特定的手牌对应,基本上结果就是再来一次的.

当然,如果没有一个直观的数值系统的话,纯靠文字和高亮描述是比较难让人有直观的手牌策略的.

像打浪里个波的时候,难度可能主要在气力消耗控制上.
所以换一套水里套装的话,难度上应该算是大大减小了的.
但看纯面板数值的话,反而是降低的.

类似的还有黑熊精.
因为缺少材料,所以防火装备还有两件没打造出来.
但实际情况是一方面有防火袈裟,一方面本身就比较多翻滚,所以反而影响不明显.

所以,理论上来说,把数值系统去掉应该也是完全不影响核心玩法的.
只是可能不太容易让人接受.
比如换成打击次数计数的话,心智模式就不一样了.

其他的像隐身之类的附加系统本质也是手牌模式的扩充.
只不过是限定的出牌规则而已.

当然,这只是理论上或者说设计上要考虑的问题.

剧情方面因为被剧透过了.
所以倒也还好.

如果从纯零背景来说的话,开头的剧情故事线其实有些一头雾水的.
就是讲完一个故事然后没什么交代就开始旅途了.
而且直到第一回完才透露出找到大圣遗物这个点.

当然,如果从已经有上下文的角度来说的话,轮回设定下这种无头无脑的结尾就显得异常合理了.

包括第二回开场一身箭躺在那里也是.
叙事上某种程度来说,是有一种割裂性和断代感的.

但是同样的,在已知故事安排的前提下,就又显得异常合理.

如果把这个看作一种有意为之的话,倒可以把黑神话定义为一种新式的digital novel.
它跟日式的gal game不同之处在于,它是以某种形式的动作格斗游戏的形态展现的.

包括优先的地图和紧密节奏的boss战.
基本上叙事是游戏的一个相当重的要素.

不然完全可以做到更开放的世界和更少的boss节点的.

目前这种就是在优先的构造叙事里,通过模式化博弈/格斗的方式把游戏体验时间拉长.

就像digital novel是靠文字/图片/分支去填充游戏时长一样.
它是靠战斗系统本身去扩充内容.

这个就不得不让人联想到前些时候某司的某新游了.

某种形式上来说,两者的共同点都是工作室对某些元素有着不同寻常的追求,想各个方式嵌入.
甚至连外部玩家市场期待程度都类似.

但结局迥异的原因就有些微妙了.

所以,有些时候所谓正确的事其实具有某种程度的运气成分/偶然性的.

毕竟正确的一面固然是自身的坚持所定义.
另一方面还得是受众的理解和接受程度了.

所幸,黑神话做了一件,也做成了一件几乎所有人都觉得正确的事.




2024-08-17

SparkSQL解析的一些问题

最近在改一个SparkSQL AST解析相关的问题.
主要做一些权限管控校验重写的事情.

之前做过一版重写,现在反馈了几个问题.
一个是类似delete from table where子句的错漏.
一个是select from where not exists in (subquery)的子查询问题.

本质上其实都是同一类的设计缺陷.
因为当时并没有预期到expression的复杂性.

一般来说,不过是DDL还是DML语句,对应的AST的基本或者说主要语法要素单元是一个称之为logical plan的东西.

比如一个select语句通常对应的AST就是一个以project为root的向下由其他不同的logical plan构成的树形结构.

如果想对这个AST做一些动作,那么一个naive的approach就是针对各种logical plan做一个类似Finite State  Machine的东西,递归地针对各个单元做应该做的事情.

这个的一个问题在于理论上需要穷举所有可能的logical plan实现,以保证完备性.

第二个是一个工程上的问题.
因为选取的extension point的问题,得到的AST并不是一个直接的从SQL lexer而成的.
而是经过经过了一定的rewrite/resolve rule得到的.

这就意味着有些logical plan可能并不会出现在extension point的context里.
也有可能因为其他组件系统的演化问题,一些logical plan可能,也可能没有被rewrite成另外的东西.

一个显著的例子就是代表着通常所说的表带logical plan.
parser出来结果一般是一个logical relation.
但是由于有着一些系统演化的问题,它可能会被rewrite成datasourcev2 relation,也就是较新的datasource接口的table.
也可能是hive relation,属于hive catalog范畴的表.

也可能还是一个logical relation,比如没有被以上两者涵盖的部分.

更麻烦的可能还是其中一些具体实现涉及到文件路径也需要audit的.

当然,这个相对于第一个问题来说,还不是太大的问题.
毕竟case by case能够解决.

完备性的问题在于像iceberg之类的会对语法做扩展的.
也就意味着会产生意料之外的logical plan的情况.

它的问题是本身也是一个case by case的工程性问题.
同时还有一些runtime问题.

因为它不一定在某个场景里有存在/注册,所以在runtime需要一些比较tricky的东西去发现和适配.

当然这些终究还是一个工程上的问题.

开头说的两个问题主要还是因为FSM的设计只考虑了logical plan.
没有考虑内嵌其中的expression.

某种形式来说,就是FSM的完备性的问题.

如果要在FSM的基础上继续改进的话,也就是需要把节点往下拆一层到expression.

这个一方面是需要更针对性的对每个logical plan做specialize.
本身就属于逐渐失控的一种表现.

更重要的在于expression还有自己要解决问题.
因为像not exist (subquery) 这种是一类特别的expression,内嵌一个logical plan,resolve的call site context是subquery.
也就是里面的column/attribute的上下文是跟subquery有关.

而像delete where condition的where子句的expression的call site根据具体情况可能是from table也可能是包含了not exists(subquery)子句的复合型expression.

所以当这里需要校验expression所最终引用的column来自哪里的时候就具有一定的复杂性了.
单纯递归的时候需要根据expression的形态去选择具体的callsite.

这样的话就更进一步地对FSM的完备性提出了挑战和不确定性.

再一个就是column的resolution本身也不是一件水到渠成的事情.
例如
select 
  column
from (
    select 
      column + 1 as column
    from (
        select ...
    )
)
这种复合expression加alias的形式.

intuitive地方式就逐层针对具体的expression去解析然后递归向下.
而这个递归的过程不可避免地会存在not exists(subquery)这类特殊型需要辨别call site的.

于是FSM不可避免地explosion化.

一个可能更实际一些的方式是折衷化的FSM.
大致来说,上面提到的复杂的case都是基于query context的.

那么只要不对query context的logical plan做FSM就想对来说不容易explosive.

而query如果只考虑解析column引用的话,实际上还是想对简单的.

因为容易证明,所有expression reference的attribute无非指向两处.
一个是最终table的attribute/column,也就是期望得到的结果.
一个是指向其他直接或者间接引用了attribute/column的expression.
还有一类就是literal/constant,可以忽略.

于是对于一个well form的AST的expression来说,如果它不是一个常量或者直接指向一个column,那么它就是一个indirect column.
这个indirect column必然递归地会指向上述三种情况之一.

那么实际上对expression的递归过程只需要关注是不是指向了column或者常量就行了.
而不需要naive地去解析一一对应关系,只需要关注存在性即可.

当然,这里还可以有其他一些考虑.

比如在build FSM和column resolve的时候能不能stream build/one pass地完成.
以及难度如何的问题.

粗略想了下, 它可能类似于与constexpr或者constan.template/meta programing的范畴.
或者是一个NP/NP hard的问题.

因为理论上来说给定一个input,它的output是deterministic的.
它一方面需要的是如何像traveling sales man的看是否存在一条这样的branching路径.
一方面是要看所需要的context是否能够on-demand的生成.

如果条件/问题放宽一些的话.
就是如何尽可能地lazy而又尽可能所需要的东西evaluate only once的问题了.


2024-08-11

标准化支出

中午和人聊一些马克思和生产力的问题.
然后提到了生产力发展的另一种说法是生产力过剩.

某种程度上来说,基于允许一部分搭便车的社会主义生产力理论确实形式上要求着一定程度的产能过剩.
因为只有这样才能够使得搭便车的成本,或者会所才能忽略掉这部分成本,形式上让生产能够继续下去.

只有从成本上来说可以忽略,或者说允许一定程度的货损/坏账的情况下还能够运营下去,才能使得这套机制称之为完善.
不然生产力发展也解决不了所谓的共产主义构想.

但一个现实的问题或者说困境在于,作为过剩行业的从业者来说,可能具体感受不会是一个舒适的范畴.
尽管从宏观上来说,每一个行业同时也是另外其他行业的产能过剩的收益.

而这种形式上的mutual benefit的代价在于不存在一个溢价或者说剩余价值.
也就是没有人能够从这种发达的生产力/产能优势当中,有一个舒适的获利条件.

甚至于在具体的微观层面更容易存在贫富差距带来的感官不适应.
毕竟每个行业的单位产出或者所谓的必要劳动时间的收益是不同的.

也就是通常所说的收入和消费不对等问题.
高收入人群的购买力和进步的工业产出使得相比其他阶层的消费比例显得更低.

尤其在工业进到纯粹品质上不构成多余溢价的时候,差距更明显.

所以似乎产能过剩是一个社会主义必然而又无法逃避的困境.

纯粹理论上来说,这个问题是容易解决的.
因为它的target很明确,就是保证每一个阶层,甚至每一个人有着相似的收入支出比例.

比如饮食或者更容易理解的住房.
每个人的成本付出与各人的收入水平挂钩.

但它的实际问题在于,这种全面计划的方式虽然可能在今天的算力条件下是可能实现的,但是它并不是一个符合直觉,或者说当下容易让人接受的一个方式.

或者更直接的说,它不是一种可以市场化规模化的形态.

针对每一个人个性化定价即使可行,但也是不能解决问题的.
因为它使得定价本身缺乏意义.

尤其如果考虑卖家收入之后作为买家开销需要re-calculate.
这基本上最终会是一个类三体的混沌问题.

资本主义或者说西方角度这个问题是有解决方式的.
也就是所谓的阶级分化.

一个简单的例子就是富人区/平民窟,或者更直接的王室等级划分.
不同的社会阶级有着不同的消费习惯和基本约束.

尤其给予社交礼仪的服饰等礼制方面的约束,使得不同阶级有着各自的standard spending.

尽管从实际效果来说,并不一定能够其他好的standardize的效果.
但至少提供了一个体系思路.

它本质上是构建一种基于道德的礼制约束去pressure peer spending.
也就是通常所说的某种形式的从众排比驱动的消费百分比均衡化.

就像中国传统的等级制度或者官服制度一样.
对于不同品阶/阶级的人有着不同的开销上下限.

但同样的,引入或者重构这种阶级制度在中国也是一个不太现实或者说不应该考虑的一个事情.

一方面说重新阶级化也并不意味着能够解决standarize spending的问题.
因为某种形式上来说,它跟universal basic income一样,本质也是计划性的.

如果它能够被接受,那么意味着其他计划性的做法也开始可以的.
而且从实际效果来说,英法也并没有能够从这方面很好的解决问题.

另一方面,重新阶级化本身也是有一些问题需要解决的.
因为它需要像当初解决市场经济在社会主义中的理论定位一样,解决分配和阶级怎么和谐共存的问题.

原教旨的马克思主义是阶级导致的分配问题.
而如果现在要解决过剩引入阶级化分配的话,多少是有些不太自洽的.

本质上来说,它要解决的不是分配本身的问题.
而是所谓的再生产的问题.

spending不standardize的问题不在于分配不合理,而在于分配之后的消费/再生产不合理.
它本质上是分配对部分人过剩,而过剩的原因是对应的消费不足.

所以要解决百分比不对等的问题需要的不是阶级本身,而是百分比如何合理化地调整的问题.

阶级的方案更像是一种计划性摊派的指标.
而且纯道德礼制的约束并不构成一个很强的guarantee.

更合适的可能是带收税性质的强制性的方式.

收入税所得说解决的只是收入总量的调节问题.
甚至形式上并没有直接对消费做约束.

加上从绝对数值上看,贫富差距的程度是的这种调节并不会对standarize spending有什么影响.
意味消费价格水平放在那里.

直接对消费品征税也是一个道理.

本质是受到价格水平约束的.
而不是跟收入剩余挂钩.

更实际的可能是针对资产持有征税.
类似房产税.
但面向的是不特定的资产形式.

因为从流向上来说,收入剩余要么进入消费,要么进入再生产.
再生产有实际的投向生产实体领域,又有投向所谓的虚拟/金融领域,以持有各种类目的资产为主要形态.

于是,选择似乎是显而易见的.

2024-07-21

似有若无的悖论

没事翻了下美国gov spending的一些数据.
主要对比的是2024至今和2023同期累计的值.

光看绝对值的话,2023半年是花了6.1trillion,2024则是多了0.2trillion.

by budget function看的话,主要都是医疗社保国防卫生这几类.

不过看百分比变化的话.medicare从15.6%->17.3%,大约是多了100.8billion.
social security从15.6%->16.2%.
national defense则从14.5%收缩至13.8%.

对medicare分拆的话,主要是:
Federal Supplementary Medical Insurance Trust Fund增加了大概50billion.
Payments to Health Care Trust Funds增加了差不多30billion.
Federal Hospital Insurance Trust Fund增加了28billion.
Medicare Prescription Drug Account 增加了20billion.

这里需要注意的是分拆的开支包含和其他支出主体何必计算的.
比如Federal Hospital Insurance Trust Fund包含一部分treasury managed的account名下.

soical security的则主要是来自Federal Old-Age and Survivors Insurance Trust Fund的增长.
大概67million.
粗略看基本上就是整个social security的增长量了.

光看名字的话,大致可以理解为spending的增长主要就是医疗尤其可能是年龄大的部分的医疗开支增长.
俗称的老龄化财政问题.

按比例看的话估计差不多就是3%的年增长.
可能比gdp增长稍快一些.

不过查资料的时候倒是看到有2035部分开始入不敷出的情况.

看收入构成的话.
50%是individual income tax, 35%是social security and medicare tax.

用国内的术语来说就是个税和社保医保.

corporate tax只占10%,大概400 billion的规模.

所以如果减公司税的话,倒是确实不太会对财政造成什么影响.

反而如果MAGA行得通的话,就业上去劳动力增长带来的税后更有可能帮助美国走出赤字,从而避免/延缓债务危机和美元信用问题.

而且只要收入增长,那么对应的spending的压力也不会太大.

不看年龄结构的话,就算老年化问题以每年3%的速度增加负债,但差不多也能通过gdp/通胀同步消化.
另外就是这个其实还没算上潜在的经济增长带来的抹平.

然后就是贸易问题.

2023年总的import数额在3,826billion.其中中国是551billion.

假设个税平均税率30%的话, 2023年总的个人收入在6,300billion的规模.

简单换算的话,假设进口都是居民消费,那么面向中国的居民支出大概占据收入的8%左右.

所以即使加征的关税让价格翻倍的话,16%也不是不可接受的范围.
更何况还要考虑可能也不是完全没有替代.
以及MAGA造成的本地化的影响.

而如果按照这个逻辑换算中国数据可能就更不乐观了.
2023年个税收入是1 trillion的cny,按统计口径算的人均收入39218,折算14亿的话54.9trillion cny ~ 7.6 trllion usd.

出口总额23.8 trillion usd.
按商务部2024年5月数据,当月出口总额3,000亿usd,其中对美国出口1958亿.
按2/3折算的话,23.8*0.66 = 15.7 trillion.

相比美国居民承受的进口因素的物价变动,中国这边由于出口造成的出口收入比值是不容乐观的.

当然,纯粹看数字,假设来源收集资料也没错的话,中国的出口数据和居民收入并没有一个明显的直接关系.
或者至少从数额上来说,不是直觉上存在有相关性的.

所以反映的一个特点可能是出口经济在中国经济当中,对企业的影响力比对个人的影响里大.
收入的大部分波动可能更多的反映在企业所得税而非个人所得税上面.
毕竟纯数值上,甚至居民总收入也不大于出口总额.

于是,对于关税导致的外贸影响,更多的策略考虑可能还是在企业的转向或者转移上面.
毕竟即便考虑企业隐含的劳动力问题,本身也是企业转轨问题的一个子集.

要么出口外贸企业找到出路消化原有的就业.
要么其他行业吸收外贸劳动力.

但其他行业的吸收能力问题则可能涉及到对应行业的企业收入和工资比的问题了.

所以某种程度上来说,中国的产业结构升级可能还不是一个单纯刺激消费的问题.

毕竟从税收上来说,中美的差异在于企业和个人在经济增长中的分配贡献差异上.

单纯看数字比例差异的话,如果把中国经济发展造就了企业但没改善工人工资这点的话,倒可能也没什么太大的问题.

而与此同时关于企业抱怨工人工资以及五险一金成本负担太大的时候.
这种乍看互相矛盾的境地,也是一个可能比较有趣的问题.



爽文

去看了好东西. 坦白说,多少是带着点挑刺的味道去的. 毕竟打着爱情神话和女性题材的气质,多多少少是热度为先了. 看完之后倒是有些新的想法. 某种程度上来说,现在的年轻人或者说声音就像小叶. 只要说点贴心的话就能哄好. 也是那种可以不用很努力了. 留在自己的舒适区避难所小圈子抱团就...