Tienson Qin@tiensonqin

Father, spurs fan.

2019/06/19ZFS: the last word in file systems.
2019/06/10A guide to tracing in Elixir! | Erlang Solution blog
2019/05/30Redis 和 I/O 多路复用
2019/05/29Delivering billions of messages exactly once · Segment Blog
2019/05/23Visualizing PostgreSQL Vacuum Progress | Dave Pacheco's Blog
2019/05/21GraphQL Resolver Arguments as Diff Lists (part 3) · Andreas Garnæs
2019/05/21Using Rust to Scale Elixir for 11 Million Concurrent Users
2019/05/20Applicative parsing | Notes on Computing
2019/05/15OTP 22 Highlights
2019/05/11Ring's idionsyncrasies
2019/05/07Database Internals
2019/05/07Distributed consensus revised – Part I | the morning paper
2019/05/01Typer: ML boosted with type theory and Scheme
2019/05/01An evaluation of Erlang global process registries: meet Syn
2019/04/30Technical Itch: Journalling Revisited
2019/04/27Compilers: Backend to Frontend and Back to Front Again
2019/04/27An Incremental Approach to Compiler Construction
2019/04/27Writing a C Compiler, Part 1
2019/04/23State Machines All The Way Down | Edwin Brady
2019/04/23Mnesia and CAP – Jesper L. Andersen
2019/04/19Blog: A Bitemporal tale
2019/04/17Enabling iOS Splash Screens for Progressive Web Apps
2019/04/17The problem of managing schemas - O'Reilly Media
2019/04/17Schema evolution in Avro, Protocol Buffers and Thrift — Martin Kleppmann’s blog
2019/04/16Euclidean Geometry | Introduction
2019/04/16Efficient Synchronization of State-based CRDTs | Vitor Enes
2019/04/16A Brief Tour of FLP Impossibility
2019/04/16Distributed consensus revised by Heidi Howard
2019/04/14并发 Hash Map 的实现
2019/04/12Deploying Elixir to AWS Elastic Beanstalk with Docker
2019/04/03Stateful WebSockets with Elixir’s GenStage – Mint Digital – Medium
2019/04/03How Discord handles push request bursts of over a million per minute with Elixir’s GenStage
2019/04/03Maximizing HTTP/2 performance with GenStage – Forza Football Tech Blog
2019/04/03Announcing GenStage - Elixir
2019/04/03Introducing reducees « Plataformatec Blog
2019/03/31I Built a Lisp Compiler - MPOV
2019/03/28Elasticsearch Performance Tuning Practice at eBay
2019/03/26Distributed Transactional Systems Cannot Be Fast
2019/03/22Immersive Math
2019/03/21Sending Elixir logs to Logstash as JSON
2019/03/20Open Source Doesn’t Make Money Because It Isn’t Designed To Make Money
2019/03/19The Blag — Random Ramblings and Silly Walks
2019/03/19Hello, declarative world
2019/03/14100x faster Postgres performance by changing 1 line | Datadog
2019/03/13SlimTrie: 单机百亿文件的极致索引-设计篇 - OpenACID Blog
2019/03/11Efficient synchronisation of state-based CRDTs – the morning paper
2019/03/10Applied Monotonicity: A Brief History of CRDTs in Riak
2019/03/09Implementing pagination with GraphQL.NET and Relay | Curled Cloudy Code
2019/03/05Is PostgreSQL good enough?
2019/03/02Homomorphic hashing for secure update propagation - Facebook Code
2019/02/26Hardening Kafka Replication - Confluent
2019/02/25Performance Under Load – Netflix Technology Blog – Medium
2019/02/21Immutability Changes Everything - ACM Queue
2019/02/21Majority agreement is not necessary for consensus | Read, Write & Execute
2019/02/21Let's #TalkConcurrency Panel Discussion with Sir Tony Hoare, Joe Armstrong, and Carl Hewitt
2019/02/20A Generalised Solution to Distributed Consensus
2019/02/20Understanding Elixir's recompilation · Milhouse
2019/02/20How Discord Indexes Billions of Messages – Discord Blog
2019/02/18Linux x86 Program Start Up
2019/02/14How we optimized 100 sec elasticsearch queries to be under a sub second. – Abhishek Andhavarapu
2019/02/1430x Faster Elasticsearch Queries | Mixmax Engineering Blog
2019/02/12Favorite OCaml papers?
2019/02/07How to use LISTEN and NOTIFY PostgreSQL commands in Elixir?
2019/02/06Monitoring Erlang Atoms – Klarna Engineering
2019/01/31MXNet GANs with Flans - Nextjournal
2019/01/31Clojure MXNet Introduction - Nextjournal
2019/01/31Erlang Scheduler Details and Why It Matters - Hamidreza Soleimani's Blog
2019/01/30Performance of Rust's match vs. lookup tables
2019/01/30Let's #TalkConcurrency with Joe Armstrong | Erlang Solution blog
2019/01/30Boost message passing between Erlang nodes
2019/01/30A Million WebSockets and Go – freeCodeCamp.org
2019/01/30Lock-free Rust: Crossbeam in 2019 | stjepang.github.io
2019/01/30Building a "Simple" Distributed System - The What — Jack Vanlightly
2019/01/29A simple, possibly correct LR parser for C11
2019/01/28I read a paper: 'In search of an understandable consensus algorithm' (the Raft paper)
2019/01/26Algebraic Effects(-ish Things) in Clojure / Will Acton
2019/01/25Clojure transducers from the ground up: using them in practice.
2019/01/25Clojure transducers from the ground-up: the essence
2019/01/25Building ETL pipelines with Clojure and transducers
2019/01/23Gagallium : Generators, iterators, control and continuations
2019/01/23Optimizing pattern matching
2019/01/23Detecting use-cases for GADTs in OCaml
2019/01/23LIRS: An efficient low inter-reference recency set replacement policy to improve buffer cache performance
2019/01/23Finger Trees - Andrew Gibiansky
2019/01/23Finger trees: a simple general-purpose data structure
2019/01/22Type Theory and Formal Proof: An Introduction
2019/01/19Continuation-Passing Style - COS 326
2019/01/19Separation logic and bi-abduction | Infer
2019/01/16Performance and Profiling
2019/01/16A Nix parser in Ocaml. Part 1: Lexer · pl-rants
2019/01/16A Primer on Database Replication
2019/01/16ASM.OCaml – OCamlPro
2019/01/16Tech Choices I Regret at Spectrum
2019/01/16Algorithms Behind Modern Storage Systems - ACM Queue
2019/01/14Bitcask - A Log-Structured Hash Table for Fast Key/Value Data
2019/01/12Introducing Verified React – Imandra – Medium
2019/01/10Keeping CALM: When Distributed Consistency is Easy
2019/01/09Weak Type Variables | OCamlverse