Github https和ssh连接的区别

有个项目在push 一直都需要输入帐号密码,发现原来是因为使用了https来连接;
使用https方式连接的话,.git/config里面的url配置是https://github.com/XXX/XXX.git,这样的话,每次push都需要输入帐号密码了。
而使用ssh方式连接的话,.git/config里面的url配置是[git@github.com](mailto:git@github.com):XXX/XXX.git,这样的话,只要配置好了ssh key,就只需要输入passphrase就ok了。

Read More

swift 终于开源了,赶紧用linux尝尝鲜。
目前swift支持的linux版本有 ubuntu15.10 和ubuntu 14.04.下面我会用Ubuntu14.04.1来尝尝鲜。

安装

具体的手动安装教程可以在swift的github仓库查看.

当然,苹果也提供的ubuntu的swift安装包,如果不想折腾就直接下载安装吧:

  • 使用wget获取安装包:wget https://swift.org/builds/ubuntu1404/swift-2.2-SNAPSHOT-2015-12-01-b/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz
Read More

最近发现erlang项目的配置文件某些中文显示会乱码,先说下配置文件的实现:

  1. 由file:consult/1读取配置的原始文件(一系列的erlang term),获取到原始的 erlang term
  2. 再转化成erlang 代码 然后再会写到文件。

问题就出在了转化erlang 代码这里,我们使用的是io_lib:format("~p",[data]) 来将erlang term 转化成字符串再回写到文件,而 io:format/2关于~p/~w在官方文档里面有这样的描述:

w
Writes data with the standard syntax. This is used to output Erlang terms. Atoms are printed within quotes if they contain embedded non-printable
characters, and floats are printed accurately as the shortest, correctly rounded string.
p
Writes the data with standard syntax in the same way as ~w, but breaks terms whose printed representation is longer than one line into many lines and
indents each line sensibly. It also tries to detect lists of printable characters and to output these as strings. The Unicode translation modifier is used for
determining what characters are printable.

Read More

Nginx配置文件详细说明

在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络.

#运行用户
user www-data;

#启动进程,通常设置成和cpu的数量相等
worker_processes 1;

#全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

#工作模式及连接数上限

1
2
3
4
5
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}

Read More

进程标志设置

消息和binary内存:erlang:process_flag(min_bin_vheap_size, 1024*1024),减少大量消息到达或处理过程中产生大量binary时的gc次数
堆内存:erlang:process_flag(min_heap_size, 1024*1024),减少处理过程中产生大量term,尤其是list时的gc次数
进程优先级:erlang:process_flag(priority, high),防止特殊进程被其它常见进程强制执行reductions
进程调度器绑定:erlang:process_flag(scheduler, 1),当进程使用了port时,还需要port绑定支持,防止进程在不同调度器间迁移引起性能损失,如cache、跨numa node拷贝等,当进程使用了port时,主要是套接字,若进程与port不在一个scheduler上,可能会引发严重的epoll fd锁竞争及跨numa node拷贝,导致性能严重下降

Read More
  1. android 手机一部
  2. tsung 环境

思路:使用tsung的recorder功能 先记录下app的请求内容(这个可以通过 让手机代理到tsung机器的指定端口),然后让tsung使用recorder记录下来的xml文件无脑进行回放,以达到测试服务性压力。

1.tsung启动监听代理

执行tsung-recorder -p http -L 8080 start,这样就会直接进行代理,并记录通过8080端口的协议内容,然后就可以在app上面点击功能让app向服务器请求内容。

Read More