#163 转载:性能测试应该怎么做?

2016-07-08

偶然间看到了阿里中间件Dubbo的性能测试报告,我觉得这份性能测试报告让人觉得做这性能测试的人根本不懂性能测试,我觉得这份报告会把大众带沟里去,所以,想写下这篇文章,做一点科普。

#162 高效的代码部署 [编辑中]

2016-07-08

对于一个服务来讲,代码部署的速度和便捷性并不是一件很要紧的事情。但是对于开发者来说,能够高效部署代码,还是能够在一定程度上提升自己开发和测试的效率。

#160 逻辑运算与位运算

2016-07-01

逻辑运算,一共十六种结果:

  1. 0 矛盾 F
  2. 1 恒真 T
  3. p
  4. q
  5. not p
  6. not q 非 not
  7. p and q 与 and
  8. p or q 或 or
  9. p xor q 异或 xor(相异为 1,相同为 0)
  10. not (p and q) 与非 nand
  11. not (p or q) 或非 nor
  12. not (p xor q) 异或非 xnor(又叫同或,相同为 1,相异为 0)**
  13. (not p) and q 逆非蕴含
  14. p and (not q) 实质非蕴含
  15. (not p) or q 实质条件
  16. p or (not q) 逆命题

基础运算符:与、或、非、异或。

逻辑运算有与或非:&&, ||, !
按位运算有与或非和异或:&|~^

| 按位运算 | 运算符 |
| -------- | ------ | --- |
| 与 | & |
| 或 | | |
| 非 | ~ |
| 异或 | ^ |

参考资料与拓展阅读

#158 Linux 创建用户帐号

2016-06-28

概念

  • 用户
  • 用户组
  • ACL
  • SELinux

useradd 命令

sudo useradd testuser -m -d /home/testuser -s /bin/bash

如果忘记加上 -m 参数,那就只好手动创建用户主目录(家目录):

sudo mkdir /home/testuser
sudo cp -rT /etc/skel /home/testuser
sudo chown -R testuser:testuser /home/testuser

此外,修改用户信息可以使用 usermod 命令:

sudo usermod -d /home/testuser
sudo usermod -s /bin/bash
$ tail -1 /etc/passwd
testuser:x:1001:1001::/home/testuser:/bin/bash

adduser 命令

就相当于封装了比较低级的 useradd 命令,除了执行上面的全部操作,还提供更多的配置项。

# 创建普通的用户帐号
sudo adduser testuser2

# 创建不能用于登录的系统帐号
sudo adduser --system share
$ tail -2 /etc/passwd
testuser2:x:1002:1002:Test User,303,15812345678,02788888888,hello world:/home/testuser2:/bin/bash
share:x:131:65534::/home/share:/bin/false

“Test User,303,15812345678,02788888888,hello world” 这一串是创建过程中让你输入的 “全名”、“房间号”、“工作电话”、“家庭电话”、“其他”,最后逗号隔开,放在 /etc/passwd 文件的注释字段里面。

用户组

addgroup
groupadd
groupdel
groupmems
groupmod
groups

#156 利用 Nginx 做正向代理

2016-06-26

HTTP 代理

server {
    resolver 223.5.5.5;
    listen 80;
    location / {
        proxy_pass http://$host$request_uri;
        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0k;
        proxy_connect_timeout 30;
        proxy_send_timeout 60;
        proxy_read_timeout 60;
        proxy_next_upstream error timeout invalid_header http_502;
    }
}

server {
    resolver 223.5.5.5;
    listen 443;
    location / {
        proxy_pass https://$host$request_uri;
        proxy_buffers 256 4k;
        proxy_max_temp_file_size 0k;
        proxy_connect_timeout 30;
        proxy_send_timeout 60;
        proxy_read_timeout 60;
        proxy_next_upstream error timeout invalid_header http_502;
    }
}

proxy_cache_path /data/Resources/PyPI/ levels=1:1:1 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

server {
    location /pypi/ {
        proxy_cache pypi_cache;
        proxy_cache_revalidate on;
        proxy_cache_min_uses 3;
        proxy_cache_use_stale error timeout updating
                              http_500 http_502 http_503 http_504;
        proxy_cache_background_update on;
        proxy_cache_lock on;
        proxy_pass http://pypi.douban.com/simple/$request_uri;
    }
}

#155 关于机器学习

2016-06-25

最近一年来,在多个技术社区中看到大家讨论机器学习,似乎已经炙手可热了,作为一个程序员,还是需要学习了解一番。
相关的理论还没有进行深入的研究,实践经验也就更加谈不上,这里只是从“概念”层面上来学习(也算是一点小预研吧)。