在Go语言中 sync.Cond 代表条件变量,初始化的时候需要传入一个互斥体,它可以是普通锁(Mutex),也可以是读写锁(RWMutex)。如下:

1
2
3
var mutex sync.Mutex  // 也可以是 sync.RWMutex
var cond = sync.NewCond(&mutex)
...

阅读更多

MacOS Mojave 系统之后,如果想安装 php5.6 版本的时候,无法用brew install php5.6 安装,因为在新的 brew 中已经废弃了 php5.6php7.0,如果使用 brew search php 搜索出来的Php版本最低是 php@7.1 的,所以有相关需求的可以按照下面方法安装

阅读更多

问题的答案

  • URL: https://www.zhihu.com/api/v4/questions/{qid}/answers
  • 参数:
    • limit:数量,最大 20
    • offset:起始位置,从零开始
    • sort_by:{default, created},表示默认排序或者时间排序
    • include:额外信息,包括
      is_normal,is_sticky,collapsed_by,suggest_edit,comment_count,collapsed_counts,reviewing_comments_count,can_comment,content,editable_content,voteup_count,reshipment_settings,comment_permission,mark_infos,created_time,updated_time,relationship.is_author,voting,is_thanked,is_nothelp,upvoted_followees;author.is_blocking,is_blocked,is_followed,voteup_count,message_thread_token,badge[?(type=best_answerer)].topics

阅读更多

wrk

wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue.

wrk使用了epoll(linux)和kqueue(mac)

阅读更多

当Git服务器的SSH端口不是默认22时,可以修改~/.ssh/config来连接

1
2
3
4
5
6
Host github.com
Port 22

Host *
User git
Port 1234

1
sed -i  's/hello/world/g' hello.php

上面这行代码,可以在 linux 上运行,作用是将找到的 hello 替换为 world,并且直接保存修改到文件。但是如果在 Mac 上,你会发现这行代码会报错。原因是在 Mac 上,sed 命令直接操作文件的时候,必须指定备份的格式,而在 linux 上,却并没有这个要求。

1
sed -i '' 's/hello/world/g' hello.php

如上面的代码所示,在 -i 之后加上一对引号,来指定备份格式,如果不需要备份,引号里的内容可以为空。

set git through socks5 proxy:

1
git config --global http.proxy socks5://127.0.0.1:1080

go get via socks5 proxy:

1
http_proxy=socks5://127.0.0.1:1080 go get github.com/mattn/go-sqlite3

Recover git global config:

1
git config --global --unset http.proxy

使用Go解析一个从其他接口返回的JSON字符串,有时会遇到数字以科学计数法的形式展现,比如

源:

1
{"message": "success", "data": 6566651968}

处理后:

1
{"message": "success", "data": 6.566651968e+09}

阅读更多