Skip to content

Instantly share code, notes, and snippets.

@aleung
aleung / git-history-extract.py
Last active Jun 15, 2020
Retrieve a file or a directory from git history at specific reversion
View git-history-extract.py
#!/usr/bin/env python3
#
# Usage:
# git-history-extract.py [-o <output_path>] <rev> [<path>]
#
# Retrieve a file or a directory from git history at specific reversion (tag or commit).
# The restored file(s) are saved into destination path.
#
# You must run it in a directory which is inside a git repository.
#
@aleung
aleung / readme.md
Last active Mar 26, 2019 — forked from iest/readme.md
Moving from lodash/fp to ramda
View readme.md

Moving from lodash/fp to ramda

How

Good news is we're only using lodash/fp, which makes it easier to match function signatures.

  1. Find most-used lodash methods, we'll convert these first maybe?
  2. Go through each lodash method, find the ramda equivalent where possible
  3. Write a codemod to rewrite those usages
  4. Who the fuck thought function aliases were a good idea
@aleung
aleung / example.ts
Last active Mar 15, 2019
TypeScript logic flow execution engine
View example.ts
async function operationOne(context: SharedContext, input: Readonly<Op1Input>): Promise<[Op1Output, RollbackFn]> {
const id = input.id;
await saveDb(id, true);
const result = 'OK';
const rollback = async (context: SharedContext) => {
await saveDb(id, false);
}
View keybase.md

Keybase proof

I hereby claim:

  • I am aleung on github.
  • I am leoliang (https://keybase.io/leoliang) on keybase.
  • I have a public key whose fingerprint is 1ACE A9DD 75C1 ED20 408A 6E46 45D6 55B0 E6D1 C308

To claim this, I am signing this object:

View index.html
<!DOCTYPE html>
<meta charset="utf-8">
<title>SANKEY Demo</title>
<style>
.node rect {
cursor: move;
fill-opacity: .9;
shape-rendering: crispEdges;
}
@aleung
aleung / README.md
Last active Oct 13, 2017
Generate latest offline map for OsmAnd
View README.md

Install

Download OsmAndMapCreator and extract.

Install osmupdate and osmconvert into path.

cd ~/bin
wget -O - http://m.m.i24.cc/osmupdate.c | cc -x c - -o osmupdate 
wget -O - http://m.m.i24.cc/osmconvert.c | cc -x c - -lz -O3 -o osmconvert
View console-output
Trace of ID 1
1497340609369: Received request. ID: 1
1497340609369: Step 1 1
1497340610599: Step 2 1
1497340610602: Response sent 1
-----
Trace of ID 2
1497340606575: Received request. ID: 2
1497340606575: Step 1 2
1497340612700: Step 2 2
@aleung
aleung / user.js
Last active Jun 8, 2017
User script to slideshow a serial of webpages in loop. https://greasyfork.org/en/scripts/30426-webpages-slideshow
View user.js
// ==UserScript==
// @name Webpages slideshow
// @namespace https://github.com/aleung/
// @version 1.1.0
// @description Loop display a serial of webpages. Display time for each page can be set.
// @author Leo Liang
// @license MIT License
// @include *
// @noframes
// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
View user.js
// ==UserScript==
// @name Tuleap Tracker Enhance
// @namespace https://gist.github.com/aleung/3fac39dbba3351da2c62f8d4890ef3a6
// @version 0.4
// @description Toggle detail in card wall
// @author Leo Liang
// @match https://*/plugins/tracker/*
// ==/UserScript==
(function() {
You can’t perform that action at this time.