Inevitable

文字所表现出来的美丽、恐惧。。还有率真之类的东西,我觉得在其他事物中还是很难寻得的。

0%

2020 这一年

我们走,2021。

课程

今年一共上了 16 节课。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/df079def-4f11-4e19-92fc-458451e08c69/download_(1).png

Side project

今年一共做了 13 个,大概是一个月一个。这其中有些 Project 计划是一起用的。比如 Gallery 和 Daily Picture 。Daily Picture 负责抓取图片,Gallery 负责前端显示,Image Excerpt 负责为十几张图片生成一个统一的颜色预览图。

👛 FRIEND :这是我目前正在进行的项目。我希望可以探索一下代币化个人价值和社交价值。目前的想法是可以将个人代币的价值与你朋友的代币进行锚定。个人可以更改这个锚定价格。毕竟人都在进步,如果你进步的比你朋友快,你就应该提高代币的锚定价格。

那这些个人代币可以怎么使用,又有什么价值呢?目前我想到的是这些代币可以用于赞助,VIP,付费阅读,付费提问,自定义化的付费服务,等等。代币可以分发给那些支持者,比如在社交媒体上给你点赞,转发你的推文等等。

这是我第一次尝试智能合约开发。踏过了 Solidity,各种开发框架,本地环境搭建,Debug,Test 等等的坑。智能合约开发和 Debug 都比 Web 开发或者 Python 之类的难度高。由于智能合约更新的困难,我也写了很多 Test。Test 代码大概在合约代码的两倍左右。

具体的一些坑可以看我的 Twitter。关于智能合约开发的推荐流程如果大家感兴趣的化可以考虑以后整理一下。

🎰 Variational Inference Solver for CP Decomposition :这个是我第一次使用 Pytorch,第一次尝试机器学习。感觉倒是不错。Pytorch 非常的简单易用,至少写网络结构的时候是这样的。比较麻烦的是训练,测试和调参的代码。这些代码的行数是网络结构的 4 倍。

这个项目是张量计算的期末项目。虽说是张量积算课,这个项目更需要的是机器学习的技巧。在众多的 Variational Inference Solver 中,我们最后选择了 Variational AutoEncoder 去实现 CP Decompostion 的重建。

这个项目主要的困难之一是对问题的定义。这个题目是教授直接扔给我们的。看到题目的那一瞬间就是迷茫,根本不知道题目里的这些术语是什么意思。在未知的领域逐渐摸索,找到思路。这可能是对大多数人来说最害怕的部分。因为在探索的过程中不知道自己的思路是否正确,离终点到底还有多远。随着截止日期的临近,这种压力会越来越大。

接下来的困难就是技术实现上的难题了。之前提到过我以前从来没有用过机器学习,幸亏 Pytorch 上手容易,我并没有在网络结构上吃太多的亏。主要的问题还是调参。应该用多大的网络,训练数据要多大,batch,learning rate 又分别是多少。我最后采用了 Ray 来进行自动调参。自动调参的想法很简单,就是尝试不同的超参数组合。但自动调参的代码写起来还挺多的,上百行的样子。最后的效果其实也差不多,没有想象中翻天覆地的变化。

💰 Ethereum wallet analysis :这是在 DEFI 火热的时候写的。用于分析某个钱包地址 DEFI 投资的表现。如果这个钱包表现好的话,我可以选择跟单,也去赚一点钱。

这个项目的主要难点之一是数据清洗。我从 Zerio.io 上获取钱包的交易数据,用 Pandas 进行清洗。第一次使用 Pandas 清洗数据遇到不少难点。比如怎么处理日期,怎么对行和列进行操作等等的基础问题。

后续的分析也遇到不少问题。分析的思路很简单,首先把交易根据交易对进行分类,然后分析每个交易对的盈利情况。进一步分析就把交易对的交易记录详细分成单子。去寻找开仓和平仓的时候,然后分析这一个仓位的盈利情况。但在实际操作中会遇到各种各样的问题。比如用户不平仓,用户的交易对比较复杂,把不同的代币进行呼唤。又比如用户从其他钱包里收到了钱,然后进行交易。这些情况都使分析更加困难。或许用 Time Weighted Rate Of Return 或者 Dollar Weighted Rate Of Return 会更好。

即使找到了好的钱包,真正跟单的时候也很困难。由于 Defi 的高波动率,即使是 1,2 分钟的数据延迟都会对收益造成巨大影响。

关于区块链的新技术,新思想如果大家感兴趣的化可以考虑以后整理一下。

🖼️ Daily picture :这个项目可以把你在 Pixiv 和 Twitter 上点赞的插画给下载下来。我的出发点是希望把我喜欢的插画下载到本地,方便随时欣赏。毕竟一张图片包含着那么多的信息,绝对不是在手机上一眼扫过去 3 秒内能够欣赏完的(上完艺术史的课才意识到一张画应该如何去体会)。因此我采用了增量更新的方式。如果你是第一次运行脚本,它会下载你最近喜欢的 50 张图片。当你下次运行脚本时,它只会下载你最新喜欢的所有图片。

这个项目的难点只是挑选合适的库。好用的 Pixiv 库还真的不多,大部分都有点缺胳膊少腿的感觉。

✉️ Webpush notification :这是我今年的第一个项目。它可以帮助基于 Hexo 的博客给读者通过浏览器推送通知。如果你希望你的读者能够第一时间知道你的更新,这个插件非常的实用。

在实际开发的过程中,遇到最大的问题就是 Hexo 文档。Hexo 的文档挺简陋的,关于插件开发在网上也没有太多的资料,大部分时候都得自己动动脑子。 而且制作插件也没有什么配套的开发或者 Debug 工具,得自己用最原始的方式慢慢来。

🚗 Ansible playbook for common VPS setup:在之前折腾新的 VPS 的时候,我采用了 Ansible 来做自动化部署。Ansible 我在以前介绍过,可以很方便的进行自动化运维,强大的 Devop 工具。这个仓库包含了我自己常用的 Ansible 脚本。

☁️ BlenderCloudRender:用 VPS 或者免费的 Goolge Colab 来渲染自己的 3D 作品。那段时间我特别喜欢做一些 3D 的东西。但是 3D 的东西渲染又很慢。所以动手写了这样一个脚本可以把渲染放在云端。由于专业的渲染服务器太贵,我就选择了把渲染交给便宜的 VPS 或者免费的 Google Colab。

这个项目的难点在于和服务器通信。和服务器搭建了 SSH 连接后怎么跟它进行通信,怎么要求它执行脚本,如何获取脚本执行结果。

➕ ShuttleBus:这个项目是优化班车排班,是我运筹学的扩展。由于全程调用 Google 的 OR 库,其实并没太要求运筹学。

项目的难点在于将问题建模,变成一个个 constraint。然后将这些 constratint 按照文档一个个变成代码。有一些比较偏门的 constraint 我找了很久。另一个难点便是数据。由于要求每段路程的驾车时间,如何获取这些时间。如果我们从导航上获取这些时间,可信度又是多少?我们需要基于统计学给出一些解释。

🕸️ Hexo cheatsheet :这也是今年上半年的一个项目。现在看来这就是个换皮项目。将别人的 cheatsheets 网站样式扒下来放到 Hexo 里去。当初觉得自己需要一个记录 cheatsheet 的网站,但实际做完以后发现不如 Notion 好用。

我的 CSS 一直挺菜的,做这个最挣扎的就是改 CSS 和模板文件。

⚙️ Tool Site:这个网站计划是来展示我的工具的。随着使用的工具越来越多,我觉得有必要记录并且展示这些工具。但最后还是发现不如 Notion 好用。

由于我不擅长写 CSS,我前期使用了可视化的网站开发工具。把样式做好了以后直接导出 React 代码,自己再给它接上数据就行了。实际使用体验还不错,基本避过了我最讨厌的 CSS。缺点之一是导出的 React 代码有点奇怪,用了不少那个开发工具定制化的组件。另一个缺点就是接上数据以后的项目就不能重新倒入了。不太方便迭代。

🖼️ Gallery:这是个半成品,是作为 Daily Picture 的前端。原来的构想是可以有一个网页来欣赏自己喜欢的插画。希望这个网页可以尽可能大的展示插画。但是由于我自己养成不了欣赏以前喜欢的插画的原因,不了了之。

🖼️ ImageExcerpt:Gallery 的配套工具。用于给一个帖子几十张图片生成预览图。思路是我们提取每一张图片的调色盘。接着我们按照图片顺序,将这些调色盘一行行的堆叠起来。这样只看预览图就可以感受到这个帖子里图片的色调和情感。

📔 Hetushu :这是一个很简单的项目。只是把小说从网站上扒下来。

这个项目的难点是后续去除广告。网站的反爬措施之一就是添加了很多广告在正文。网页浏览时看不见,但你把文字扒下来的时候就会发现这些千奇百怪很难用正则匹配去除的广告。

明年

明年也就是 2021 年已经来了。2021 年应该是比较重要的一年,因为大学要毕业了。这一年的决定将会直接影响未来的 2-3 年。到底是走哪个方向呢?数据科学?应用数学?区块链?

明年希望能够拓展一下知识面。多看一点书,多学学其他的东西。就目前来看,希望 2021 年可以看一些诗词有关的书。古人对于字词的精确运用令人叹为观止。作为一个讲白话文的现代人也只有羡慕的份了。举个例子,大家可以感受一下古人的用词。“小山重叠金明灭,鬓云欲度香腮雪”来自温庭筠写的菩萨蛮。如果让我来概括这句词,大概就是大中午的,女孩子还在睡觉。这画面感,韵味差的实在是太远了。原词中对颜色运用强烈的刺激着读者的感官。明年希望以次为契机,能够提升对字词的运用。

生活在一个法治社会,不学习一点法律怎么行。希望明年通过罗翔的视频了解一下中国的法律,也是了解一下专精于法律的人他们是怎么思考的。

不少人对明年的区块链都抱有期待。期待看到 DEFI 催化的一系列变动。我也是挺希望明年能够以开发者去加入这个生态。现在以太坊的手续费实在是太高了,我一再怀疑是不是只能做一些跟钱有关的应用。只有更多的利益能够战胜更高的手续费。今年区块链的热门项目都跟经济学有着很大变化。一个好的激励措施可以让用户真正自发的参与到项目当中去。经济学或许会应用到未来更多的区块链项目中。要不是学校里经济专业的预备课程打分太低,我都想修经济专业了。

另一个比较重要的是对知识和信息的整理。今年磕磕绊绊开始使用 Notion 了。用 Notion 来记录一些比较好用的工具,整理一些笔记和知识。实际需要用到这些笔记的次数也在不断增加。随着记录越来越多的东西,今后可能会更加频繁的回过头来找些什么。整理信息是明年最重要的,我需要一个存储空间更大的脑子。

类似于信息整理,下半年上网课的时候我发现了 Figma 非常适合用来做笔记。它强大的排版功能让我随心所欲的整理知识点。把重要的定义或者公式截图下来根据章节放到不同的 Frame 里。目前最大的问题在于索引。没办法搜索图片中的文字,或者知识点。另一个问题是图片的尺寸大小不一,字或大或小,不太工整。看看明年怎么改进一下,应该不会太难。大不了写两个插件。这种无限大小的画布用来整理知识点真的很赞。

祝各位读者新的一年要快乐,自由,有意义。

欢迎关注我的其它发布渠道