1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- coding: utf-8 -*-

# 在 list 前补 0
def complement_short_num(num, length):
for i in range(length):
num.insert(0, 0)
return num

def add_binary_number(num1, num2):
length1 = len(num1)
length2 = len(num2)
min_length = length1 if length1 < length2 else length2
max_length = length1 if length1 > length2 else length2
different_length = max_length - min_length

if length1 < length2:
num1 = complement_short_num(num1, different_length)
else:
num2 = complement_short_num(num2, different_length)

# 初始化结果数组
num3 = complement_short_num([], max_length + 1)

carry = 0 # 进位
for i in range(1, max_length + 1):
sum = num1[-i] + num2[-i] + carry # 得益于 python 特性从 list 尾部开始计算
if sum > 1:
num3[-i] = sum % 2
carry = 1
else:
num3[-i] = sum
carry = 0

# 为结果加进位
if carry == 1:
num3[0] = 1

return num3

sum = add_binary_number([1, 1, 0], [1, 1, 1, 1, 1])
print(sum)

简介

docker-compose 是容器编排工具,使用 YAML 作为配置文件,根据配置启动、停止、重启一组容器。

安装

1
2
3
4
5
// 下载 docker-compose 可执行文件(需要管理员权限)
sudo curl -L https://github.com/docker/compose/releases/download/1.5.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

// 给可执行文件赋予执行权限(需要管理员权限)
sudo chmod +x /usr/local/bin/docker-compose

阅读更多

国内网络环境复杂,想要访问某些网站或服务,发现已经被墙。作为一个普通用户,我们可以有很多方式达到目的,客户端软件大多拥有界面,体验良好。那么对于运行在服务器上的程序想要访问被墙的服务,操作起来就不那么容易了。服务器没有界面也就没有那些操作简单的可视化客户端了,这时就想到了代理。我们需要一台运行在墙外的服务器,能正常访问被墙的服务,然后将被墙服务器的流量转发到墙外的服务器上去,解决方案就是 ss + redsocks + iptables。

阅读更多

简介

Docker 是一个构建、管理和运行分布式应用的开源平台。它提供给程序员、开发团队和运维工程师共同的工具箱,来利用分布式的、网络化的现代应用的特性。

安装

Ubuntu 14.04

1
2
3
4
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-engine

阅读更多

利用 Express 中间件功能实现登录拦截。如果用户请求的路径需要登录后才能访问,将用户重定向到登录页面,登录成功后将用户重定向到原始请求路径。

设置应用中间件,监控所有请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// app.js
app.use(function (req, res, next) {
if (req.session.user) { // 判断用户是否登录
next();
} else {
// 解析用户请求的路径
var arr = req.url.split('/');
// 去除 GET 请求路径上携带的参数
for (var i = 0, length = arr.length; i < length; i++) {
arr[i] = arr[i].split('?')[0];
}
// 判断请求路径是否为根、登录、注册、登出,如果是不做拦截
if (arr.length > 1 && arr[1] == '') {
next();
} else if (arr.length > 2 && arr[1] == 'user' && (arr[2] == 'register' || arr[2] == 'login' || arr[2] == 'logout')) {
next();
} else { // 登录拦截
req.session.originalUrl = req.originalUrl ? req.originalUrl : null; // 记录用户原始请求路径
req.flash('error', '请先登录');
res.redirect('/user/login'); // 将用户重定向到登录页面
}
}
});

阅读更多

放射性元素的原子核有半数发生衰变时所需要的时间,叫半衰期。随着放射的不断进行,放射强度将按指数曲线下降,放射性强度达到原值一半所需要的时间叫做同位素的半衰期。

原子核的衰变规律是:N = N0 * ( 1 / 2 ) ^ ( t / T )。其中:N0 是指初始时刻( t = 0 )时的原子核数,t 为衰变时间,T 为半衰期,N 是衰变后留下的原子核数。

阅读更多

中国自古以来,男主外女主内,现在虽然女人也工作,但是男人收入比女人低,家里矛盾会很多的,岳父母估计也会看不起这女婿的。同样的,男方的条件没有女方好,就如同收入不及女方。

另外,男人本身的自尊心也会因此受到打击,也许开始时没有什么,但是在和女方父母亲戚交往中,一些有意无意的话都会让他觉得女方看不起他。自尊心受到打击的他,生活中自然越来越缺少信心,缺少绅士风度,甚至做出一些你不能接受的事情来挽回他的自尊……

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×