292021.8

过去半年用Edge替换了Chrome,在运行上,感觉和chrome没有差别,甚至还有一些特别的功能,以及没有墙的感觉,挺好。但是,这两个月陆续发现Edge占用内存上升,CPU占用增加,另外还有一个微软的software update在那里一直跑,依依不舍,用回了chrome,瞬间电脑不卡了。。。卧槽,不卡了。。。今天还看到一个消息,Edge新标签页强制广告关不掉,真垃圾,作恶多端。

22:20:31 已有0条回复
272021.8

我写了一个vue全局状态管理器,被喷的五体投地

在知乎上看到一个问题,问“vue3下vuex是不是就没意义了”,便随手回答了一下,调侃自己对vuex本身的设计就表示不认同,主要的理由是vue本身支持直接修改属性完成响应式,而vuex却要学redux那一套定义mutation、action之类的,过于复杂,真正简单的方法,应该像vue本身一样,直接修改属性。于是写下了自己的想法:

const store = new Store({ a: 1 })
app.use(store)

然后在组件里面修改:

this.$state.a = 2

这样看上去多舒服,思路上和vue一致,定义全局状态时,也不需要复杂的mutation, action,只需要一个对象。这才是最符合直觉的vuex使用方式吧。

简单写完上面的想法之后,我就没管了,没想到过了两天,这问答下面都积累了50条评论,点赞也蹭蹭蹭的在增加,感觉要火呀

但是,当我看完这些评论之后,却高兴不起来,因为在这么纯粹的想法面前,各种抖机灵的评论都出来了。其中一个重要的讨论点在于,基于dispatch('SOME_NAME'的方式有利于调试,找到状态被修改的位置。我对这种辩解嗤之以鼻,大部分人根本没搞懂redux里面dispatch的设计思想,就在这里各种吹捧,他们无非把dispatch当一个带字符串标记的update看,而人家真正的设计是send(message)的理念,躺在两条河里还说洗的一个澡,我也是有点服。

不就是想追踪状态被修改的位置吗?我想,既然都已经提出来了,不妨实现吧,毕竟我造轮功力还是挺强的。简单翻阅了vue的文档,花了2个多小时,写了一个stupid-vue库。

https://github.com/tangshuang/stupid-vuex

使用方式如下:

不得不说,vue3的api设计比vue2合理了非常多,在vue2时代,我做相关工具的时候,非常吃力,但是到了vue3,所有api都是顶级暴露的,想要什么能力都可以组装出来,很厉害。

一通操作下来,这个包就这样发布了。

等一下,状态修改追踪呢?我利用了Error的特性,抓取它的stack,直接可以得到状态修改时,是由哪一行代码造成的。

看上图,通过点击浏览器里面的调试代码,就可以直接定位到源码的位置,这比所谓vue devtool给的一大串跳来跳去,只能看数据流,最后你还是不知道具体哪个位置带来的变化来的更直接吧。

多好。

故事就结束了

....并没有。“你这不符合单向数据流的理念”,WTF??在vue里面你跟我讲单向数据流的理念,入魔了吧。

我大部分时间都是用react来写项目,没曾想vue发展这么快,vue3真的很好用,唯一的不足在于它强依赖构建工具,如果能做到vue2一样直接浏览器引一个库,在运行时编译,那就很方便了。不过随着前端发展,这种依赖工具的框架慢慢成主流,也是正常的。

网络上会喷的人很多,但是,看一个人行不行还是要看他的行动力,只会喷不会造,这种人不必理会,提升自己的内功才是王道。

08:46:25 已有1条回复
  1. 确实直接new一个Vue拿来用其实就挺好
    #1085 1188 2021-08-27 15:39 回复
252021.8

certbot依赖版本低导致https自动续费失败

今天登陆博客时,直接被浏览器拦截,ssl证书过期了。很奇怪,因为我已经有快一年多没有理会了,certbot renew --dry-run 会自动帮忙续费证书,为啥现在突然无法访问了呢?然后准备登陆服务器,额。。。太久没有登,用户名密码全部忘的干干净净,哎。折腾了很久,终于登进去了,然后各种折腾,忘记了certbot的命令,幸好自己有写博客的习惯,当时开https的时候记了一笔,顺藤摸瓜,找到certbot的官网,才找出命令。跑完renew之后还是报错,这就让我很尴尬了。再经过一番搜索和折腾之后,原来是之前的版本不再支持,所以证书到期之后,自动续费机制失效了,但是这个我并不知道。搜了一大圈,最后在国外的一个网站上找到一句话,yum update certbot,启发了我,想是不是要升级certbot,于是折腾升级完毕,再renew,果真可以了。世界上真的没有一劳永逸的东西。

23:09:23 已有0条回复
062021.8

全真互联网、ipfs、元宇宙

2020年我第一次接触了“元宇宙”的概念,那时我觉得它好像是一个哲学意义上的概念。今天,我联系了前两年年会上pony提出的“全真互联网”的概念,隐隐觉得,这一概念越来越清晰。简单讲,“元宇宙”和“全真互联网”是在描述一件事情,即线上是真实自我。这件事确实挺有意思的,最早的QQ用户给自己使用一个卡通头像,给自己取了一个独特的网名,实际上就开启了一个新的时代,即在线上拥有了一个新身份。这原本是一个小众市场,但随着互联网的发展,各种不同的人都挤进来,以至于最终这种独特的身份被堕落为谁都可以拥有的身份。慢慢的,这种独特身份不仅不独特,反而很多坏人利用网络来散播谣言、控制舆论等等。

元宇宙的概念会比全真互联网更大一些。我们先看看全真互联网吧。它的核心理念在于,你可以在线上做任意的事情。听上去,好像没有什么,因为我们觉得我们现在确实可以在线上做任意的事情了。但是,我问你,你可以在线上自己改装一个车吗?实际上,你在线上没有一个车,或者只有一个不属于你的车。目前的线上,没有一个可以让你改装的车,所以,你不可能改装这个车。但是,现在有一款游戏,叫做“我的世界”,你可以在里面造自己的房子,你可以邀请你的朋友过来参观,给房子做一些点缀,甚至开party。是的,这就是全真互联网,目前还比较低级。笼统的讲,就是你在网络中可以做现实中的事情。以程序员的角度,你可以在这个世界里,去收集芯片,制造自己的电脑,并且为电脑编程,写一个操作系统,这个过程全部在网络的世界中完成,而非现实世界。怎么样,有没有一种科幻片的即视感?你怎么知道现在的你,是不是别人在网络世界中制造出来的一段代码而已?

好了,我们现在为这个世界再增加一点难度。你不仅制作了这台电脑,而且,你现在可以卖掉它。虽然你无法收到现实世界的法币,但是,你在网络中将获得一般等价物,并用它们来购买别人制造的其他有意思的东西。你看,这个世界是不是突然丰富起来了?

今年突然火起来一个东西叫NFT,它是基于区块链的资产转移证明。简单讲就是,你有一个数字内容,比如用PS做的一幅画,你打算把它卖掉,但是,买它的人希望获得它的独家版权,或者拥有它的完整的所有权,此时,通过NFT交易,你把这幅数字画的所有权转移给了买它的人,而交易的过程,可以使用法币也可以使用数字货币偿付,当然,更加推荐数字货币,并且将数字货币的转账交易和NFT凭证绑定在一起。

讲NFT是为了结合前面所讲的,当你在这个网络的世界中和别人进行交易之后,你怎么能确保你的交易是和现实世界的交易一样具有信用。

你可能想到了电影《头号玩家》,是的,元宇宙的概念因为这部电影更加的清晰。但是,元宇宙和头号玩家中描述的游戏“绿洲”还是有所不同。先看相同的地方,在“绿洲”中,每个人拥有一个自己的身份和形象,并且你可以在里面完成现实世界中的很多很多事情,比如赚钱、购买、社交、战争等等。但是,元宇宙和“绿洲”最大的不同在于,元宇宙一定是去中心化的,它不能由某一个公司创造或维护,它是像比特币一样一旦上线之后,就有共识机制维系的系统。

这也就让我想到ipfs,这个期望称为下一代网络而取代中心化的互联网的家伙。现在的区块链项目,10个有10个都是与具体的币挂钩,而ipfs它解耦了去中心化项目的各个部分,其核心是ipfs协议,当然,基于这一协议,你可以搭建起类似区块链或比特币这样的应用,但是单纯ipfs而言,它是比区块链更底层的技术。(你可以把区块链当作数据库,而ipfs当作http。)

只有基于ipfs这样的协议建立起来的元宇宙,才是真正的元宇宙,它有自己的共识机制,满足人们的网络身份和数字资产交易的兴趣。

23:53:48 已有1条回复
  1. 现在元宇宙的概念很火啊,我们老板前天也给我们讲了讲这个东西。
    #1082 羡鱼 2021-08-18 16:57 回复