Skip to content

Instantly share code, notes, and snippets.

View fluency03's full-sized avatar

Chang Liu fluency03

  • London
View GitHub Profile

The Ultimate V60 Technique

◉ Brew ratio: 60 g/L (e.g. 30 g per 500 mL,  18 g per 300 mL, 12 g per 200 mL, ...)

◉ Grind size: medium fine, Niche Zero: 40 ~ 50

◉ Temperature: the hotter, the better (especially with lighter roasts)

The Ultimate Clever Dripper Technique

◉ Brew ratio: 60-65g/L (18 g per 300 mL)

◉ Grind size: medium fine, Niche Zero: 45 ~ 50

Brew

  1. Grind 18 g coffee
  2. Fold and rinse paper with hot tap water

The Ultimate AeroPress Technique

◉ 11g coffee

  • Ground at the finer end of medium, assuming this is light roasted coffee.
  • The darker you go the more you may prefer to increase the dose and coarsen the grind.
  • Niche Zero: 30 ~ 35

◉ 200g water (brought to a boil and used immediately)

  • The darker the roast is, the lower the temperature is (or even down to 90 Celsius for really dark roast)
// XPath CheatSheet
// To test XPath in your Chrome Debugger: $x('/html/body')
// http://www.jittuu.com/2012/2/14/Testing-XPath-In-Chrome/
// 0. XPath Examples.
// More: http://xpath.alephzarro.com/content/cheatsheet.html
'//hr[@class="edge" and position()=1]' // every first hr of 'edge' class
@fluency03
fluency03 / index.js
Created November 29, 2019 19:11 — forked from panva/README.md
Simplified Native OAuth2.0 Application Login CLI implementation
/* eslint-disable no-console, camelcase */
const server = require('http').createServer().listen(0);
const { Issuer, generators } = require('openid-client');
const open = require('open');
server.removeAllListeners('request');
const { ISSUER = 'https://op.panva.cz' } = process.env;

Virtual DOM and diffing algorithm

There was a [great article][1] about how react implements it's virtual DOM. There are some really interesting ideas in there but they are deeply buried in the implementation of the React framework.

However, it's possible to implement just the virtual DOM and diff algorithm on it's own as a set of independent modules.

@fluency03
fluency03 / ObjectHeader32.txt
Created December 10, 2018 14:26 — forked from arturmkrtchyan/ObjectHeader32.txt
Java Object Header
|----------------------------------------------------------------------------------------|--------------------|
| Object Header (64 bits) | State |
|-------------------------------------------------------|--------------------------------|--------------------|
| Mark Word (32 bits) | Klass Word (32 bits) | |
|-------------------------------------------------------|--------------------------------|--------------------|
| identity_hashcode:25 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Normal |
|-------------------------------------------------------|--------------------------------|--------------------|
| thread:23 | epoch:2 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Biased |
|-------------------------------------------------------|--------------------------------|--------------------|
|