如何实现在屏幕上刷新同一行日志
利用回车\r符号,可以回到行首,覆盖掉原来的日志即可。
#include <unistd.h>
#include <stdio.h>
int main()
{
for(int i=0; i<100; ++i){
sleep(1);
printf("\rprint %d times", i);
}
return 0;
}
Tornado网络框架入门
Tornado是脸书开源的一个轻量级,高效率,非阻塞的python实现的web框架。
我关注它的使用,也就是开发效率。
使用Tornado要求Python2.5以上版本。 如果用到了tornado.httpclient,还必须安装pycurl。如果是使用Python2.5,需要安装simplejson,更高版本就不用了。
使用Tornado开发,不用安装(当然,你也可以按照说明文档安装), 只需要将源码包解压后放在某一个目录,比如/path/to/tornado, 然后在每个用到Tornado的python文件靠前的位置写上
import sys
sys.path.append('/path/to/tornado')
就可以了。
下面是官方网站提供的一个hello world的例子:
#!/usr/bin/env python
import sys
sys.path.append('/path/to/tornado')
import tornado.httpserver
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
三个firefox扩展
delicious for firefox, google notebook for firefox, google calender notifier for firfox这个三个扩展是我非常喜欢用的,但是其中两个已经不再更新,所以不兼容最新的firefox。另外一个不满足我自己的需求,所以也改了两句代码。
静态类成员变量初始化顺序
在处理静态类成员变量初始化顺序的问题上,一定要小心
- 尽量不要在静态类成员变量之间形成依赖。
- 如果一定要有依赖,注意在写Makefile时注意链接object文件的顺序。 被依赖的object文件放在后面。
VC编译c程序的问题
一个syntax error : missing ';' before 'type'的编译错误,搞了好久。 原来vc在编译c程序时,一定要把变量的定义放在函数的最前面,一定不能放在某个函数的调用后面。
Linux下find命令的几个应用
linux下批量删除某一类文件,以删除当前文件夹下jpg文件为例
批量复制某一类文件,一复制当前文件夹下jpg文件到/des_dir为例
linux下统计某一个目录下有多少文文件:
综合利用find和wc -l. wc -l 是统计输出命令的行数