192019.2

这一波操作很溜

今日陆续看到一些消息,全部来自政策层面,例如,放开针对个人信用融资放贷的“银行版QE”,大湾区发展规划出台,而这波操作正逢08年经济危机过去10年后。

资本主义经济危机有10年一个小周期的规律,而作为资本主义经济的美国,它的经济动向决定了整个世界经济的景气。这两年整个世界遇到的经济问题,无非是经济周期大背景下的具体体现。之所以有这样的周期规律,主要的根源在于,在每一次经济危机发生时,政府出台的政策通过透支未来的资源或经济内置潜力来解决眼下的经济危机,最为令人印象深刻的就是“4万亿刺激计划”,从本质上讲,就是通过货币超发,提供更低门槛的贷款,刺激企业生产和民众消费,从而兜住经济下行可能跌穿经济承受能力的可能性。但是,通过超发放贷的方式,本质上还是透支和产生泡沫的行为,因为贷款必须要还,放出去的钱在市面上引起通胀,但企业和个人仍然要为贷款买单,出来混总是要还的。因此,在之后的几年内,整个国家经济都在消化这些泡沫,整个社会经济呈现出两种趋势:1)由于还贷压力带来的逐步紧缩;2)由于经济惯性带来的持续泡沫。

面对这两种趋势,很有可能在下一个周期到来的时候,泡沫还没有消化完。这种情况下,必须出台更猛的政策,透支更底层的信用来稳住经济发展。而当前这一波政策出台,很显然属于这种情况,不过从泡沫本身而言,中国最大的泡沫来自房地产和信贷。中国社会比其他国家社会更能找到泡沫点,普通人会妖魔化经济泡沫,例如“房价永远不可能跌”“P2P暴雷”等现象,已经司空见惯。

让经济泡沫破掉并不一定是坏事,一但该破的泡沫破灭,就可以有更大的空间来调整经济结构。但问题在于,没有一届政府敢于这样做,因为每一届政府有任期,一旦任期内致使经济倒退,人民生活受到影响,必然会在历史上留下骂名。而巧合的是,几乎每一届政府都能找到办法,除了少数,例如胡弗政府。一旦政府没有预估到实际情况,并提前采取行动,即使在危机发生后采取更大规模的措施,也无济于事,因为当经济泡沫破灭之后,人们的情绪会左右某些政策的实际实施效果,例如经济救市,人们不会因为经济宽松而加大消费,相反会首先解决自己的负债问题。

中国在这一点上有一个特点,就是居民的负债表长期为0,这是中国居民消费的一个特点,重储蓄,轻负债。但不可否认的是,08年经济危机之后,不少企业和地方政府的负债攀升,在影子银行等所谓信贷机构的催生下,居民负债也达到了史无前例的程度。可以预见的是,只要中国经济持续下去,这一趋势会越来越明显,整体负债会愈来愈高,直到遇到类似美国20年代或日本90年代的危机。

但就微观而言,这一波政策操作,再次释放了金融能力,会有一波新的民间企业通过信贷扩大规模,从而带动就业和消费。对于居民而言,一种方式是通过创办企业通过信贷的方式达到目标,一种是通过投资将自己的资金转化为实际的社会经济增长而获得回报。但就目前来看,这一波操作是否能够起到带动作用,还很难讲,主要还要看企业是否相信国家政策,是否愿意冒这个险去协助完成这次宏观经济操作。

08:58:56 已有0条回复
162019.2

昨晚改到2点多,对HelloType抛出的错误信息再次进行了整理。之所以要花那么多时间去整理,是因为我发现在平时使用的时候,特别依赖这个抛出的错误来判断真实的错误情况。之前输出的错误在展示具体类型的时候,丢掉了细节,在发现错误,回去看具体的原始数据和类型容器的时候无法完整的看到,而经过改造后,可以看到更具体的内容,又便于调试。

接下来还想做一件事,就是对traces进行升级,可以通过stack找到该trace产生的位置,并将这些trace的stack加入到eorror的独立属于中去,这样可以定位每一个判决在代码中的位置。

12:12:11 已有0条回复
152019.2

慎用import/export嵌套

今天遇到一个极其蛋疼的情况,两个js模块,相互循环引用,造成一个bug。

// a.js
import { SomeB } from './b.js'

export const SomeA = 'aaa:' + SomeB
// b.js
import { SomeA } from './a.js'

export const SomeB = 'bbb:' + SomeA

接下来我在一个文件中使用模块b:

// c.js
import { SomeB } from './b.js'

console.log(SomeB)

你知道会得到什么结果吗?总之是得到错误的结果。在chrome中直接运行会直接报错,说a.js中的SomeB未定义。这……

其实这是真的。因为a.js和b.js相互引用,导致的结果就是,无论是谁,在执行的时候,都需要另外一个模块加载完成才能进行自己的解释。这就很蛋疼:

c.js -> b.js -> a.js -> b.js -> a.js ...

而js解释器一般会灵活处理,即不会死循环的去如此解释,而是在发现循环的时候,就直接结束,即:

c.js -> b.js -> a.js $

但是,当a.js需要b.js所带来的上下文时,实际上b.js还没有被解释,因为b.js依赖a.js的解释结果,因此,在a.js中,SomeB被认为是not defined,这已经不是TypeError,而是ReferenceError,也就是在上下文中,该变量未被声明。

因此,千万不要循环引用啊,切记切记。

17:01:03 已有0条回复
022019.2

现代浏览器已经不需要babel和webpack了

在Robust中,我提到说babel和webpack具有时间节点上的意义,但是现在看来,这个时间节点已经过去,它们可以功成身退了。怎么讲?我们使用babel的主要目的,是将js高版本的语法编译为低版本语法,以在前几年时间里,浏览器还没有跟上节奏,很多新版本特性没支持的情况下,解决临时问题。但是,现在不同了,大部分新特性浏览器都会提前埋好,标准出来时,浏览器已经支持了。而且,很多特性我们之前不敢用,我们担心某些浏览器不支持。但是随着时间的流逝,可以确定的是,两年前的特性浏览器一定已经支持了,只是新发布的标准还是比较难确定的。而比较激进的chrome,则大部分我们需要的特性都是支持的。我觉得,ES2018发布之后,我们就可以不需要babel了,因为99%以上的语法浏览器都支持了,其中最重要也是最慢的,就是object spread/resest这个特性:

var obja = { a: 1 }
var objb = { ...obja, b: 2 }

这个特性已经成为标准的一部分,那么基本上我们需要的特性都有了。我们对ES标准,已经没有太大的要求,只希望它慢慢迭代,更正和修复一些小问题了。

除了特性支持以外,模块引入也已经被支持了。我们不需要通过webpack来打包,支持我们写的import/export语法,浏览器原生支持这些语法。

<sricpt type="module">
import SomeModule from 'http://xxx/somemodule.mjs'
</script>

它的工作方式非常符合我们的理解,这使得我们完全可以放弃AMD那种复杂的模块引入方式,这就让曾经传言浏览器内置require.js这样的传言不攻自破。

另外,还有一个特性,即tagged string tempaltes,这个特性可以直接替代jsx,ES本身就支持类似jsx那样的语法,只是需要一个tag解析函数而已,而这些都是在运行时可以完成的。举个例子:

import { jsx } from 'https://xxx/jsx'

const vdom = props => jsx`<div class="${props.className}">${props.children}</div>`

ES本身就支持通过一个函数去解析字符串,然后返回任意形式的数据。这样一来,字符串模板本身就可以实现和jsx相同的功能。当然,还是有一点不同,jsx是需要编译的,编译后直接生成代操作的程序代码,在运行的时候,不需要经过解析解析模板这个步骤,省了一些性能。而如果运行时去解析字符串模板,可以缓存,因为字符串本身的结构不会变化,但是比较复杂的结构,还是需要每次都去进行解析模板,所以,性能上会有消耗。但无论如何,ES已经给了我们这样的能力,我们完全可以抛开babel,99%的代码都可以运行。

11:21:59 已有0条回复
252019.1

地铁上看到有个妹子特别有气质,看到她手上提了一个写着guerlain的包,然后就google了一下,原来这是一个法国的牌子,主要做护肤品,果然,好看的妹子都在用法国牌子,怪不得网上看法国的妹子都很特别,长相上不一定是最出众,但是气质一定是不凡,果然是浪漫国度呀。

21:24:56 已有1条回复
  1. 我要看气质妹子。
    #728 苦瓜 2019-02-18 22:01 回复
242019.1

办公室阳光

深圳的天气,可能是不会有冬天了

09:51:25 已有0条回复
222019.1

日志 谢谢这个世界宽容孤独

感谢今天的小姐姐再次说看我博客温暖,但实际上我并不是用热情去宽待这个世界的人,我是那种典型的从一开始对别人怀以最坏的恶意的那类人,所以,一般生人遇见我都会留下不好的印象,而且,我听到的最惨的是“怕”,她说怕我,我不曾想过,原来自己还自带恐怖阴影。像我这样的人,感觉也会不少的吧。我们不大会相信别人,比较独立,不擅长也不屑于表达自己的真实情感,做事认真到忘我,有时候忽略正确的场合该做的正确的事,时而对这个世界不抱希望,但仍然坚持做好自己想做的事情。

每个人都不一样,就拿“处”来说,有些人喜欢置身人群中,独处时觉得浑身刺痛;而对于我这类,却是独处时安然自若,聚会那样的场合不自在,总想快些脱离。

这世界之所美,并不因为它拥有数不尽数的美,而是因为宽容,因为多样性。她宽容不美,她宽容惨淡冰冷,她宽容失败,她宽容贫穷,她宽容孤独。那些处在美丽世界之外的人,总有自己的容身之处,或许,美是人人追求的,但这世界宽容那些求而不得的人。立于这世,所追求的是成功也好,是功名利禄也好,是虚于表面的浮华也好,是任何东西,有一面,就会有其他面。这世界不只有黑白,还有那些介于两者之间的被宽容者,他们就像两极间的力场,拉扯着两端,拉扯成这个世界。听上去多伟大啊,但就有多悲惨罢了。

很多年,我都无法忘怀读到朱自清那句“热闹是它们的,而我什么也没有”,那种孤独,连荷塘中的蛙,都比之开落。世事总是无常,能聊几句算得上什么呢?“聊几句之交”“寒暄之交”“点赞之交”?就这样吧。终会有那么一些人,他们看到你的孤独,发现你的光芒,然后靠近你,用自己的温度点燃你。所以,继续做好自己想做的事,安静等待。

23:45:47 已有1条回复
  1. 真正的孤独,就是习惯了孤独、
    #727 小鱼儿 2019-02-12 12:36 回复
212019.1

陆续收到听众的打赏,虽然不多,但是点燃了我的热情,才仅仅做了一期的Robust而已,没想到认可度很高,想我这种喜欢打持久战的人,一期根本满足不了。因为周末要去山西参加朋友婚礼,顺带完结多年想去北方玩的冲动,所以,下一期的Robust会早发(不会停更),我会趁晚上的事件陆续录好,周末之前上传到电播平台,Robust只会上传到企鹅FM和网易云音乐,其他平台要是转载,一定是盗版……竟然开始幻想盗版的事……公众号也会发,关注我的私人公众号 wwwtangshuangnet 最快收到上新消息。

12:56:26 已有0条回复
192019.1

关于佩琦,我真的很想骂街

首先,小猪佩琦和天线宝宝属于一个级别的动画片,是早教类的动画片,不应该赋予更多含义,一旦刻意提升它的含义,会让整个片子异常诡异,属于毁童年系列。对佩琦的炒作,失去了动画片本身的意义,用商业的方式使它成人化,会带来一些文化上的问题,即文化失判,普通人无法判别什么属于正形态文化,什么属于逆形态文化。所谓逆形态文化,简单的说就是“弱智”文化。文化本身并无对错,但是文化的正逆会影响社会发展的朝向,而社会发展具有惯性,一旦在某个朝向运行,就会由于惯性很难回头或拐弯。由于市场经济会裹挟任何独立个体一起向前推进,所以市场经济中的主体,会有意或无意的利用市场本身歪曲事实,美化虚构,这就是所谓的市场营销。正态文化社会中的个体,对虚构和现实有比较好的区分力,他们可以同时认同来自商业虚构的美轮美奂和现实生活的枯燥乏味,比较好的例子是日本和香港。而逆态文化社会中的个体,则很难区分,因此,也比较容易受媒体的摆布。在小猪佩琦这个热IP下,我看到更多的是“逆态”心理的蔓延,作为普通消费者,认同和消费是两件事,我们认同某些理念,但我们不需为它买单,这是最基本的商业社会规则。我们可以认可某些东西,也可以否认某些东西,我们更可以忽略某些东西。叫好和叫坏同时出现,并且不互怼,是正态文化的基本特征。一片认可声,从传播者(媒体)的角度,是裹挟消费者的虚构过程,是市场营销的需要,是“蹭热度”,是市场经济的主动性驱动,无可厚非。一片认可声,从消费者(受众)的角度,是对懒于思考的妥协,对商业宣传的主动投降,对逆形态文化的得过且过。我不认为商业公司(组织)不断烘托佩琦这个虚拟形象有什么非议,但是我着实担心作为社会,特别是市场经济社会中独立个体懒于思考感到担忧。我们关注一个事件,从而忽视这个世界上还有很多好玩的事;我们被迫关注一件事,发现身边的人都在弱化自己作为独立个体的主动性。

其次,我们应该关注“老”的生活。中国社会老龄化是必然趋势,对“老”的关注将会是未来20年的重要话题。什么是“老”?多少岁算老?我个人认为,当一个人无法按照自己的自由意志自由生活的时候,就是老。这里面分两种情况,一种是被动的无法自由,比如经济条件不允许,另一种是主动放弃自由,比如过早成家生育。自由的本质是,有对任何要求说“不”的权利,任何情况下,都有选择。如果一个人,不保持学习,不保持好奇心,不对探索这个世界的未知有冲动,那么他便主动放弃了自由,这不是因果联系,这些现象仅仅是他主动放弃自由的表象,真正的原因在于,往往是他懒于思考,主动弱智。所谓富不过三代,就是因为富二代放弃思考,主动弱智。对于中国人而言,“老”是一个非常固定的模式,中国的很多老人只做一件事,即“关心子女”。不关心子女的老人有两类,一类是丧失了子女,另一类是“没心没肺”。其实,市场经济下,家庭关系除了血缘关系之外,应该用经济关系去约束,所谓经济关系,本质是契约关系,即“签定合同”。家庭成员之间签订合同听上去是无理取闹,但形式上,实际家庭成员之间通过资产的形式自然形成了契约,例如夫妻之间资产平分。延伸到父母与子女之间的关系,本质上也是血缘关系和经济关系的集合。在血缘关系上,两者之间具有伦理上的约束,例如父母对子女的教育,以及子女对父母的赡养(子女对父母的赡养其实是可选的)。但从社会结构上看,两者之间很大程度上还是经济关系。在中国,子女赡养父母是义务,非常大的原因是传统。但本质上,父母的赡养,应该是由整个社会承担,子女应该通过缴税的形式,为赡养提供更为高效的运行机制。当家庭关系在赡养问题上解体之后,老人不需要对子女负责,因此不需要多余的关心,不需要对子女的生活进行任何干预,不需要为子女承担任何义务。解放后的老人,在身体条件允许的情况下,可以自由的选择自己想做的事情,想学习的科目,想切身体验的世界。

最后,我们是该学会如何去“爱”了。爱是一个共同的话题,古今中外。爱的本质是什么?爱的本质,是support,即支持。它的形式有多种方式,但最终表现为正态的推动所爱之人往更自由的领域前进。爱情的爱,和亲情的爱,本质上是一致的,是基于自身对自由的追求,而发出的对他人追求自由的支持。因此,爱最重要的是理解、尊重和鼓励。对爱的理解力驱使我们对自由的追求力,我们爱的能力决定了我们老时,是在原地等待,还是在前进的路上仍然可以给予所爱的人support。

02:13:18 已有0条回复
182019.1

Mimic Relative Positioning Inside an SVG with Nested SVGs