Skip to content

Instantly share code, notes, and snippets.

Hou Tianze houtianze

View GitHub Profile
houtianze /
Last active Apr 25, 2018
Apache Mina SSH Server
package com.example;
houtianze /
Created Mar 4, 2018
Shrink docker.qcow2 (which can get verylarge) on macOS
houtianze /
Last active Jan 7, 2018
getch() / getche() for Python
if sys.platform == 'win32':
import msvcrt
getch = msvcrt.getch
getche = msvcrt.getche
import sys
import termios
def __gen_ch_getter(echo):
houtianze / powermode.user.js
Last active Aug 1, 2018
Power Mode TamperMonkey Script
View powermode.user.js
// ==UserScript==
// @name Power Mode!
// @namespace
// @updateURL
// @version 0.1.1
// @description Turn on Power Mode!
// @author ibic
// @match *://*/*
// @exclude *://*
// @grant none
View homebridge
# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS=-U /var/lib/homebridge
# If you uncomment the following line, homebridge will log more
# You can display this via systemd's journalctl: journalctl -f -u homebridge
View maximally-minimal-es6-classes.js
// Source:
class Monster {
// A method named "constructor" defines the class’s constructor function.
constructor(name, health) {
// public name object = name;
// private name object
this[pHealth] = health;

Hopefully this may speed your groking of the forking torturing Y Combinator a little bit.

Disclaimer: I don't assert what I say here is accurate, or even correct (I'm not authorative, obviously), but it's my understanding and I'm sharing in the hope that someone who also struggles on the Y Combinator may benefit a tad.

Prerequisite Understandings

  • In Lambda Caculus, everything is a Lambda Caculus (Anonymous function that takes one parameter). And the best thing is that, ... drump roll ..., it's Turing Complete. So theoretically, it can caculate anything a computer can.
  • In this note, I use the term function, which (I think) means Lambda Caculus, to sound (at least to myself) more accustomed.

The definition of Y Combinator

  • Y = λf.(λx.f (x x)) (λx.f (x x))
View YCombinatorCurrySauce.txt
I just finally had my mind snap into place with understanding of the Y Combinator.
Most explanations I read, even the ones using JS, didn't make much sense and were
overly long so here follows my own, much simpler explanation. I will be using JS.
We have fibonacci to start with, very simple recursive function.
It's fixed points are 0 and 1, fib(0) = 0, and fib(1) = 1
That's all a fix point means, when the f(x) == x
They are important because they are the only values at which recursion can cease.
View facebook.html
<!DOCTYPE html>
<title>Facebook Login JavaScript Example</title>
<meta charset="UTF-8">
<p id="greeting">Test</p>
// This is called with the results from from FB.getLoginStatus().
You can’t perform that action at this time.