多个 Github 账号的 key 管理

按照这篇文章的步骤创建一个新 key, 比如名字叫:id_rsa_second 和 id_rsa_second.pub.

ssh-add 刚刚生成的 ID.

在.ssh 目录下创建一个文件config, 内容是:

Host github-second
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_second

Host 是随便起的一个别名,对应的真实的HostName在第二行设置: github.com

然后在添加第二个账号的 Repo 时把 URL 中对应的 github.com 部分换成 github-second, 剩下的就是正常的 Git 操作了。


2013-11-19 Github, ssh

蒙地卡罗方法求 PI

蒙特卡罗方法

蒙特卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法1

求 PI

假设有一个圆半径为1,那么四分之一圆面积就为 $\frac{\pi}{4}$,而包括此四分之一圆的正方形面积就为1,如下图1

如果随意的在正方形中投点,坐标为 $x, y$, 则这些点有些会落于四分之一圆内,假设所投射的点有 m 点,在圆内的点有 n 点,则 $\frac{n}{m}\times4=\pi$,如果 $x, y$满足 $x^2 + y^2 \leq 1$ 则该点落在了圆内。


2013-11-16 puzzle

禁用 ssh 的登录超时

如下在 /etc/ssh/sshd_config 中设置,可以完全禁用 ssh 的登录超时功能:

TCPKeepAlive yes
ClientAliveInterval 30
ClientAliveCountMax 99999
  • TCPKeepAlive: 不必多说,有疑问可以查看这里:TCP Keepalive HOWTO
  • ClientAliveInterval: 服务器在多少秒没有收到向客户端数据后发送一个空包给客户端以保持连接。如果设 0 则禁用此功能,长时间空闲时会断掉连接。默认为 0.
  • ClientAliveCountMax: 服务器发出多少连接探包后关闭连接。默认是 3.

这里的 30 秒 × 99999 次就是保持连接 2083 天。

修改之后重启 sshd.

sshd 配置的说明:http://unixhelp.ed.ac.uk/CGI/man-cgi?sshd_config+5


2013-11-14 ssh

博客程序的演化和其他

最早期的个人站点都是纯 HTML 的文件。后来发展出了动态脚本语言,管理员填写内容,由脚本动态输出页面给最终用户。之后是动态博客系统,像著名的 Wordpress, 在网站的后台输入内容,用户访问的时候动态的组合,输出内容给用户。再往后就发展到了在后台系统中填写博客或网站内容,由脚本生成组织好的静态的 HTML 页面,或直接在文件系统中用比 HTML 简单的标记语言如 Markdown, ${\LaTeX}$ 等直接编写文本文件,再由脚本生成静态页面发布的过程。


2013-11-09 blog, web

域名切换和 nginx 的 301重定向

前两天在 name 上搜索域名,无意间发现 tjs.im 还没有被注册。对于 .info 域名的名声和 tjsweb 这个奇怪的名字早就有所不爽,索性直接拿下了 tjs.im 这个域名。

下面就是怎么使用这个域名和从老域名切换过来的问题,需要做到的效果就是老域名下所有页面的访问都需要通过 301 永久重定向到相应的新域名下,这对于 nginx 来说是再简单不过的事情,只需要创建一个新站点,并做如下配置:

server {
    listen       80;
    server_name tjs.im tjsweb.info www.tjsweb.info;
    return       301 http://www.tjs.im$request_uri;
}

然后设置好 Feedburn 中的新feed地址,设置 DNS, 等待 DNS 生效就完工了。


2013-11-08 nginx, web

Github Pages 的域名定制

在 CNAME 中设置好域名后给定制的域名设置个 cname 到 xxx.github.io 就可以了,xxx可以是任意字母。Github 会自动找到它设给这个域名的一个 CNAME 然后解析到正确的 IP 地址。即使 Github 的 IP 发生了变化也会自己调整。

tech.tjs.im 的域名查询如下:

$ dig tech.tjs.im +nostats +nocomments +nocmd
; <<>> DiG 9.8.5-P1 <<>> tech.tjs.im +nostats +nocomments +nocmd
;; global options: +cmd
;tech.tjs.im.           IN  A
tech.tjs.im.        300 IN  CNAME   xxx.github.io.
xxx.github.io.      538 IN  CNAME   github.map.fastly.net.
github.map.fastly.net.  30  IN  A   103.245.222.133

2013-11-08 Github