有时候会想,什么是fake news.
为什么会有fake news.
有时候又觉得,这其实是个伪命题.
因为它可能不过是一种对于失控的一种描述性称呼/代称.
在一个旧有的舆论话语体系下面,一个”大众“的预期大体是可控的.
因为渠道和媒介就那么多.
跟重要的是人的信息半径多多少少受物理界限的约束.
不过车马书信.
事情的变化是从网络社交媒体的渗透开始.
信息的流动变得迅速而形式多样内容丰富起来.
而这种传播的基础是节点的延续性.
也就是说,只有节点间相互承认,一个信息流的声明周期才能更加地长.
于是反过来说,一个存活下来的消息,多多少少是有一定的degree/传播路径/广度的.
那么在整个network bandwidth/人的digest能力还有余地的时候,可能表现出来的就是信息的高附加值属性.
也就是常常怀念的互联网初期的单纯美好.
在一个介于数量相对少而内容相对高的阶段.
随着加入节点的增加,network congestion,信道带宽的价值变得尖锐和有利可图起来.
于是就是所谓的流量经济时代.
imply的就是每一个信息byte的对应成本可计量化.
随之而来的自然是关键节点和backbone的priority处理.
关键节点有各自的maximize策略.
而给定的channel又是有既定的fanout能力的.
所以priority的结果就类似于一种rectifier.
最终就是top n的各种信息的sub shape.
考虑即使是fully connoted的graph.
由于fanout limitation的存在,那么理论上就存在一个信息流不存在一条cover所有节点的路径.
因为它可能被一些节点劣化,从而失去了被route出去的可能性.
那么,也就存在一系列这些部分劣化的路由路径所构成的一个子图.
也就是所谓的echo chamber.
所以,即便是一个完整的全连接图,在给定一个activation阈值的话.
也是可能退化成为一个个的isolated network的.
如果把这个基本网络结果高阶为一种认知抽象或者说社会共识的话.
也就是所谓的各种独立的舆论单元.
每个单独的group/unit/团体有着自己的一种自洽且可能无法在内部证伪的一套理论.
以这套规则审视系统外的变量的时候,自然而然地就难免会有一种不真实感.
毕竟into the unknown就意味着两个子图存在着交集.
也就不能称之为distinct的子图.
fake news大概就是这种局部自洽,全局冲突的一种产物.
对于社会结构的影响在于,一个单一的社会认知/共同认知的可能性的破灭.
就像一个数据中心到一定规模比如会出现分层隔离的网络拓扑.
这是信息流动的便利性带来的overload的一个必然结果和选择.
所以一个团体对于另外一个团体的行为的可预测性和可控性就相对的变得没有意义.
或者说是未定义的.
因为本质上来说,是两套不同的行为体系指导的系统.
也就是所谓的非普世的.
没有一个能够统一思想和道德标准的可能.
所以,说控制fake news和algorithm的操纵性某种程度上来说确实是一回事.
就像做一个BGP/路由/ARP广播.
所期望的不过是以一种合理合法的方式,扩建自己的子网规模.
但从长远来说,多多少少是徒劳的.
只要信息的生成速率至于网络自身的带宽承载能力有一定的优势.
那么scale out总不是那么容易的.
所以某种程度上来说,就社会制度设计层面来说.
基于crowd的consensus架构是很难维系的.
因为没有一个很好的scale out机制.
这样的话就难免不得不面向一个不是那么让人舒服的解决方案.
那就是Qos.
因为问题的本质在于过于自由和无限的信息流动性,造成的congestion和bandwidth flaw.
那么一个直接的方式就是rate limit.
和关键节点的degrade.
这可以说是一个很让人沮丧而又不得不承认的一个事实结论.
所以从这个角度看的话.
可能不作为反而是一种略带喜闻乐见姿态的态度.
作为一种长期被批判攻击的体制的忽然的优越性体现.
尤其在consensus机制在被echo chamber/fake news困扰,苦苦挣扎进一步scale out方向的时候.
你很难说最后会不会全体转向QoS.
尽管不算优雅.
but it works.
更重要,或者说可怕的是,可能没有其他方案.
而且从技术层面上来说,做zone隔离,相对来说还是一个fail safe的基本实践.
于是人类又重新建造了一个巴别塔.
2019-11-25
2019-11-16
JIT Inline的一些问题
大致这么一段逻辑
```
void test(item){
if(array_list == null){
array_list = new ArrayList<>();
}
if(!array_list.contains(item)) {
array_list.add(item);
}
}
```
这段代码在两台机器和不同用户之间会有些比较明显的性能差异.
具体是有两台机器A,B.
A为一台KVM,B是物理机器.
A宿主机器跟B是同型号CPU.
现象是一个benchmark在A上大概是5分钟不到.
而B是20-30分钟左右.
另外一个就是在B上以root和非root用户偶尔也会有些可见差别.
这个case的实际逻辑是是加载并解析一个配置,并且是单线程的.
所以整体过程应该是deterministic的.
理论上不应该有这么明显的差异的.
perf了一下.
B上面有一段是change_protection_range会相对显著地跟A有所区别.
大概翻了下对应内核版本的实现,看上去有一些huge page/large page相关的东西.
但是看系统参数和JVM配置,largepage相关的选项也并没有打开.
而且对比了下两者的环境变量和生效配置以及相应的.so也是一致的.
所以从系统层面是上来说,应该都是没差别的.
于是看了下VMThread的safepoint信息.
从日志里看是有一些bias lock的revoke情况.
但是从代码逻辑上来说并没有显著的synchronized应用.
这点就有些奇怪了.
把bias lock disable之后greys attach上去做profile.
然后发觉貌似性能是上去了.
两边都差不多是每秒20-30w左右的调用次数.
但是感觉不是很有说服力.
一个想法是bias lock带来的一点object的开销在这种频繁可能会有新对象创建的场景下被放大.
这样的话可能会跟perf的change_protection_range有联动.
因为可能会对cacheline有影响,毕竟一个是KVM一个是物理机器.
为了确定关联性,把profile去掉之后发觉性能差异有出现了.
那么为什么profile会影响到性能呢?
而且是positive的影响.
想起agent在retransform的时候,redefine class会触发deoptimize.
那么,如果是JIT的问题的话,agent deoptimize能提升性能,也就意味着触发了某个优化规则导致的.
尝试不同的compilation policy.
发现在non-tiered compilation(simple/stack walk)的情况下是ok的.
但是开启tiered compilation(simple threshold/advance threshold)之后则有大幅下降.
用perf-map-agent重新perf看了下.
发现non-tiered的情况下,hot code是array list的contains/indexOf.
而tiered的则是test和equals.
到这里其实就已经很明显了.
non-tiered只inline array list的相关调用,包括indexOf里的equals.
所以perf只看到了contains或者indexOf.
而tiered JIT了test和equals.
实际上看生产的assembly,除了做inline之外,同时还对indexOf做了loop unroll.
但是看perf的结果是test和equals同时被JIT了.
那么也就意味着test没有把equals inline进去.
看JIT生产的assembly证实了,对于整个调用链,也就是indexOf里的equals还是callq调用的.
所以应该是某个机制限制了把equals inline进去.
从而loop unroll之后反而引入了函数调用开销.
把inline日志打开可以看到test的inline有两类信息.
一个是callee is too large.
另外一个是already compiled into a big method.
这就可以解释了.
因为test本身不复杂,所以没有触发自身被caller inline进去.
于是hot code也只会inline这个调用链以下的.
而由于inline和loop unroll使得本身的code size变得比较大,在尝试进一步inline equals的时候被拒绝了.
调整这两个相关参数之后再看确实没有了equals的调用,同时性能保持了一致性.
而再回头看为什么KVM和物理机会有性能差异的时候,大概就是因为compiler thread的数量和并发程度不同.
因此在尝试inline equals的时候会出现时机和结果的不一致性.
所以想想的话,从代码风格上来说,确实compact和reusable的会相对来说比较友好一点.
像Stream这种batch process的风格来说的话,确实有可能for之类的手工展开的好.
因为一个loop unroll,一个是函数主题一般都比较小.
再就是手工展开的话,很难说不会触发像上面这种inline不完整反而受累的情况.
```
void test(item){
if(array_list == null){
array_list = new ArrayList<>();
}
if(!array_list.contains(item)) {
array_list.add(item);
}
}
```
这段代码在两台机器和不同用户之间会有些比较明显的性能差异.
具体是有两台机器A,B.
A为一台KVM,B是物理机器.
A宿主机器跟B是同型号CPU.
现象是一个benchmark在A上大概是5分钟不到.
而B是20-30分钟左右.
另外一个就是在B上以root和非root用户偶尔也会有些可见差别.
这个case的实际逻辑是是加载并解析一个配置,并且是单线程的.
所以整体过程应该是deterministic的.
理论上不应该有这么明显的差异的.
perf了一下.
B上面有一段是change_protection_range会相对显著地跟A有所区别.
大概翻了下对应内核版本的实现,看上去有一些huge page/large page相关的东西.
但是看系统参数和JVM配置,largepage相关的选项也并没有打开.
而且对比了下两者的环境变量和生效配置以及相应的.so也是一致的.
所以从系统层面是上来说,应该都是没差别的.
于是看了下VMThread的safepoint信息.
从日志里看是有一些bias lock的revoke情况.
但是从代码逻辑上来说并没有显著的synchronized应用.
这点就有些奇怪了.
把bias lock disable之后greys attach上去做profile.
然后发觉貌似性能是上去了.
两边都差不多是每秒20-30w左右的调用次数.
但是感觉不是很有说服力.
一个想法是bias lock带来的一点object的开销在这种频繁可能会有新对象创建的场景下被放大.
这样的话可能会跟perf的change_protection_range有联动.
因为可能会对cacheline有影响,毕竟一个是KVM一个是物理机器.
为了确定关联性,把profile去掉之后发觉性能差异有出现了.
那么为什么profile会影响到性能呢?
而且是positive的影响.
想起agent在retransform的时候,redefine class会触发deoptimize.
那么,如果是JIT的问题的话,agent deoptimize能提升性能,也就意味着触发了某个优化规则导致的.
尝试不同的compilation policy.
发现在non-tiered compilation(simple/stack walk)的情况下是ok的.
但是开启tiered compilation(simple threshold/advance threshold)之后则有大幅下降.
用perf-map-agent重新perf看了下.
发现non-tiered的情况下,hot code是array list的contains/indexOf.
而tiered的则是test和equals.
到这里其实就已经很明显了.
non-tiered只inline array list的相关调用,包括indexOf里的equals.
所以perf只看到了contains或者indexOf.
而tiered JIT了test和equals.
实际上看生产的assembly,除了做inline之外,同时还对indexOf做了loop unroll.
但是看perf的结果是test和equals同时被JIT了.
那么也就意味着test没有把equals inline进去.
看JIT生产的assembly证实了,对于整个调用链,也就是indexOf里的equals还是callq调用的.
所以应该是某个机制限制了把equals inline进去.
从而loop unroll之后反而引入了函数调用开销.
把inline日志打开可以看到test的inline有两类信息.
一个是callee is too large.
另外一个是already compiled into a big method.
这就可以解释了.
因为test本身不复杂,所以没有触发自身被caller inline进去.
于是hot code也只会inline这个调用链以下的.
而由于inline和loop unroll使得本身的code size变得比较大,在尝试进一步inline equals的时候被拒绝了.
调整这两个相关参数之后再看确实没有了equals的调用,同时性能保持了一致性.
而再回头看为什么KVM和物理机会有性能差异的时候,大概就是因为compiler thread的数量和并发程度不同.
因此在尝试inline equals的时候会出现时机和结果的不一致性.
所以想想的话,从代码风格上来说,确实compact和reusable的会相对来说比较友好一点.
像Stream这种batch process的风格来说的话,确实有可能for之类的手工展开的好.
因为一个loop unroll,一个是函数主题一般都比较小.
再就是手工展开的话,很难说不会触发像上面这种inline不完整反而受累的情况.
2019-11-10
关于Final的一些问题
考虑一些字节码的生成问题.
比如
```
long start = System.nanoTime();
long end = System.nanoTime();
Profiler.INSTANCE.collect(end-start);
```
按照SSA的风格话,大概会是
```
invokestatic
lstore 1
invokestatic
lstore 2
lload 2
lload 1
lsub
lstore n
getstatic
lloadn
invokestatic
```
这样的形式.
如果是手工生成的话大概会是
```
getstatic
invokestatic
lstore 1
invokestatic
lload 1
lsub
invokestatic
```
区别在于压栈的次数.
因为调整了Profiler.INSTANCE入栈顺序.
所以基本上按照最后collect参数规格维护stack的.
如果要自动地做这种重排的话呢?
本质上来说,就是针对一个函数调用入参约定的一个dependency resolution/backtrace.
就一个control flow的graph来说,可能做的还是一些prune/merge的事情.
不过如果再仔细考虑下上面的例子的话.
其实两个并不是等价的.
因为这里隐含的一个假定是INSTANCE是immutable的.
所以push的时机不影响最终的结果.
但如果INSTANCE是mutable的话,那么这种重排其实是有问题的.
因为后面的调用/指令可能会影响INSTANCE的值.
那么有没有immutable的情况呢.
理论上来说,应该是没有的.
因为如果用反射的话,对于final的field也是可以改变值的.
而且这里比较有趣的一个地方就是final本身的实现.
大概瞄了眼c2的相关代码.
主要是getfield和putfield的.
里面提到确实是会对static final和@Stable的field转成constant node.
这个容易理解.
但是putfield并没有针对final做什么过多特殊处理.
那么如果是严格按照bytecode执行的话,问题不大.
因为不管是get/set/static/field,还是反射的读写.
针对的都是同一个东西.
但是如果是JIT过的,那么在生成native code的时候依据的是转换后的constant node.
这样的话,就可能并不是很符合预期.
一个简单的例子就是一个boolean的if condition.
因为field access变成了一个constant,那么就有可能触发一个优化规则把整个if优化掉.
而当用反射把这个值置回true的话,貌似并不会触发deoptimize.
这样的话,即使从代码和逻辑层面上来说if分支应该被执行,但实际可能是并不会被执行到.
那么如果想办法让put指令里触发deoptimize的话呢?
比如动一下FieldAccessor的相关路径和生成的native code风格?
理论上来说应该是代价比较大的.
一个是如果在native code里对field access引入一个stub的话.
则在这个field被修改的时候需要知道哪些native code部分是需要做改动的.
这个如果不是stub的方式的话,基本上是不太现实的.
因为必须维护一个列表.
这样的话复杂度就不低了.
而如果用stub function的话,就没什么太大意义了.
本来就是一个最多二次寻址的问题,变成反而需要用一个更重的function call替代.
于是从这个角度看的话,set final某种程度上来说算是一种挺危险的行为.
因为这个导致的不确定行为可能还跟环境有关.
在触发JIT的情况下和在interpreter的场景还不太一样.
比如
```
long start = System.nanoTime();
long end = System.nanoTime();
Profiler.INSTANCE.collect(end-start);
```
按照SSA的风格话,大概会是
```
invokestatic
lstore 1
invokestatic
lstore 2
lload 2
lload 1
lsub
lstore n
getstatic
lloadn
invokestatic
```
这样的形式.
如果是手工生成的话大概会是
```
getstatic
invokestatic
lstore 1
invokestatic
lload 1
lsub
invokestatic
```
区别在于压栈的次数.
因为调整了Profiler.INSTANCE入栈顺序.
所以基本上按照最后collect参数规格维护stack的.
如果要自动地做这种重排的话呢?
本质上来说,就是针对一个函数调用入参约定的一个dependency resolution/backtrace.
就一个control flow的graph来说,可能做的还是一些prune/merge的事情.
不过如果再仔细考虑下上面的例子的话.
其实两个并不是等价的.
因为这里隐含的一个假定是INSTANCE是immutable的.
所以push的时机不影响最终的结果.
但如果INSTANCE是mutable的话,那么这种重排其实是有问题的.
因为后面的调用/指令可能会影响INSTANCE的值.
那么有没有immutable的情况呢.
理论上来说,应该是没有的.
因为如果用反射的话,对于final的field也是可以改变值的.
而且这里比较有趣的一个地方就是final本身的实现.
大概瞄了眼c2的相关代码.
主要是getfield和putfield的.
里面提到确实是会对static final和@Stable的field转成constant node.
这个容易理解.
但是putfield并没有针对final做什么过多特殊处理.
那么如果是严格按照bytecode执行的话,问题不大.
因为不管是get/set/static/field,还是反射的读写.
针对的都是同一个东西.
但是如果是JIT过的,那么在生成native code的时候依据的是转换后的constant node.
这样的话,就可能并不是很符合预期.
一个简单的例子就是一个boolean的if condition.
因为field access变成了一个constant,那么就有可能触发一个优化规则把整个if优化掉.
而当用反射把这个值置回true的话,貌似并不会触发deoptimize.
这样的话,即使从代码和逻辑层面上来说if分支应该被执行,但实际可能是并不会被执行到.
那么如果想办法让put指令里触发deoptimize的话呢?
比如动一下FieldAccessor的相关路径和生成的native code风格?
理论上来说应该是代价比较大的.
一个是如果在native code里对field access引入一个stub的话.
则在这个field被修改的时候需要知道哪些native code部分是需要做改动的.
这个如果不是stub的方式的话,基本上是不太现实的.
因为必须维护一个列表.
这样的话复杂度就不低了.
而如果用stub function的话,就没什么太大意义了.
本来就是一个最多二次寻址的问题,变成反而需要用一个更重的function call替代.
于是从这个角度看的话,set final某种程度上来说算是一种挺危险的行为.
因为这个导致的不确定行为可能还跟环境有关.
在触发JIT的情况下和在interpreter的场景还不太一样.
2019-10-08
距离感
最近在日本随便乱逛.
有时候会闯到各种神社里,于是就会翻翻祈愿牌.
多数日文还是看得很勉强的.
但里面也不乏一些港澳人士的中文.
偶尔就会看到关于香港祈愿的.
从字迹和言语风格/内容上看,年龄段不乏一些明显学生和一些上了年纪的人.
起初没什么太多想法.
后来想了想立场问题.
可能现在国内外都可能会指责对方新闻报道的偏颇性.
尤其对于protest方的.
你很难说哪边报道就是对的或者哪边就是错的.
毕竟事实上,材料都在基于事实的.
更何况人群构成纷繁杂乱.
你可能也很难用一个整体的定义去概括盖章一个群体.
这里想谈的是另一个角度.
就是这些祈福牌的作者.
它们应该不是上街protest的一部分.
甚至可能恰恰是因为骚乱而选择到世界其他地方寻求安宁的.
也就是说,态度上可能可以定义为一个中间派或者不发声的部分.
他们不属于谴责抵抗者的一方.
也不属于protest目前行为的支持立场.
但是表明的立场和意愿却不能说是隐晦或者模糊不清的.
可能对于年轻人来说,正如他们会用的一个词.
荣光.
来为这种上街行为做标注.
还有一些可能有一定阅历的,会用光复.
无论是那种形容词,立场上来说,引申的就是他们并不算满意当前的状况.
不满意的点可能跟最近的NBA,之前的奢侈品和诸如炉石暴雪,AppStore一样.
用刚看到的一个观点来说,就是目前国内的这种censorship文化的外延干涉.
就像一国两制.
有些重点在一国,有些人重点在两制.
而以当前的文化策略来说,很难说是一种文化输出,更多的时候像是一种文化侵略.
而且是不受欢迎的一种殖民性输出.
即不管别人接受不接受.
从最近的方向来说,可能会有越来越多的这种文化冲突的发生和发酵.
因为个人和集体的关系,国内外的认知差距可能还是有一定的.
尽管从通俗文化层面上来说,国内也越来越有自己的生活别人无权干涉,以及别人过得怎么样怎么想与自己无关的倾向.
但是意识状态层面还是有着诸多的禁忌和相对保守的一面.
而外面可能更多的是相对脱钩的.
虽然可能会把爱泼斯坦之类的事拿出来做做一种制度攻击的例子.
但换个角度来说,在没有爆出来之前算是一种潜在隐规则.
它的界限在于,并没有正式的社会性的显式影响.
从某种程度上来说,在未曝光前尚属于私域问题.
而经过媒体见诸公众之后,才成为一个社会道德问题.
区别在与社会性.
同样的逻辑或许也可以套用在民族感情和政治立场上面.
只要经过了发酵成为一种公开谈论的事情,就是属于社会情绪情感层面的.
而公开谈论这点,对于西方认知中的中国来说,是一个清晰但缺乏明显标尺的问题.
或者对于可能是所有商业公司/团体/机构来说都是如此.
而在做商业来往的时候,为了利益上的考量,做出一些censorship的让步或者说退让,也不能说是完全不可取/不能接受的.
但有公司比如Google的先例也反映出了这种博弈的单方面强势性/弱势感.
totalitarianism文化从本质上来说是一种绝对服从式的文化.
其中可能有其自身的内在合理性,甚至对于一个实际的庞大系统来说,某些不尽为人满意的构成部分,都是被非常必要的.
就像一个中心化的分布式系统来说,一个效率和能量强劲的中心节点几乎是系统正常运作的基础.
为了整体系统的正常和合乎效率的运作,一些privilege/authority是必要的.
但是这并不构成绝对服从的正当性.
但文化上的东西有时候很难有一种明确的界限或者说距离感.
就像有些公司会限制着装IM头像之类的作为一种纪律性要求,目的是作为一种效率提升的形式工具.
但你很难说这里的合理性,而不考虑其可能的真实用意.
很多时候就是一种无意识的本能性干涉.
或者说武力扬耀.
所以当这种有意无意的干涉本能作用于另一种文化的时候,就存在了冲突的可能性.
而双方合作的前提在于对条件考量的最终接受程度.
如果说这种被动的censorship代价行为了一种不可接受的共识的话,那大概至少对以合作代价的再计量是有相当影响的.
你很难说全球化会不会变成两极化.
毕竟全球化的问题之一除了经济上的转移和新殖民之外,再就是文化冲突渗透到各个领域的一些表现.
有时候是融合再生.
有时候是弱势小众团体的权力极化.
想起years and years里,有支持vivienne rook的大概这么一句.
Let's take the world down.
背景大概是世界已经这么不可理喻了,不如推一把使其更加疯狂的一种末世情绪.
有时候会闯到各种神社里,于是就会翻翻祈愿牌.
多数日文还是看得很勉强的.
但里面也不乏一些港澳人士的中文.
偶尔就会看到关于香港祈愿的.
从字迹和言语风格/内容上看,年龄段不乏一些明显学生和一些上了年纪的人.
起初没什么太多想法.
后来想了想立场问题.
可能现在国内外都可能会指责对方新闻报道的偏颇性.
尤其对于protest方的.
你很难说哪边报道就是对的或者哪边就是错的.
毕竟事实上,材料都在基于事实的.
更何况人群构成纷繁杂乱.
你可能也很难用一个整体的定义去概括盖章一个群体.
这里想谈的是另一个角度.
就是这些祈福牌的作者.
它们应该不是上街protest的一部分.
甚至可能恰恰是因为骚乱而选择到世界其他地方寻求安宁的.
也就是说,态度上可能可以定义为一个中间派或者不发声的部分.
他们不属于谴责抵抗者的一方.
也不属于protest目前行为的支持立场.
但是表明的立场和意愿却不能说是隐晦或者模糊不清的.
可能对于年轻人来说,正如他们会用的一个词.
荣光.
来为这种上街行为做标注.
还有一些可能有一定阅历的,会用光复.
无论是那种形容词,立场上来说,引申的就是他们并不算满意当前的状况.
不满意的点可能跟最近的NBA,之前的奢侈品和诸如炉石暴雪,AppStore一样.
用刚看到的一个观点来说,就是目前国内的这种censorship文化的外延干涉.
就像一国两制.
有些重点在一国,有些人重点在两制.
而以当前的文化策略来说,很难说是一种文化输出,更多的时候像是一种文化侵略.
而且是不受欢迎的一种殖民性输出.
即不管别人接受不接受.
从最近的方向来说,可能会有越来越多的这种文化冲突的发生和发酵.
因为个人和集体的关系,国内外的认知差距可能还是有一定的.
尽管从通俗文化层面上来说,国内也越来越有自己的生活别人无权干涉,以及别人过得怎么样怎么想与自己无关的倾向.
但是意识状态层面还是有着诸多的禁忌和相对保守的一面.
而外面可能更多的是相对脱钩的.
虽然可能会把爱泼斯坦之类的事拿出来做做一种制度攻击的例子.
但换个角度来说,在没有爆出来之前算是一种潜在隐规则.
它的界限在于,并没有正式的社会性的显式影响.
从某种程度上来说,在未曝光前尚属于私域问题.
而经过媒体见诸公众之后,才成为一个社会道德问题.
区别在与社会性.
同样的逻辑或许也可以套用在民族感情和政治立场上面.
只要经过了发酵成为一种公开谈论的事情,就是属于社会情绪情感层面的.
而公开谈论这点,对于西方认知中的中国来说,是一个清晰但缺乏明显标尺的问题.
或者对于可能是所有商业公司/团体/机构来说都是如此.
而在做商业来往的时候,为了利益上的考量,做出一些censorship的让步或者说退让,也不能说是完全不可取/不能接受的.
但有公司比如Google的先例也反映出了这种博弈的单方面强势性/弱势感.
totalitarianism文化从本质上来说是一种绝对服从式的文化.
其中可能有其自身的内在合理性,甚至对于一个实际的庞大系统来说,某些不尽为人满意的构成部分,都是被非常必要的.
就像一个中心化的分布式系统来说,一个效率和能量强劲的中心节点几乎是系统正常运作的基础.
为了整体系统的正常和合乎效率的运作,一些privilege/authority是必要的.
但是这并不构成绝对服从的正当性.
但文化上的东西有时候很难有一种明确的界限或者说距离感.
就像有些公司会限制着装IM头像之类的作为一种纪律性要求,目的是作为一种效率提升的形式工具.
但你很难说这里的合理性,而不考虑其可能的真实用意.
很多时候就是一种无意识的本能性干涉.
或者说武力扬耀.
所以当这种有意无意的干涉本能作用于另一种文化的时候,就存在了冲突的可能性.
而双方合作的前提在于对条件考量的最终接受程度.
如果说这种被动的censorship代价行为了一种不可接受的共识的话,那大概至少对以合作代价的再计量是有相当影响的.
你很难说全球化会不会变成两极化.
毕竟全球化的问题之一除了经济上的转移和新殖民之外,再就是文化冲突渗透到各个领域的一些表现.
有时候是融合再生.
有时候是弱势小众团体的权力极化.
想起years and years里,有支持vivienne rook的大概这么一句.
Let's take the world down.
背景大概是世界已经这么不可理喻了,不如推一把使其更加疯狂的一种末世情绪.
2019-08-04
谈谈黄金
黄金之所为为黄金,在于它是一种普世的价值度量标准.
可能也算一种历史的偶然性和必然性结合的一个产物.
在没有现代经济信息网络之前,达成了一种对于异构经济/货币系统的交换中介共识.
某种程度上来说,也许是因为有着一些专门的或者发达的贸易商队国度的活跃.
将一种稀有奢侈品作为一种平准机制.
就像瓷器香料之类的,也在某种历史时期内有着显著的等值交换属性.
只不过因为工艺发展的原因,保值能力不算好.
因为稀有性受到冲击.
而稀有性之所以重要的原因在于凭证信用的支撑.
或者说某种程度上的不可伪造性.
作为一种一般等价物来说,它除了表征不同商品/物品之间的可交易order关系之外.
还代表着非交易过程中的某种价值储藏容器.
固然的,无论货币或者商品的存在之在于交易发生的时候才有意义.
价值本身也是在交易的时候具有比较实际的反馈.
但是交易本身不是随时连续不断发生的.
在非交易时期,这种商品与商品之间的等价关系就以货币这种抽象形态存在.
而既然称之为一种储藏容器,那么就代表着它需要又一种一定程度的不变性.
或者说时间无关的兑付/交易能力.
因为如果在t时间之后,容器本身不可用或者其代表的支付/购买能力不如初期.
那么也就谈不上是一种凭证储藏了.
所以黄金的稀有性和恰巧作为一种金融的长久形态保有能力成为一种合适的容器表征.
而同样的作为贵金属的白银在这方面就弱得多了.
那么在现代来说,为什么金本位有时候会显得不合时宜呢?
现代金融的交易方式主要的基础是信用本身.
以及信用衍生的各种副产品.
所以它本身是以各种直接或者间接的担保品作为兑付凭证的.
而这些凭证是在一定的市场范围内被一定的参与方所共同认同的.
也就是说,尽管可能抵押品具有形形色色的形态的承兑模式.
但是重要的是市场的参与者对于这些抵押品的通用货币兑付能力并没有很大的异议.
即使是以及其廉价的纸质或者不存在实体的electric的合同来说,交易双方都对违约风险有一个可控的接受共识.
因此黄金的rarity/immutability对比并没有更优越的表述能力.
反而可能因为其本身的一些属性而具有这样那样的不便利性.
所以,金本位的退位似乎是个必然的过程.
但是考虑这种互信的过程其实隐含的是市场稳定的假设.
也就是交易各方对于各种承兑能力的确定性的一种信心.
而一旦这种信心不存在的话,就是所谓的经济危机的出现.
不管是基于信贷违约的企业行为,还是国与国之间的货币冲突政策.
前者带来的是抵押品的货币价值假设的湮灭.
而后者是一种更大程度上的国家社会级别的兑付危机.
就像次贷和津巴布韦法币的形态.
这时候的黄金就像一国金融危机下的央行角色.
作为最后信用的一种事实担保.
也就是为什么称呼黄金为避险手段的一个原因.
在非全球性经济危机的前提下,即使有个别国家或者区域的货币会产生比较大的动荡.
但是总的来说,因为存在几个相对信用能力不错,且有一定影响力的货币存在.
于是事实上的,作为全球通用价值衡量标准实际上就是由这一组货币的汇率所反映出来.
而一旦这组货币本身不再存在相对稳定的关系.
或者有较大分歧.
或者因为内生的一些原因,自身内部的变化,因为权重的问题不必要的扩散成为全球性的一种危机形态.
这种微妙的平衡关系就会让基于这组货币的定价原则变得具有相当的不确定性.
因为买卖双方之间对于同一物品的市场价格,在不同货币体系下不再具有统一共识的前提下.
交易就不太可能顺利的发生.
因为以同一货币计量的时候,双方对于这个度量并不能够达成一个共识.
也就是类似货币稳定时候,对于价格本身存在争议的情况.
而这时候,就只有古老的黄金还存在着一定的价值common sense.
所以这也就是为什么即使非金本位的今天,一国依然会有黄金储备的需求.
以及为什么在正常情况下,一国可以以另一国的货币/债务作为一种桥梁表示.
后一种方式由于是一种间接方式,所以本身是相对于直接锚定储备来说,具有更多的不确定性的.
但是是否就意味着实际上有必要重启或者认为依然是金本位呢?
实际上,在真地发生信任危机的前提下,黄金储备也很难说能够出任一种平准价值体系.
因为交易双方可以可以退回到原始的物物交换.
除非是一种群体性复杂交易链条,需要一个充当价值缓冲的外在物质充当交易催化媒介,促成交易.
本质上来说,在这种情况下,人们需要的是一种本身可交换的低违约风险的信用兑付凭证.
可交换和信用凭证两点是很容易满足,或者说构造的.
比较麻烦的是低违约风险这点.
违约的风险在于交易的不对等性的事实发生.
或者说通俗的,资产的减值的发生.
又或者字面地,履约能力的异常.
所以考虑把合约作为一种不可变载体记录下来的诸如blockchain之类的方式是没有意义的.
有时候可能反而是一种多余的策略.
因为如果信用本身还存在的话.
可不可变其实并不是本质上的需求.
充其量不过是程度和进程上的区别.
违约风险的规避一个在于对事实违约造成的减值情况的对冲.
一个是对履约的强制力保证.
而后者在一定程度上来说,也是一种对冲方式.
不过就程度而言可能可以称之为积极对冲.
所以说到底,在没有信用互信的基础的情况.
其实也就是最初的野蛮时代.
这时候讲究的可能是强制力了.
也就是所谓的武力.
可能也算一种历史的偶然性和必然性结合的一个产物.
在没有现代经济信息网络之前,达成了一种对于异构经济/货币系统的交换中介共识.
某种程度上来说,也许是因为有着一些专门的或者发达的贸易商队国度的活跃.
将一种稀有奢侈品作为一种平准机制.
就像瓷器香料之类的,也在某种历史时期内有着显著的等值交换属性.
只不过因为工艺发展的原因,保值能力不算好.
因为稀有性受到冲击.
而稀有性之所以重要的原因在于凭证信用的支撑.
或者说某种程度上的不可伪造性.
作为一种一般等价物来说,它除了表征不同商品/物品之间的可交易order关系之外.
还代表着非交易过程中的某种价值储藏容器.
固然的,无论货币或者商品的存在之在于交易发生的时候才有意义.
价值本身也是在交易的时候具有比较实际的反馈.
但是交易本身不是随时连续不断发生的.
在非交易时期,这种商品与商品之间的等价关系就以货币这种抽象形态存在.
而既然称之为一种储藏容器,那么就代表着它需要又一种一定程度的不变性.
或者说时间无关的兑付/交易能力.
因为如果在t时间之后,容器本身不可用或者其代表的支付/购买能力不如初期.
那么也就谈不上是一种凭证储藏了.
所以黄金的稀有性和恰巧作为一种金融的长久形态保有能力成为一种合适的容器表征.
而同样的作为贵金属的白银在这方面就弱得多了.
那么在现代来说,为什么金本位有时候会显得不合时宜呢?
现代金融的交易方式主要的基础是信用本身.
以及信用衍生的各种副产品.
所以它本身是以各种直接或者间接的担保品作为兑付凭证的.
而这些凭证是在一定的市场范围内被一定的参与方所共同认同的.
也就是说,尽管可能抵押品具有形形色色的形态的承兑模式.
但是重要的是市场的参与者对于这些抵押品的通用货币兑付能力并没有很大的异议.
即使是以及其廉价的纸质或者不存在实体的electric的合同来说,交易双方都对违约风险有一个可控的接受共识.
因此黄金的rarity/immutability对比并没有更优越的表述能力.
反而可能因为其本身的一些属性而具有这样那样的不便利性.
所以,金本位的退位似乎是个必然的过程.
但是考虑这种互信的过程其实隐含的是市场稳定的假设.
也就是交易各方对于各种承兑能力的确定性的一种信心.
而一旦这种信心不存在的话,就是所谓的经济危机的出现.
不管是基于信贷违约的企业行为,还是国与国之间的货币冲突政策.
前者带来的是抵押品的货币价值假设的湮灭.
而后者是一种更大程度上的国家社会级别的兑付危机.
就像次贷和津巴布韦法币的形态.
这时候的黄金就像一国金融危机下的央行角色.
作为最后信用的一种事实担保.
也就是为什么称呼黄金为避险手段的一个原因.
在非全球性经济危机的前提下,即使有个别国家或者区域的货币会产生比较大的动荡.
但是总的来说,因为存在几个相对信用能力不错,且有一定影响力的货币存在.
于是事实上的,作为全球通用价值衡量标准实际上就是由这一组货币的汇率所反映出来.
而一旦这组货币本身不再存在相对稳定的关系.
或者有较大分歧.
或者因为内生的一些原因,自身内部的变化,因为权重的问题不必要的扩散成为全球性的一种危机形态.
这种微妙的平衡关系就会让基于这组货币的定价原则变得具有相当的不确定性.
因为买卖双方之间对于同一物品的市场价格,在不同货币体系下不再具有统一共识的前提下.
交易就不太可能顺利的发生.
因为以同一货币计量的时候,双方对于这个度量并不能够达成一个共识.
也就是类似货币稳定时候,对于价格本身存在争议的情况.
而这时候,就只有古老的黄金还存在着一定的价值common sense.
所以这也就是为什么即使非金本位的今天,一国依然会有黄金储备的需求.
以及为什么在正常情况下,一国可以以另一国的货币/债务作为一种桥梁表示.
后一种方式由于是一种间接方式,所以本身是相对于直接锚定储备来说,具有更多的不确定性的.
但是是否就意味着实际上有必要重启或者认为依然是金本位呢?
实际上,在真地发生信任危机的前提下,黄金储备也很难说能够出任一种平准价值体系.
因为交易双方可以可以退回到原始的物物交换.
除非是一种群体性复杂交易链条,需要一个充当价值缓冲的外在物质充当交易催化媒介,促成交易.
本质上来说,在这种情况下,人们需要的是一种本身可交换的低违约风险的信用兑付凭证.
可交换和信用凭证两点是很容易满足,或者说构造的.
比较麻烦的是低违约风险这点.
违约的风险在于交易的不对等性的事实发生.
或者说通俗的,资产的减值的发生.
又或者字面地,履约能力的异常.
所以考虑把合约作为一种不可变载体记录下来的诸如blockchain之类的方式是没有意义的.
有时候可能反而是一种多余的策略.
因为如果信用本身还存在的话.
可不可变其实并不是本质上的需求.
充其量不过是程度和进程上的区别.
违约风险的规避一个在于对事实违约造成的减值情况的对冲.
一个是对履约的强制力保证.
而后者在一定程度上来说,也是一种对冲方式.
不过就程度而言可能可以称之为积极对冲.
所以说到底,在没有信用互信的基础的情况.
其实也就是最初的野蛮时代.
这时候讲究的可能是强制力了.
也就是所谓的武力.
2019-07-29
从排序想起
考虑,从set S中根据偏好P选取一个元素E.
本质上就是用P对S进行排序的问题.
或者说order的问题.
考虑通常意义上的三个关系.
大于,等于,小于.
考虑没有symmetry/cyclic的情况.
即,大于小于的一个order chain不构成一个环.
那么大于小于可以合并为一个符号.
定义等于为=,非对称的大于小于为!=.
则给定任意a,b.
两者要么是=,要么是!=.
换一套符号表示的话.
f({a,b})= {=,!=} = {0,1}就算某种形式的binary classification.
考虑到前面的非对称限定,f({a,b})可能undefined的话.
回归三值,=,>和<,就是triple/muti classification. 那么从这个角度看. 排序的数组就是某种形式的index结构. 索引的是所有可能组合的分类结果情况. 也就是从element e->number index -> {=,>,<}的一个路径.
formalize的话.
就是给定一个set X,如果存在一个映射f.
满足f(x \in X) = N.
使得C(f(a),f(b)) = {=,!=} = {0,1}
如果是一个multi class的话,给定number of class=K
C(f(a),f(b)) = C_k(f(a),f(b)) = 1; C_{k-1}(f(a),f(b)) = 0.
也就是将为零的递归下去.
但是这个f不一定存在.
因为可能根本不是有序定义的.
但如果存在的话,如何去寻找这一个f呢?
如果ab所在的set S是有限的话.
那么实际上C是一个确定的集合.
此时的f只要任意一组满足C的数列就行了.
而这样的数列可以在排序过程中构建.
如果S是不确定的呢?
这样的S可以分开为一个确定的集合S_0和一个非确定的集合S_u.
确定的部分如上构建.
S_u的元素可以是S_0中相邻gap之间的任意一个数.
因为未知的S_u的元素必然是在S_0的L(S_0)+1的区间内.
于是未知元素的问题就是对于这几个区间归属的概率问题.
实际上,如果这个f确实存在,且是严格有序的.
那么新元素的问题实际上是一个插入问题.
所以f_u实际上是一个关于f的插入生成.
如果f不存在呢?
考虑S都是可比较的情况.
f不存在以图视角看待的话,S的路径存在回环.
因为如果不存在的回环的话,意味着元素都存在单向路径.
也就是存在严格的有序状态.
那么一个近似的解自然就是切断回环路径.
这样的话,主要就是图的partition问题了.
但这可能没有一个很好的方式去估算?
因为实际上这个图是fully connected的.
每一条边的移除都可能影响每一对节点的最短路径开销.
所以可能更实际的方式是做子图划分.
以期望得到的子图是符合预期的.
尽管同样地,似乎这种划分也不见得就有一个很好的代价衡量方式.
本质上就是用P对S进行排序的问题.
或者说order的问题.
考虑通常意义上的三个关系.
大于,等于,小于.
考虑没有symmetry/cyclic的情况.
即,大于小于的一个order chain不构成一个环.
那么大于小于可以合并为一个符号.
定义等于为=,非对称的大于小于为!=.
则给定任意a,b.
两者要么是=,要么是!=.
换一套符号表示的话.
f({a,b})= {=,!=} = {0,1}就算某种形式的binary classification.
考虑到前面的非对称限定,f({a,b})可能undefined的话.
回归三值,=,>和<,就是triple/muti classification. 那么从这个角度看. 排序的数组就是某种形式的index结构. 索引的是所有可能组合的分类结果情况. 也就是从element e->number index -> {=,>,<}的一个路径.
formalize的话.
就是给定一个set X,如果存在一个映射f.
满足f(x \in X) = N.
使得C(f(a),f(b)) = {=,!=} = {0,1}
如果是一个multi class的话,给定number of class=K
C(f(a),f(b)) = C_k(f(a),f(b)) = 1; C_{k-1}(f(a),f(b)) = 0.
也就是将为零的递归下去.
但是这个f不一定存在.
因为可能根本不是有序定义的.
但如果存在的话,如何去寻找这一个f呢?
如果ab所在的set S是有限的话.
那么实际上C是一个确定的集合.
此时的f只要任意一组满足C的数列就行了.
而这样的数列可以在排序过程中构建.
如果S是不确定的呢?
这样的S可以分开为一个确定的集合S_0和一个非确定的集合S_u.
确定的部分如上构建.
S_u的元素可以是S_0中相邻gap之间的任意一个数.
因为未知的S_u的元素必然是在S_0的L(S_0)+1的区间内.
于是未知元素的问题就是对于这几个区间归属的概率问题.
实际上,如果这个f确实存在,且是严格有序的.
那么新元素的问题实际上是一个插入问题.
所以f_u实际上是一个关于f的插入生成.
如果f不存在呢?
考虑S都是可比较的情况.
f不存在以图视角看待的话,S的路径存在回环.
因为如果不存在的回环的话,意味着元素都存在单向路径.
也就是存在严格的有序状态.
那么一个近似的解自然就是切断回环路径.
这样的话,主要就是图的partition问题了.
但这可能没有一个很好的方式去估算?
因为实际上这个图是fully connected的.
每一条边的移除都可能影响每一对节点的最短路径开销.
所以可能更实际的方式是做子图划分.
以期望得到的子图是符合预期的.
尽管同样地,似乎这种划分也不见得就有一个很好的代价衡量方式.
2019-07-21
自生长的动物园
微博timeline上看到这么句评论:
"不是,我们听周杰伦被嘲笑的时候,那些嘲笑的人还在听伟光正呢"
这是个蛮有趣的角度.
这一代人在成长的时候可能也没少冲突过.
最明显的就是当初对于韩寒的各种评价和所谓80后的各种stereotype.
只不过冲突的媒体平台是在纸媒和广播电视.
而现在的刷周杰伦,与其是说周杰伦不如是目标的蔡徐坤.
因为实际上一致存在的行为群体是蔡的粉丝团,以及其固有的榜单行为.
80后的这波行为更多地像是一种对既有话语权威的一种可能是最后宣誓主权.
或者说挣扎.
就像上一代对80后的批判攻击一样.
80后对后代的这种冲突也是基于他们自己构建的互联网社交平台之上的.
某种程度上来说,每一代人都在构建属于自己特色的一种交流沟通媒介.
而每一代的下一代都在这个媒介上或创新或颠覆出自由独有的文化圈子.
两者的冲突可能更像是一种意识形态上的冲突.
如果把时间拉回几年,从贾君鹏开始.
对比现在这场狂欢性质的群体行为的话,其实算是一种复刻的行为.
一种无厘头的群体式的兴奋与模仿.
它产生的是一种自发的,带有莫名激励性的一种传播扩散方式.
本身并没有很明确的功利性的目的.
甚至于从根本上来说,这是一种随机性很强的娱乐方式.
你知道它产生的特点和要素.
但并不一定能够体量级地工业化复制.
所以在80后打造这这个互联网社会里,这种被成为现象级的群体行为被赋予了一种mysterious的性质.
靠广告流量腾挪借力出来的互联网经济模式对于这种大范围的自发性参与有着天然的向往和需求.
而在这10几年间,流量/规模几乎是互联网社会所有商业模式的基础.
也因为此才有了数据驱动的运营方式.
作为一种简洁直观,有时候确实高效的衡量方式.
本质上来说,刷数据这一套游戏规则就是80后自己创造和鼓励出来了.
而稍显讽刺的是,被大规模应用的实际场景却并不是80后自己的偶像/娱乐需求.
就像最初那句一样.
周杰伦的数据并不好看.
这是在80后自己缔造的规则上成长起来的用户的一种常识.
是他们用于评论和衡量一个明星或者更宽泛的,一件事情价值的最原始最直观的本能反应.
恰恰是这点,作为的规则创造者的80后却反而认为是有违常规的,不合逻辑的.
就像当初韩寒退学走自己认为对的道路一样.
独立自主和你应该如何之间的意识形态的矛盾.
所以这场冲突的吊诡点就在于.
规则缔造者本身对于规则的自然执行者间会有如此对立矛盾的立场.
或者说,形式上地,规则对于最初的制定者来说已经失控到他们自己无法接受或者说适应的情况了.
又或者说,文化的演变到现在其实是一种不可避免会有冲突的地步.
因为互联网本身的出现使得任意两点之间的交流成为可能.
就像以前贴吧的各种亚文化圈子.
它们可能甚至不能被主流接受,或者说根本不被主流道德所容忍.
但是从观察的角度来说,确确实实有着数量不少的同类人.
一个可能更明显但在今天来说稍显不太合时宜的例子就是ACG/二次元圈子.
这个本来是一个非主流的文化元素.
但是放在今天来说,已经可能说是主流的一部分了.
甚至于从趋势上来说,更多的商业投入是倾向于这种新开发的文化领域的.
背后的逻辑可能各种各样.
但至少,这个本来亚文化的圈子逐渐成为社会中坚力量的时候.
文化的代次更迭让曾经的非主流变为常态应该也是其中一个因素.
所以粉丝刷榜单刷流量,从这种分类思路上来说,无非就是另外一种新生的亚文化圈子.
所不同的是,它作为一个非当前主流的典型被拉出来做了对比样本.
而从发展的角度来说,可能更说明这个群体正在成为一种主流文化的冲击和替补因素.
因为从结果上来说,这场文化上的冲突狂欢并没有显示出一方的压倒性的胜利.
这里可能必须承认的就是,也许80后认为这种刷榜单刷流量的行为并不怎么正确.
但事实上执行这一种价值观和行为准则的人并不能算是一个社会的小规模群体.
而且更重要的是,这种结果多多少少是80后自己一手造就的.
至于对不对,就是一个相对复杂的问题了.
刷话题刷榜单可能并不比参加演唱会买专辑来得又道德负罪性.
本质上是一种个体所能承受/付出范围内的一种方式表达.
甚至于打榜本身并不算是一个新的运营概念.
那么这种排斥感的根源是什么呢?
从结果上来说,流量明星吸收了更多的文娱资源.
这个是主动的也是被动的过程.
在给定一个相对静态固定的文娱投入的前提下.
一方的倾斜也就意味着另一方的退让.
从市场的表现上来说就是文化符号的次代更迭带来的不适应感.
因为目之所及的商业目标是一个更为新兴的消费群体.
是一个有异于自身的一个文化载体/社群.
所以说,这可能更像一种困兽之斗.
而讽刺的是,制造这种指标性牢笼的人,正好是其自身.
宛如一个自生长的动物园.
"不是,我们听周杰伦被嘲笑的时候,那些嘲笑的人还在听伟光正呢"
这是个蛮有趣的角度.
这一代人在成长的时候可能也没少冲突过.
最明显的就是当初对于韩寒的各种评价和所谓80后的各种stereotype.
只不过冲突的媒体平台是在纸媒和广播电视.
而现在的刷周杰伦,与其是说周杰伦不如是目标的蔡徐坤.
因为实际上一致存在的行为群体是蔡的粉丝团,以及其固有的榜单行为.
80后的这波行为更多地像是一种对既有话语权威的一种可能是最后宣誓主权.
或者说挣扎.
就像上一代对80后的批判攻击一样.
80后对后代的这种冲突也是基于他们自己构建的互联网社交平台之上的.
某种程度上来说,每一代人都在构建属于自己特色的一种交流沟通媒介.
而每一代的下一代都在这个媒介上或创新或颠覆出自由独有的文化圈子.
两者的冲突可能更像是一种意识形态上的冲突.
如果把时间拉回几年,从贾君鹏开始.
对比现在这场狂欢性质的群体行为的话,其实算是一种复刻的行为.
一种无厘头的群体式的兴奋与模仿.
它产生的是一种自发的,带有莫名激励性的一种传播扩散方式.
本身并没有很明确的功利性的目的.
甚至于从根本上来说,这是一种随机性很强的娱乐方式.
你知道它产生的特点和要素.
但并不一定能够体量级地工业化复制.
所以在80后打造这这个互联网社会里,这种被成为现象级的群体行为被赋予了一种mysterious的性质.
靠广告流量腾挪借力出来的互联网经济模式对于这种大范围的自发性参与有着天然的向往和需求.
而在这10几年间,流量/规模几乎是互联网社会所有商业模式的基础.
也因为此才有了数据驱动的运营方式.
作为一种简洁直观,有时候确实高效的衡量方式.
本质上来说,刷数据这一套游戏规则就是80后自己创造和鼓励出来了.
而稍显讽刺的是,被大规模应用的实际场景却并不是80后自己的偶像/娱乐需求.
就像最初那句一样.
周杰伦的数据并不好看.
这是在80后自己缔造的规则上成长起来的用户的一种常识.
是他们用于评论和衡量一个明星或者更宽泛的,一件事情价值的最原始最直观的本能反应.
恰恰是这点,作为的规则创造者的80后却反而认为是有违常规的,不合逻辑的.
就像当初韩寒退学走自己认为对的道路一样.
独立自主和你应该如何之间的意识形态的矛盾.
所以这场冲突的吊诡点就在于.
规则缔造者本身对于规则的自然执行者间会有如此对立矛盾的立场.
或者说,形式上地,规则对于最初的制定者来说已经失控到他们自己无法接受或者说适应的情况了.
又或者说,文化的演变到现在其实是一种不可避免会有冲突的地步.
因为互联网本身的出现使得任意两点之间的交流成为可能.
就像以前贴吧的各种亚文化圈子.
它们可能甚至不能被主流接受,或者说根本不被主流道德所容忍.
但是从观察的角度来说,确确实实有着数量不少的同类人.
一个可能更明显但在今天来说稍显不太合时宜的例子就是ACG/二次元圈子.
这个本来是一个非主流的文化元素.
但是放在今天来说,已经可能说是主流的一部分了.
甚至于从趋势上来说,更多的商业投入是倾向于这种新开发的文化领域的.
背后的逻辑可能各种各样.
但至少,这个本来亚文化的圈子逐渐成为社会中坚力量的时候.
文化的代次更迭让曾经的非主流变为常态应该也是其中一个因素.
所以粉丝刷榜单刷流量,从这种分类思路上来说,无非就是另外一种新生的亚文化圈子.
所不同的是,它作为一个非当前主流的典型被拉出来做了对比样本.
而从发展的角度来说,可能更说明这个群体正在成为一种主流文化的冲击和替补因素.
因为从结果上来说,这场文化上的冲突狂欢并没有显示出一方的压倒性的胜利.
这里可能必须承认的就是,也许80后认为这种刷榜单刷流量的行为并不怎么正确.
但事实上执行这一种价值观和行为准则的人并不能算是一个社会的小规模群体.
而且更重要的是,这种结果多多少少是80后自己一手造就的.
至于对不对,就是一个相对复杂的问题了.
刷话题刷榜单可能并不比参加演唱会买专辑来得又道德负罪性.
本质上是一种个体所能承受/付出范围内的一种方式表达.
甚至于打榜本身并不算是一个新的运营概念.
那么这种排斥感的根源是什么呢?
从结果上来说,流量明星吸收了更多的文娱资源.
这个是主动的也是被动的过程.
在给定一个相对静态固定的文娱投入的前提下.
一方的倾斜也就意味着另一方的退让.
从市场的表现上来说就是文化符号的次代更迭带来的不适应感.
因为目之所及的商业目标是一个更为新兴的消费群体.
是一个有异于自身的一个文化载体/社群.
所以说,这可能更像一种困兽之斗.
而讽刺的是,制造这种指标性牢笼的人,正好是其自身.
宛如一个自生长的动物园.
订阅:
博文 (Atom)
关于DeepSeek API的一些想法
最近写一个AgentCLI原型玩具的时候,发现一些比较有意思的点. 因为主要是照着DeepSeek API来写的. 所以基本上也可以说是OpenAI Chat Completion API的一些点. 不过,可能有些是DeepSeek特有的. 一个是请求的stop list. 大致...
-
看完了一部未完成的电影. 这部片片子比较有意思的是一开始那段自嘲. 秦昊关于既然拍了也播不了,只是私下小圈子里自嗨的事情又什么意义的质问. 片里导演也 讪讪地承认生活的现实. 到这里其实沿着原有的思路,把补拍和一些意外穿插进去,可能还是一个不错的文艺片. 至少于戏里戏外的导演来说...
-
去看了长安的荔枝. 前半段还可以,尤其像荔枝林里不知道是笑还是哭的几个镜头表演算是相当出色了. 结合人物背景的那种对目标的绝望与对当下人际环境的希望的交叉矛盾心理. 后半段就有些过滤潦草了. 如果说整片是对于一骑红尘妃子笑,无人知是荔枝来的解构的话. 带入民生潦倒涂炭这点是没问题...
-
看 金枝 ,读到关于求雨的各种巫术习惯的时候忽然发觉,这其实跟当时的社会需求有关吧. 农业为主,自然是靠天吃饭,尤其在无法弄清下雨原因的时候. 这种"崇拜"虽然说是出于"无知",但究其本质还是因为对于天气有着不可替代的需求. 有所求的...