网摘与知识笔记杂弹
前言
忙活了许久,攻克了一个接一个的难关:
- Offline first with P2P
- 离线(本机)人机对话界面:尝试取代信息配置界面(目前还是需要二者结合)
- 钥匙链的构造规范
- 钥匙对(数字印章)代替注册与登录
- 公开数据的加密与签名规范与实施(部分)
- P2P数据存储与管理
- 基于矢量图(可无极缩放)的家谱树
- 离线(本机)人工智能识别人脸与身体
- 简易动画相片编辑器(自动移位、缩放动画到人脸或者指定位置)
眼看我的原型项目就快完成了,结果我栽在了同步上,没错,就是 PouchDB
引以为豪的同步操作,第一次同步没有问题。第二次同步就歇菜,一大堆的冲突错误,但实际上我根本没有增加任何数据,粗步怀疑后续同步必需保存上一次的last_seq
的值,这不科学,万一这玩意弄丢了,那不就再也无法同步到服务器了,这太Low了。我还记得,前面发现一个PouchDB的严重错误:在特定情况下(new_edits=false
)的bulkDocs
函数并不返回操作成功的的数据。然后PouchDB的维护者说,他必需保证和CouchDB的完全一致,CouchDB的Bug也必需在PouchDB完全重现,于是拒绝了我的PR,并关闭了Issue就当bug不存在!这脑洞到底该有多大。给PouchDB缝缝补补也有些时日,算了,累了,趁这个机会换吧,老早想换,因为PouchDB/CouchDB本来就不适合纯P2P(点对点)的存储,也就是人人都是中心的方式,P2P方式更类似于Git
,本来考虑到是原型怎么着都无所谓,做做试验,试水一下,忍忍就过去了,但是,直到今天,再也无法忍了,还是一步到位,直接上Git作为存储。在开搞之前,决定写篇文字放松放松。