Skip to content

Instantly share code, notes, and snippets.

View ckeyer's full-sized avatar
🏍️
On My Way

Chuanjian Wang ckeyer

🏍️
On My Way
  • On My Way
  • Xian,Beijing,Wuhan
View GitHub Profile
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFczONEBEACr+T69+2h6I9FEO0FIsxeEoBUbS4CyjtmT3KKsTb4TmFJCUPTd
90+2G3x1kqeJQaS4qVl/FrQsffH4v3QD1gsa/TQCWxBSPlayw/XEgfTd+EFzzFE/
ORfVHM5xLE41LUzcPvTsNgxUpb+k9swtps/Bl1B+Yi5icDw9jOIH0Y8IR/UDCqSC
zTKRZFNGEcg3mDPEQfAtISA7zMyUazzFwFRw3Be+Fv3NVYIoO9CQiD+7gFtrxSIz
lDWBfThJR42ncmgb2b97HCO2wKgmNNyfsBT/Clzl73OSRcxLxcfcRsMNJRtJS4FO
jMZbma+nZ9SlBy4vt71M2/Qe4AAJVa6Zak2ocyEPmyfLz2UsrklUHwfPpGk7ticL
tnP+CqnwaqM+3nwuxpV3UMIrPzRaUeJBEZvIOnbgYdAa1NKBDQzKKwDhMiYzJmUT
@ckeyer
ckeyer / openblockchain.md
Last active July 16, 2016 03:24
openblockchain docs

HyperLedger

项目地址: https://github.com/hyperledger/fabric

概述

区块链是一个新兴的技术模型,可以从根本上改善银行业,供应链,和其他交易网络,为创新和成长创造了新的机遇,同时降低了成本和相关经营活动的风险。hyperledger是一个还处在演变中的区块链架构,允许那些遵守规定,同时提出不同需求的相互矛盾的业务在同一个网络中一同工作。

行业用例

商业合同

商业合同可以通过编程的方式允许两个或两个以上当事人以一种可信的方式自动的履行合约。虽然在区块链上的信息本身是公开的,但企业之间的合同往往需要隐私控制来保证敏感的商业信息不被其他对账本有访问权限的人看到。

http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
@ckeyer
ckeyer / timer.go
Created November 5, 2015 10:13
随机循环定时
var period int64 = 5
var next_period = time.Now()
var timer time.Duration
time.Sleep(time.Second * 1)
for {
if next_period.Before(time.Now()) {
next_period = time.Now()
@ckeyer
ckeyer / hash.go
Created November 5, 2015 03:50
Hash 用法
package rand
import (
"crypto/md5"
"encoding/hex"
)
func md5(data string) string {
h := md5.New()
h.Write([]byte(data))
return hex.EncodeToString(h.Sum(nil))
# sudo apt-get install pptp-linux
# sudo pptpsetup --create 名字 --server 123.45.67.88 --username kk --password fku --encrypt
# echo “require-mppe-128” >> /etc/ppp/peers/名字
# route add default gw 192.168.0.1
# route del default gw 原来的
@ckeyer
ckeyer / Upload.go
Created August 9, 2015 08:54
Upload File by http for go
func Upload() (err error) {
// Create buffer
buf := new(bytes.Buffer) // caveat IMO dont use this for large files, \
// create a tmpfile and assemble your multipart from there (not tested)
w := multipart.NewWriter(buf)
// Create file field
fw, err := w.CreateFormFile("file", "nginx.txt") //这里的file很重要,必须和服务器端的FormFile一致
if err != nil {
fmt.Println("c")
return err
@ckeyer
ckeyer / quick_sort.go
Created July 13, 2015 14:33
快速排序
package main
import (
"sort"
)
func QuickSort(data interface{}, args ...int) {
if v, ok := data.(sort.Interface); ok {
left, right := 0, v.Len()-1
if len(args) == 2 {
@ckeyer
ckeyer / shell_sort.go
Created July 13, 2015 14:32
希尔排序 是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。
package main
import (
"fmt"
"sort"
)
func ShellSort(data interface{}, args ...int) {
if v, ok := data.(sort.Interface); ok {
for gap := v.Len() / 2; gap > 0; gap /= 2 {