Archive for 五月, 2009

可惜!

Posted by 机器人 on 28th 五月 2009 in mylife

上周六,听以前的同事讲,刚接到主管电话,说:”公司解散了,大家周一不要来上班了,东西也不要拿了,电脑都全买了”,乍一听,还以为是在开玩笑,越听越像是个笑话,但似乎又从同事的聊天语气中听出了几分无赖。

于是我马上访问公司的主页,确实现在已经无法访问,周一时,所有系统都已经不能访问了。

今天上午,同事又来电话,说:“周一去了公司、整个一层楼已经空了,电脑也卖了,机房的服务器也全停了,然后相关负责人也没有讲具体是什么原因、只说了,过几天会给答复的”。

让我不明白的地方是,公司一直运营的好好的,而且一点不正常的迹象都没有,怎么会就在一天时间里,一下子消失了呢?到目前还不知道究竟是因为什么原因导致了这么的恶果,那怕裁员,大家似乎也容易接受些啊!最起码,本着员工负责的态度,先不讲什么补贴了,至少你也应该事先通知大家一下,也好让大家有个心理准备,从而有一些打算。

想着当年入职的那天,老总整整用了一下午时间,向我们大势描绘公司将来的宏伟蓝图,,讲的我们是热血沸腾。而如今,哎!!可惜!!不只可惜了公司的半路夭折,更多可惜了那帮可爱的兄弟!!

祝大家端午节快乐

机器 人 2009-05-28 1:00

vim几个小技巧(转)

Posted by 机器人 on 13th 五月 2009 in vim

在normal模式下光标停在某个字符上ga可以查看该字符的ascii码
#复制删除粘贴的操作:按V(shift+v),进入可视模式,jk上下选择需要的行,然后按
y 复制
d 删除
x 剪切
p 粘贴
可视模式很好用,例如想把两行的所有单词变成小写,按V然后按j或k选中这两行,按gu即可
#跳到行首按0,但实际更好用的是^, 跳到行首非空白字符
#折行前空出4字符显示折行标识
set foldcolumn=4
#折叠或展开(在折叠的那一行左右移动光标也可展开折叠)
za
#删除光标所在行所处的范围的折叠
zd
#当在:set foldmethod=marker后,折行会把{{{和}}}之间的内容折叠
#不在单词中间断行。 设置了这个选项后, 如果一行文字非常长, 无法在一行内显示完的话,
它会在单词与单词间的空白处断开, 尽量不会把一个单词分成两截放在两个不同的行里。
set lbr
#sw是shiftwidth的缩写,表缩进列数
fx把光标移动到该行的下个x字符上,这个x也可以是一个汉字,;重复fx操作。Fx把光标移动到该行的上一个x字符上。
gg光标定位到第一行开头,G定位到最后一行开头
H光标跳到当前窗口显示文本的第一行
M光标跳到当前窗口显示文本的中间一行
L光标跳到当前窗口显示文本的最后一行
g*查找包含当前单词的所有单词(*只查找与当前单词精确匹配的单词),
-d光标下跳半屏,文本上滚半屏
-u光标上跳半屏,文本下滚半屏
-e文本向上滚动一行
zz屏幕滚动使得当前行成为屏幕的中间一行
normal模式下按J删除此行末尾的换行符,从而合并两行
:e!重新读进上次保存的此文件内容
:ab myname william_djj
以后再编辑时键入myname,然后空格或回车myname串就会被william_djj代替
:r !date
在当前位置插入系统时间(linux下的date命令),同理当前位置插入某文件的内容就是
:r filename
:set ignorecase
查找时取消case sensitive
:set noignorecase
查找时case sensitive
############ 使用tags ###################
以下命令递归当前目录下的所有文件创建tags文件
ctags -R .
vim打开当前目录下的任意一文件,命令模式下键入下面语句以指定刚才创建的tags的位置,以后就可以在不同文件间查阅函数
set tags=..\tags
#分割窗口显示当前函数的定义
-w ]
##########################################
如果插件目录下有echofunc.vim,用以下命令生成tags,以后编辑代码函数名后打“(“时有参数提示。
$ ctags -R –fields=+lS .
:Tlist打开左边一个taglist的窗口,显示symbols。要注意的是在windows下如果tags文件路径中有空格或中文会报找不到tags文件的错误,
+w+w 或者+w+left/right 窗口切换
+] 进入光标所指的symbol的定义(如果用鼠标也是+鼠标左键,跟SI的用法一样)
+t 返回第一个用+t 跳转位置,注意+o是跳回上一个视图,而+t是跳回上一次按+]的位置
#以下命令分裂出一个窗口显示定义处
ptag 函数名
#以下命令关闭刚才打开的分裂窗口
pclose

#垂直分裂窗口打开一文件
vsplit 文件名

#水平分裂窗口打开一文件
split 文件名
变量名写成\name表示匹配模式
停在某个括号上按%,跳到匹配的括号处,#if跳到匹配的#else或#endif处
set fdm=syntax折叠函数体
双击]往后逐个函数跳读,双击[往前逐个函数跳读

#解决乱码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

#在vim下对比两个文件,原来打开了fnpro.c,现在和fnpro.c.bak对比

#垂直分割
:vert diffsplit fnpro.c.bak

#水平分割
:diffsplit fnpro.c.bak

#跳到下一个不同之处
:]c

#跳到上一个不同之处
:[c

#展开折叠:zo

#折叠:zc

#不论何种情况下-o都可以上一次跳转的地方

#查看变量和函数的申明
[i

#以下为查看vim环境参数makeprg的值的例子:
:set makeprg?

#重新对文件代码进行缩进
gg=G

载自:http://blog.163.com/william_djj@126/blog/static/35166501200802015652314/
机器人 2009-05-13 10:47 于 北京

vim编码

Posted by 机器人 on 12th 五月 2009 in vim

1.在vim中,查看当前文件编码格式

:set fileencoding

2.转换文件编码

:set fileencoding=utf-8

3.iconv转换编码

~@bash iconv -f gbk -t utf-8 gbk.txt > utf-8.txt

4.乱码解决方法
在.vimrc中添加如下代码

set fileencodings=utf-8,cp936,big5,euc-jp,euc-kr,latin1,ucs-bom
set fileencoding=utf-8

参考:http://blog.163.com/qj_l12@126/blog/static/3593082620089710462888/

机器人 2009-05-12 17:46 于 北京

linux批量替换命令

Posted by 机器人 on 12th 五月 2009 in linux/server
sed "s/商 圈/空 间/g" `grep '商 圈' -rl .`

机器人 2009-05-12 15:54 于 北京

scp非默认端口号拷贝

Posted by 机器人 on 12th 五月 2009 in linux/server
root@shibu-laptop:# scp '-P 2222' style.css  root@IP-address:/root/
style.css                                                      100% 5509     5.4KB/s   00:00
:~$ scp --help
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]

机器人 2009-05-12 15:46 于 北京

特此 纪念512特大地震一周年

apache cgi程序的简单配置

Posted by 机器人 on 5th 五月 2009 in c/c++, linux/server

首先添加虚拟主机

<virtualhost 127.0.0.1:50001>
</virtualhost>

这里新添加了50001端口来进行监听,所以还需要添加监听端口号

Listen 50001

要让程序能正常运行,还得通过配置ScriptAlias来允许服务器在指定的情况下,以CGI方式运行。

<virtualhost 127.0.0.1:50001>
ScriptAlias /cgi-bin/ /usr/local/ebserver/apache/cgi-bin/
</virtualhost>

所以上述的配置会告诉apache,所以以/cgi-bin/开头的资源都会被映射到/usr/local/webserver/apache/cgi-bin/目录下,并被认为是cgi程序。
然后重启服务器
在apache/cgi-bin/目录里有一些测试例子,我们可能用它来测试下,看看配置是否能正常运行。
比如说apache/cgi-bin/目录下有个test-cgi程序,源码如下:

#!/bin/sh
 
# disable filename globbing
set -f
 
echo "Content-type: text/plain; charset=iso-8859-1"
echo
 
echo CGI/1.0 test script report:
echo
 
echo argc is $#. argv is "$*".
echo
 
echo SERVER_SOFTWARE = $SERVER_SOFTWARE
echo SERVER_NAME = $SERVER_NAME
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
echo SERVER_PORT = $SERVER_PORT
echo REQUEST_METHOD = $REQUEST_METHOD
echo HTTP_ACCEPT = "$HTTP_ACCEPT"
echo PATH_INFO = "$PATH_INFO"
echo PATH_TRANSLATED = "$PATH_TRANSLATED"
echo SCRIPT_NAME = "$SCRIPT_NAME"
echo QUERY_STRING = "$QUERY_STRING"
echo REMOTE_HOST = $REMOTE_HOST
echo REMOTE_ADDR = $REMOTE_ADDR
echo REMOTE_USER = $REMOTE_USER
echo AUTH_TYPE = $AUTH_TYPE
echo CONTENT_TYPE = $CONTENT_TYPE
echo CONTENT_LENGTH = $CONTENT_LENGTH

然后在浏览器里输入http://127.0.0.1/cgi-bin/test-cgi
如果设置正确就能显示如下信息

CGI/1.0 test script report:
 
argc is 0. argv is .
 
SERVER_SOFTWARE = Apache/2.2.10 (Unix) PHP/5.2.8
SERVER_NAME = 127.0.0.1
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.1
SERVER_PORT = 50001
REQUEST_METHOD = GET
HTTP_ACCEPT = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
PATH_INFO = 
PATH_TRANSLATED = 
SCRIPT_NAME = /cgi-bin/test-cgi
QUERY_STRING = 
REMOTE_HOST =
REMOTE_ADDR = 127.0.0.1
REMOTE_USER =
AUTH_TYPE =
CONTENT_TYPE =
CONTENT_LENGTH =

当然你也可以选择用其它语言来写一个cgi程序,其中apache提供了一个用pear写的例子。
下面是用C语言写的一个简单的例子。

#include <stdlib .h>
#include <stdio .h>
int main (int argc, char** argv) {
    char a[] = "-100";
    char b[] = "456";
    int c;
    c = atoi(a) + atoi(b);
    char *p;
    p = getenv("QUERY_STRING");
    printf("Content-type: text/html\n\n");
    printf("c=%d",c);
    printf("%s",p);
    return 0;
}
</stdio></stdlib>

实现功能为:打印打印a+b的值,如果有get参数,同时打印get参数
编译

hqlong@ubuntu:/usr/local/webserver/apache/cgi-bin$ gcc test.c -o test

这时我们可以通过http://127.0.0.1:50001/test来访问了。
如果通过http://127.0.0.1:50001/test?name=hqlong
我们的程序就会打印name=hqlong这个查询参数。
参考资料:http://doc.chinahtml.com/Manual/ApacheManual/howto/cgi.html
机器人 2009-05-05 17:52 于 北京

说说开心网

Posted by 机器人 on 4th 五月 2009 in mylife

不知道最近大家是否注意到,不管是在大街上,食堂里,还是在写字楼的电梯里,都能听到“今天我的菜又被偷了,或者说我又把谁的菜给偷了”,不知道内情的人可能会听不明白,既然听明白了,也会想:“这人,偷了东西还这么得意”。
其实这里的偷菜是开心网最近推出的一款游戏,在开心网里添加买房子组件,就能得到一个花园,然后你就可能在花园种菜,如果你的菜熟了,没来得及收,很可能就被好友给偷走了。当然,你也可以时时去好友家逛逛,如果正好遇到他家菜也熟了,那你也就可以大偷一把了。

最近身边玩开心网的人也是越来越多,除了身边的同学朋友,身边的大部分同事也都在开始玩!!最近我自己也是慢慢的迷上了。

就把五一来讲吧!!去天津玩,没有带电脑,不能上网,居然和同学通电话时,第一件事居然讲的是:“看看我的菜熟了没,如果熟了就帮我先收了”,再拿昨晚来讲吧!!半夜睡醒了,居然同样想到的是这时是不是谁的菜又该熟了,然后又打开电脑。。

当然,在去年,开心网也风靡过一时,那时最著名的组件是朋友买卖和占车位。过后差不多很多人慢慢就离开了,我也是大半年没有登录了,最近开心网又重拳出击,推出买房子这款堪称经典的游戏,可见开心人的创造力和想象力!

通过这些事件想说明的是开心网的这种口碑传销方式的力量。在没有任何宣传和公关情况下,能影响着这么多人,确实是一件很也不起的创新。
再从游戏里看,会发现,这些游戏设计时鼓励大家要经常登录而且是要朋友越多越好玩!!所以就会收到身边不少朋友的邀请,当然,在开心网里面,只要你朋友多,而且又是经常在里面经营的话,会赚到很多很多钱,当你赚到很多很多钱的时候,会实现现实当然很多你不能实现或者没有能力实现的东西,同样也可以给自己找回一些平衡。
再从经常学的角度来看的话,如果你稍加留心,会发现里面的赚钱方式和相关的汇率转换不是盲目进行的,是有相关的金融规律在里面运作,还有就是要在开心网里经营自己的事业,如果没有一定的经济头脑,赚钱也是很慢的!!这又似乎回到了现实当然!!所以说开心网的设计者很用心!!

机器人 2009-05-04 21:55 于 北京