Skip to content

Instantly share code, notes, and snippets.

View littlehaker's full-sized avatar

Young littlehaker

  • Bytedance
  • Chengdu, China
  • 13:43 (UTC +08:00)
View GitHub Profile
@littlehaker
littlehaker / index.js
Created September 8, 2015 13:52
FRP like Redux
var React = require('react');
var h = require('react-hyperscript');
var Bacon = require('baconjs');
// action
var action$ = new Bacon.Bus();
function filterAction(action_type) {
return function(action) {
return action.type === action_type;
};
@littlehaker
littlehaker / index-v2.js
Last active September 6, 2015 15:53
FRP + React + Async validate
var React = require('react');
var $ = require('jquery');
var h = require('react-hyperscript');
var R = require('ramda');
var V = require('promise-validate');
var Bacon = require('baconjs');
var validateUsername = V.pipe(V.isEmail('请输入邮箱'), V.isLength('最短4个字符,最长10个字符', 4, 10));
var validateUsername$ = function(val) {
return Bacon.fromPromise(validateUsername(val));
@littlehaker
littlehaker / my-emacs-douban.el
Created November 6, 2014 17:26
Emacs 豆瓣电台
(require 'ht)
(require 'web)
(require 'dash)
(defun my-emacs-douban-play ()
(interactive)
(web-http-get
(lambda (con header data)
;; local variables
(let* ((json (ht<-alist (json-read-from-string data)))
@littlehaker
littlehaker / gist:49e30f820256287f4b6b
Created July 7, 2014 09:12
Extend angular controller
module.controller('CtrlImplAdvanced', ['$scope', '$controller', function ($scope, $controller) {
// Initialize the super class and extend it.
$.extend(this, $controller('CtrlImpl', {$scope: $scope}));
// … Additional extensions to create a mixin.
}]);
@littlehaker
littlehaker / no-UTF8-BOM.rb
Created September 23, 2013 07:41
去除UTF8文件开头的BOM信息
#!/usr/bin/env ruby -w
# -*- coding: UTF-8 -*-
# 去除UTF8文件开头的BOM信息
# usage: cat file | ruby no-UTF8-BOM.rb
# or: ruby no-UTF8-BOM.rb file
content = ''
if ARGV.length > 0 then