技术

技术

啥是稳定币以及咋研究这玩意

CIRCLE的股价自从6月5号 上市之后,从发行价的25刀一路涨到220刀, 翻了9倍。随之而来的就是各路媒体,自媒体上的各种讨论,”啥是稳定币“, “GENIUS法案是啥”,“稳定币凭啥稳定”,“CLEAR法案又是啥”。 作为一个从2024年开始在币圈边缘讨口子的菜鸟,希望能通过这篇文章给大家一个扫盲。 开天辟地之比特币 2009年,有个叫中本聪的哥们,由于各种原因,提出了比特币这个概念。比特币当时集合了几种很玄乎的概念,但是其核心就是: * 用一个叫比特币的代币来进行交易 * 没有传统的账号密码系统。通过密码学,任何人只要能证明对账户的所有权(私钥)即可控制账户里的资产 其他去中心化啊什么的都不重要,简单理解就是这哥们建立了一套独立于银行之外的支付体系,并且不需要通过银行来进行认证,任何人都可以创建一个私钥,然后开始交易。 比特币之我钱呢? 随着比特币逐渐走入大家的视野,很多人发现了这个系统的巧妙之处:几分钟就可以转账;手续费低廉;最关键的是账户全是匿名的,方便搞一些见不得台面的东西。 于是在各方利益相关推动之下,比特币居然真的成为了共识货币。这里我们也不讨

By andy

工作

如何建立自己的PKMS(个人知识系统)

学习的本质就是记忆 纸笔模型 念书的时候很多人都有做笔记的习惯,我也不例外。上课的时候我习惯的会把课堂笔记写在书页的边角,课后再转抄到笔记本上。一方面重抄强化了记忆,另一方面我会在重抄的时候把散落的知识点整理一下,让它尽可能有条理。 课程在编写时有考虑到知识的连贯性,所以对于课程的知识图谱很容易被梳理出来。我把这种模型成为“纸笔模型”。它基于几个假设: * 每个知识节点在创建后基本趋于稳定,不会有过多修改。即便有修改,数字化后的纸笔模型也是“修改友好”的 * 节点之间的联系稳定且有限 * 完整的知识图谱内容有限,体积不会太大 * 节点是随时间添加,检索起来也比较方便,比如按教科书章节检索 纸笔模型的挑战 工作了之后,我也有尝试过很多次做工作笔记,却收效甚微。和学习笔记不太一样,工作中接触到的知识很散乱。更多的时候需要快速学到一个全新的领域知识,然后应用在工作中,然后再学习下一个领域知识,循环往复。学到的知识本身也会随着时间被更新,或者推翻。这些工具/知识之间并不甚相关,导致了知识的碎片化,并且很难被检索。 这时,纸笔模型的假设受到了挑战:知识点之间的联系微弱,

By andy

Uncategorized

工作学习论

特别鸣谢宫师姐校对 ——甚至这个鸣谢也校对过了 今天突然想写点关于方法论的东西。 起因是组里有个小哥跳槽了。我和他一起做过他离职前最后一个项目——接触之后,我对他的离职早有心理准备。和他导师聊了之后,我们都觉得他缺少工作中学习的能力:和他工作非但没法把工作分出去,反而会给自己增加很多答疑的工作量。 细想之下,小哥在工作中体现出了学习能力和写作能力的不足,导致合作双方平添了许多不必要的工作。如果他能够做到会提问题,善用搜索,勤记笔记,我想我们的合作会更加愉快。 提问的艺术 刚开始工作的时候,我经常会问组里高工(Senior)一些很蠢的问题,要么是太泛没法让人回答(比如“Docker 是啥啊?”),要么是对方不知道从哪个角度来回答你(比如“我该咋用Docker部署啊?”)。在我读了《提问的智慧》之后明白了一件事:一个问题,你问的越具体,事前做过越多的研究,被问的人越好回答你。而越含糊,无脑的问题,别人越难回答。 “在for循环里应该用i++还是++i”就比“这个循环应该咋写”好回答。前者把问题聚焦到一个很小的范围,提供了上下文(是for 循环不是while

By andy

技术

CL描述信息的最佳实践

翻译腔依旧 Change List(CL) 是一个公开的,包含有“修改了什么”,以及“为什么修改“的记录。它会被永久的存储在版本控制系统里。并且,不仅仅是你的组员,其他部门甚至其他公司的工程师也常常会参考这些CL描述。 如果你的CL描述过于含糊,重点不明,或者只是简单的“修复bug”,“重构”,“重排格式”,那其他的工程师将很难通过仅仅阅读CL描述来理解你做了什么。同理,当你在阅读别人的CL时,你也不想每次都阅读长长的代码,而是希望有一个简短精准的描述告诉你他/她做了什么。因此,本文档将概述如何写易读易懂的CL描述。 第一行 * 简短描述你在CL里做了什么。 * 完整的一句话,尽量使用祈使句。 * 后面加一句空行 CL描述的第一行应该是一句简短且具体的做了什么的总结,和一个空行。因为大多时候代码搜索工具在显示历史树的时候,它会显示每个CL的第一行。所以第一行应该具有足够多的信息量,这样其他工程师不必点开每一个CL,阅读它完整的描述才能知道这个CL做了什么。 按照传统,CL描述的第一行应是一个完整的祈使句。比如,说“Delete the FizzBuzz RPC an

By andy

周记

Libra 币

蹭热度一时爽,一直蹭一直爽 昨天FB宣布了他们自己的数字货币Libra 币。各路新闻纷纷报导顺带着把FB的股价推高到了194。昨晚的新消息是各路机构开始呼吁要对Libra加强监管,审查等,又把股价拉了回来。 那么问题来了,要知道市面上各种币数以十万计,为啥偏偏Libra币就能突然爆火?就凭他爸是FB? 简单来比对一下Libra币与其他数字货币 储备金支持 数字货币被人诟病的问题之一就是背后缺少储备金支持,导致空气币满天飞。这家吹完自己的一个币能够在北上换一套房,那边就敢吹自己一个币就能让马一龙带你去火星转一圈。与之相反Libra背后有着储备金的支撑,换句话说就类似你把钱存进银行,你的账户上多出来的数字是有着真正的金钱对应的。所以风险相比其他数字货币低很多。 稳定币 Libra号称稳定币,会与当地法币依一定比例稳定兑换,因而相比比特币更具有交易属性。比特币的波动性使它的投资(机)属性远大于交易属性 挖矿 根据白皮书所说,Libra Coin 的唯一获取途径就是通过法币向Libra 机构购买(是不是很像Q币?),并且销毁途径是用Coin从机构回购法币。而非比特币通过奖励的

By andy

c++

std::move

21天是肯定没法学会C++的。22天也不行。 C++11里引入了一个新的概念 :移动。 这个概念说简单其实很简单,因为它是介于拷贝和引用之间的一种概念。但还是有很多小伙伴表示不理解移动到底做了什么,如何理解移动。 要想理解移动,先来介绍一个概念:左值与右值。 左值与右值 笼统来讲,左值就是能够对其取地址的值。反之就是右值(临时变量也是右值)。比如1, 2.0, true, nullptr这种纯值类型,就是妥妥的右值。再比如 int a = 100; , a是左值,100是右值。在给a赋值的过程中,我们将右值拷贝到了左值。(其实并不是完全这样,编译器会做一定程度的优化,但为了方便理解,我们不考虑编译器的功劳) 两个栗子 在早期C++里,我们通常用指针或者引用来传递一个‌大变量,因为可以避免一次拷贝的开销。第一个栗子:如果我们有一个比较大的右值变量,我想将它传递给其他的函数,该如何避免/减少拷贝的开销呢?比较熟悉的朋友可能会说,我们可以传递 const

By andy

周记

华为手机

科技博主来蹭政治热度了 昨天收到了一个朋友的微信消息: XX,请教你下,这次Google禁华为,到底是哪些功能不能用了?我没大看明白:一个是以后的OS都不更新?然后所有Google 的apps 都禁止下载?那访问呢,比如已经下好的apps? 为了防止消息不准确造成的错误解读,我是等到了今天白天看了一圈新闻之后才打算写这个博文的。 首先回答下小伙伴的微信: * 哪些功能不能用:Google play,GMS 等Google原生的app * 以后的OS都不更新?:不,按照现在的Android 开源授权,依旧会有更新,只是没有办法预览新系统。 * 所有的Google apps都禁止下载?:应该是 * 访问已经下好的apps?这点没有任何确认的消息,有可能已经存在的app可以继续使用,也有可能无法访问服务器了。 接下来谈一谈短期与长期的影响。 短期影响: 对于国内来说,这个短期内几乎没有影响。毕竟国内用不了Google 全家桶这已是既定事实了,那官宣不支持也没有什么大影响。毕竟大部分服务在国内已经有了本土化的替代品。而从操作系统上来说,Android 是开源的,所以华

By andy

c++

所有权与智能指针

没错,技术博主开始写技术文了 从我开始学C/C++的时候,指针和内存管理就是最让我头疼的东西:要么是忘了释放内存造成内存泄露,要么是多重释放造成了访问失败。甚至有些时候一个方法有多个返回语句的时候还要在每一个返回语句前释放一下内存。当时就在想为什么不能像Java一样有一个智能的垃圾回收器,来管理所有的内存呢。 这个痛点一直困扰到我开始学STL。原来STL早就考虑到手动释放内存的繁琐,所以提供了多种智能指针:auto_ptr, unique_ptr, shared_ptr, weak_ptr,并引入了“所有权”这个概念。大大简化了工程项目中的内存管理。也让我意识到我学的是假C++,真C(菜)。 所有权 单一所有权 两句话:所有权的拥有者有义务释放内存或转移所有权。同一时刻只会有一个所有权拥有者。 共享所有权 和用裸指针一样,所有权的拥有者不必负责释放内存,引用计数器会负责释放内存。同一时刻可以有多个所有权拥有者。 unique_ptr 重要的事情说三遍: unique_ptr 不能被拷贝 unique_ptr 不能被拷贝 unique_ptr

By andy