Skip to content

Instantly share code, notes, and snippets.

yang-wei /
Last active Aug 8, 2018
PHP extension ext-memcached * is missing from your system
➜  admin git:(master) phpbrew --version
phpbrew - 1.23.1
cliframework core: 2.5.4
➜  admin git:(master) php -v
PHP 5.6.30 (cli) (built: Aug  7 2018 17:48:36)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
➜  admin git:(master) which php
go run server.go


curl -v -H 'Content-Type: multipart/form-data' -F "uploadfile=@./sample_video.mp4" -k http://localhost:8080/upload
yang-wei /
Last active Jan 2, 2018
thoughts on Vietnam
  • Vietnam people honks and beeps a lot on the road. FYI
  • Sounds like they are angry while most of the time they just talk normally
  • Riding a motorbike is relatively safe. Speed are slow and they are good at communicating(honks and beeps) on the road
  • use tissues (mostly provided) to clean spoon and fork before having food on food stall
  • "pho" heaven
  • A lot of vegetables are served for a bowl of "pho"
  • Vietnamese (the language) is so so so difficult, especially the pronunciation part. Mandarin has 4 tones while Vietnamese has 6 tones !!! (Will never laugh at their accent when speaking other languages)
  • It's called Saigon(former name) instead Ho Chi Minh City by local
  • Vietnamese love picnic with friends, family. You can see a lot of picnic group on riverside of Saigon everyday
  • Motorbike can be romantic
yang-wei / chunkify.php
Created Mar 18, 2017
Chukify - PHP utils to break function with large array parameter into multiple calls and combine the result
View chunkify.php
class Helper {
* Break up process for function with first large array parameter into multiple time and merge
* Can be useful when thing are slow querying database or requesting api with large size of array at once
public static function chunkify(callable $fn, array $fnFirstParam = [], $chunkSize=1000, ...$fnRestParams) {
$result = [];
foreach (array_chunk($fnFirstParam, $chunkSize) as $chunk) {
yang-wei / DatePeriodHelper.php
Created Dec 3, 2016
DateTime range overlapped ?
View DatePeriodHelper.php
use DatePeriod;
class DatePeriodHelper
* @param DatePeriod $datePeriod1
* @param DatePeriod $datePeriod2
View appdelete.m
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
#import "AppDelegate.h"
yang-wei /
Last active Aug 18, 2016
List of country codes (ISO 3166-1 alpha-2)
yang-wei / index.js
Created Aug 14, 2016
Gisty is coming
View index.js
Gisty testing
yang-wei /
Last active Aug 14, 2016
What's so great about transducer ?

This is not a introduction post to Clojure transducer. Instead there are a lots of great introduction post out there. This post aims to clarify the greatness of transduer. In the introduction blog, this is how they describe:

Transducers are composable algorithmic transformations. They are independent from the context of their input and output sources and specify only the essence of the transformation in terms of an individual element. Because transducers are decoupled from input or output sources, they can be used in many different processes - collections, streams, channels, observables, etc. Transducers compose directly, without awareness of input or creation of intermediate aggregates.

This post will help you understand the above statement.

For me transducer does 2 great things

  • Parallel process
  • Independence input source, therefore reuseable
yang-wei / decorators.js
Created Aug 7, 2016
Function decorators
View decorators.js
const not = fn => x => !fn(x)
const some = x => x != null
const notAtAll = x => !some(x)
// or
const notAtAll = x => not(some)
You can’t perform that action at this time.