是智慧在追寻智慧。 初学者的心是开放的,而行家的心是收紧的。 我们的本心内含万物,它本自具足。 如果你的心是空的,它可以随时接受任何事物;它向所有的事物开放。初学者的心是开放的,而行家的心是收紧的。 分别心太重,是自我束缚。太过苛刻和贪婪,你的心便不会丰饶富足。而失去了本自具足的心,我们会失守所有的戒律。 当我们没有成就的思想,没有自我的思想,我们就是真正的初学者了。 最大的困难在于始终保持你的初心。 永远做一个初学者。…
TingHu语录📒
大多数人最后跑不赢比特币这句话我都不知道讲了多少次了(实际上最后很多人还亏钱)。 如果你指望我通过推荐你买小山寨跑赢比特币,那还是别关注我了,我没有办法给出我认为合理的建议。 现在说也许还早,但是大家可以记住这一条,年底筛选投资标的的时候, 2019-2021这轮牛市表现一般的老币,全部不作为目标,也许有个别会例外, 但是,不值得浪费时间,除非你有一双慧眼。放了那么多水都没拉起来的老币,还有什么前途可言? 公链烧钱大战没起来的公链基本也没戏,因为没人愿意花钱烧啊~ 熊市不要给自己心仪的币太提前定接的心理价位,起码等人至罕见处再考虑 回答一个私下问的比较多的问题,小资金如何做大? 很多人存在一个误解,觉得小资金只能玩土狗,赌合约,才能快速实现资产跨越,结果越这样操作,结局越惨。 由于总会突然出现(尤其牛市中)或真或假的“身边人”突然赌了某个土狗或者玩了高倍合约积累了第一桶金(可能只是浮盈,并未兑现), 被刺激到了。 这其实就像中了大奖一样,这种因为运气突然浮盈巨大的操作如果后续没控制好,还会灰飞烟灭。 事实上,大家现在应该也能看到了,熊市才开始没太久,这样的“身边人”基本已经消失了,甚至由于一直赌, 已经是亏损状态了。他们存在唯一的意义就是放大了一些人的贪欲,刺激了很多人的内心。 越是钱少的人,越是寄希望赌博来暴富!这种心态不改,就很难真的能够实现持续稳定的赚钱, 你要知道,凭运气赚的钱终归会凭“本事”亏回去,除非及时停手,可是尝到甜头的赌徒怎么可能会停手呢? 但是一味的劝大家不乱投机,好像也没什么非常好的效果,人心和人性本来就是不可控的! 我觉得我不一定能够给大家提供多好的建议,但是也许可以给大家提供一点经验?具体用的效果如何可能就看大家自己了。 另外,多少资金算小资金?这个定论也不一样。 但是我觉得现在送个外卖一年起码也能存个好几万吧?所以暂时把5-10万定义为小资金吧! 上正菜,今年有个可能比较特殊的点,就是比特币可能不会有那么剧烈的波动,这意味着比特币不可能飞多高, 也可能不会跌太低,总体以震荡为主。做波段最担心什么?卖飞和一直跌对吧! 那么这就给了小资金做波段的机会!只要你能克服卖了怕飞这个心态, 今年波段就有的做。“牛来了”卖,“熊来了”买。 加点盐🧂 钱少的,又没交易能力的,我真心劝一句,这两年好好打工赚钱!省吃俭用,搞个20万,然后不要瞎搞, 下轮牛市,20变200万还是简单的。不要想着100倍直接变2000万, 有惊喜更好,没惊喜再积累。不要想着一步登天!…
About Rust Raw Pointer
在Rust中可以使用原生指针,原生指针是一种裸指针,不受Rust的安全性检查限制。 原生指针有两种类型: 和 ,分别是不可变和可变的原生指针。 Rust提供了一个函数可以获取类型的大小: 。 这里提供了一个简单的例子,展示了如何使用原生指针。 原生指针是一种裸指针,不受Rust的安全性检查限制,可以直接操作内存。但是使用原生指针时需要特别小心,因为可能会导致内存安全问题。…
学习Ocaml的资源
Introduction to Objective Ocaml Objective Caml 简介。 OCaml from the Very Beginning 一本非常温和的教科书,推荐用于本课程。本书的 PDF 和 HTML 格式都是免费的。 A guided tour [ of OCaml ] 《真实世界 OCaml》这是一本由一些康奈尔人写的书,一些学生可能会喜欢阅读 The history of Standard ML 虽然它重点关注 ML 语言的 SML 变体,但它与 OCaml 相关 The value of values Clojure(Lisp 的一种现代方言)设计者关于命令式编程时代如何过去的讲座 Teach yourself programming in 10 years…
About Rust tips
在 Rust 中,如果你想为你的 中的类型编写带有可选的 的测试,你可以使用 属性和 属性来做到这一点。 以下是一个例子: 在这个例子中, 只有在 被启用时才会被定义,同样, 测试也只有在 被启用时才会被运行。 要运行这个测试,你需要使用以下命令,其中 是你的 的名字: 这个命令会启用 特性并运行所有的测试,包括依赖于这个特性的测试。 要将 转换为 ,可以使用 中的 方法。下面是一个示例实现: 在这里,我们使用 将 转换为迭代器。然后调用 ,传入一个初始值 和一个闭包,该闭包接受两个参数:一个累加器( )和一个 。…
Rust Resources Every Learner Should Know in 2023
去年,我开始学习Rust,主要是为了应用于嵌入式系统。当时,我也在一篇名为“ 35个Rust学习资源,每个初学者在2022年都应该知道 ”的帖子中分享了我所遇到的所有学习材料。自那时以来,我并没有停止学习 Rust,而是不断努力巩固自己的基础。因此,我一直在寻找新的学习资源。 在本文中,我将通过添加更多的资源以及对之前未曾利用的一些付费资源的思考,扩展去年的帖子。提醒一下,当时,我将资源分为了6个主要类别:1)阅读材料,2)实践资源,3)YouTube 视频,4)Git 资源,5)速查表,以及6)问题论坛。今年我增加了3个更多的类别,它们是7)课程,8)播客,以及9)新闻通讯。在相关情况下,我还将为资源的级别添加注释,无论是初学者(👶)、中级(👨),还是高级(👴)级别。 我想再次强调,我的学习之旅始于 Rust 官方的语言资源“the book”,然后我主要通过完成令人惊叹的 Rustlings 练习来练习。我在本文中提到的所有其他资源都是我在学习过程中遇到的,以澄清我在“the book”中阅读的概念或当我在某个 Rustlings 练习中遇到困难并希望进行更多探索时使用的。最后,当我被问及是否会因为手头的资源而学习 Rust 时,如果有的话,基于手头的资源,我可能会首先从下面提到的快速摘要资源开始,然后再着手“the book”。如果我要选择付费资源,那么“Beginning Rust”将是我选择的书籍。 👶 《Rust 指南》 是 Rust 编程语言的一步一步指南。它很好地概述了语言,并允许学习者修改代码示例以进行实验。…
Rust no-std
改写 std 的库为支持 no_std 的库及写出一个支持 std 和 no_std 库的经验谈 github repo 。 首先介绍 std 和 no_std 的区别,然后介绍使用 no_std 库的方式,由于支持 no_std 的特性有两种不同的方式,因此使用 no_std 库也有两种方式。其次,验证一个库是否支持 no_std 特性的验证方式,如何改写一个 std 的库为同时支持 std 和 no_std 的特性方法。具体的如何写一个支持 std 和 no_std 的库。一些在 std 和 no_std 下都可以使用的 primitive 的仓库和相关的资源和文章。…
Nothing in Rust
我假装这里有东西,但实际上没有。 PhantomData 这里现在是空的 Null Option::None 这里永远不会有东西。 The empty tuple 我会让你一直等到时间的尽头,空手而归。 The never type 这是一个关于 Rust 语言中表达“nothing”的一些方式的短篇选集。 在编程中,“nothing”这个概念有几种不同的解释: “我假装这里有东西,但实际上没有。” “这里现在是空的。” “这里永远不会有东西。” “我会让你一直等到时间的尽头,空手而归。” 虽然这听起来像是我的前任说的最后一句话,但我很好。 Rust标准库中有很多高质量的代码,但是很少有像 这样纯净优雅的示例。(它的实现和 一样优雅纯粹。)…
Learn Ocaml in Y Minutes
OCaml 是一种经过严格评估的函数式语言,具有一些命令式功能。 它与标准 ML 及其方言一起属于 ML 语言家族。 F# 也深受 OCaml 的影响。 就像标准 ML 一样,OCaml 具有可交互使用的解释器和编译器。解释器二进制文件通常称为 ocaml ,编译器称为 ocamlopt 。还有一个字节码编译器 ocamlc ,但使用它的理由很少。 它还包括包管理器 opam 和构建系统 dune 。…
翻译-区块链间通信协议:概述
区块链间通信协议(IBC)是一个端到端的、面向连接的、有状态的协议,用于在独立的分布式账本上的模块之间进行可靠、有序和认证的通信。IBC是为异质账本之间的互操作而设计的,这些账本排列在一个未知的动态拓扑结构中,以不同的共识算法和状态机运行。该协议通过指定足够的数据结构、抽象和通信协议的语义来实现这一点,一旦被参与的账本实施,它们就可以安全地进行通信。IBC与有效载荷无关,并提供了一个跨账本的异步通信基元,可作为各种应用的组成模块。 Index Terms—ibc; interblockchain; dlt 由于其作为复制状态机的性质,必须在其上保持确定性的执行,因此必须保持对确切的确定性规则集的持续认同, 单个分布式账本的吞吐量和灵活性都是有限的,必须用特定的应用优化来换取通用能力, 并且只能为建立在其上的应用提供单一的安全模型。为了支持交易吞吐量、应用多样性、成本效率和容错性, 以促进分布式账本应用的广泛部署,执行和存储必须被分割到许多独立的账本上,这些账本可以同时运行,独立升级, 并以不同的方式进行专业化,其方式是保持不同应用之间的通信能力,这对于无权限创新和复杂的多部分合同至关重要。 一个多账本的设计方向是将一个单一的逻辑账本分散到不同的共识实例中,称为 “分片”,这些分片同时执行并存储状态的不相干部分。 为了对安全性和有效性进行全局推理,为了在分片之间正确路由数据和代码, 这些设计必须采取 “自上而下的方法”–构建一个特定的网络拓扑结构, 通常是一个单一的根分类账和一个星形或树形的分片,以及工程协议规则和激励措施来执行该拓扑结构。 然后,消息传递可以通过Polkadot的XCMP [ 1 ] 和Ethereum 2.0的跨分片通信 [ 2 ] 等系统在这种分片拓扑之上实现。 这种方法在简单性和可预测性方面具有优势,但在保证状态转换的有效性方面面临着困难的技术问题 [ 3 ] , 需要所有分片都遵守单一验证器集(或随机选出的子集)和单一虚拟机, 并且由于必须就网络拓扑结构或分类账规则集的改变达成全球共识, 因此在随着时间推移升级方面面临挑战。此外,这种分片系统是很脆弱的:如果超过了容错阈值, 系统需要协调全球停止和重新启动,并可能启动复杂的状态转换回滚程序–不可能安全地隔离网络图的拜占庭部分并继续运行。…