Zero Trust Network

Notes on the book Zero Trust Network. ...

<span title='2020-04-09 00:00:00 +0800 CST'>April 9, 2020</span>&nbsp;·&nbsp;poga

OCaml Quickstart

OCaml is a great language. However, the tooling for newbies is kinda confusing. Here’s a guide to setup a working OCaml development environment in neovim on MacOS. ...

<span title='2020-03-17 00:00:00 +0800 CST'>March 17, 2020</span>&nbsp;·&nbsp;poga

Guide to Serve Machine Learning Models in Production

Here’s a simple checklist for people who deploy machine learning models to production. Based on my personal experience. ...

<span title='2020-02-17 00:00:00 +0800 CST'>February 17, 2020</span>&nbsp;·&nbsp;poga

Running a Service in Production without Losing Your Sanity

...

<span title='2019-11-06 00:00:00 +0800 CST'>November 6, 2019</span>&nbsp;·&nbsp;poga

The Golden Age of New Programming Languages

2020 is going to be the golden age of new programming languages. ...

<span title='2019-11-03 00:00:00 +0800 CST'>November 3, 2019</span>&nbsp;·&nbsp;poga

Benchmarking VPS for Remote Rust Development Environment

<span title='2019-10-22 00:00:00 +0800 CST'>October 22, 2019</span>&nbsp;·&nbsp;poga

Ripgrep Cheat Sheet

...

<span title='2019-09-20 00:00:00 +0800 CST'>September 20, 2019</span>&nbsp;·&nbsp;poga

Notes on The Signal Protocol

So, I assume you’re already familiar with Public-key cryptography and Diffie-Hellman key exchange. If not, there are lots of good materials about them. Check them out first! Public-key cryptography is a solid, well-studied foundation for today’s modern encryption and privacy. PGP, Diffle-Hellman, and RSA are all well-known. However, if you want to develop something with encryption, they might be not enough. ...

<span title='2019-09-04 00:00:00 +0800 CST'>September 4, 2019</span>&nbsp;·&nbsp;poga

Cheney on the M.T.A

如果問軟體工程師他覺得簡潔又經典的文章,我想很多人會回答你這篇:Cheney on the M.T.A. ...

<span title='2019-07-12 00:00:00 +0800 CST'>July 12, 2019</span>&nbsp;·&nbsp;poga

Structured Concurrency

Thread 跟 Coroutine 是兩種常常用來處理 Concurrency 的工具。 使用這兩個工具時,很麻煩的一點就是需要手動管理他們的生命週期。本質上,Thread 跟 Coroutine 都是 global scope,不管你如何建立,他們都獨立在原本的程式順序之外。 常見的例子是,如果你在 main 建立一個新的 thread,main 並不會等 thread 結束,而需要你手動 join thread,在複雜的情況(例如 cancel、timeout)便相當容易出錯。 而 Structured Concurrency 就是試圖將 Thread 的生命週期與大家都很熟悉的 scope 結合。 ...

<span title='2019-06-30 00:00:00 +0800 CST'>June 30, 2019</span>&nbsp;·&nbsp;poga