在 iPad 上布置軟體開發環境

五月買了 iPad Pro巧控鍵盤 後,大部分的需求 iPad Pro 都能直接滿足,除了寫程式以外。摸索了一陣子之後總算找到順手又省錢的寫程式方式了,這篇簡單記錄一下。

» Read More

Concurrency in Clojure, Racket, and Gerbil Scheme

» Read More

Domain Modeling Made Functional

Notes on the book Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#.

» Read More

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.

» Read More

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.

» Read More

Running a Service in Production without Losing Your Sanity

» Read More

The Golden Age of New Programming Languages

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

» Read More

Benchmarking VPS for Remote Rust Development Environment

» Read More

Ripgrep Cheat Sheet

» Read More

Structured Concurrency

Thread 跟 Coroutine 是兩種常常用來處理 Concurrency 的工具。

使用這兩個工具時,很麻煩的一點就是需要手動管理他們的生命週期。本質上,Thread 跟 Coroutine 都是 global scope,不管你如何建立,他們都獨立在原本的程式順序之外。

常見的例子是,如果你在 main 建立一個新的 thread,main 並不會等 thread 結束,而需要你手動 join thread,在複雜的情況(例如 cancel、timeout)便相當容易出錯。

而 Structured Concurrency 就是試圖將 Thread 的生命週期與大家都很熟悉的 scope 結合。

» Read More