My journey with envd

envd is a frontend of BuildKit. Just like the Dockerfile. It has been more than a year since I started working on this project. Since the features are relatively stable, I'd like to write a blog about my journey with envd.

CI/CD for data science

Lots of people are talking about MLOps recently. Continuous Integration (CI) and Continuous Delivery/Deployment (CD) are the basic requirements for MLOps. This post will focus on some details about CI/CD for data science.

SpecTree

SpecTree: Yet another tool to generate OpenAPI document and validate request & response with Python annotations.

极客的爱情

我并非故意要标榜极客是多么另类的群体,只不过当两个极客相遇并惺惺相惜,他们之间法生的很多事情确实有趣的很,至少对其他极客来讲。而这样的事情,放在普通人身上或许只会让人觉得奇怪吧。嗯,看起来还是比较另类的。

996ICU

那个 996.icu 的项目也快一个月了,现在 star 增长不多了,估计不会突破 250k。我早就觉得有写点什么的必要了。

Note for Vimtutor

Just type vimtutor in your terminal to learn the basic usage of Vim.

Although I usually use VSCode for coding, sometimes you have to edit files in the server. Mastering the basic of Vim is necessary.

自杀式单身

自杀式单身:形容一直单身又不主动扩展社交范围去认识新朋友,却每天幻想着能拥有爱情的行为。

写个博客那么多事儿

各种工具、平台、格式泛滥成灾,每个打算动手写博客的人都要在上面浪费不少时间。是否要自己搭建?该选什么主题?要买什么域名?鉴于我已经在上面浪费了不少时间,就简单总结一下吧。

项目文档管理

没文档或者文档太烂的项目是可怕的,完善易懂的文档是一个好项目的标配。

如何管理项目文档对于维护一个靠谱的项目是至关重要的。

T 型路线

做一个 T 型人才,或者说博学且有专长,这类说法在很多地方都能看到,我印象中最深刻的是在 Valve 的员工手册中,大概是因为一直都期待能有一家企业回应这种说法吧。

拼写检查器

跟拼写检查器还是有点渊源的。想当初做数学建模的时候,就遇到过一次类似的问题,于是去网上搜到 Peter Norvig 的教程,写的非常好,当时看到短短二十行代码就能很好解决这个问题,实在是惊艳。而我也是从那个时候开始学习 Python 的。当然,以我初学者的水平要想一时间完全看懂他的代码是不太可能的,不过还是能理解大体的流程,做了一定修改后留作自用。

Relevance: from TFIDF to BM25

在信息检索系统中,TFIDF 和 BM25 函数都可以用来计算文档的相关度并进行排序。其中,TFIDF 也经常被用在自然语言处理中,BM25 则可以看做是 TFIDF 的进一步演化。在处理搜索字符串的时候,它们采用的都是 Bag-of-Word 方式,也就是说会忽略掉词的出现顺序,只考虑词出现与否和词频。

Python Package

偶尔手痒了会撸一个 Python 的项目打包发布到 PyPI 上,方便以后安装使用。即使不是打算发布的,如果考虑把文档写在代码的注释里然后用 Sphinx 生成的,通常也是打包安装到本地,然后在一个地方集中生成文档,方便管理。

面具

面具戴太久,就会长到脸上,再想揭下来,除非伤筋动骨扒皮。 ——鲁迅

这里的面具虽然指的不是游坦之的面具,不过这确实是个很符合上面这句话意思的例子。游坦之的面具是阿紫给他的枷锁,即使他后来忍痛揭下来,还会有无形的枷锁和满脸的伤疤。

PyTorch 踩到的坑

目前的深度学习框架实在太多了,初学者难免不知道选哪个才好,是追求曝光率最高的 TensorFlow,还是最 Geek 的 MXNet,又或是最易用的 Keras,又或者是最贴近 Python 编程思维的 Pytorch

GitHub 骗星星指南

Star 对 GitHuber 来说还是很重要的,以至于淘宝都有代刷的业务了,就是不知道有没有发生过刷太多上了 Trending 的。

找人代刷毕竟太 low 了,我们还是要走别的路线,这样显得好像也是个正规军。

2018 做点什么

这篇当然不是 2018 第一天写的,毕竟这一年已经懒了太多了。写这篇的目的,无非就是总结一下自己的 2017,然后展望下自己的 2018 。

大学这四年

时光飞逝,还没来得及好好享受,就已经大学毕业了。

回想这四年的时光,虽然多是无聊的日子,但多少也有一些值得怀念的记忆。

Flask 规范化

说到 Flask ,这是我接触的第一个后端架构,也基本是目前唯一一个比较熟悉的。

对于规范化,这当然是很有必要的,特别是你的项目越做越复杂,不断增加新功能的时候,就会发现如果一开始结构很差,基本就需要大规模重构了。而重构,又通常是说说而已,真正动手完全重构什么的是不存在的,这么丑的代码,就算是我自己写得,我也不想再看了。

所以呢,一开始就尽可能做得规范一点,这样以后看起来就很舒服了,进行修改也会变得相对简单,别人要接手也不会看吐了。

Docker 常用命令

Docker 这几年非常火,只不过对于我这种基本不接触业务的人而言,平时很少会用到 Docker,自己写项目愿意用 Python 的 virtualenv 就不错了。

折腾各种工具

俗话说的好,技术水平不重要,重要的是折腾各种工具的过程。: )

那么,就来总结一下自己觉得还不错的工具吧。

无聊写博客

大概一年多没有写博客了。这一年间,多多少少接触了很多工业界的东西,不少东西还是值得记下的。更重要的是,很多东西不记下来自己就忘了,用的时候查资料也不一定方便,毕竟不是每个开源项目的文档都写得那么好用,也只有自己写出来的才最适合自己。