2018-12-30

潘达斯奈基

黑镜:潘达斯奈基有几个可能还蛮有意思的剧情点.
不过也可能是因为身处文明古国,并不是接触的实际交互流程导致的错觉.

第一个是明星制作人科林的loop性质以及潜在的上帝视角.

loop的剧情点一个是第一见面对bug的既视感的反应.
一个是主角办公室路演对的不同分支以及明显的wrong choice的提示.

其他一些零零碎碎的包括各种背景录音带和跳楼分支场景.
按照惯常ACG剧情走向基本就是高阶分支脚本的关键线索人物了.

不过在看的版本貌似并没有这方面的过多发展.

这点的另外一个可能有意思的思路就是影片本身的一个概念.

影片的一个主题分支也是宣传的点,即使交互式体验.
或者说上帝视角.

这里就不得不说虽然不是中美合拍,但是概念有点类似的若干年前的一本叫S的书.
该书的一个概念是在一层故事视角上,通过在书里面的两种手写笔迹注解和各页夹杂的各种零碎书签资料来构造第二层虚拟故事.
造成的一种交互体验就是在读第一层故事的时候,由于仿真的第二层手写体造成了跟第二层故事主人同时间的体验.

理念上有点类似弹幕带来的弱时间同场感.

而科林的上帝感来自于,某些口吻完全可以代替正在观影的观众的立场/角度.
但本身又是剧情一个无法完全抽离的角色环节.
所以,这种游离不定感有时候容易让人很难衡量自己是沉浸在哪一层剧情里.

尤其考虑剧中的一个剧中剧背景.
也就是剧中的潘达斯奈基的作者戴维斯.

它的轨迹和主角,或者说主角和它的轨迹其实是类似的.
尤其肢解结局.

精神不稳定,有偏执工作动力,在沉溺平行世界/分支选择之后,抽离不开 .

于是,如果把观众看主角的轨迹,和科林看主角的轨迹,以及主角看戴维斯的轨迹放在一起比较的话.
基本上算是属于同一体验的视角了.

所以在这里反推每一层级对下一层级的看法/做法,以及下一层级对上一层级的反应,就很容易顺延回剧情构造试图表达的目的了.

比如戴维斯纪录片里反复提到的free will的概念.

这个元素相关的还有以前预告片里的PAC的概念以及对应的PAC的类乌托邦分支的传统黑镜剧情套路.

和这个剧情元素有关的另一个疑似梗或者故意留的小技巧伏笔就是PAC剧情里相关的程序carsh的镜头.
这里的error message是function not define.

如果拔高一点的话,这个剧情题材的目的是指向某种社会管制和压力的.
而剧情本身却并没有对这个当初的宣传点做过多的展开.
那么,如果把游戏本身指向为影片,那么undefined function就是指向剧情本身的一个反身的暗喻和揶揄了.

第二个是分支这个概念.

这个概念是影片本身和里面的游戏共有的一个概念.
所以,如果把片中的对游戏的终结评论当作对影片本身的评论来说,也不会有太多的违和感.

这里的态度有几个,一个是差评,一个是好评,一个是话题性议论.
基本上就是所有可能的实际处境了.

这里如果以作者角度来看的话.
可能就比较有意思了.

黑镜这个冠名系列从第一季之后,基本上续集都会遭受或多或少的批评.
因为本身来说,黑镜的剧情套路是很常态的,结局的观感情绪走向观众自己是能预料到的.
这就造成了一种预期偏差带来的失落感.

但是这个系列的另外一个特色就是剧情的合理推演外延.

因此,虽然说可能觉得结局不过如此,但是剧情的推演在设定之下的合理性是没什么太大问题的.

那么从创作者的角度来说,就有一个比较尴尬的立场.

一个是你得从一个显得平常的角度找到一个评记/讽刺点.
然后再构造一个以不太令人游离的设定把这种点戏剧化突出冲突性.
而构造冲突的一般是解决的反转或者出乎意料性.

但是这点在当下来说是比较具有挑战性的.
现在很难想出一个完全出于意料的结局设定.
而如果做不到这点的话,就很容易被认为是流俗.

于是,顺着这个思路,反问一下如果把能想到的戏剧性结局都放在一个片里会怎么样.
届时观众会怎么评价,或者更直白地说如何去批评剧情设定和结局的完美程度.

这是一个有点恶趣味但是也难免稍显无奈的想法.

像这部片的除了剧情之外的其他框架.
比如人物关系,时代,社会设定甚至很多镜头都是完全一致的.

但是按照分支关系来说,把它重新剪接成不同风格的故事也是可以的.
至少本身剧情大纲就有一个可以是传统的反乌托邦剧情,PAC相关的.
一个可以是精神病人的社会压力,来自父亲和医生的不正当处理.
或者结合里面纪录片的对正常人的精神扭曲,吃人社会题材之类的.

这样的话,就会有一种反思.

就是,当一部片是什么题材的时候,决定它的具体是那一部分.
或者是那些关键镜头/场景.

如果能分离出来这些特质,再用这种思路去重新对待以前的批评会怎么样.

这可能是某种私心或者说调戏?

最后是交互方式本身.

这个如果不考虑拍摄成本的话,其实算是一种算法驱动的东西.

像传说中的PornHub对时间线的统计和产品点.
加上坊间传说的Netflix本身的算法驱动的制作都市传说.

把这两个比较玄幻的东西放在一起的话,就是既然你可以说剧情节奏剧本是算法构建的.
那么分支点就算是一个更快速的feedback了.

而且还有另一层就是潜在的UGC的DRM.

考虑可能同一时期的热门选型本身会构成一些列的外延社交互动.
这本身可以作为是内容的一个不可分割的一部分.

这样即使影片本身是可被复制的,但是内容的被消费的实际内涵是有限定的.

关键可能是在于如何制造这种可控的内涵消费.

就像弹幕.

片源可以是谁都能有.
但是用户群和产生的观影感受却可能是unique的.


2018-10-09

由一个基本逻辑谈起

一个定义.
A=>B := !A||B .

考虑给定A=>C,C=>B.
如何得出A=>B.

(A=>C)&&(C=>B) => (A=>B)

因为(A=>C) => (!A || C)
(C=>B) => (!C || B)

那么,当C := true的时候
(A=>C)&&(C=>B) => (!A||C) && (!C||B)
->
(A=>C)&&(C=>B) => B --- F.1A

当C := false的时候,类似地.
(A=>C)&&(C=>B) => !A --- F.1B

于是,不管C取值为何,则有
(A=>C)&&(C=>B) => !A || B
->
(A=>C)&&(C=>B) => (A=>B) --- F.2

这里有几个有意思的地方.

F.1A/1B是通过带入归纳出来的.

那么,用X_1,X_2,...X_N分别表示上面的A,B,C.
考虑有这么一个代数空间S,是由
X_N和诸如=>,&&,||等算子构成的.

把S考虑为一个有向图的话.
则诸如A=>C)&&(C=>B) => (A=>B)
就可以看作是这个S当中的某两个vertext/代数表示存在edge.

那么一个代数系统就是这个S的一个有向联通的子集.

在这个视角下考虑F.2的意义.

F.2并不是经过某个有向图的基础/基本替换/变换得到的.
也就是,在原有的图基础上,这两点本来是不直接关联的.
是穷举归纳使得这两点产生了一种直接联系.

或者这么考虑.
(!A||C) && (!C||B) 实际上是
(!A||true) && (false||B)

(!A||false) && (true||B)
的两条有向路径.

它们存在一个共同的交点(!A||B).

那么换个思路考虑值代入的形式.
即是.
(!A||C)&&(!C||B)有50%的概率走P1路径.
另外50%的路径走P2路径.
而P1 P2的延展方向上存在一个共同vertxt (!A||B).

扩展一下的话.
就是对于一个f(x_n...,c).
c值服从某种分布.
可能存在一个变换是
f(x_n...,c) => g(x_n...)

或者更一般地.
f(x_n...) => g(x_m...)
其中x_m \subseteq x_n.

也就是说,一组高维向量可能存在一个较低维度的向量的代数演算系统描述.

其实就是一组高维描述向低维的投影变换.

考虑神经网络的分类.
看作是feature先高维化,然后低维投影到一个演算系统区域的过程.

如果它是准确的.
那么说明feature张成的有效维度应该是>=m的.

而实际上对于一个特定问题,m其实是未知或者说无从可知的.

对于张成的维度来说,就有几种结果.
大于等于和小于.

大于等于是没什么问题的.

小于的话,则肯定是有缺陷的.
因为如若不是的话,那么原问题的多余维度就是无意义的.

那么,如何确保或者知道张成维度是不是满足呢?

考虑f(x_n...) => g(x_m...)成立的条件并不在于m维的具体取值.
因为本来做的就是拟合/推测/推导一个代数系统.

它成立的核心在于额外的n-m维度的充分概率描述.
也就是c的准确的取值概率分布.

或者说,对于特定的x_m来说,x_{n-m}是充分穷举的.

就像前面例子的C的代入归纳一样.
如果存在一个这样的代数变换的话,那么对于C的穷举路径之间就必然会有一个交点.
C的取值越充分,那么这个交点的准确性就越高.

相对地,如果在做张成维度的时候,如果x_{n-m}各个维度的可取值越多的话.
那么计算可能就越复杂.

因为需要归纳搜索的路径就越多.

这么想的话,如果把每一层网络的非线性变换局限在二值分类上面,可能更容易有相对合理的可解释的结果?

2018-10-04

奇点

考虑下最低工资标准.

如果把它定义为一个劳动者所能生存的最低收入水平的话.
那么对应地,一定程度上就等价于基本的物资价格水平.

因为如果不是的话,一旦工资水平高于affordable的话.
那么劳动者就有动力购买高于基本生活水准的东西.
或者对与同一物品的价格有较高的价格容忍度.

前者是很多最低工资标准理论所设想的.
在有了充余之后,会把剩余作为一种资深投资,用于比如再教育或者技能培训之类的.
因此这些理论的立足点是,最低工资的必要性有助于提神整体生产力水平.

这个观点是否有效正确先不管.
看第二种情况.

也就是对于物价容忍度的提神.

假设原来的最低工资标准是w1.
此时对应的某物品的消费水平价格是p1.
它是此时的供应s1和需求水平d1的均衡值.

那么,当最低工资标准从w1提升到w2之后.
就相应的会有d2>d1.
在s1不变的情况下,就会推动均衡点使得新的p2>p1.

也就是价格水平的上涨.

因为最低工资标准锚定的一揽子商品对应的应该是基本的生存消费品.
因此,这个价格水平的上升的一个合理外推就是基本物价水平的上升.

也就是通俗意义上的价格通胀.

先不考虑w2-w1的差额补偿delta的来源是什么.

价格水平上涨带来的就是账面利润的提升.
相应的乘数效应和上下游产业链关系的话.
就有可能是整体经济的盈余状况的提升.

用凯恩斯的角度来说,就是一个不依靠信贷扩张实现的消费拉动生产关系.
也就是说,是一个非利率传导的货币流动性策略效果.

但是这里没有考虑差额补偿dealt的来源问题.

它可能是直接来源于生产成本的提升.
也就是对应的最低工资的直接薪资成本.

在这种情况下,跟前面论述的过程恰好是相反的.
因为实际的是利润水平的降低带来的负传导作用.

但也可以不是.

因为这里存在一个隐性的比例关系.
或者说一个比较复杂的代偿关系图.

虽然工资成本是由企业承担,但这里并没有限制企业不能也是补偿对象.
所以,如果企业这部分负担成本也能转嫁出去的话,那么理论上来说还是有可能是正向反馈的.

比如政府的直接负担,或者以收税手段减扣等作为转移支付.

在进入税收范畴之后,就相对简单地变为一个项目转移的问题.

最简单的比如从高额收入税中提取转移到最低工资标准的浮动.
这里是存在一个可解可能的比例换算关系的.

所以,最低工资标准的提升是有可能在不触及利率的情况下,对消费生产作出影响的.

那么,它会不会倒逼利率,甚至说让利率手段失效呢?

凯恩斯框架内,消费拉动生产的利率表现是宽松信贷.
也就是低利率.

于是,如果央行的目的是反向的信贷紧缩,比如加息的话会怎样.

加息的直接影响是融资成本的上升.
隐含的是资本回报率的期望值也会上升.

这个最低工作标准的正反馈情况并不冲突.

形式上来说,是一个加息加减税的操作.

而实际上来说,也不一定是减税.
因为它可能只是一个项目到另外一个项目的计算腾挪.
总和可能并没有变化.

改变的只是分配方式.

而反观货币宽松策略的话.
本质上来说,是通过对一个等式做的借项放大.
相当于给一个博弈策略的总和修改增加了一个所谓的外部附加价值.
也就是从类似amplify(x) -> amplify(x+delta)的概念偷换.
它理论上是可以不改变当前的经济流向形态,而只是单纯增加之间的flow的强度的.

尽管实际上,因为各个节点的临界值的不同可能会产生不同形态的重构.
好的表现就是新技术新产业的形成.
坏的方面也自然就是新技术新产业的奔溃造成的不稳定图的奔溃.

有点类似neural network propagate.

税收表的重分配的话.
更像是古典的fine tune/handcraft的外科手术式操作.
当然,理解成一个policy/reward过程也不是不可以.

所不同的是,形式上来说相对可控.
因为从税收角度来看的话,这个图的一个特点是.
基本上所有节点都会跟政府这个节点有直接连接.
或者可以建立直接连接.

也就是说,对于任意的其他两个节点,都可以通过这个超级节点做一个代偿均衡.
从而在总量不变的情况下,做某种形式的协调/和谐博弈.

当然,如果最低工资标准提神带来的代偿不是通过税收/或者政府来做的.
那事情可能就更有趣一些.

因为像有些行业,因为自身的特殊性,可能涉及的客户和上下游产业并不比一个政府来得狭窄.
在形态上来说,如果把政府/央行架构下的经济图看成一个完整的图的话.
那么这些行业甚至于行业内的某个巨头自身的架构就是一个相对庞大的子图.

在这个子图里,代偿均衡一样是可以成立的.

但是当把这个局部均衡放回全图看的话,就不一定是期望的那样.

一个例子就是所谓的fake news的影响.

这是一种蛮有趣的变化或者说趋势.

因为它跟传统的分权,或者民主代表制度有相似的地方.
但维度上却不太一样.

它不再是一个简单的一维的政治代表意见.

实际上来说,它更像是一种反复.

因为原本的代议制解决的问题就是为了把多方多层次的不同利益先聚合成一个逻辑主体再往上合并归溯的.
而现在因为信息流通的便利性和多样性,每个人都能直接或者间接地发表或者接收各种意见.
于是对于同一个事件就会有各种不同形式的隐含上下文指向.

在这种情况下的投票就变成了,每个单个个体的黑盒或者说bias的决策过程了.

一个简单的理解就是说,两个人对于同一选项的相同投票表态并不一定具有相同的上下文指向.
甚至于可能是可以允许互相冲突的.

于是,实际上的这种集体决策就是无意义的.

因为互相并不能确定各自的利益诉求是否一致.
是一个相对来说,无序的过程.

反过来说,这里就存在一个比较有趣的思路了.

因为作为一个特定行业特定领域的信息产生方.
对于接收方来说,就是拥有一种隐性上下文的植入能力.

这样的话,对于公司c来说.
就存在一种植入或者说影响方式.
f(h(x)) -> vote的变换.
其中h(x)是对于外部来说,并不一定可见的黑盒或者隐性上下文约束/植入.

一个例子就是一些热门事件里较早期出现的热门观点.
作为一个个体,可能很难对一个既成的主流挂念作出拒绝表示.

尽管这个主流观点不一定是honest的.

所以这就是一些现在很难以用一个词确切形容的事的感受.

或者说interesting?

因为这可能是一个古怪而又多层次的社会秩序/文化道德重组的时间点.

尤其有些东西,可能并不是不能技术上解决.
而是在纠结应该不应该这么解决.
以及不管怎么解决,所带来的社会成本的冲击.
还有来自离经叛道者的无法忽视的参与.


2018-09-09

垄断与溢价平价

考虑一个扩张市场.
采用的是价格倾销策略.

那么,无论最后剩下来的是谁,结论都没什么太大区别.
因为这隐含的条件就是,低价策略可行.

引申的意义就是,只要有合适资本支持,同样策略可以达到同样的效果.

反过来也就是说,作为一个临时的寡头.
在不改变策略的前提下,最优的做法就是方式别人用同样的倾销方式获取市场.
而这个对于一个既定的垄断企业来说,并不算一件难事.

从体量上来说,垄断结构越完整,市场覆盖面越大,后来挑战者的门槛就越高.
也就越不可能出现竞争对手.

这是一个近乎完美的闭环策略.

但这里又一个隐含假设.

就是消费是价格敏感的.

也就是说,这里假定的是,后来进入者必须在价格上面相对于垄断者有优势才具有存活性.

这里的价格包括两部分,一个是字面的价格,一个是依存在里面的成本.

垄断企业除了在定价权上面有着优势之外.
额外地可能更具具体结构形态的不同在成本规模上也相较于后来者具有优势.

所以纯粹的价格站是利率率或者说现金流持续性周期的比拼.

但这是基于价格preference的假定.

当消费者把价格因素抛弃之后.
垄断依靠的一些计算基本就无效化了.

形式上来说,价格优先的垄断形态计价是
price = cost + profit

而依靠低价策略的话.
price = cost + profit - discount.

也就是说,在扩张期依靠的是一些潜在的折价销售获得的交易成立可能性.

在建立垄断结构之后的话,因为有了定价权重新变成
price = cost + profit.

这里如果把市场前期的低价策略和后期的主权定价结合在一起考虑的话.
形式上上来说就相当于在倾销阶段,消费者除了票面的价值支付之外,额外地附带了一个类期权概念.
或者说债务.

也就是
price + debt = cost + profit - discount
->
price = cost + profit - discount + option.

形式上的,后期的垄断额外收益来源于早期低价策略的一个期权/信用偿还.

类似于信用卡或者说各种白条的隐性负债/增值条款.

然后以life time value的形式拉长看这个等式.
左侧price就是消费者的支付价格.
右侧则是对应的交易平价成本.

那么价格倾形式的垄断就相当于 discount远远小于option或者说option远远大于discount的情况.
这样话就相当于
price = cost + profit + option, discount << option 但从general的形式来说,这个等式的存在并不强求discout << option. 也就是从形态上来说,是允许存在一个较低的price平价取值的. 即存在 price_x = cost + profit - discount_x + option_x < cost + profit - discount + option. ->
option_x - discount_x < option - discount ~>
option_x < option_y 但这样显得不是很rational. 或者它让目标函数变得有些诡异/不可解释. 因为不再是简单的minimize/maximize了. 在实际,对于一个交易如果不是纯粹的价格优先. 或者说愿意给出一定溢价的,通常对接的可能是产品形象服务或者其他什么. 当然也有可能是一些强买强卖或者信息不对称产生的被动溢价. 于是稍微修改一下平衡条件. price + premium = cost + profit - discount + option + goodwill. ->
price = cost + profit - discount + option + goodwill - premium

假定对于一个给定的商品而已,内在的价值和利润是固定的.
则可以简单表述为
price-cost-profit = - discount + option + goodwill - premium
->
revenue = - discount + option + goodwill - premium

这里revenue和profit的解释性区分在于,而profit是一种在给定条件下的合理/理性/基本利润空间.
于是revenue就是消费者额外的被动利润贡献/支出.

从消费者的立场而言,理性的平价关系是这个时候revenue=0
即对于一个商品支付了内在价值和合理的对于商家的利润之外,不再需要支付其他.

于是有
0 = - discount + option + goodwill - premium

再考虑商家采取的不是价格倾销等通过复杂价格的策略的话.
则有折价和垄断行权为零
即discount =0,option = 0
->
0 = goodwill - premium
->
premium = goodwill.

也就是商誉和支付溢价等值.

这个解的现实解释就是,用户愿意支付的溢价跟商家的"商誉"相关.

也就是在一个市场竞争的交易配对当中,如果允许交易存在溢价.
或者说在形式化计算的过程中,加入溢价平衡项,使得其符合经典的纯粹理性市场形态的话.
单纯的价格策略并不会直接导致垄断的形成.

换句话说,垄断的形成与否,多多少少跟个人的交易形态和信仰有关.

价格优先的自然会按照价格优先的范式计算结果.

就好比说雪崩的时候没有一片雪花是无辜.

2018-08-12

税制相关

下雨没事,就简单画了下个税的一些曲线关系图.

本来预期会是一个带衰减抑制形态的曲线的.
类似sigmoid或者其他一些log/e指数形态.

但实际拉长之后还是一条相当平滑的直线.
即使考虑各个征收区段的不连续关系的话,总体还是很平滑的.

从图形上来说只是简单地把梯度降低了而已.
本质上还是一个准线性的关系.

然后是看了下收入没增长1%对应的实际增长会是多少.
拉下来的话,幅度不会超过千分之2,而且对于20w左右之后的,反而有一个比较明显的回升.

即超过20w之后,实际的每1%增长幅度更接近与1%.
这个应该说是跟设计初衷背离的.

因为个税的目的应该是一种类平均性策略.
保障社会总体的收入在一个可比的平坦区间内.

所以形态上来说,应该是收入越高,衰减越厉害.
一阶二阶应该都是有这种抑制作用.

马太效应的一个核心点就在于资源丰富程度造成的可用手段多寡的区别.
一个比较陡峭或者说跨度比较大的收入水平分布的话,就更容易造成可用工具的区分和隔离性.
从而进一步地巩固这种分布形态.

因为工具本身也是有一定供需关系的.

如果层级越多,每个阶层能变动的方式就越多.
而反过来,只要有任何一个上升变化途径阻塞或者出现供需矛盾的话.
整个层级流向就可能割裂了.

因此对于这个优化函数来说,目标应该是保障曲线分布的平坦性/flat.

另外一个是应税金额的抵扣项.

就个税来说五险一金是在抵扣项目当中的.
而五险一金的性质是一种公共保险/储蓄.
是一种某种形态的社会共同基金.

名义上来说,这个都是归属于个人财产收入的.

所以理论上来说,在重个税的前提下,通过这类公共基金提供的合法避税项目做一些定向诱导是可行的.

因为名义上来说,它能减少个人因为所得税而造成的税务支持.
只不过以另外一个明目存在在社会共同基金下面.

而这个共同基金不考虑实际政策和规约管束的话,形式上就是另外一种国家融资手段.
面向的是全体社会成员.

它跟直接税收的区别在于,税收是一种某种形态的服务管理支出.
而抵税项目更像是一种贴现借款.

不仅不是一种支出,而是一个有息投资.

实际中的问题一是回报率.
二是赎回限制.

一的本质还是因为的二的流动性约束.

二存在的原因应该是为了减少形成一种逃税通道.
所以需要有锁定期和赎回条件约束.

这个可能可以以罚息或者其他更直接的数值手段去规避掉这类规则漏洞.

然后剩下的就是基金本身的收益率市场竞争性了.

这么看的话,现代税收可能更像一种主动的价格歧视策略.
目的定位可能不是直接的无偿征收和统一管理分配.
而是一个市场化的投资投票方式.

通过给定的避税渠道间接选择社会分配发展方式的一种形式.

2018-08-05

InvokeDynamic的一些问题

之前一个想法.

就是Java里实现类似go的interface的形式约束.
即可以后期规约出一个interface然后把一个object cast过去.
类似new Anycast().adopt(object).newInstance(Interface.class)的用法.

最简单的方式当然就是Invocationhandler的Proxy方式.

但这里有个问题就是interface的default method.

因为default method的作用可以是用来定义一个control flow template.
比如Stream API的collector.
通过暴露一些可实现的流程细节,在给定的流程框架内适应.

而proxy的实现实际上通过实现给定interface的所有方法做到的.
这也意味这default method被事实上override了.

这里有几种可能的方法.

一个就是实现一个带有default method的instance.
但由于实际上各个abstract method归属的this/method receiver不同.
所以实际上也并不能够达到目的.

另外一个思路是method handler.

因为invocation handler里给出了proxy object的instance.
所以在lookup能拿到method handler的前提下,就能bind到method receiver.

而这个的问题也就正在于lookup的限制性.
并不是像老一辈的reflection API一样是相对很随意的.

lookup对interface和method的访问性约束比其他要严格许多.
正如public要求或者同package之类的.

所以在proxy的框架内,实现还是有一定的局限性.

那么考虑绕过proxy,直接自己生成的方式.

操作bytecode的话就相对简单很多.
对于abstract的,直接stub就行.

而default method跳过便是.
因为本意就是要default.

既然动用到了生成字节码的方式的话,那么就还有另外一个思路.
就是stub的方式.

可以是走invoke dynamic.

这里有一个好处是bind method的时候,从API层面来说会简洁很多.
因为直接findVirtual就可以了.
而且不用为default method做特例处理.
因为default method也是可以直接bind到的.

唯一的问题是invoke dynamic的bootstrap method是没有instance上下文的.
也就是说没有this之类的概念.

理由要理解起来也很简单.

因为method handler更像是一个语言层面的code reference.
invoke dynamic做的是late binding就类似于把相关的代码实现剪切过来.

也就是类似运行时的instruction的copy & paste.

只是代码块的复制的话自然也就没什么this的概念.
因为从calling convention来说,method receiver是第一个push到栈上的参数.
是属于parameter的范畴.

并不在实际的代码逻辑内.

所以在bootstrap method里是找不到这些东西的.

一个折中的办法是通过static field去做dereference.

因为static field的访问是没有什么receiver的概念的.
也就是在bootstrap method里是有办法访问到的.

唯一要考虑的方式就是如何寻址的问题.

因为如果这个generated class是共享的,那么就需要在bootstrap method里找到一个唯一确定的"this"的方式.

比如,如果这个this的寻址是通过一个static map/set来实现的.
就需要保证任何时候这个map/set里只有一个唯一确定的元素.

也就是需要在外部this的注册以及bootstrap的调用的时候考虑锁相关的问题.

还有就是这个map/set里元素的引用处理问题.
因为如果不考虑的话,GC至少会有一个strong reference在这里.

所以这个可能是个比较复杂且不容易对的方案.

另外一个方式是generated class是实际上的singleton.
这样的话static field就是实际上的instance field.

既能够在bootstrap method里resolve.
也能把reference规约到instance本身的生命周期里去.

唯一的问题就是对于这类instance如果有比较多的需求的话.
对应的就会产生很多基本雷同的class.

所以invoke dynamic这系就有一个很微妙的设计上的冲突,或者说问题.

因为它基于的method handler/callsite的概念是相对于面向纯粹指令性的.
并没有太多的语言语法层面的约束定义.

用一个可能不太确切的词形容就是纯functional的,并不是OOP的.

当时要让它在语言或者说runtime层面能够跑起来的话,有必须是依赖classloader去define生效的.

当然,不是说method handler不能直接invoke.
而是method handler的构造离不开class.

就像很诡异的.
method handler对应的原则上来说是一段执行代码.
没有this,没有method receiver,只是纯粹的function.

但是你在语言侧面你又没办法把一段哪怕是static的code block或者method直接转换成method handler.
而还是需要通过lookup的方式去获取.

而lookup本身又非常地具有局限性.

一个比较实际的例子就是anonymous class.

因为anonymous class实际上是final类protected的access.
所以并不是能够随时随地自由地通过lookup转换成method handler.

就像自身的lambda机制.
实际上是通过在当场对每一lambda生成对应的相互独立的invoke dynamic bootstrap handler做到的.
而这,也恰恰就是为什么lambda没有"this"的原因.
因为从语法层面上来说,lambda跟形式类似的anonymous class实际上是完全不同的两个东西.

而且另外一点就是,method handler貌似是没有什么异常概念的.
这个也好理解,因为是code reference.

但是lambda却在语法层面保留了exception.

于是这里就有一个相对分裂的地方.
一方面因为实现的原因,没有this概念.本质上是完全不同的东西,只是具有类型使用形态.
另一方面为了保持折中形态的类似性,引入了从实现层面上来说完全没有意义的exception声明的语法一致性约束.

仿佛就是一种应该保留的没有保留,而不应该保留的偏偏保留了下来的感觉.

所以有时候感觉这是一个很别扭的实现.

一个试图表征纯粹指令集合的东西,却摆脱不了class的约束.
一个本来就是把method receiver当作参数传递的实现,却在callsite里抹掉了痕迹.
一个明明为了实现简明抹去了exception的method handler,却在lambda的语法层面做了保留.

在加上lookup本身的各种限制.
感觉鸡肋了很多.

或者说,给人的感觉是一个比较糟糕的补丁方式.

2018-08-04

物美价廉与流量为王

考虑物美价廉这个词.

在理想情况下,这个反映的应该是一个均衡点.
也就是边际为零的情况.

那么这里有两种情况.
一种是价格price P的margin为零.
另一种则是数量unit U的margin为零.

当然,确切地说是两种margin处于动态零的情况.
但至少说构成因素里存在着这两种情况.

考虑P为零但情况.
也就是价格的提高无法在造成额外的收益增长.

定义收入Revenue R=P*U - Cost.
即总体销售去掉支出成本的部分.

而cost可以拆解为per unit的成本.
所以有
Revenue=(Price-Cost)*Unit.

考虑供需曲线.
销量即使需求供给Supply满足需求Demand的部分

在S D 即U=min(S,D)

即有
Revenue=(Price-Cost)*min(Supply,Demand).

考虑供应曲线Supply.
某种程度上来说跟Revenue是有反身性的.

即随着R的增加,Supply是呈增长趋势.

也就是说,它可能或使得min(S,D)产生一个flip,从而使得R产生一个jump point/非连续变化点.

可能也不一定是非连续的.

因为如果如果min的bias方变了的的话,也即S和D的倾向性有所交换的话.
那也是发生在S=D的临界点.

所以在P-C固定的情况下,它更可能想是一个对称曲线.

考虑更复杂一点的情况.
一般来说,Supply的增长一般会伴随着Cost的变化.

一种情况是规模效应,使得cost减少.
一种是增长并不不是scale out的,规模的扩大会带来成本的相应上升.

在前一种情况对应的是对称曲线右侧的相应区间拉长.
因为P-C的价衰减地更慢,所以相应地,在给定R相等的情况下,min的衰减要到更大的区间.

同理,后一种情况则会缩减右侧区间的跨度.

这里的一个假设是P-C是一个常量.

那么,考虑非常量的情况.
即一般的P非固定值的情况.

对于任意一个P取值确定的情况下,R曲线的形态和变化特征都是前述的情况.
而P不同所造成的影响是S和D的平衡点的变化的不同.

也即是对称曲线的中心点的区别.

P越高则对应的tipping point的取值会越靠左.
因为价格上涨意味着需求的减少,也就是供需曲线的左移.

那么现在考虑物美价廉这个词.

不考虑是否真的价廉,而是作为一个fix price.
那么一个rational的解释就是它的selling unit还处在堆成曲线的左侧.
也就是说供应还未过剩.

所以,在不触动P margin的情况下,U margin还有增长的空间.

而在P margin为零的情况下,再通过价格下调驱动曲线右移的话.
也就是压榨U margin的阶段.

也就是说,这里的模式是规模化,然后才是价格战.

如果是反过来.
即先压榨U margin呢?

U margin对应的是对称曲线的右侧外延属性.
也就是尽可能地让tipping point右移.
也即供需曲线的右移.

曲线右移对应的是Unit取值的右倾.
意味着供需平衡点是一个较大的值.

imply的就是需求的理性最大化.

也就是说,在这种情况下的策略是,一开始就是覆盖所有可能潜在的用户.
在这个规模/Unit margin归零的情况下,在通过提高P margin进一步提高Revenue.

这就是所谓的流量模式.

先覆盖尽可能广的人群,然后在此基础上提升价格.

实际上这里隐含的另一个中发展策略就是.
但coverage达到100%或者effective monopoly的时候.
消费者或者说用户是丧失了议价权的.

也就是为什么,一般来说互联网免费/流量模式最后指向的都是一两家公司的原因.
因为在纯市场的lockin状态下,基本上就是一个爱用不用的垄断地位.

而且相比物美价廉状态的,先价格天花板,再红海拼杀的情况.
流量模式有一种天然的一劳永逸状况.

因为红海情况的一个更大可能性的后果是被淘汰和利润的一路下滑.
而流量模式一旦建立起来,基本就是印钞机了.

那么流量模式就是完美的了么?

也不尽然.

它的两个要素.
一个是供给独占.
一个是需求锚定.

实际上来说,供给独占最后依赖的还是需求的锚定.

因为只有不可替代性才使得100% domination有意义.

在存在可选性的前提下,流量模式也是不一定成立的.

这么一想的话,欧盟在这方面确实有着很了不起的远见.





2018-07-28

演员

一个比较经典或者说常见的社区发展模型.
那就是通常来说,一个社区早期的起步主要是由一些核心成员的贡献.

毕竟对于一个兴趣垂直领域来说,尤其是小众题材的,能聚集到一起并形成一定热度的,都需要有一定的内容产出和支撑.
有讨论和观点的碰撞才有话题性热度延续.

而逐渐的,活跃度会吸引一些次级的以及新鲜的贡献者加入.
从而不如一个相对 大范围的或者规模化的传播形式.

随着大众化普及带来的就是一种微型社会的结构缩影.

这时候通常会有troll的增多以及早期核心贡献人员的流失为某种程度的标志.
一般地,就社区本身的意义来说,这就意味着开始衰退了.

尽管从 其他更广义的角度来说,可能是更成功和大众化的.
但就初始的兴趣社区概念来说,是失败了的.

这里的核心冲突在于专业程度的降低.

早期文化繁荣的原因在于一定程度的专业化.
毕竟在一片内容荒野上,能够共同生存下来的,都是具有类似思维方式和专业素养的人.

不然的话,没有高质量的内容产出是很难维系和 培养一个有活力的社区的.

专业化的降低则是大规模量产之后带来的一种必然折中.

因为从传播角度来说,在人群基数一定的情况下,即使参与率低也能在绝对数量上形成一定的优势.

简单地说就是类似种群数量优势.
生存下来的未必是单体生存能力强的.

这里带来的问题就是专业度降低带来的议事能力的偏差.
以及由此带来的可能影响范围更广的政治正确压迫.

专业度降低的一个结构就是所带来的看问题的角度 和立场的缺乏多样性.
以及非专业性带来的情绪化影响.

非专业性带来的后果就是道德审判多于实际的解决问题的思路启发和反思.

比如疫苗事件.
很容易地能够指制度问责.
然后一个直接的诉求就是指向习惯负责人和相关厂商渠道.

在没有得到这个期望的道德结果之前就拒绝讨论问题的根源造成.
从而使得即使在得到既望的结果之后,也不会有什么进一步的补救预防措施.

因为问题的根源可能在于每一片雪花的原罪.
或者说选择.

也就是说,这个道德审判的最终指向可能是每个发起指责的人自身.

而把问题约束在一个离自己远的地方,则更具有一种政治正确性.

政治正确的一个问题在于,它是一种单向的绝对权威约束.
从moral的层面你很难去或者说根本不能够提出质疑.

因为质疑本身意味着政治正确的对立面.
也就是政治不正确.

它的一个结果就是所谓的回响.

一个论调或者说观点在一个封闭环境下的反复增强.

比如国内的这个所谓me too话题.

一旦出现一点关于性骚扰原罪话题的所谓理中反应,就会被遭受一大片的政治正确指责.

因为可能大多数人希望讨论的并不是性骚扰的定义和界限以及其他一些具体问题.
而只是为了强化性骚扰是 原罪的道德审判欲望.

于是在这个基础上衍生出的,metoo是种女权运动,是对男权结构的反抗和觉醒之类的分化方向也不存在任何疑问.

这个立足点的出现恰恰反映着问题本身已经偏离了一个 适当讨论 的范畴.
因为它被转化偷换成了性别差异带来的权力结构的不对等问题.
而随着这个问题的深化和延伸,前缀的性别差异约束也可能被抹掉.
成为纯粹的权力结构的不平等问题等其他更泛化的问题的讨论.

在这种情况下,就变成了一个对于更宽泛问题的纯道德审判的狂欢现象.
或者简单称为仇富仇贵的纯粹社会情绪.

这个是没有什么实际意义的.

metoo本身应该是一种实际事实的陈述.
它可以有指向型和情绪化.
但核心应该是更类似于非暴力不合作的案例陈列.

它提供的应该是一种性骚扰 的模式和形态多样性的反映.
而不应该是一种纯粹的针对性别或者额外形态的针对.

因为一旦 脱离了具体的定义,问题观点的讨论深化就很容易不在一个频道上.

比如,性骚扰的主题和客体并不一定是既定的男女,也可能是同性或者其他情况.
对于何为性骚扰的行为的确定也可能因人而异.

尤其第二点.
就类似于所谓的邮件礼仪和公文形式.

一定程度上来说,用语规则也是为了避免一些 歧义和文化问题所提供的一种折中具体表达.

并不是说就一定不能用某种表达方式素材或者表情包什么的.
只是说在 存在不确定的文化和接受程度不对等的情况.

所以同样地,在进行道德规约的时候,一旦问题离开的界限的定义,就很容易互相驳斥.

这也就是为什么me too讲究的是一种陈述.
而不是一种更激烈和攻击性的形态.

归根到底来说,道德审判能达到的最后的结果也不外乎是道德门槛的变化.
而也仅仅是道德门槛的变化.

所谓的道德约束,对于一部分来说,是没有门槛高低点区别的.

当然,也不能说道德约束没有任何作用.

在一个正常的社会,道德压迫是对于纯法制硬性条文更为弹性的一种 socially optimal策略.
比如疫苗问题的生产流通过程,哪怕一个环节都可以say no.
比如一个性骚扰者可以被如同带上犯罪记录一样被拒绝录用.

但对于不正常的社会.
say no的结果可能是明天不用来上班, 还不了房贷车贷奶粉钱.
开掉一个存在作风问题的人可能给公司减少若干的客户资源和收益.

这是一种很戏剧化的事情.

它背后的核心逻辑在于,道德审判并不具有实际的或者说对等的利益代偿关系.
或者说道德成本还不足以到有实际影响力的层面.

这里的关键问题在于,博弈的objective function考虑的是 loss function.
而不是reward propagate.

对于个体来说,考虑的不是等下绿灯,准时赴约,少发语音,不爽就辞带来的社会效应.
而更看重少等几分钟,自己不急,个人方便,习惯稳定等单体收益.

一个精致的利己主义社会.





2018-07-21

民主集中制原则

考虑一个场景.

一个节点initiator,通过yarn提交一个appmaster.
然后appmaster去启动其他另外的cluster,比如prestor的coordinator和worker.

那么这时候就有这么一个从属关系.
initiator<-appmaster<-coordinator/worker.

在最初的方案的时候,appmater是以unmanaged的方式提交的.
也就是实际上是
initoator(appmaster)<-coordinator/worker的形式.

这个结构主要有两个问题.
一个是实现上,局限了只能有一个presto cluster.
虽然这点也不是架构决定的,可以重新实现.

主要是第二点的.
在initiator挂掉之后,虽然presto cluster可以继续存在.
但是没有一个比较好的方式把presto cluster的信息找回来.

因为即使在yarn cluster层面得不到实际container的各个service端口.
自然也就没办法做进一步的事情.

而managed appmaster的结构在于,至少还有appmaster这个可寻址的入口可以找到presto cluster的信息.
因为存在一个appmaster的register信息在yarn cluster层面.

所以,当initiator挂掉重启之后是有办法join回去的.
而appmaster本身在yarn上面存在一个自动拉起的机制,所以问题也不大.
至于coordinator和worker的拉起则可以交由appmaster去维护.

或者给initiator.
虽然不太和逻辑就是了.

所以问题在于怎么实际地让各个部分join回去.

这里里面的airlift framework有几个比较有意思的设计点或者说概念.

一个是discovery.
一个是inventor.
还有一个是announcer.

discovery就是所谓的微服务架构当中常见的name service了.
announcer对应的就是这个service的register/announcer了.

而inventory是个比较有趣的实现.
有时候跟discovery是interchangeable的.
但也并不完全是一回事.

区别主要在bootstrap的过程.

逻辑上来说,discovery的bootstrap uri是根据inventory拿到的.
而inventory的获得,一个途径是通过discovery的uri对应的service获得的.

所以这里有一个循环依赖的问题.

不过从实现上来说,inventory是dominated的.
所以如果它没设置,discovery还是可以自己起来的.
然后通过其他一些手段让两者一致.

还有一个比较重要的机制是airlift的discovery的replicate.
它会定义的将自身的nameservice同步到这个nameservice里的其他discovery中去.

也就是逻辑上来说,所以的discovery service都是eventually consistent的.

因此,利用这一点的话,可以让initiator/appmaster/coordinator这些discovery host共同export一个服务.
并互相announce这个服务.
这样的话,任何一个挂掉都可以从其他两个那里获得需要的service列表.

而且这里有个比较关键的点就是.
除了coordinator的地址是随机的之外,initiator和appmaster都是可确定寻址的.

但是这个服务不能是discovery服务.

因为如果是的话,presto cluster的信息也会出现在initiator上.
这样带来的问题就是这样事实上做不到多个presto集群.
毕竟实际上都是announce到同一个discovery/nameservice里.

事实上,这里存在一个类似union/联邦的制度.
各个discovery节点实际上是类似于一个联邦州的概念.
组成一个united states.
下属的各个presto cluster或者其他whatever cluster则是每个government下的实际组织架构.

实际上就是一种职责的分层涉及概念.

一些相同的职责的state作为一个class.

或者说,每一个具体的异构的function的government可以通一个high level的class label(HLCL)联系起来.

这个HLCL实际上是一个restricted/limited的responsibility/power representation.
它是一种有限职责的角色属性.
履行的是一种相对固定和松散的职责.

更多的是一种协调和平衡边界的属性/作用.

因为如果没有这个boundary在的话,下面的每个具体的functional agency都需要自己去独立的识别其他cluster下的东西.

也就是是leveled tree和fully connected graph的区别.

所以某种程度上来说,民主集中制也不算是一个特别矛盾的概念.







2018-06-24

从降准谈起

考虑降准.

不能降息的原因是去杠杆.
所以只能降准.

降准释放的是流动性.

那么这个流动性的目的是什么呢?

考虑之前货币基金的快赎限额.

货基的一般标的是国债央票和一些短期债券.
赎回限额就意味着一定时期内资金总量的稳定性.

也就是投资标的成分的构成稳定性.

如果对标的是国债央票之类的货币性工具的话,那实际上只是政策导向就能基本解决的问题.
因为基本上就是利率的变动导致的变化.
而在目前利率不能往下的情况下,原则上来说是不会又什么变化需要对应的.

那么对应的应该就是这里风险级别高一些的债券.

如果发生一些异常的赎回活动,那么对应的就是这些债券的市场行为.
从基金的角度说就是需要卖出.
而对应的就是债务方的清偿压力.

因此,如果把限额的目的定义为债券稳定性的话.
换句话说就是为债券市场提供流动性支持.

而降准提供的流动性可能也就是另外一种方式而已.

反过来说,就是债券市场这块可能又一些比较不稳定或者隐性的风险性在里面.

央行发文的一个关键词是债转股.

字面意就是债券换股权.

对债务人来说,就相当于变相的债务清偿机制.
而债权人角度也只是一个财务记账名义的变更.

这似乎是一个很完美的解决方案.

不需要很复杂的系统性设计.
也不用担负触发系统性风险的问题.

问题是市场的反应.

如果市场不认可的话,那么股权价值就会降低.
对应的就是实际上的财务变更前的债务default.

所以某种程度上来说,这是在以国家信用为基础准备的对不良债务做的bailout准备.

另外一点就是提到的对小微企业的贷款融资.

这里可能存在的一个操作空间就是对于一些起来来说,不仅又bailout支持,可能还有定向的宽松支持.

这可能不是一个很好的设计.
或者说至少在目前来说,即使是定向宽松也不能保证不会对去杠杆过程产生什么负面影响.

除非是加息,提高利率.

但是单提高利率的话,也只是表面上得提升了交易成本.
而实际上,由于不动产的低流动性特征和目前的政策,维持价格水平趋势反而是一个相对容易的事情.

因为成交量放在那.

高利率就意味着高融资成本.
这个可能可以以某种政策定向缓解.

加息的另一个结果可能就是现金流动性的降低.
因为对应的是基本收益率的提高.

系统性紧缩带来的是消费的降低.
对应的是整体乘数效应的减少.
经济增长的下滑,甚至衰退.

所以,加息可能并不是一个应该马上使用的方法.

再考虑税收.

定向的减税/抵扣,尤其是针对消费性的方面的话.
也就是某种程度上的消费路径设计.

那么这里就有一个比较有趣的问题了.

给定一个消费budget,以及消费graph.
那么就存在一个算法去使得某个reward函数最大化.

而税收就是其中的regular/activate function.

所以至少从路径上来说,还处在一个相对可控的环节.

还可以通过一种市场化的计划经济方式去做一些尝试.

如果它不work呢?

那就意味着消费路径并没有按照设想中的方式展开传播.

这样的话,大概只能从semi-supervise的市场经济走向supervise的计划经济了.

人为的重构整个消费流通graph.

而这个的经验,对于一线城市来说,并不陌生.

尽管不让人舒服.
but, it works.





2018-06-23

classloader的一些问题

前段时间写个东西遇到个情况.

大致是java中,class A extends B的话.
原则上来说A isinstanceosf B应该是返回true的.
类似的isassinablefrom应该也是返回true的.

而实际上的结果却是不预期.

这是个比较有趣的设计.

因为在jvm的实现当中,class的namespace其实是以classloader和class name共同定义的.
类似与一个classloader::class_name的定义.

实现上是klass的lookup是在symboltable的dictionary中通过hash(class_name) & classloader_data定位的.

所以这里实际上是隐式的classloader的naming isolation问题.

从隔离角度来说,这么做也不算难理解.

而且在这种情况下来说,是可以做一些比较tricky的保护机制的.
比如一些受限的class的访问.

在classloader的隔离机制下,即使能够想办法初始化出一些forbidden的类.
然后在调用的时候还是可以通过类型检查拒绝掉一部分的.

但是这样就带来一个问题.

从语义上来说,A extends B是不带有这种隔离信息暗示的.
当A B由不同的classloader定义,或者是不同的classloader环境的时候,类型系统就比较混乱了.

因为字面上的qualified name并没有完全reveal出namespace的区别.

这样的话,在写程序的时候就有比较大的心智负担.
尤其当涉及不同的classloader的instane之间做交互的时候.

而这里又有另外一个诡异的情况.

考虑来自不同classloader的A和B,且名义上A extends B.

那么,如果做cast肯定是有问题的.

但是如果做method invoke/function call的时候,又可能是没问题的.
因为在运行时或者说bytecode层面是没有type check的.

而如果这两个不同classloader的关于B的bytecode是兼容的,或者说涉及到的signature是相同的话,是没问题的.
因为算出来的dispatch table/offset是一致的.

但是如果是不兼容的,自然就又会导致运行时错误.

而顺着这个思路,对于一些restrict的环境,如果能够构造跟protected的class兼容的dispatch table的话.
理论上来说就是绕过这些限制.

比如一些加密场景.
即使密钥是安全可靠的话,也可能可以通过替换的方式绕过校验.

尤其对于校验接口是传入non primitive类型的情况.
因为这种情况下,instance的method invoke也不算是reliable的.

反过来说,如果能够完全控制某些上下游的所有涉及instance的classloader情况的话.
那至少从语法/语义层面上不存在明显的漏洞.

但这是一个相对难覆盖的问题.

因为如果能够约束class以及其所属的classloader的情况的话,也就意味这runtime是一种可追踪的情况.
如若不是的话,则无法保证某个时间点不回存在classloader泄露/逃逸的情况.
所以,在这种情况下,其实本身就已经是又一个sandbox机制去保证audit了.

有没有classloader其实关系不大.

那么为什么要设计这么一种问题比较明显的机制呢?

一种可能就是为了保证builtin class的integrity.
毕竟有个bootstrap/system classloader.

但不提供这个机制的话,也并不是不能保证完整性.

因为问题的关键不是谁load,而是load的是什么.

核心是是什么怎么定义.

类似go的method receiver和protocol的定义就比较好.

实际上就是脱离了类型这种比较古板的定义.
而是通过具有什么行为来定义区别同类.

实际上,抛开类型检查的语法和一些编译期的检查之外,运行时也基本上就是这么做的.

如果去掉这种类型系统的话,代价就是类似动态类型语言,缺少编译期的约束提醒.
以及可能对java生态更重要的类型系统的可追溯性.

这个是很多IDE和工具链所依赖的.

而如果去掉classloader的绑定的话,又为一些malicious的应用提供了一些方便.

或者从纯粹语言的角度来说,这就意味着名义上同一类型的instance,可能有着不同的行为.

而如果从contract的层面去约束class定义的话,那就意味着对于同名的class具有不同行为的场景予以拒绝.

所以,允许这种怪异行为的原因是为了使这种场景合理化么?

大概是类似于jsp这种需要code hot reload的场景.

于是一个可能比较安全的做法就是尽量去做类型的cast和从属关系判断.

非要这么做的话,可能就是需要自己做字面的递归回溯比较了.

这样至少是遵从字面语意的.

2018-05-06

修正主义

下午看 青年马克思.

开篇一段阐述大致是,折断树枝算偷窃,但捡落在地上的枯枝算自力更生.
而场主对后者的惩罚驱逐算一种犯罪.

这 里的一个点用现在的观点来说就是否认了枯枝算是一种衍生品的形式.

也基于此,在后面谈到 工人和资本家的关系的时候,会认为资本家并没有付出对应的 劳动来获取价值.
因为实际的价值是由人类的直接劳动付出所产生的.
生产工具和资本本身并不产生价值.

而且电影中还有一段比较吊诡的剧情是恩格斯对于马克思学习基本经济学概念的建议.
也就是说,在此之前,对于基本的资本 运作方式和规则是有所不知的.

从剧情安排上也可以看出,其对于劳动价值这个基本观点也只基于前人的一些经验总结重新提炼出来的.

在这个基础上,他把价值定义为实际的劳动付出作为一种交易衡量媒介式的存在.
从而 推论说,劳工矛盾或者说工人生活困窘的原因在于资本家对于劳动价值的不对等的购买,或者说剥削.
基于此,指出这种不公平的根源在于生产资料的所有权不在劳动者,进而提出共产主义这个公有制的设想.
目的是通过生产资料或者说资本的实际抹除所有权之后,使得不对等购买的基础不复存在.

这里有几点.

第一个是所谓价值的定义.
这从广义角度来说,并没有什么大问题.

因为推广量化方式也差不多是这个思路.
要把交易因素能够数值化体现才有可能进行数学化的逻辑推演.

至于以什么方式描述,则是一个纯粹的文字表述问题 .

第二个是对劳工矛盾的因果关系的论断.
把 原因指向由于交易不对等关系,或者说剥削造成的冲突.
这个是没错的.

但是把剥削存在的基础指向生产资料的所有制连带造成的分配制度就有些牵强的感觉.

固然形式上来说,这种不对等是一种分配的不合理不公平的体现.
但是利益的分配方式并不直接跟利益的产生方式有所关联.

也就是说,跟生产资料的所属并不是一个必要条件.
而只是一个充分条件.

一个简单的评定就是.
把工人阶级和资产阶级这种预设立场抹除掉.
还原为单纯的一群人和另一群人的关系.

这样的话,生产资料所属权造成的分配差异不过是一群人跟另一群人的分配差异.
是所有者跟非所有者之间的差异.

而在这种情况下,隐含的就是当人群互相转化,或者说把当前的所有者转换为非所有者的时候,差异依然会存在.
只不过的方向恰好相反而已.

如果以此来定义阶级的话.
也就意味着实际上是以一种差异既定的结果的方式,来反过来定义阶级所属.

即是阶级的定义是差异存在的结果.
而不是说,阶级的存在是导致 差异存在的原因.

这是一种倒果为因的预设立场的推论.

那么,这种交易不对等的存在的实际条件和原因应该是什么呢?

一个交易能够成立也就意味着从数学上来说,两者的代价是相等的.
如果不相等,也就意味着有没有考虑到的代价因素未被包含进去.

资本家的超额利润,或者说工人的低回报的要素在于工人并没有能够驱动资本家提供合理报酬的代价成本.
或者说工人在这场交易里面缺少必要的议价权的附着物.

而对应的,工厂主的生产结构当中,并不很关心单个工人的价格提议.
因为可替换的成本低.

从这个角度来说,马克思的生产资料所有制造成分配制度差异的论述好像也并没有什么大问题.
因为如果把生产资料所有权定义为这种议价能力的话.
那么对应的第三点,通过抹除生产资料私有制实现的共产主义也就概念上等价于无差别化议价能力.

也就自然地,在交易等式中抹去了各种不平衡的潜在因素.
而以存粹的双方交易意愿代价为衡量.

所以,某种程度上说,好像也没什么错.

尤其考虑工人运动和工会联盟.

本质上来说,这两者提供的是一种集体代偿机制.

单个人的议价提议带来的对抗成本由整个运动工会集体去做填补支持.
从而从单个个人的角度支撑了做出持续对抗的交易成本.

也即是说即使失去工作,也能通过工会和运动得到工资补偿补助.
增加了决策当中对于对抗的 选择几率.

基于此,从多数人到群体的决策也自然偏向于做这种议价对抗.
相对地,工厂主所面对的群体议价压力带来的议价权的削弱就加大了利益分配的公平性倾向.

而重新套用阶级的概念来说的话.
就是阶级对抗 促成了利益分配的公平化.

于是,从这个角度看,阶级斗争的论调好像也没什么问题.
因为本质上来说,阶级定义的就是利益不均等的双方的群体标示,或者说代称属性.
是一种利益分配方式的差异群体表现.

而利益博弈的均衡方式,也就是议价权的此消彼长的过程就是所谓的阶级斗争的本质.
一种在交易中减少自身代偿成本,或者说增加对方代偿成本的博弈过程.

唯一可能有问题的就在于把这种议价博弈存在的原因归结于生产资料所有制.

因为生产资料所有制不过是一种形式上的阶级差异.
它并不导致阶级 产生.

而是因为有利益差异才存在/产生的阶级.

某种程度上来说,所有制这种提法更像是一种相关性拟合中带来的某种噪声特征.
本身可能并不主导因果关系.






2018-04-01

公平与效率

看到ethereum上的一个issue.
关于给ETH加发行上限的一个case.

基本的proposal思路就是事实上的中心计算节点的存在已经让proof of work的均衡机制变得没什么意义.
因为reward基本上就是这些节点了.

经济学意义上的阶级固化.

这实际上是BTC的从一开始就存在的通缩形态决定了的.
即使没有超级节点的存在,就交易的对等性而言,也很难保证不会有流动性汇聚情况出现.

毕竟,实际上不可能每个交易都是对等的.

所以,通缩对于交易行的cryptocurrency来说,是不太合适的.

那么考虑下通胀形态呢?
或者说一种非一般等价物形态呢?

比如mining的reward是一个定向/特定的交易双方协商出来的任意数值.

具体点就是,给定A获得签名权的同时,产生一个与B协商的交易所需数额的coin,并同时transfer给B.

这样的话,实际上拉说,reward就是去了量的概念.
只是存粹的交易双方的认可的准物物交换流程.

放大到整个市场来说,coin的存在性可有可无.

这个实际上跟long term的cryptocurrency发展某种程度上是等价的.
因为mining reward接近于零.

只不过从原设计上来说,mining reward归零之后,transaction fee会成为一个决定交易覆盖面的因素.

理论上来说,如果网络内节点的算力是均衡的,那么获得主链写入权的分布也是均匀的.
这样的话,transaction fee可以作为一种长期的均匀分布的手段,可能使得节点间的coin数量趋向于相等.
从而事实上的让coin的量也无意义化.

那么,在算力均衡的前提下,这种数量均衡调节机制存在不存在呢?

假设存在一个LTA(lower than average)的节点存在.
那么只要停止spent,从理论上来说,概率性得就会通过主链写入权得到transaction fee从而累计突破LTA.

所以不考虑时间和节点数量的话,理论上应该是成立的.
而事实上影响的条件也就是强度/复杂度的一个参数考虑问题.

虽然理论上来说,算力均衡不均衡,理想情况下都能趋向于平衡.
但在不均衡的情况下,这个趋向时间应该是要拉长很多的.

因为算力差异,单位时间内的期望fee收入是存在差异的.
类似于追及问题.

所以如果要保证写入nomination的民主公平性,那么就必须要保证算力的均衡.
如果不均衡的话,就相当于一种阶级隔离机制.
或者政治学意义上的代议制了.

而算力均衡这种东西,是基本上不太可能实现的.
一个是improvement的动机,会促使个体竞争算力增强.
二是算力的增强并不会同步即时地在网络中广播同步,即所谓发展的不平衡关系.

所以proof of work形式上来说,是一种社会达尔文主义.
它强调的公平的可能性,但并没有一种机制去保证这种公平是能够实现的.

就像个体差异导致的社会不平等.

同理,proof of stake也是.
因为它不过是proof of work在算力不均衡情况下发展的一种必然走向.

于是这里就又一个很吊诡的地方.

PoW本身的提出是为了解决nomination的bias.
但PoW本身并不是公平的.

或者说,至少目前cryptocurrency的实现方式来说,是天生具有偏向性的.

那么存不存在没有偏向性的选举方式呢?

比如,给定一个固定群组,如何随机均等地选出一个节点,并保证这个节点是common agreement/consensus/unmodifiable/verifiable的.

这个也不是没有解决方案.
只不过代价很高.
并且代价不高的通常也是具有层级结构的.

所以,某种程度上来说,保证公平/去中心化,并不是一个有效率的选择.
或者说,不是一个能有效率的选择.

而如果去掉nomination的公平性要求的话,cryptocurrency其实就是一个有点画蛇添足的东西.
因为它的核心构建想要解决的就是这种公平性保障.

尽管无论从理论上还是实际中,都是存在设计缺陷或者说场景前提假设的.



2018-02-02

理性的相对局限存在

想谈谈两件事.

也可能是同一件.

第一是前段时间某媒体为茅侃侃那篇文章破10w庆功的事.

这个事件的舆论点在于所谓的人血馒头.
在一个死亡事件上,表现出一种不够沉重和尊重的行为.
或者说认为这种成功是建立在别人的痛苦之上的行为.

从反映上上来说,这位媒体人不该做的事情是为文章收到欢迎而感到高兴.
因为从伦理道德上来说,似乎是在庆幸别人的死才成就了自己的流行.

这是个蛮有意思的思路.

本质上来说这里其实有几件事.

第一个是某创业者的自杀这个既定事实.
第二个是媒体作者综述了材料,做了个前因后果的演绎.
第三个是文章意外或者说意料中流行.
第四个是为欢迎度自豪.

这里的每一点单独脱离上下文来说,都应该说是没有什么过错的.
毕竟都是客观事实.

存在争议或者说矛盾点在于自豪这种积极情绪通过文章流行度这个中间节点跟略显负面的死亡联系在了一起.

情绪上的微妙性如同在同一个场所同时进行着红白事.

当然,微观上来说还是有差别的.
毕竟红白事不存在这因果相关联系.

所以这里的诡异点就在于,死亡和自满被加上了因果联系.
因为从时间上来说,死亡先于自满.
且从事件的环节依赖性来说,死亡促成了自满的生成.

自满形成的一个因素是死亡这个既成事实.

如果没有死亡的话,就没有文章的存在也就没有后来的愉悦感.

那么按照同样的思路.
在事件链条,死亡->文章->受欢迎->自满->被指责当中.
追究被指责的原因或者说构成因素的话,可以是因为自满.
也可以是因为受欢迎或者写了文章.
或者死亡本身.

于是,按照这个逻辑,如果要避免被指责,则可以说不要前面任何一个事情的发生即可.

极端诡辩地说,就是死亡,或者说自杀本不存在就好.

所以,这里的一个奇异点在于因果关系的过度或者说不合理追溯.

或者说,把某种相关性解释成为了因果关系.

当然,这只是从纯逻辑层面考虑的因素.

换一个可能更普适的道德观念层面的解释可能是,就事件起始来说,是一件悲伤氛围比较重的事情.
所以在后续的相关事件当中,不应该有有因此而产生有喜悦结果的事情.

所谓的不能丧事喜办.
或者说死者为大之类的.

然而具有某种玩味性质的事,差不多同期有另外一个影响范围没那么大的事.
即一个儿子在为自身违反交规不安全逆行的父亲被公交车撞死而发声的事情.

其中有一波的舆论点也是在于死者为大.
虽然死者本身过错在先.

而另一波更主流一点的是强调过错本身,认为不该再到公共场合求关注.

这个跟前一件事的其中一个区别点在于死者本身有过错.
所以在影响人群的判定的时候,存在一个追溯相关节点的差异表现.

于是,这里大概可以推导出一个东西.
就是,在一件事情的相关因素链条上,人群会有不同的关注点.
而各个人群关注点,或者说各个因素聚焦人数的多寡很大程度决定了事情的舆论声调.

可以跟第二件交规死亡的事做比较的是之前杭州保姆纵火案的受害人家属.

在这个事情当中,在某些场合受害家属并不见得是没有表现过错的.
所不同的是,舆论并不会因为这点而对受害者的正义性存在比较明显的分歧.

因为从群体判定中来看,这些因素并不构成事主正当性否定认证.
或者说,并不想群体多数对事主的认同.

那么回到第一件事.
如果媒体人没有后来的庆功表现.
那么从事实上来说,因为文章本身应该是获得了群体多数的认同的.

毕竟,从流行度和即使后来的指责中,也基本没看到对文章质量的否认.

所以,从本质上来说,群体否定或者说攻讦的是作者个人的态度.
也就是某种程度上来说,在评判这件事的"好坏"的时候,已经剥离了文章这个连接属性.

新的隐形连接成为了死亡和个人喜怒之间的直接联系.

于是,就是纯粹的基于社会道德压力的批判了.

不管事实上有没有责任为这个个体表现对死亡的所谓严肃尊重.

所以第二件事的舆论失败点在于死亡这个焦点并没有更优先于过错这个因素.

或者换句话来说,死亡本身的关注吸引力并不比过错来得优秀.

顺着这个思路的话,如果给它加上一些容易引发同理心的诸如一些温馨励志因素的话,可能在关注度上就相对可能地会带来关注吸引力的增强.

因此,某种程度上来说,标题党算是一种舆论技术当中的佼佼者.

从理论上来回说,每一个事情的发生最后的舆论定调基本上取决于最后的多数人的关注点倾向.
而这个倾向某种程度上来说,取决于提出事件的早晚和强调幅度以及同理性.

一个观点提出的越早就越容易先入为主地被人接受.
尤其是对于还未或者刚开始接触概念的人来说.

而强调幅度一个是来源于一种潜意识的强化训练形成的某种直觉上的条件反射.
尤其如果考虑这个认同感是某种具有衰减性质的函数的话.
强调就是某种energy/motivation/momentum.

同理性则是某种penalty function.
或者说一个regulation function.
对观点的一种缺陷修正/拒绝的权重调整.

比如明显的不合常理或者有较大的矛盾冲突等.

某种意识形态上的RNN/LSTM结构.

于是,基于这个看汤兰兰事件的话.

这里一个近乎immutable的因素是幼女性侵.
而文章的一个立足点是试图攻击这点.

所以在给定这个舆论定调的前提下,维护性侵事实的regulation会特别大.
于是从结果上来说,越是试图activate重审这点的话,舆论上的regulation就会越大.
这样才能fit/维持既有的观点.

这样的话,即使说当初的报道里面不涉及个人信息的话,从舆论结果上来说还是会有问题的.

从某种程度上来说,就是基于一种政治正确的道德约束或者说审查制度.

也不能说这里有什么大问题.

只是从结果上来说,媒体会倾向于报道和选择不具有明显反面争议性的题材.

当然,这也能够在某种程度上作为一种对社会个人行为的规约约束.

很难说是好是坏.

毕竟某种程度上来说,群体决策是中立性的.
因为发生的就是既定事实.

没有发生的即使存在更强的逻辑合理性,也不代表就是能够发生.
或者说正确毫无争议的.

就像金融交易.
所谓的理性博弈也只是在给定有限已知的条件约束下才存在.

理性的相对局限存在.





聊聊卡布里尼

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