有意思的大端序和小端序

  多字节对象(比如int是4字节)都被存储为连续的字节序列。存储方法一般分两种:多个字节的高位放在存储地址上面的高位,或者放在低位上。
  平常我们打开文件阅读,都是从低到高的顺序阅读的,和大端序的顺序一样,小端序需要倒着念。比如一个int数值0x12345678,在地址0x100开始放置。下表的左边显示的是地址。
阅读更多…

python3 pymysql ‘latin-1’ codec can’t encode character 错误 问题解决

  在使用pymysql库的时候,发现这么一个问题:
UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 340-360: ordinal not in range(256)
  首先数据库设定的是utf8mb4的,获取到的数据也是utf8的,连脚本的编码也是utf8的,但是为什么还是会出现编码错误呢?
  经过查证:connect连接数据库的时候需要指定数据集
#coding: utf-8
import pymysql
# 打开数据库连接
com = pymysql.connect(“localhost”,”root”,”123″,”TEST” ,use_unicode=True, charset=”utf8″)

浅谈观察者模式和代理模式

  今天聊天交流的时候,提及观察者模式和代理模式。一个同学是这么说的:观察者模式和代理模式实现出来的最终效果都一样,在代码层面上都是可以相互实现的。他可能是觉得不管用什么模式,最后业务层面实现的需求都是一样的。这就使我之后对这两种模式进行了深入的研究,细思他们的定义。
阅读更多…

走过、路过、痛过 —记那些年编码的坑

  来聊两个故事(其实是两个事故)。

故事1

  发生在项目紧急上线前,我接手了离职同事的代码,buglist里面的烫手山芋。
  bug描述:子页面的新增插入到本页面的全部和最新的Tab下面,如果tab下面没有数据,就不插入。
  开始分析:发现下面的枚举定义 阅读更多…

debian8上面跑node的nightmare库

  最近想把nightmare移植到debian上面,但是使用npm安装上去之后,发现不能运行。因为NightmareJS使用Electron,不能运行的话肯定是缺少让Electron运行的库啦,只要安装好应该就可以了。参考 在Amazon Linux上使用NightmareJS/Electron,感谢这篇文章给提供的思路。
阅读更多…

如何快速的把centos6.8的内核升级到3.10.28

  最近为了玩docker,官方要求的是内核3.8以上,centos6.8的内核才2.6啦,远远不够得需要升级。在网站找了不少的帖子发现好多需要各种设置各种源码编译,看着就麻烦,万一他的教程(不知道从哪儿复制别人的时候),遗漏了两行,那就绝对的进坑了。终于找到了一篇很短的,只需要5部就能搞定的教程。参考 使用yum快速升级CentOS 6.5内核到 3.10.28
阅读更多…

mail命令使用外部smtp来发送邮件

  bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用。我觉得更重要的是,发送的邮件成功率会高一些。而通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的。
   阅读更多…

使用七牛cdn镜像加速功能的正确姿势

  七牛云存储的免费10G流量和空间还是蛮有诱惑力的,不仅能减轻自身服务器压力还能提高网站速度,所以吸引了一大批的用户使用,但是听说某些朋友反应使用七牛云后网站可能被降权。

一、绑定自有二级域名

  默认情况下七牛给我们提供了二级域名使用,但是如果有备案的话,就在七牛空间绑定自己的二级域名,这个会友好一些。

二、通过UserAgent来屏蔽

  通过UserAgent来屏蔽七牛镜像爬虫对网页文件的抓取,代码如下: 阅读更多…

错误修复sendmail: fatal: parameter inet_interfaces: no local interface found for ::1

配置fail2ban的时候会执行mail,但是输出了这样子的错误信息
sendmail: fatal: parameter inet_interfaces: no local interface found for ::1
搜索一下,发现跟IPv6有关,解决办法就是让postfix只用IPv4。
打开文件:/etc/postfix/main.cf

inet_protocols = all
改成
inet_protocols = ipv4
完了之后执行
service postfix restart

iptables基本配置与重启失效的解决方案

据说下面的配置比较安全

#防止SYN攻击 轻量级预防
iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
阅读更多…