Skip to content

Instantly share code, notes, and snippets.

View houtianze's full-sized avatar
🎯
Focusing

Hou Tianze houtianze

🎯
Focusing
View GitHub Profile
@houtianze
houtianze / build.xclip.on.centos.sh
Last active April 16, 2020 07:32
Build xclip on CentOS
#!/bin/sh
set -e
# ================================================================
# << Update >>
# Running the following is enough, no need to build yourself
# sudo yum install epel-release.noarch
# sudo yum install xclip
# ================================================================
@houtianze
houtianze / build.xsel.on.centos.sh
Last active August 29, 2020 22:18
Build xsel on CentOS
#!/bin/sh
set -e
# ================================================================
# << Update >>
# Running the following is enough, no need to build yourself
# sudo yum install epel-release.noarch
# sudo yum install xsel
# ================================================================
@houtianze
houtianze / get.cert.md
Last active March 22, 2017 03:38
Get Cert in X509
function get_cert()
{
	local host="$1"
	local port="$2"
	if [ -z "$port" ]
	then
		port="443"
	fi
'use strict';
// Code not verified / tested though. -Tianze
var express = require("express");
var fs = require("fs");
var _ = require("underscore");
var dbJsonFileName = "carts.json";
var dbJson = fs.readFileSync(dbJsonFileName, 'utf8');
@houtianze
houtianze / facebook.html
Created April 6, 2017 12:52
Facebook login
<!DOCTYPE html>
<html>
<head>
<title>Facebook Login JavaScript Example</title>
<meta charset="UTF-8">
</head>
<body>
<p id="greeting">Test</p>
<script>
// This is called with the results from from FB.getLoginStatus().
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.
@houtianze
houtianze / on.y.combinator.md
Last active February 27, 2023 12:45
On Y Combinator

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))
// Source: http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes
class Monster {
// A method named "constructor" defines the class’s constructor function.
constructor(name, health) {
// public name object
this.name = name;
// private name object
this[pHealth] = health;
}
@houtianze
houtianze / homebridge
Last active April 23, 2019 13:59 — forked from johannrichard/homebridge
Systemd Service for homebridge (http://github.com/nfarina/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
# DEBUG=*