libpq-fe.h:没有那个文件或目录

2014年1月03日 09:13

安装psycopg2出现这个错误,需要安装postgresql-devel

sudo yum install postgresql-devel

评论(0) 阅读(791)

Python.h:没有那个文件或目录

2014年1月03日 09:09

安装包出现上面错误,是因为缺少python-devel

sudo yum install python-devel

评论(0) 阅读(608)

精进是断烦恼开智慧的秘诀

2014年1月02日 09:03

精进是断烦恼开智慧的秘诀,最要紧的要专精专修,要把全部精力用在一部经上!一门没学好,决定不可以学别的法门!不少人学的很多,他杂进乱进,什么经都想看,什么法门都想学,把修学的精力分散了!不肯「一门深入、长时熏修」,所以无论怎么努力,最后也得不到效果,亏吃在这个地方!——净空老法师
 

 

评论(0) 阅读(655)

ssh别名登录

2013年12月31日 17:11

经常使用ssh远程登录,每次都敲一长串字符。重复多了,有砸键盘的冲动。后来发现可用别名代替。

在~/.ssh/config 中加入以下内容

Host mt98   //快捷名
HostName 135.32.9.98 //主机名
User monitor  //用户名

然后可用ssh mt98登陆

运行时出现错误

ssh: Could not resolve hostname mt98: Name or service not known

config文件需要改成和known_hosts的所有者一致.

Tags: ssh
评论(0) 阅读(888)

错误默认值造成的郁闷

2013年12月30日 10:37

使用错误的默认值,会掩盖错误,又造成新的错误,最后将错误传入内部。

# 前台传入三个参数,三个参数都是必需的.
identifier = web.input().get("identifier", None)   # webpy框架
year = web.input().get("year", None)
taxpayer_name = web.input().get("taxpayer_name", None)
# 传输如None参数,会导致接口出现错误
result = service.inquiryTaxOwe(identifier, year, taxpayer_name)

前台传入三个参数时,表现正常。

上面使用默认参数是demo阶段时为了方面。实现时会出现下面的情况.

如果人来用它,只传入部分参数,结果发现程序有异常(inquirytaxOwe函数内抛出的)。它会找到实现接口的人,告诉你你的程序有问题。这个时候你怎么解释? 异常是里面一层抛出的,这一层可不管调用者的事,调用者只负责传参数,然后拿到结果。这时你会发现多么的郁闷。说不是你的责任,但是有你一分。说不是调用者的责任,实际也有它一分。
 
换一种方式
identifier = web.input().identifier
year = web.input().year
taxpayer_name = web.input().taxpayer_name
result = service.inquirytaxOwe(identifier, year, taxpayer_name)

再不传入参数时,会及早发现,不会再有上面的郁闷了.

评论(0) 阅读(642)

SimpleHttpServer出现unicodeDecodeError

2013年12月30日 09:46

在win8系统下运行 python -m SimpleHTTPServer 出现Traceback (most recent call last):

  File "D:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "D:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "D:\Python27\lib\SimpleHTTPServer.py", line 27, in <module>
    class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
  File "D:\Python27\lib\SimpleHTTPServer.py", line 208, in SimpleHTTPRequestHand
ler
    mimetypes.init() # try to read system mime.types
  File "D:\Python27\lib\mimetypes.py", line 358, in init
    db.read_windows_registry()
  File "D:\Python27\lib\mimetypes.py", line 258, in read_windows_registry
    for subkeyname in enum_types(hkcr):
  File "D:\Python27\lib\mimetypes.py", line 249, in enum_types
    ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal
not in range(128)

在import SimpleHTTPServer时,同样出现上面的错误.

在import sys后面加上下面语句

reload(sys)
sys.setdefaultencoding('gbk')

评论(0) 阅读(1290)

Building the main Guest Additions module [失败]

2013年12月27日 19:03

在安装virtualbox的增强功能时出现错误
Building the main Guest Additions module [失败]
 
查看日志找到原因,缺少依赖
Uninstalling modules from DKMS
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxguest/4.3.6/source ->
                 /usr/src/vboxguest-4.3.6

DKMS: add completed.
Error! echo
Your kernel headers for kernel 3.12.5-302.fc20.x86_64 cannot be found at
/lib/modules/3.12.5-302.fc20.x86_64/build or /lib/modules/3.12.5-302.fc20.x86_64/source.
Failed to install using DKMS, attempting to install without
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again。 停止。
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.
 
安装缺少的模块
sudo yum install dkms kernel-devel
应该是在编译一些东西,可能需要先安装gcc
 
验证是否成功
sudo /etc/init.d/vboxadd setup

 

Tags: virtualbox
评论(0) 阅读(1241)

令人不爽的数据检查

2013年12月17日 22:01

每当看到,用if检查数据,正确则把参数参入xxx函数执行,总是很不爽.

不仅感觉难看,而且使逻辑混乱.

数据合法性判断是函数自身的职责,如果将这个职责移到外面,它就是一个污染.

使用这个函数的地方越多污染的也越多.

 

评论(0) 阅读(658)

让远程机器执行命令的便捷方式

2013年12月17日 21:19

假如想查看远程机器A上的某个进程是否存在.

通常第一步是ssh到那台机器,第二步是运行ps -ef |grep process_mon.py命.

ssh可以将两个步骤合并在一起,让过程更轻松.

ssh wyq@135.32.22.22 'ps -ef |grep process_mon.py'

评论(0) 阅读(665)

with让数据库操作代码变得清爽

2013年12月17日 21:03

对数据操通常都需要打开与关闭连接,而且用try-finally保证连接被关闭.

这些常规的操作会让代码变得难看.

db = web.database(dbn='oracle', db='......', user='hy', pw='1234')
try:
    db.query("select * from t_c_ms_interface")
finally:
    db.ctx.db.close()

用上下文协议隐藏这些操作

class IPCCCDB:
    def __init__(self):
        self.dns = '....'

    def __enter__(self):
        import web
        self.db = web.database(dbn='oracle', db=self.dns, user='hy', pw='1234')
        return self.db

    def __exit__(self, type, value, traceback):
        self.db.ctx.db.close()

然后,变得如此清爽

with IPCCCDB() as db:
    db.query("select * from t_c_ms_interface")

评论(0) 阅读(834)