Skip to content

Instantly share code, notes, and snippets.

@ysqi
ysqi / gist:d212166b173b0f81f679
Created January 25, 2016 12:06
wercker-hugo-build-error
export WERCKER_STEP_ROOT="/pipeline/hugo-build-e17dfc55-511a-4fc3-8870-37b0470bc71e"
export WERCKER_STEP_ID="hugo-build-e17dfc55-511a-4fc3-8870-37b0470bc71e"
export WERCKER_STEP_OWNER="arjen"
export WERCKER_STEP_NAME="hugo-build"
export WERCKER_REPORT_NUMBERS_FILE="/report/hugo-build-e17dfc55-511a-4fc3-8870-37b0470bc71e/numbers.ini"
export WERCKER_REPORT_MESSAGE_FILE="/report/hugo-build-e17dfc55-511a-4fc3-8870-37b0470bc71e/message.txt"
export WERCKER_REPORT_ARTIFACTS_DIR="/report/hugo-build-e17dfc55-511a-4fc3-8870-37b0470bc71e/artifacts"
export WERCKER_HUGO_BUILD_PROD_BRANCHES="master"
export WERCKER_HUGO_BUILD_DEV_FLAGS=""
export WERCKER_HUGO_BUILD_FORCE_INSTALL="false"
@ysqi
ysqi / main.go
Created March 21, 2016 09:44
beego get multipevalue from post form
package main
import (
"fmt"
"text/template"
"github.com/astaxie/beego"
)
func main() {
goroutine 146 [running]:
runtime/pprof.writeGoroutineStacks(0x50b6500, 0xc4217a80e0, 0x0, 0xc4209c7ad0)
/usr/local/opt/go/libexec/src/runtime/pprof/pprof.go:608 +0xa7
runtime/pprof.writeGoroutine(0x50b6500, 0xc4217a80e0, 0x2, 0x30, 0x49aed40)
/usr/local/opt/go/libexec/src/runtime/pprof/pprof.go:597 +0x44
runtime/pprof.(*Profile).WriteTo(0x519f0a0, 0x50b6500, 0xc4217a80e0, 0x2, 0xc4217a80e0, 0x51cad40)
/usr/local/opt/go/libexec/src/runtime/pprof/pprof.go:310 +0x3ab
net/http/pprof.handler.ServeHTTP(0xc421793931, 0x9, 0x50bf700, 0xc4217a80e0, 0xc4217a2200)
/usr/local/opt/go/libexec/src/net/http/pprof/pprof.go:237 +0x1b8
net/http/pprof.Index(0x50bf700, 0xc4217a80e0, 0xc4217a2200)
@ysqi
ysqi / centos6.5_nginx.md
Last active September 22, 2017 02:29 — forked from ifels/centos6.5_nginx
centos 6.5 nginx安装与配置

第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo:

cd /etc/yum.repos.d/
vim nginx.repo

填写如下内容:

[nginx]
name=nginx repo
@ysqi
ysqi / decode_bitcoin_block_data.go
Created December 11, 2017 00:51
Decode bitcoin block chain dat file, and get block data deail content
package main
import (
"bytes"
"crypto/sha256"
"encoding/binary"
"encoding/hex"
"fmt"
"io"
"log"
@ysqi
ysqi / batchPermitRootLoginByfabric.md
Last active November 1, 2018 13:26
batch set Disable/Enable Root SSH login with fabric tool (sshd_config PermitRootLogin)
{
  "172.123.4.6":{"user":"abc"},
  "172.123.5.6":{"user":"abc"},
  "172.123.1.6":{"user":"abc"},
}
from invoke import Responder
@ysqi
ysqi / sortslice_list.go
Created May 7, 2019 02:11
fast and safe sort slice like queue
package sortslice
import (
"container/heap"
"sort"
"sync"
)
type Item interface {
Compare(other Item) int
@ysqi
ysqi / removeSlice.go
Created May 22, 2019 07:26
fast remove item from slice
func clearExpiredTx(txs types.Transactions, now time.Time) types.Transactions {
for i := 0; i < len(txs); i++ {
if !txs[i].Expired(now) {
continue
}
if len(txs) == 1 {
return nil
}
var last *types.Transaction
@ysqi
ysqi / git-subdirectory-tracking.md
Created September 4, 2019 15:33 — forked from tswaters/git-subdirectory-tracking.md
Adding subdirectory of a remote repo to a subdirectory in local repo

This is way more complicated than it should be. The following conditions need to be met :

  1. need to be able to track and merge in upstream changes
  2. don't want remote commit messages in master
  3. only interested in sub-directory of another repo
  4. needs to go in a subdirectory in my repo.

In this particular case, I'm interested in bringing in the 'default' template of jsdoc as a sub-directory in my project so I could potentially make changes to the markup it genereates while also being able to update from upstream if there are changes. Ideally their template should be a separate repo added to jsdoc via a submodule -- this way I could fork it and things would be much easier.... but, it is what it is.

After much struggling with git, subtree and git-subtree, I ended up finding this http://archive.h2ik.co/2011/03/having-fun-with-git-subtree/ -- it basically sets up separate branches from tracking remote, the particular sub-directory, and uses git subtree contrib module to pull it all togther. Following are

@ysqi
ysqi / git_empty_branch
Created September 4, 2019 16:28 — forked from j8/git_empty_branch
Create new branch with empty folder structure
You can create a new empty branch like this:
$ git checkout --orphan NEWBRANCH
--orphan creates a new branch, but it starts without any commit. After running the above command you are on a new branch "NEWBRANCH", and the first commit you create from this state will start a new history without any ancestry.
The --orphan command keeps the index and the working tree files intact in order to make it convenient for creating a new history whose trees resemble the ones from the original branch.
Since you want to create a new empty branch that has nothing to do with the original branch, you can delete all files in the new working directory: