神奇的海底捞生日之旅

今天是我的生日。昨晚大概12点的时候,我跑去了海底捞,想着蹭一蹭海底捞的生日面。

由于海底捞一直人比较多,所以我提前做了预约,另外一方面,总的来说,我还是一个比较腼腆的人,所以希望海底捞的系统自动识别出我今天是生日,自动为我送上生日面。

点完餐以后,在海底捞的 iPad 上登陆自己的账号,积攒了积分。

海底捞的生日面

除了生日面,过了一会,服务员又送了一个小蛋糕过来。这个蛋糕是我完全没有想象得到的。我估计是因为前面登陆了账号,识别到我 24 号生日,然后给我送上了蛋糕。也可能是为我服务的服务员帮我和总管说了一下,送上了蛋糕。

bhj3o
海底捞送的生日蛋糕

然后她随机拉了两个服务员,来给我一起唱生日歌。真的很惊喜。

海底捞真的做到了,别人想要60分的东西,给你 80 分的东西。

Rust 学习资料推荐

首推

《The Rust Programming Language》:https://doc.rust-lang.org/stable/book/foreword.html 这本书虽然是纯英文写就,但是浅显易懂。非常不错。中文版

嵌入式相关

《Micro Rust》:https://droogmic.github.io/microrust/index.html 这本书是基于 MicroBit 这个硬件来写的课程,可以去淘宝上买个 Micro::Bit Go,一百多一点,然后自己实践一下。

《The Discovery Book》:https://docs.rust-embedded.org/discovery/index.html

《The Embedded Rust Book》:https://docs.rust-embedded.org/book/index.html

Rust Crates 使用国内镜像

我在使用 Rust 安装 rls 时,出现了下载报错,具体如下

info: caused by: error during download
info: caused by: [56] Failure when receiving data from the peer

一看到 from the peer ,我就明白了,大概率被墙了。所以,就要切换为国内镜像源。

目前只有 USTC 提供了 Rust Crates 的镜像源,接下来,我们就开始配置 Rust Crates 源。

https://servers.ustclug.org/2016/01/mirrors-add-rust-crates/
USTC Lug 的公告

配置 Mirror

使用 VSCode 打开配置文件 $HOME/.cargo/config

在其中加入如下代码

[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'ustc'
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
Code language: JavaScript (javascript)

然后重新在命令行中执行安装代码,可以看到非常高效的完成了安装.

s2ym7

macOS 安装 Rust 开发环境

安装 Rust

Rust 在 macOS 上的安装非常的简单,只需要在终端执行如下代码

curl https://sh.rustup.rs -sSf | sh
Code language: JavaScript (javascript)

会自动进入到安装的状态,脚本会检测你的操作系统,然后提示你是否安装,作为初学者,直接用默认的安装吧。

zsh4o
提示

稍等片刻,就安装完成了。

e4po0
安装完成的提示

你可以重启终端来应用 Rust 的环境变量,或者直接执行如下命令来使环境变量生效。

source $HOME/.cargo/env
Code language: PHP (php)

执行命令 rustc --version 可以看到版本号信息:

wrl6o

这时,就说明你的安装完成了。

创建测试项目

接下来,在终端里执行如下命令,来创建一个测试项目。

cargo new hello-world
Code language: JavaScript (javascript)

并使用 cd 命令进入该目录,编译,并运行代码

cd hello-world
cargo run

你可以看到这样的输出,就说明你的 Rust 环境已经配置好了。

jkivy

Rust With VSCode

安装 Rust 代码支持

我一般习惯用 VSCode 写代码,所以依然这次继续使用 VSCode 来写 Rust。

在 VSCode 中的拓展管理器中搜索 Rust,可以看到一个名为 Rust(rls) 的拓展,安装这个拓展。

raqc5
Rust(rls)

此时使用 VSCode 打开刚刚创建的 Hello World 项目,就可以看到如下的效果。

84029

然后,打开终端,执行如下命令,来安装 Rust 拓展所需的一些 Rust 组件

rustup component add rls rust-analysis rust-src

安装 crates.io 的拓展支持

Crates.io 类似于我们在 Node.js 世界的 NPM,PHP 世界的 Composer。crates.io 的拓展可以帮助我们更好的管理我们的项目拓展。

在 VSCode 的拓展界面搜索 crates ,就可以看到由 Seray Uzgur 提交的 crates 插件,安装这个插件。

u2ru4

安装完成后,打开项目根目录的 cargo.toml 文件,然后你可以看到,在你的依赖项目后会提示你最新的版本。

a56cs

把你的鼠标放在"0.2.0"的后面,还会提示你所有的更新的版本,你可以通过一下点击,来升级依赖的版本。


或者执行命令来升级所有的依赖

7raj1

安装 TOML 的高亮

Toml 是 cargo 用来存储项目信息的文件格式,VSCode 本身不提供高亮,不过我们可以通过安装一些拓展来实现。

在 VSCode 的拓展管理器搜索 TOML,并安装由 bungcip 开发的 Better TOML,即可实现 toml 文件的高亮。

fqr13

安装完成后,重新打开 cargo.toml 文件,你就会发现其内容被语法高亮了。

ig8h9

这样,我们就完成了 Rust 开发环境的基本配置。后续可以根据你自己的需要,去配置其他拓展和依赖。

网名,真名哪个重要?

Boss 在一个群里的讨论

今天在看 V2ex 的时候,发现 V2ex 有个帖子“你们的 Github 账号会用自己的真实姓名么?”,里面提到了大家大多不在互联网上使用自己的真实姓名。

刚好,今天早上我的 Boss 在一个读书会的群里也在讨论这个问题,他常年使用笔名“青润”,很多人只知道他的笔名,不知道他的真名。

这两件事情让我思考,我们是否真的有必要让别人知道自己的真名呢?

就如我 Boss 所言,名字本身只是一个代号,笔名也是一个代号,如果你一直使用一个特定的代号,那他其实和你的名字没有什么区别。对于我来说,使用 Bestony 这个 ID 也不短时间了,以后应该也会长期使用下去。不过,我在考虑后续同时扩张我的本 ID 的影响力。这样看来,似乎也没有必要。

不过,可以本名关注非技术领域,网名关注技术领域。

Reference

你们的 Github 帐号会用自己的真实姓名吗?:https://www.v2ex.com/t/538131#reply32

为什么英文互联网世界里实名比例如此之高: https://laike9m.com/blog/wei-shi-yao-ying-wen-hu-lian-wang-shi-jie-li-shi-ming-bi-li-ru-ci-zhi-gao,107/

《良质!PHP企业级系统开发》书摘

尽我们最大的努力,开发并交付价值最大化的软件

首先,应该交付。完成交付以后,再考虑代码质量。

完成,完整,完善,完美

开发的顺序,一开始先完成,再完整,再完善,最后是完美。搞错了,就再也搞不出来了。

致力于编写容易理解的代码,专注于软件开发领域,努力创造更大的价值

创造价值是核心,代码质量不一定是。

做事情,不要急,但要快!

快!=急

选择高起点,并始终以高标准严格要求自己

严于律己,宽以待人。

对于随时发布,我个人觉得是过于随意,缺少严谨性,所以我是不推荐的。由随时发布而产生的间接负面影响,要远大于它的直接正面收获。看似非常快速的发布方式,实际上却让我们不停在原地打转。所以,我不推荐初学者一开始就钟情并习惯于这种发布方式,更不推荐高级资深开发同学固守这种发布方式。如果你当前已经是随时发布,请不要妥协。

随时发布容易成为救火队员。

一种运动轨迹生成算法的思路

kn76p
网状

由于我司程序员太懒,生成轨迹算法直接取的随机数,导致生成的轨迹图变成了一个网状的结构,根本无法使用。

搜索以后,发现一个很有意思的轨迹生成算法,分享给大家。

算法思想

  1. 定义起点和终点
  2. 在起点和终点直接取中点
  3. 在起点与终点连线的垂直方向上进行变化,取得第三点
  4. 连接起点、中点、终点。

图示

1 定义起点和终点

a2o6r

2 取中间点

eazsz

3 在中间点上取垂线

qni4g

4 连接起点、中点、终点,形成轨迹图

yd53k

这样,就完成了一条路径的生成,很简单,但是比较有效。

用上了自己做的翻译插件

之前用的翻译插件cos_slug_translator 因为一些原因,并没有办法很好的和 JetPack 一起联用。导致每次发布到 Twitter 的文章链接都是失效的。为此,我前往 Github ,在 JetPack 的项目中发起了一个 Issue 。

Jeremy 给我了一些建议 , 于是,我就重新做了一个插件,并将这个插件提交到了官方的插件系统。希望可以通过审核。

后续考虑继续支持其他一些翻译平台,比如,有道翻译的新 API、搜狗、Google等一系列。特别是 Google, 这样就可以支持非中文文章了,比如,日语的。

项目仓库:

https://github.com/bestony/automatic-translate-slug