Dec 23, 2009

英语

唉,英语是多么重要的一们语言阿

想想比我的 c 重要太太太多 ............

Dec 15, 2009

proxy and planet feed reader

1. proxy
公司上网只能用代理,我的主要的事情都在Linux (Ubuntu) 上做的,server 基本
不进X.
设置 http_proxy, fpt_proxy 可以使 apt, wget, curl 等正常工作,但其他软件
无法连到互联网上去,很是不爽
今天连 Google Reader 用的也不爽了,突然想自己抓取 rss,搜了下已经有很好
的实现了 http://www.planetplanet.org
但,首先要解决让其他软件也可以通过 http 代理上网
Google 了下,有个 tsocks 但这个软件只支持 SOCKS 代理, 而我只有 HTTP 代理
后来找到了 proxychains , SOCKS 、HTTP 代理都支持
配置很简单 /etc/proxychains.conf 注释也很详细, 就不说了
用法: proxychains command
如果带参数的可以: proxychains sh -c 'command args...'

2. Google Reader 最近老自动跳转, 郁闷的很,而且那个代理上网超级慢,所以
想自己定期抓取然后中午看..
http://www.planetplanet.org 有现成的,很多开源组织也在用...
配置挺简单的,参考 examples/basic/config.ini 或者 examples/fancy/config.ini
$ planet.py yourdir/basic/config.ini # 开始抓取
完成后提示你内容在 output/index.html

我的 rss 是从Google Reader 先导出xml, 再sed 分析, 再 >> config.ini
$ cat parse.sed
#!/bin/sed -nf
/<[^>]\+>/b
:x
/\s*<outline[^>]*/ {
/[^<]*\/>$/! {
N
s/\n/ /g
tx
}
}

/\s*<outline[^>]*/,/[^<]*\/>$/ {
s:.*title="\([^"]*\)".*xmlUrl="\([^"]*\)".*:[\2]\nname = \1\n:
/0x557/b
/blogspot/b
p
}

Dec 4, 2009

乱想

一周又过去了, 又积累了n多乱七八糟的...
中午网上和sz谈论一些元老,后来他觉得元老如果保持一直很猛不太可能,应为
元老们也是通过勤学+苦练才达到那种境界的,而每个人不可能一直那么勤奋。而
我不以为然,我觉得任何事情只要真的搞明白了,其实它以后的变化都是基于已有
的基础而做的改进(功能、性能、安全)。所以,我一直认为元老们还是很猛的 (尤
其搞代码的,玩别人工具的会一直很累,而且一直不可能有多牛).
事物的发展都差不多,都是在已有的基础上一步一步演变成现在的模样的,所
以,很久前也意识到不明白历史是无法真正搞明白的.
现在媒体、专家、教授(尤其国内)无非就是炒炒概念而已,真真实质性的东西n
多年前就被设计、应用的很成熟了,关于这点看看我们现在用的软件、技术就知道了.
最后,他认同了.

唉,出来混总要还的,当年没搞明白的,现在一个一个的搞..

========= 害怕影响你好心情的,跳过 ====================
这个年代是寂寞的,空虚的,无安全感的,冷漠的,麻木的,残忍的,
春哥火了,曾哥火了
一句xx你妈喊你回家吃饭都会火
偷菜也火了 (这个真的好玩,...,真的让你种上1亩菜,你真的能那么high?)
开心、校内、海内等sns基本成了婚介网, 连 douban 现在也成了..
三鹿对我震撼挺大,现在连农夫果园也出问题了,其实一个月前我连矿泉水都不
喝了(公司没办法还得喝),回来自己烧水喝
对网上的 xx被xx死了 早已麻木,靠,莫非又是炒作?!
对 xx疫苗有问题, 中完xx疫苗怎么怎么着了 也觉的没啥大不了的,一切皆有可
能嘛,这些有啥大不了的
你的信息早被卖过n多次了,收到骚扰短信不用大惊小怪的
恩,无欲则刚
追星的应该看看这篇
http://hi.baidu.com/caoz/blog/item/af2e11df28753019632798c3.html
哈哈,sz的签名现在也成了: 从此偶像就是贱人
很多东西换个角度去看很有意思的

========= 心情被影响了? sorry, 快去看cctv的中央联播吧 =============

最近贺岁片的旺季,不过,不打算多看
等迷离档案太累,打算再跟下 未来闪影

ps: 最近发现动画片很不错,不像电视剧上那么多鸡毛蒜皮的琐事,没有白吃的
爱情故事,视觉效果也相当好
pps: 最近还发现我根本不知道怎么给这些乱七八糟的日志起标题,像Yang学习
吧,说实在的上次看他以 yyyymmdd 做标题,我都想说他,
显然不能以 yearmonthday的形式,但实在没啥好标题
ppps: 鸡蛋好了, 闪

Nov 27, 2009

惆怅

今天给新来的同事讲了下我们系统的框架流程,她只做运维,所以简单的说下
就可以了,但,发现我的忽悠能力极差
下午被叫去刚她杀病毒,我快崩溃了,忍不住问了下工作多久,来了句:"好多
年了。。",手动杀完病毒,又说网络不能用,插好网线,禁用/启用,ok 了...
说实在的挺 bs Windows 都用不好的it人员,操作系统可是我们 it民工 最基
本的工具啊,
晚上下班一怒,从开发中心 步行回来,吃完饭,回到家,发现比平时还早回
来至少20分钟,唉,我们的交通系统...

昨天到今天360的娱乐新闻很多,而且又扯进两位国内元老级的漏洞挖掘牛
人,一时间马甲纷飞.....
http://hi.baidu.com/yuange1975/blog/item/72814517eb82b603c93d6dab.html
http://hi.baidu.com/fs%5Ffx/blog/item/9f459eca5a8d2215bf09e603.html
http://hi.baidu.com/fs%5Ffx/blog/item/2a5617d26e39dad5a9ec9ad5.html
http://hi.baidu.com/fs%5Ffx/blog/item/28d6c02cb1fde23e359bf717.html

从饭馆出来,想到软件公司其实和传统的生产行业一样的,都是做产品、买产
品,而,我们分公司现在更像镖局,为有钱单位提供廉价劳动力,更加惆怅..

Nov 25, 2009

光阴似箭

光阴似箭,岁月如梭..
2009马上又过去了,昨天翻出年初定的计划,完成的还可以。
主要是由于各方面原因,计划的一些东西没法完成,一些觉得不是重点就没做,而
自己又把一些认为重点的没在计划中的东西完成了。
09年主要做得事情:
1、简单的认识、安装、使用informix
2、pl/sql 使用oracle
3、接触金融软件开发
4、tuxedo 管理、应用开发
5、学习 vim, awk, sed, shell script, coreutils

没做好的:
手头的linux, c的书还没看完 (刚有买了3、4本)

借口:
定计划的时候我还没工作,所以我都不知道这一年到底做什么工作,所以一些和工
作关系不大的就没做 :-)

好的一点是今年读的书比较多,看的电影也挺多,现在还在跟一部美剧-迷离档
案,而且心还是很高
不好的一点,这也许是不好的地方吧, 我越来越喜欢一个人待着了

还一个多月, 争取把c专家编程看完再能把TCP/IP卷1也看完吧

预计明年看的东西: (以linux c 后端服务开发为主)
1、继续看linux c的东西(tcp/ip、socket),一些经典的应该再看一遍,争取把
busybox 源码看一遍
2、学下汇编,想看看逆向方面的东西
3、看看算法
4、web绝对是趋势,不过不打算做web开发,可以看下http协议、javascript,也
许再加个php/python/perl
5、数据库方面: oracle 不打算深入,也许会看看mysql
6、无线安全方面的可以关注下
非技术方面的
1、英语(把李笑来曾经推荐的书找一、两本看)、历史
2、虽然预计2010仍然没钱可以投资,但应该找些这方面的书了解下

Nov 18, 2009

could not stat the resume device file '/dev/sda9'

每次启动 debian lenny, 提示 could not stat the resume device file
'/dev/sda9'
/dev/sda9 是安装 lenny 时指定的swap分区,但是上次装 ubuntu 9.10 完,删掉
了两个个分区,导致以前的/dev/sda9变成了/dev/sda7
我觉得这种情况在 /etc/fstab 中把 /dev/sda9 改为 /dev/sda7 即可,但重启仍
然有这个提示

我想启动是运行的脚本都在 /etc/init.d/ 中,于是
$ sudo grep '/dev/sda9' /etc/init.d/*
和想想的一样,脚本中不可能把 swap分区写死了.

没招了,只好问 Google , 原来是debian中的一个package在作怪 - uswsusp
网上提示先卸载再重新安装,
要养成看manpage的好习惯,于是 $ man usw<Tab> , 命令自动补齐为 $ man
uswsusp.conf

看到
On a Debian system you can run dpkg-reconfigure uswsusp to manage this file.
我就 $ sudo dpkg-reconfigure uswsusp 了
虽然一路回车,重启,问题解决了,但是后来有点后悔,其实我应该
$ locate uswsusp.conf
/etc/uswsusp.conf
/usr/share/man/man8/uswsusp.conf.8.gz
/var/lib/dpkg/info/uswsusp.config
$ view /etc/uswsusp.conf
看看内容再想下一步的操作,而不是直接就 sudo dpkg-reconfigure uswsusp ....

其实我觉得只要把 /etc/uswsusp.conf 中的resume device 设为 /dev/sda7 就可
以了,我认为dpkg-reconfigure 之前是 /dev/sda9
$ ls -l /etc/uswsusp.conf
发现文件刚刚被修改过。。。

Nov 17, 2009

神奇

昨天晚上还和同学么聊成都太冷了,有点怀念北方的冬天,暖气

晚上睡下有点冷,早上醒来,很不想起,发现有点头晕,然后嗓子有点难受。。
清醒后才想到原来感冒了。

今天一天都有点头晕,好像有点发烧,还好办公室开着空调,虽然后来有些很二的
把电风扇也打开了。

回来朋友说,他们今天一直在一个没空调的屋子工作,太厉害了,而且很可能这一
个冬天都在那间办公室工作 :-(

今天晚上也打算开着空调睡觉...

ps: 成都的冬天太tmd冷了
pps: 想找本描写成都冬天的书,看看这些人是怎么过冬的

Nov 12, 2009

完美翻墙

google查点东西,但是 blogspot 上的,早被河蟹了, 我 网页快照 过去看,
后来又想去作者博客看看,竟然发现可以看。。
又跑自己博客上看了下,也上去了,但速度好像稍微有点慢,
突然想到我上次安装tor , 设置 pac ...
想到,yuange 的完美exp

debian lenny 上次装了 tor , 在Iceweasel中也设置了 Automatic proxy
configuration,
proxy.pac 如下:
function FindProxyForURL(url, host){
host=host.toLowerCase();
if (
dnsDomainIs(host,"youtube.com")
||dnsDomainIs(host,"ytimg.com")
||dnsDomainIs(host,"twitter.com")
||dnsDomainIs(host,"facebook.com")
||dnsDomainIs(host,"fbcddn.net")
||dnsDomainIs(host,"blogspot.com")
)
return "PROXY 127.0.0.1:8118";
else
return "DIRECT";
}

Nov 8, 2009

三国创业史

一直觉得三国演义是一部有志青年的创业史,创业的故事相当精彩。

三国演义(电视剧),肯定是很老的版本,太长了,花我 40*80/60 + 个小时还没看完

以下皆就三国演义电视剧而得,也许和正史三国志有出入...

正因为是创业史,所以才又看一遍,比较喜欢三分天下之前大家的努力过程:
曹操 - 破黄巾擒吕布灭袁术收袁绍深入塞北直抵辽东纵横天下
多疑但心态很好,即使败走华容道了,还在笑诸葛智碍,虽然每次都笑早
了,并迎来蜀将伏兵追杀
有文化,写过很多激昂的诗词

刘备 - 桃园结义,为了生活曾在刘备曾在公孙瓒、陶谦、袁绍、袁术、吕布、曹
操、刘表等多个军阀那里寄居过
关羽 - 山西运城农民却志向远大
张飞 - 杀猪的,勇猛无比,偶施小计
孙坚 - 破黄巾的十八路诸侯之一,也是最有血性的一路
孙策 - 比较像其父,很man,不迷信,最终却被小人害死
孙权 - 靠着其父(孙坚)、兄(孙策)占有六郡八十一州,惧怕其母...
孔明 - 有知识的读书人肯定学过儒家思想,故不可能去曹操那边,家兄又在东
吴,自比管仲、乐毅的他也不好去和其兄抢饭碗,最后只好让徐庶先推荐,然后,
荆州朋友作足秀,后随刘备
为使关羽服他,派关羽守华容道,名义上还称让关羽卖个人情 ...
刘备能三分天下,全靠诸葛孔明
....
....
....

可以看出梦想有多远,就可以走多远,道路虽艰辛 ...

自曹操、关羽、张飞、刘备等老一辈的衰老去世,坐享其成的子孙也和任何封建王
朝一样,是一代不如一代。
看着曹丕、曹睿短命而死,曹芳时皇帝已经是傀儡了...
东吴那边也好不到哪去,也是自家人相互残杀,就是为了一个皇帝宝座

突然想到,封建君主制,唉,多么愚昧的制度。
说它愚昧是应为,这制度根本不稳定 (不民主的制度肯定稳定不了)
历史上应该只要有连着几个皇帝寿命不长,则朝代必亡
我们常看到
有能力的弟弟杀哥哥
有能力的大臣"叛变"
甚至为了早当皇帝,儿子杀父亲的..
女人也想过把皇帝赢,不惜杀子

想想,皇帝整天那么安逸,岂能有斗志
皇帝一人说了算,阿谀奉承的不多太难,宫廷斗争、政治斗争总是那么丑陋、没人性
反皇帝说的都是对的,不听皇帝的就是背叛
...

但这制度却在我中国实行了几千年,即使每过一段时间轮回一次,却从没产生更好
的制度
我觉得关键是用了儒家的洗脑教材,最主要的是"忠"

想历史上有多少耿直的大臣为昏庸的暴君而死或为一个弱智而工作,为什么,就因
为其父是皇帝,靠
又有多少有志之士被莫须有的 "背叛" 所杀,背叛谁? 仅一人而已 - 无能的皇帝
背叛一个人就叫背叛?,,,,靠,况且很多只不过是被带了顶"背叛"的帽子除掉而已
我觉得历史上很多人是被逼反的,功高盖主,只要有人说你有背叛之心,你只有一
条背叛的路了,否则必被擒而杀之


唉,杯具

Nov 4, 2009

压力测试

最近对我们即将上线的系统做压力测试,第一次做压力测试,记录下...

环境: AP服务器 AIX 4C8G 一台

涉及到4个系统:
X - 信息系统,提供查询信息的服务
Y - 交易业务处理系统
Z - 将交易发到我们系统
M - 接受Z发上来的数据,根据配置调用X提供的服务查询一些信息然后发
给Y或者直接把Z发上来的数据发给Y处理.最后将处理结果返回给Z.

使用其他项目组的mytest,模拟Z系统往我们系统M发交易; 我们调用Y的都
使用挡板使其返回成功.
其实,主要是对X系统能承受的压力的测试,我们的系统M很简单,也很健壮

主要记录一些想法:
1. *nix 下工作写点shell,工作效率高多了. 最常用的ksh/bash, awk
,sed 必会
因为1个小时才能跑10万笔交易,所以需要晚上去跑交易.然后用shell脚本从
日志文件中获取每支服务的平均时间.
开始一次测12万,1个多小时就跑完了,我想通过socket 写个简单的程序,
在自己windows中写个server 监听一个端口,AIX中写个client, 跑完压力测试,
就调用 client 向 server发一些数据,然后server 给出提示,说明压力测试跑完了.
但不会winsocket,而且后来跑得太多了,就没实现这个想法....

2. tuxedo 的 stderr 莫名其妙的丢失,导致最后无法通过 txrpt 得到服务
端平均处理时间,很是郁闷,至今不知道为啥丢失...
当然可以通过, CLOPT="-A -e mylog --n" , 指定mylog,种种原因
我没试这样会不会丢失

3. tmadmin命令可以这样用, 方便写shell处理,哈哈
$ echo "psr" | tmadmin | grep "some" | wc -l
$ tmadmin -r <<EOF | grep "some" | wc -l
psr
quit
EOF

4. 我们系统主要是调其他系统,所以,只要有一个系统有问题跑了n个小时
的数据就没意义了,浪费我很多时间

5. 这次的压力测试有点象大学的物理试验报告,只要是对AIX性能监控的命
令还不太了解,否则能有更多有意义的结论...

Oct 28, 2009

随想

有那么多人喜欢那么无聊的"娱乐节目", 垃圾的主持
什么我爱记歌词、湖南卫视那些,听着就想吐的

电视声音总是那是很大,sigh

装修的体会:钞票基本花光,感情基本破裂 [啥时可以验证下,哈哈]

经常想想为什么,不然就成了操作机器的 机器/程序 了,适用范围广泛,哪怕是
写程序
5个月前,别人告诉我出问题了就 tmshutdown , tmboot ,再刷下共享内存,但
问起这些到底干吗,他尴尬了,我也很尴尬
大家都知道出问题时,这样就可以了,但好像从来没想过这些是什么命令
2个月前,我大概知道都是些tuxedo的东西,现在拿起tuxedo系统经典,发现一
切疑问皆在书上,而且很系统

想做的事情太多,效率很是个问题了,但只能一步步尝试,多让shell完成

一个男人,不管在哪,都得混的下去。我觉得想在一个地方站稳,需要:
专业的技术 - 混饭的
一些靠普的朋友 - 太重要了
一些积蓄 - 自己用,为朋友救急
心灵美的女人 - 构建美好家庭的根基
学习能力 - 一辈子要用
有信心、有理想、心要高 - 追求问题

代码测试最好的方法是逐行读

指针使用前必须检查合法性,core 大多就是那样产生的 ...

经过4个月的沉默,终于有些发言权了
知识/能力和发言权永远成正比
发言权和地位也永远成正比,哪怕是原始社会中的酋长

知道的多干的肯定相对多点,但同时一堆好处就过来了,时间长了,主要应该是教
教其他人怎么做(也就是写写paper),其他时间继续学其他的

领导是个学问,到了一定阶段必须得学,不过现在和我没啥关系

被领导也得多想想,好好和领导配合,多从领导那学习点

google reader 挺好,最近又订阅了些,中午更充实了

用简短的语句表达清楚自己的意思太重要了

web 很好, 每个项目组都应该有自己 web 形式的文档管理程序,wiki就不错,书
写、搜索都方便
office 文档太烂、太不方便,但用的人却实在太多, 不得不 sigh [常常得
dir /l /b /s *keyword*.ext , 又是还得写 for 循环]

热爱工作但不一定要热爱你的领导,当然,很多人是反过来的

写完代码,自己至少再读一遍,把不容易理解的多加注释

活干不完,肯定是技术太差

Oct 26, 2009

恭喜

恭喜舍舍进入淘宝 ...

机会很多,全看自己啥时候能准备好 sign

Oct 24, 2009

到底怎么了

一向不看新闻、主流媒体,下面都是亲眼所见

保安越来越多,社会越来越不安定???

社区保安的工资谁给发,我想肯定是我们乱七八糟的物业费中的,那请保安过来
时能不能和我们商量下??
再说,看个小区大门有必要找5、6个年轻人么?
其实我更想说的是,那些年纪轻轻就去看大门的,你们为啥不能做些更有意义的
事情?能到就是因为这个不用你学习就能应付?

小区还好点,我工作的地方,每层楼至少2名保安,共38层(一楼肯定更多),
实在搞不明白这些对你点头微笑的人有啥作用

马路边那些坐着抽烟,号陈"巡警"的,还给配了辆摩托的,除了每月能浪费些国
家的钱,马路上行骗,使人民不能有爱心,能难道有其他作用???

自从成都公交自燃后,空调车更多了,难道是由于不用开空调还可以每人多收一
块。但,同时出现了一个不知该怎么称呼的,除了浪费一个座位,带来很多噪音之
外,不知还有啥用

看见有车停下就兴奋的大妈,怎么想都觉得是强盗手下收保护费的

出事后删帖子,专家帮着忽悠天真善良无知的百姓,只能让大家不相信zf而已

无知并不可怕,可怕的是不知道自己无知,更可怕的是知道自己无知而去迫害那
些先知

常常看到小姐们把店开到某某公安局、派出所边上,就觉得自己觉悟太低,看看
我们的老鸨,为了更好的为人民公仆服务,煞费苦心

男人越来越"娘们",女人越来越强,我开始怀疑曾经看过的科幻杂志是真的──Y
染色体逐渐变弱

一直觉得那些被称作"恐怖分子"的,大多有自己的难言之隐,而且很多应该是历
史遗留的问题 (能有这么好的身手,肯定是被国家培养过的高级人才)

其实,只是想说社会太浮躁,我们能不能平静的、独立的思考,少打旗号,多干
实事。
碰到事情时,多想想自己是干吗的,足矣

Linux 生成 md5

1. md5sum
$ echo -n 'test' | md5sum
098f6bcd4621d373cade4e832627b4f6

2. python
import md5
hash = md5.new()
hash.update('test')
print hash.hexdigest()

Oct 11, 2009

lenny wireless wep configure

auto ath0
allow-hotplug ath0
iface ath0 inet dhcp
wireless-essid MERCURY_xxxxxx
wireless-key 1234567890

$ sudo ifdown ath0 ; sudo ifup ath0

Oct 7, 2009

SecureApt

W: GPG error: http://ftp.us.debian.org testing Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5F


$ gpg --keyserver subkeys.pgp.net --recv-keys 55BE302B
$ gpg -a --export 55BE302B | sudo apt-key add -

debian lenny mount ext4

lenny mount ext4 file system

$ sudo tune2fs -E test_fs /dev/sdax
$ sudo mount -t ext4dev -o ro /dev/sdax /mnt

debian lenny 安装无线网卡驱动

我的无线网卡是 AR242x 802.11abg Wireless PCI Express Adapter , 默认安装
的驱动是 ath5k

ath5k is a module for Atheros AR5xxx wireless LAN chipsets.

Unlike the MadWifi <http://wiki.debian.org/WiFi/ath_pci> driver, ath5k
does not require a binary HAL (hardware abstraction layer) for its use.
No firmware is required to be loaded from userspace. It is a completely
free and open-source driver. Supported devices
<http://wiki.debian.org/ath5k#supported> are listed at the end of this
page.

Atheros 802.11n PCI devices are supported by the ath9k
<http://wiki.debian.org/ath9k> driver.

$ iwconfig
可以看到 wlan0
在 /etc/network/interface 中对 wlan0 配置完后, ifup wlan0 , 提示

wmaster0: unknown hardware address type 801
wmaster0: unknown hardware address type 801
Listening on LPF/wlan0/00:22:69:68:8b:86
Sending on LPF/wlan0/00:22:69:68:8b:86
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 13
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 14
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 17
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

后来看到这篇文章
<http://easwy.com/blog/archives/thinkpad_t400_wireless_driver_for_debian_lenny/>

安装了 madwifi , 步骤如下:
$ sudo apt-get install module-assistant wireless-tools
$ sudo m-a prepare
$ sudo m-a a-i madwifi
$ sudo modprobe -r ath5k
$ sudo modprobe ath_pci

$ iwconfig // 可以看到 wlan0 变成了 ath0
修改 /etc/network/interface
auto ath0
iface ath0 inet dhcp
wpa-ssid TP-LINK_xxxx
wpa-psk xxxxxxxxxxxx

$ sudo ifup ath0 // 无线终于连接上了

Sep 13, 2009

刷机

应该是最后一次刷moto E2了,刷机主要是由于打电话对方有回音(由于是对方有
回音所以我认为和我的硬件没问题),明天打电话验证下我的猜想

最后一次刷是由于手机跟我也快3年了,下次如果再出现严重问题,考虑换个
Gphone or iphone or 最低端的

总的来说,刷完后视觉、速度都好多了

其实,可以自己捣鼓下怎么做刷机包,然后手机上装着自己搞得刷机包,绝对cool

Sep 6, 2009

ubuntu 9.04 无线网卡突然罢工

嗯,ubuntu 9.04 无线无法使用好几天了,只能坐在客厅用有线,不爽
刚开始认为是用ubuntu-tweak 进行了什么设置导致,后来想起来是用了受限的
无线驱动后,才出现问题
很好的文章
https://help.ubuntu.com/community/WifiDocs/WirelessTroubleShootingGuide#driver

一开始, lspci , lshw 都无法显示无线网卡的信息
卸载了ubuntu-restricted-extras

修改 /etc/pcmcia/config.opts
#include memory 0xc0000-0xfffff
#include memory 0xa0000000-0xa0ffffff
#include memory 0x60000000-0x60ffffff
include memory 0xd0000-0xdffff
include memory 0xc0000-0xcffff
include memory 0xc8000-0xcffff
include memory 0xd8000-0xdffff

删除 /etc/modprobe.d/blacklist-ath_pci.conf

如果出现 NetworkMamager is not running
$ sudo /etc/init.d/NetworkManager start
应该就可以使用network-admin配置无线了,,,
good luck ...

Aug 27, 2009

要跟我结婚那爷们 告诉你些我想跟你一起干的苟且之事

首先为你要娶我感到万分的遗憾

因为你即将开始非常折腾混乱的人生

其次为我要嫁给你这事感到万分的幸运

因为我即将开始合法地折腾人的旅程

最后为我们俩要结婚感到万分的坦然

因为我们俩都决定维持社和的和谐

所以干脆俩流氓在一起得了

我想要的生活很简单

有一张大大的床

有一个双人浴缸

有一面的落地窗

有露台和斜躺椅

好吧 为了显示我的贤良淑德

我决定里面在放你喜欢的花 还有我们俩的狗

喜欢赖床 所以你必须抽空没事跟我赖着

星期六的早上

阳光透过卧室白纱打到我们的大床上

你从后面抱着我

然后俩个人静静地躺着

当然我觉得我极有可能突然跟你耍流氓

希望你假装清纯的时间只有几秒

去逛超市 我买排骨和蔬菜时

希望你已经把酸奶一举捕获扔到咱胜利的菜篮子里

红烧排骨 蒜蓉油麦菜

你要是乖 超级大厨的我就经常给你做

当然了你也知道我也是超级大懒蛋

所以如果你潇洒地做完一桌子饭菜时

我一定抱着撑死的决心把它们都给解决了

作为一个好媳妇儿 我必须会乖乖地去洗碗

但是如果你没有工作要做

可不可以陪在旁边聊天

不过我要提醒你 这样做的结果是

有可能在厨房折腾一晚上只洗了两个碗

吃完饭我们一起出去遛大熊

我们的狗还是叫大熊吧

大熊必须沉到咱俩谁都抱不了才行

然后想辙在公园里给它找一抢手母狗

这样咱俩就可以趁机到哪腻歪腻歪去

没人的地儿我要是一声领下

你必须主动要求背着我溜达

如果你想尝试一下被背着走的感觉

我也不介意 我觉得这也挺有意思

只不过要是我腰断了你必须负责给接上

大冬天的俩人拉着手走实在是冷

你一定要毫不犹豫的说

不能拉着手走 太冷了

然后顺势把我手放你大衣兜里

臭孩我肯定乖乖地一个超级大吻奉上

其实我最不爱走路 可是总想跟你就那么走着

工资卡千万别交给我 就放在你自己手里

没事特牛的跟我说 媳妇儿来给你零花钱

这样我可以天天琢磨怎么从你那蹭着钱

你最好在我发现自己写的东西被别人冒用时

尤其是那封给我儿子的信时

主动给我皮夹子里塞钱 痛快地说

媳妇儿赶紧给我去商场挥霍

喝太多酸奶不好 我会为你少喝

但是你要牵着我一起去那个有点远的奶牛场

一起去买新鲜的牛奶

回家煮好 上面那层厚厚的奶皮给你吃

因为那都是脂肪 你吃完会变胖

我就喜欢抱肉乎乎的你

洗衣机帮咱俩洗衣服

但是我亲手帮你洗袜子

当我跳进浴缸里时 你必须像流氓一样冲进来


泡澡有助于血液循环

俩个人一起泡澡功效就会显然更明显

要是打起水仗了弄的哪都是水

你必须给我出去呆着 我自己擦

我可不想你摔倒导致以后没人伺候我

工作一定很累

你说要盖一个我要的房子

其实有你在的房子就是我要的

在你忙的时候我会把家里的事情都做好

乖乖在家等你回来

但是你小子要小心了 你一旦休息

我就会撒手什么都不管 彻底当老佛爷

十分坦然地享受您老费心费力的伺候

当你每年休假时 我们就拖着行李箱离开

想你帮我戴上白色花冠漫步在圣托里尼岛

想你牵着围着黑纱的我游走于约旦

陪我穿过死海和阿克巴湾之间的沙漠峡谷 触摸佩特拉

想和你窝在某个江南小镇

就那样过一段清清淡淡的日子

我有一个自己的小店

你去工作的时候 我就晃晃悠悠地过去开店

恩 那家店会有一面墙贴满我们的照片

我可能会窝在吧台那里写字

某天一抬头就看见你在那安静的看着我

我会不顾一起地穿过吧台向你扑去

吧台坏了你修 我负责旁边逗你乐

如果有天你跟我说

宝贝我不想工作了想做点自己想做的事情

我一定什么都不说 抱着你大喊万岁

做自己想做的事情大概是人生中最让人庆幸的事儿

你想干什么呢

我猜的到 嘿嘿我们一起开家冰淇淋店

有你爱吃的抹茶 有我爱吃的曲奇

里面有一个大大的架子上面都是CD

我们的大熊会穿梭在各个桌子间

这时候有姑娘怕狗肯定就顺势扑自己爷们怀里了

咱这也算是为人民服务

我喜欢穿露背的系带长裙

你必须相当色迷迷地说 媳妇儿你实在太美了

然后拉着我在大街上走以示荣幸

如果我突然停下来 说亲一个

你必须乐颠颠的过来

我看见适合你的衣服肯定会想都不想都给买下来

所以你一定要抱着我说 媳妇儿你太有审美了

我会衣着得体的跟你回家

这时候麻烦你陪咱爸下下棋什么的

我帮咱妈忙活饭菜什么的

当然了显然了事实上是咱妈现在看我比看你都顺眼

吃完饭我去洗碗 你要好好地陪咱妈唠嗑

我陪妈去汗蒸去逛街

我希望你的爸妈都喜欢我 我想对他们好

因为他们让我认识了你 拥有了你

只有二老开心了 我们才会真的幸福

我会做个好儿媳妇儿

他们不是公公婆婆 是爹妈

你陪我回我家时 必须陪我爸扯淡

我爸就喜欢能把我给摆平算计走的你

然后没事就忽悠我妈就行

她以 我被挤兑 她被忽悠 为乐趣

然后跟我窝在那个公主床上看照片

生孩子的事这完全是个必须先解决的问题

咱俩最好赶紧一次能弄出俩

生完就给扔姥姥奶奶家 实行放养政策

咱俩绝不能浪费青春年华 要继续腻歪着

等差不多了给儿子闺女接回来

我教他们怎么折腾人 你教他们怎么防止被折腾

估么最后能培养出俩奇才

等他们一结婚 咱俩就赶紧收拾包消失

听你的安排 找一地儿安度晚年

没事给孩子个电话什么的以示还活着

好像要说到要死这事了

基本我决定比你先死 理由如下

感人版本 我希望你知道有个女人死的时候还爱着你

实话版本 我怕你死了 我自己一人活着太孤单

当然你要是决定上演什么殉情戏码 我也不拒绝

不知道我们会走到哪天 可却无比安然

你陪我走在那条大街上去买我爱喝的酸奶

我陪你坐在夜市烧烤摊吃烤油麦菜

我陪你那些家人哥们姐们一起欺负你

我陪你那些家人哥们姐们一起爱你

你陪着我去欺负我的家人哥们姐们

你陪着我去守护我的家人哥们姐们

如果明天假如我们抽风就离婚了的话 那么后天就复婚吧

谁还能不犯个错误啊 错了就改多简单一事

好了就这些 就这些吧

等我想到什么了 再补上

你必须跟咱儿子咱闺女说 当年你是如何歇斯底里拼死拼活玩命把我给骗到手的

然后我可以声泪俱下的说 当年看你爸忒可怜 妈就心慈手软了 然后就有你们了

Aug 14, 2009

Rhythmbox 乱码

在Linux中碰到乱码实在是常见而又恼火的事情
不过肯定是可以解决的...

$ sudo apt-get install python-mutagen
写个脚本...

#!/bin/bash
#########################################################################
# Author : ox0spy
# Email : ossteerer#gmail.com
# Blog : ox0spy.cn
# Created Time : 2009年08月14日 星期五 20时03分02秒
# File Name : mp3_gbk.sh
# Description :
#########################################################################
MP3DIR="$1"
#echo $MP3DIR
if [ $# -ne 1 ] || [ ! -d $MP3DIR ]
then
program=`basename $0`
msg="usage : $program musicDir"
echo $msg
exit 1
else
mp3list=`find $MP3DIR -name '*.mp3' -printf '"%p"\n'`
mp3list=${mp3list/"\n"/""} # 替换所有的 \n
if [ ! "x$mp3list" = "x" ]
then
echo $mp3list | xargs mid3iconv -e GBK
fi
fi

Aug 4, 2009

5个月了

时间飞逝,在这边5个月了
短短5个月的时间我却在两家公司呆过,工作地点也从省xx到市xx,到现在的
xxxx开发中心。工作环境发生了很大的变化,总的来说是向好的方向发展

这段时间有些堕落,只在工作时间学习,回来基本学不下去,要看到东西很多

近期把以前同事的那本书看完,拿过来好久了,。。。

其他行业相关的也要抓紧看啊,这边开发部员工的技术的确是我工作以来最强
的,多像大家学习,同时也得给大家带来点惊喜。。。

能力有限,精力有限。既然稀里糊涂的混进这个行业,而且这个行业也还可以,
就好好干吧,在一个行业中干出点成绩来~

Jul 7, 2009

算下我的工作天数

大部分公司应该都把工作天数定为22天,而今天才知道现在的公司把工作天数
定为 21 天,我就想知道到底每个月我工作了多少天,这个问题以前从来没想过...

经测试
ox0spy@ubuntu:/code/python$ ./workday.py -y 2009
2009-01 : 22
2009-02 : 20
2009-03 : 22
2009-04 : 22
2009-05 : 21
2009-06 : 22
2009-07 : 23
2009-08 : 21
2009-09 : 22
2009-10 : 22
2009-11 : 21
2009-12 : 23
2009 total work day : 261
以后52年
ox0spy@ubuntu:/code/python$ ./workday.py -s 2009 -e 2060
[2009] real work day: 261
[2010] real work day: 261
[2011] real work day: 260
[2012] real work day: 261
[2013] real work day: 261
[2014] real work day: 261
[2015] real work day: 261
[2016] real work day: 261
[2017] real work day: 260
[2018] real work day: 261
[2019] real work day: 261
[2020] real work day: 262
[2021] real work day: 261
[2022] real work day: 260
[2023] real work day: 260
[2024] real work day: 262
[2025] real work day: 261
[2026] real work day: 261
[2027] real work day: 261
[2028] real work day: 260
[2029] real work day: 261
[2030] real work day: 261
[2031] real work day: 261
[2032] real work day: 262
[2033] real work day: 260
[2034] real work day: 260
[2035] real work day: 261
[2036] real work day: 262
[2037] real work day: 261
[2038] real work day: 261
[2039] real work day: 260
[2040] real work day: 261
[2041] real work day: 261
[2042] real work day: 261
[2043] real work day: 261
[2044] real work day: 261
[2045] real work day: 260
[2046] real work day: 261
[2047] real work day: 261
[2048] real work day: 262
[2049] real work day: 261
[2050] real work day: 260
[2051] real work day: 260
[2052] real work day: 262
[2053] real work day: 261
[2054] real work day: 261
[2055] real work day: 261
[2056] real work day: 260
[2057] real work day: 261
[2058] real work day: 261
[2059] real work day: 261
[2060] real work day: 262
company work day : 252
total waste work day 463

ox0spy@ubuntu:/code/python$ ./workday.py -s 2009 -e 2060 | grep -E '\['
| awk '{print $5}' | sort | uniq -c
12 260
33 261
7 262
可以发现未来的52年,从来就没有少于260天的

公司的 21 * 12 = 252
而大部分公司 22 * 12 = 264

实际工作天数 * 月工资/本月的工作天数

我公司的算法 : (实际工作天数 - 1) * 月工资/21
6月工作天数应该是 : 22, 所以从我实际工作天数中减一, 我对这种算法很无语
还好我工作了4天, 要只工作一天就被减没了
有机会验证下如果本月应该工作天数为20天, 是不是发工资时 (实际工作天数 +
1) * 月工资/21 , 估计很显然...

Jun 20, 2009

好好干活

删除校内数据、关闭校内
关闭Qzone : http://imgcache.qq.com/qzone/web/load_login_2.htm
基本退出了所有的QQ群, 基本不再上QQ, 绝对不会让QQ在线了...

其实有好多应该做的事情...

fighting

2009-6-19 辞职 NT

预计 2009-6-22 去 XXX 报道...

May 31, 2009

麻木了...

虽然已经麻木了,该看的还是必须要看到

GAppProxy 可以满足你的很多需求...

项目地址: http://code.google.com/p/gappproxy/

May 29, 2009

Cannot initiate the connection to 8080:80

$ export http_proxy=10.0.192.102:8080

$ sudo apt-get install apache2
Failed to fetch
http://ubuntu.cn99.com/ubuntu/pool/main/a/apache2/apache2.2-common_2.2.9-7ubuntu3_i386.deb
Cannot initiate the connection to 8080:80 (0.0.31.144). - connect (22
Invalid argument)

$ wget
http://ubuntu.cn99.com/ubuntu/pool/main/a/apache2/apache2.2-common_2.2.9-7ubuntu3_i386.deb
// 却可以下载

也就是 wget可以下载,apt-get可以获得软件包地址,但无法下载

查了下,apt-get要求把代理设成如下形式:
$ export http_proxy=http://10.0.192.102:8080

现在, wget apt-get 都可以使用了...

May 25, 2009

河蟹中...

KISS: Keep It Simple, Stupid
Get it right the first time.

为了代码中尽可能少的出现低级错误,节省调试时间,我觉着应该至少知道每句代
码是做什么的,然后写完每一句都用1秒检查是否有"粗心的错误"

May 17, 2009

ubuntu lighttpd mysql fastcgi

打算用c写写cgi
不想用Apache2了,试试lighttpd

安装lighttpd
$ sudo apt-get install lighttpd

安装php5
$ sudo apt-get install php5 php5-cli php5-cgi php5-mysql

让Lighttpd支持CGI模式
$ sudo lighttpd-enable-mod cgi
$ sudo lighttpd-enable-mod fastcgi

注: 看下/etc/lighttpd/conf-enabled/10-cgi.conf中的cgi-bin目录是否正确

安装mysql
$ sudo apt-get install mysql-server

安装phpmyadmin
$ sudo apt-get install phpmyadmin

重起Lighttpd
$ sudo /etc/init.d/lighttpd restart

May 1, 2009

informix The type of your terminal is unknown to the system or the screen size is,too small

informix
informix@ubuntu:~$ dbaccess
The type of your terminal is unknown to the system or the screen size is
too small

解决:
ox0spy@ubuntu:~$ tail -n 4 /etc/profile
TERMCAP=$INFORMIXDIR/etc/termcap
export TERMCAP
INFORMIXTERM=termcap
export INFORMIXTERM

Informix 11.5 Installation on Ubuntu 8.10 server

最近工作需要,想熟悉下Informix
安装过程很是曲折,先尝试着安装IDS 9.4,最后在Ubuntu上也安装成功了.
但是,$ onstat -i
系统报错:symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time referencthe
虽然找到了 传说中的两种解决方法, 但貌似都是不可行的.

最后,好心人提供了一个 11.5的下载链接
informix 11.5 for linux X86 : 下 载

更 多

ok,下面说说Ubuntu 8.10 Server 上安装informix 11.5

============很傻很天真的分割线====================
1. 用户、组创建
    ox0spy@ubuntu:~$ sudo groupadd informix
    ox0spy@ubuntu:~$ sudo useradd -g informix -d /opt/informix -m -s /bin/bash informix

2. 环境变量设置
    ox0spy@ubuntu:~$ tail /etc/profile
    # add for informix
    INFORMIXDIR=/opt/informix
    INFORMIXSERVER=info_dbs
    INFORMIXSQLHOSTS=$INFORMIXDIR/etc/sqlhosts
    ONCONFIG=onconfig.std
    DBDATE=Y4MD*
    LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
    export INFORMIXDIR INFORMIXSERVER ONCONFIG LD_LIBRARY_PATH
    PATH=$PATH:$INFORMIXDIR/bin
    export PATH

3. 解压安装文件
    以informix用户登陆系统
    将C1P6NEN.tar放到/opt/informix下
    解压缩:
    informix@ubuntu:~$ tar xvf C1P6NEN.tar

4. 安装
    以root的权限安装
    ox0spy@ubuntu:/opt/informix$ sudo ./ids_install
    下面根据提示就可以搞定了

5. 配置
    我是以 文本模式安装的,下面开始配置
    1) 在/etc/services中添加两行,如下:
    informix@ubuntu:~$ grep sqlexe /etc/services
    sqlexe          8887/tcp                        # informix
    sqlexec         8888/tcp                        # informix

  2) 修改/etc/hosts
    informix@ubuntu:~$ grep 'ubuntu' /etc/hosts
    192.168.43.128  ubuntu

  3) 配置$INFORMIXDIR/etc/sqlhosts
    informix@ubuntu:~$ cat $INFORMIXDIR/etc/sqlhosts | grep -E '^[^#]'
    info_dbs                onipcshm        ubuntu          sqlexe
    info_dbs_tcp    onsoctcp        ubuntu          sqlexec

  4) 建立空间
    informix@ubuntu:~$ mkdir dbs && cd dbs && touch rootdbs rootdbs_mirror && chmod 660 *
 
  5) 配置$INFORMIXDIR/etc/onconfig.std文件
    ROOTNAME rootdbs
    ROOTPATH $INFORMIXDIR/dbs/rootdbs

    MIRRORPATH $INFORMIXDIR/dbs/rootdbs_mirror

    SERVERNUM 0
    DBSERVERNAME info_dbs
    DBSERVERALIASES info_dbs_tcp

    NETTYPE ipcshm,1,50,CPU
    NETTYPE soctcp,1,50,NET

    TAPEDEV /dev/null

    LTAPEDEV /dev/null

6. 初始化数据库
    informix@ubuntu:~$ oninit -ivy

    深夜里看着一串串的 ...successed 真爽

    informix@ubuntu:~$ onstat -i

    IBM Informix Dynamic Server Version 11.50.UC3     -- On-Line -- Up 00:44:43 -- 144676 Kbytes
    onstat>

到此,数据库安装工作就完成了, good luck.

Apr 14, 2009

开始加班

加班真TMD痛苦...

adsl到期了,本以为没网上了,没想到这边热点真TMD多,而且连个密码都不设

不用任何设备就可以连上了,速度还行...

Apr 11, 2009

最不幸的人

摘自 : 把时间当朋友 运用心智获得解放

1.
有这么个人,也许你知道他。在1832年,当时他失业了,这显然使他很伤心,
但他下决心要当政治家,当州议员,糟糕的是他失败了。在一年里遭受两次打击,这对他来说 无疑是痛苦的。他着手自己开办企业,可一年不到,这家企业又倒闭了。在以后的 17年 间,他不得不为偿还企业倒闭时所欠下的债务而到处奔波,历尽磨难。他再一次参加竞选州议 员,这次他成功了。他内心萌发了一丝希望,以为自己的生活有了:"可能我可以成功了!" 第 二年 ,即1835年,他订婚了,但离结婚还差几个月的时候,未婚妻不幸去世。这对 他精神的打击实在太大了,他心里憔悴,数月卧床不起。在 1836年他还得过神经衰弱症。 1838年他觉得身体状况良好,于是决定竞选州议会仪长。可他失败了。1843年,他又参加竞选 美国国会议员,但这次仍没有成功。直到17年后的1860年,历经更多的磨难和失败之后, 这个人当选了美国总统,他的名字是阿伯拉罕.林肯。可是他的噩运并没有结束,1865 年,他被暗杀了。

2.
那是一个14岁的男孩。8岁那年的11月,他的母亲突然去世。9岁那年的11月,他从梯子上掉下来,摔断了胳膊。10岁那年的11月,他骑自行车时发生车祸,造成头骨断 裂,还伴有严重的脑震荡。11岁那年的11月,他从天窗跌了下来,造成臀部骨折。 12岁那 年的11月,他从滑板上摔下来,导致手腕骨骨折。13岁那年的11月,他被汽车撞伤,造成 骨盆断裂……

Apr 7, 2009

ubuntu gedit 乱码

Ubuntu 8.04 英文locale
gedit显示GB2312编码的文件总数乱码,很是郁闷
查了下,下面的方法可以解决:

$ gconf-editor
找到 apps -> gedit2 -> preferences -> encodings
设置auto_detected 的值,增加一个GB2312 ,没必要一定要up到第一个,打开文件时
会按你设置的顺序检测编码的.

Apr 6, 2009

外网 访问 内网

1. 设置路由器的DMZ
我在电信的adsl中测试的
很简单,在路由器的DMZ中填写要让外网访问的内网ip就行,这样你就可以通过
通过你的 WAN IP访问了

2. 端口映射
没试...

Mar 28, 2009

申请了一个域名

ox0spy.cn 现在指向 ox0spy.blogspot.com

Windows下使用linux coreutils

工作中要在Windows下,想用一些Linux下的常用工具时就比较郁闷了
cygwin太大了,而且我只用几个简单的命令,不想装...
还好,这有 GNU utilities for Win32

下载下来,设置下Windows的环境变量就好了

这样,id, pwd, uname, wc, grep, tee, cut, tail, sed, gawk等都可以使用了...

Mar 25, 2009

又在chinaunix中奖了

大家没事多上去玩玩,Chinaunix

2009-3-18,就公布获奖名单了
今天还是看wzt的博客上说他得了入围奖,想起我也做过一道题 O(∩_∩)O~
获得 ChinaUnix第一届“C语言代码”开发大赛 优秀奖
早知积分给这么多,我就都做了...

8. 写一个程序,列出环境变量PATH中包含的所有目录的路径名。注意,Unix/Linux上PATH中各个路径名之间的分隔符与Windows上的不同。 使用条件编译,使你的程序可以适用于这两种系统。


/*************************************************************************
Author : ox0spy
Email : ossteerer@gmail.com
Blog : ox0spy.blogspot.com
Created Time : Tue 17 Feb 2009 08:49:09 AM CST
File Name : 8.c
Description :
************************************************************************/
#include <stdio.h>
#include <stdlib.h>

#define infilename "in.txt"
#define outfilename "out.txt"

/* 定义不同的分隔符 */
#ifdef _WIN32
#define SEPARATOR ";"
#else
#define SEPARATOR ":"
#endif


int main()
{
char *path; /* PATH环境变量 */
char *token;
FILE *outfile; /* 保存结果 */

if(NULL == (outfile = fopen(outfilename, "w")))
{
printf("open output file : %s error!\n", outfilename);
return -1;
}

if(NULL != (path = getenv("PATH"))) /* 获取PATH变量的值 */
fprintf(outfile, "PATH = %s\n\n\n", path);
token = strtok(path, SEPARATOR);
while(NULL != token)
{
fprintf(outfile, "%s\n", token);
token = strtok(NULL, SEPARATOR);
}

return 0;
}


奖品:1000积分 or 一本书

1000积分,但是100积分才1块钱,也就是才10元,拿着10元啥都干不了...
都在坛子混了4年了,积分才1k多,想想,还是再拿本书吧
于是乎,捡了本最贵的o(╯□╰)o 算法导论(原书第2版)
虽然舍长推荐的那本算法书还没看呢 o(︶︿︶)o唉

超级郁闷,算法导论没了,其他书没兴趣,只能拿1000分了

Mar 23, 2009

可以多睡会了....

不用在路上堵着了,自己控制速度,绕着二环路跑...

Mar 22, 2009

Firefox Vimperator

如果你是vim fans, 如果你想扔掉鼠标高效上网,不妨试试 Vimperator

如何使用 vimperator 更好的折腾 firefox 给出了很多有用链接


我整理的一些快捷键(那些英文的都来自linux.com,有时看着英文挺爽的,就没懒得翻译)

1. Google search
        t+要搜索的内容  在新标签中打开Google搜索内容
        t+url                   在新标签中打开url
2. 书签
        M+字幕   定义快捷书签
        go+字幕  转到已定义的快捷书签
        ctrl+D   存到美味书签
        ctrl+K   打开美味书签主页访问
3. 恢复以前的样子
        :set go+=mT             <=> :set guioptions=mT
        :mkv    保存设置
4.
        gt or ctrl-n    : 下一个标签
        gT or ctrl-p    : 前一个标签
        gh                              : 访问Home page
        gH                              : 在新标签中访问Home page
        gu                              : go up.比如,把你从www.test.com/test 带到www.test.com
        H                               : go to the previous page in your browser history.
        L                               : go to the next page in your browser history.
5. commands
    :o http://ox0spy.blogspot.com    : open ox0spy.blogspot.com
    :o search term                    : use the default search engine to search for a search term.
    :o filename                        : open a local file using firefox
    :q                                : close the current tab. if only one tab is open, exit firefox.
    :zi                                : zoom in. Increases text size by 25% on the page that has focus.
    :qI                                : zoom in by 100% on the page that has focus.
    :zo                                : zoom out.Decreases text size by 25% on the page that has focus.
    :zO                                : zoom out by 100% on the page that has focus.
    :zz                                : used alone zz will reset page to 100%. use witha a count, it will set the text size to any value between 25% and 500%. So, 105zz will set the text size to 105% of normal.
6. links
    打开链接:
        f 进入hints mode,所以链接都被高亮显示而且前面有标示,输入相应的标示键就可以到那个链接了.
    ??    ;; 进入ExtendedHint mode,和hints mode 类似,输入标示键,然后可用使用'y'复制url,'Y'复制url的描述文本.
7. history
    :history                : 默认显示10个历史浏览记录
    :history search term    : 搜索浏览历史
    ESC                        : 关闭显示
8. searching
    /search term
    ?search term            : like vim
9. quitting
    :qall or ZQ                : will exit firefox and clear the session history.
    ZZ                        : quit firefox, but restart it later with the same session.
    :restart                : restart firefox immediately.
10. refresh
    r                        : like <F5>, refresh page
11. copy && paste
    When I want to copy some text, I usually start by searching with '/' the
    beginning of it, then I press 'i' to go in CARET mode, 'v' to go in
    VISUAL mode. Then I can select my text. When I'm done, I type y to copy
    it, and I paste it wherever I want to.

Mar 21, 2009

搞定blogspot贴代码

现在代码可以高亮显示了...
1. pretty print
2. vim2html

#!/usr/bin/env python
print "Only test ..."


#include <stdio.h>
int main(void)
{
printf("Only test ...");
return 0;
}



不爽的是我一般通过email发布文章...

PS:把最新评论也添加上...

参考:
怎样给Blogger添加侧边栏评论和最新文章(续)
How to publish source code in Blogger.com

Mar 18, 2009

又开始工作了...

2009-03-17 又一次开始上班...

ox0spy@ox0spy-laptop:~$ date
Wed Mar 18 00:26:31 CST 2009

累啊,睡觉去...

上次笔试编程题

有一个文件,内容如下:
ox0spy@ox0spy-laptop:/code/c$ cat tt.txt
aa,female,21,54
abc,male,20,60
tt,male,22,58
ox0spy,male,23,80
mary,female,24,90
cc,female,22,88

每个字段代表的意思是:姓名,性别,年龄,成绩
请用c语言编写程序,打印成绩大于等于60分的同学的姓名和成绩.

ox0spy@ox0spy-laptop:/code/c$ cat parseCsv.c
/*************************************************************************
Author : ox0spy
Email : ossteerer@gmail.com
Blog : ox0spy.blogspot.com
Created Time : Tue 17 Mar 2009 11:35:04 PM CST
File Name : parseCsv.c
Description :
************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main()
{
char filename[20] = "tt.txt";
FILE *fp;
char name[20];
char sex[8];
int age;
int grade;

if((fp = fopen(filename, "r")) == NULL)
{
printf("open file : %s error\n%s\n", filename, strerror(errno));
exit(1);
}

while(fscanf(fp, "%[^,],%[^,],%[^,],%d\n", name, sex, &age, &grade)
!= EOF)
{
if(grade >= 60)
printf("%s\t%d\n", name, grade);
}

fclose(fp);

exit(0);
}

Mar 17, 2009

error: stdio.h: No such file or directory

写了一个简单的程序出现错误,提示:error: stdio.h: No such file or directory

把build-essential装上就好了...

ox0spy@ox0spy-laptop:/code/c$ sudo apt-get install build-essential

Mar 13, 2009

ubuntu 8.04 install mpd

$ sudo apt-get install mpd
出错:
ALSA lib pcm_dmix.c:874:(snd_pcm_dmix_open) unable to open slave
No protocol specified
E: client-conf-x11.c: XOpenDisplay() failed

解决:
$ sudo apt-get install paprefs
$ paprefs
* Enable network access to local sound devices
* Don't require authentication

在/etc/mpd.conf 中添加:
audio_output {
type "pulse"
name "My MPD Pulse output"
}

$ sudo /etc/init.d/mpd restart

$ sudo mpd --create-db

$ mpc listall | mpc add

$ mpc play

mpc 与 vim 结合,以便写代码时听歌
编辑.vimrc,添加mpc的热键
map mp :!mpc play<cr>
map mn :!mpc next<cr>
map ms :!mpc stop<cr>

Mar 12, 2009

看中文 manpages

ubuntu 8.04

ox0spy@ox0spy-laptop:~$ sudo apt-get install manpages-zh

在.bashrc 中添加一个cman的别名
ox0spy@ox0spy-laptop:~$ grep cman .bashrc
alias cman='man -M /usr/share/man/zh_CN'

现在就可以用 cman 查看中文manpages了,不够中文manpages不是很全

另外,打算在ubuntu 上作开发,当然要再装个包了: manpages-dev
ox0spy@ox0spy-laptop:~$ sudo apt-get install manpages-dev

再分享一个小技巧,如果你想让grep 把关键字用其他颜色显示出来,那么,在.
bashrc 中把"alias grep='grep --color=auto'
"前的 "#"去掉即可

ox0spy@ox0spy-laptop:~$ grep grep .bashrc
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

最后,修改.bashrc 和 修改.profile效果一样。修改完这些文件记得执行
. .bashrc

source .bashrc

dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.

ox0spy@ox0spy-laptop:~$ sudo apt-get update && sudo apt-get upgrade
.
..
...
Fetched 1165kB in 2min7s (9162B/s)                                            
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.

竟然有错,
按提示,输入: dpkg --configure -a

ox0spy@ox0spy-laptop:~$ sudo dpkg --configure -a
Setting up initramfs-tools (0.85eubuntu39.3) ...
update-initramfs: deferring update (trigger activated)

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.24-24-generic

gzip: stdout: No space left on device
update-initramfs: failed for /boot/initrd.img-2.6.24-24-generic
dpkg: subprocess post-installation script returned error exit status 1

原来没空间了

下面确定下,果然/boot 被100%的使用了
ox0spy@ox0spy-laptop:~$ df -m /boot/
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda8                   43        41         1 100% /boot

ox0spy@ox0spy-laptop:/boot$ sudo mv initrd.img-2.6.24-2*.bak ~/
然后,再看下/boot可用空间
ox0spy@ox0spy-laptop:/boot$ df -m /boot/
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda8                   43        26        15  64% /boot
恩,有15M 可用,先试试...
ox0spy@ox0spy-laptop:/boot$ sudo dpkg --configure -a
Setting up initramfs-tools (0.85eubuntu39.3) ...
update-initramfs: deferring update (trigger activated)

Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.24-24-generic

OK,没问题了
看来下次得把/boot空间分大点,50M有点小了...
或经常把/boot中的备份文件移到其他地方

ubuntu 字体美化

ox0spy@ox0spy-laptop:~$ ls /media/Soft/Linux/font/
LiHeiPro.ttf Lucida Grande.ttf simfang.ttf stheiti.ttf
local.conf msyh.ttf simsun.ttc
ox0spy@ox0spy-laptop:~$ sudo mkdir /usr/share/fonts/truetype/msfonts/ &&
sudo cp /media/Soft/Linux/font/* /usr/share/fonts/truetype/msfonts/
ox0spy@ox0spy-laptop:~$ cd /usr/share/fonts/truetype/msfonts/
ox0spy@ox0spy-laptop:/usr/share/fonts/truetype/msfonts$ sudo mkfontscale
ox0spy@ox0spy-laptop:/usr/share/fonts/truetype/msfonts$ sudo mkfontdir
ox0spy@ox0spy-laptop:/usr/share/fonts/truetype/msfonts$ sudo fc-cache


ox0spy@ox0spy-laptop:/usr/share/fonts/truetype/msfonts$




字体设置:





Firefox 字体设置:

Mar 11, 2009

浮躁...

只要自己选择了方向一直走下,就不要计较太多,不要被外界的东西影响了前进的
脚步。。。

某人说:"小一点的愿望更容易实现"

也许,我一直都把目标定的太高,自己的毅力又没那么坚强,所以总是半途而废,
到头来什么也没学会

这次工作也是,北京待了一段时间,觉得北京太大了,在那待着不爽。

虽然没有后悔的意思,但静下心来想想北京的机会的确比我现在待的城市多得多

静下心来,一步一步的来...

Mar 9, 2009

2012-1-30

H4sIABTptEkAA+3RsQnCUBDG8dROkQUCd+/lJUM4hRMoRkFLwSKibmBrb6FIIGQan6TLCkYiYiNW
IsL/x8HB3RUfnBE1kUZWgu+RVhLH966pk9fecWmgqs5pYhNp56rGahB+M9PTNJsMxmEYDGeSjebv
7z7t/5Rp/++Lo153uZVLsfarbVNu/Hlfn5Z1Vfn8oNJvykVXvV/HBQAAAAAAAAAAAAAAAAA83ABd
K/P6ACgAAA==

Mar 3, 2009

。。。

2009.3.3 5:00 1363 跑成都去了.

Feb 24, 2009

ubuntu 8.10 安装无线网卡驱动

摘要:ubuntu 8.10 安装 Atheros Communications Inc. AR242x 无线网卡

通过System -> Administration -> Hardware Drivers 把显卡驱动装好了,但是
无线网卡还是不能用
ox0spy@ox0spy-laptop:~$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

pan0 no wireless extensions.

ox0spy@ox0spy-laptop:~$ lspci -v | grep Wireless
03:00.0 Ethernet controller: Atheros Communications Inc. AR242x
802.11abg Wireless PCI Express Adapter (rev 01)

无线网卡是: Atheros的 AR242x
官网上没找到 AR242x的驱动,网上看也安装madwifi
dns无法解析svn.madwifi.org
ox0spy@ox0spy-laptop:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ox0spy-laptop
217.24.1.142 svn.madwifi.org

下面是安装过程:
1. System -> Administration -> Hardware Drivers , Deactive Atheros 驱动
2. $ mkdir madwifi && cd madwifi
3. $ svn co https://svn.madwifi.org/madwifi/branches/madwifi-hal-0.10.5.6
4. $ make && sudo make install
4. 在/etc/module的最后添加一行:
ath_pci
5. $ sudo modprobe ath_pci

现在, iwconfig 看看,可以看到wifi0 ath0 了吧
如果还是没驱动起来,reboot 启动起来应该就发现已经驱动起来了

Feb 23, 2009

ubuntu eva 无法调用 ibus

qq for linux 功能还是很弱
pigdin不是很喜欢

所以用 eva 和QQ好友聊天
但默认无法在eva中调用ibus,解决方法:
System -> Preferences -> Main Menu,找到"eva"这一项,编辑"Properties",
在"Command" 原来命令的前面加上 :
env QT_IM_MODULE=xim XMODIFIERS="@im=ibus"

安装 ubuntu 8.10 (server, desktop)

server:
安装grub
下载 vmlinuz initrd.gz

下载地址:
http://archive.ubuntu.com/ubuntu/dists/intrepid/main/installer-i386/current/images/hd-media/

grub -> command line :
root (hd0, 3)
kernel /vmlinuz root=/dev/ram ramdisk_size=768000 devfs=mount,all
initrd /initrd.gz
boot

无法分区 :
$ sudo umount -l /hd-media

desktop:
从iso文件中的casper中提取: vmlinuz, initr.gz

grub -> command line :
root (hd0, 3)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-8.10-desktop-i386.iso
boot

无法分区:
$ sudo umount -l isodevice

Feb 21, 2009

.vimrc 文件

$ sudo apt-get install vim-full
##########
# .vimrc #
##########
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set tabstop=4

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" General
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nocompatible " get out of horrible vi-compatible mode
filetype on " detect the type of file
set history=100 " How many lines of history to remember
set ffs=unix,dos,mac " support all three, in this order
filetype plugin indent on " load filetype plugins
set viminfo+=! " make sure it can save viminfo
set isk+=_,$,@,%,#,- " none of these should be word dividers, so make
them not be

" Theme/Colors
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set background=dark " we are using a dark background
syntax on " syntax highlighting on
"colorscheme desert " my theme for gui
colorscheme evening " my theme for terminal

" Files/Backups
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set nobackup " make backup file
set makeef=error.err " When using make, where should it dump the file

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim UI
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set wildmenu " turn on wild menu
set ruler " Always show current positions along the bottom
set cmdheight=1 " the command bar is 1 high
set nu " turn off line numbers
"set numberwidth=4 " minimum width to use for the number column,not a
fix size Vim64不支持
set hid " you can change buffer without saving
set backspace=2 " make backspace work normal
set whichwrap+=<,>,h,l " backspace and cursor keys wrap to
set mouse=a " use mouse everywhere
set shortmess=atI " shortens messages to avoid 'press a key' prompt
set report=0 " tell us when anything is changed via :...
set lz " do not redraw while running macros (much faster) (LazyRedraw)
" make the splitters between windows be blank
set fillchars=vert:\ ,stl:\ ,stlnc:\
"set lsp=0 " space it out a little more (easier to read)

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Visual Cues
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set showmatch " show matching brackets
set hlsearch " do highlight searched for phrases
set incsearch " BUT do highlight as you type you search phrase
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " what to show
when I hit :set list
set so=15 " Keep 10 lines (top/bottom) for scope
set novisualbell " don't blink
set noerrorbells " no noises
set laststatus=2 " always show the status line

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Text Formatting/Layout
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set formatoptions+=mM " for charactors fold and patch
set ai " autoindent
set si " smartindent
set cindent " do c-style indenting
set tabstop=4 " tab spacing (settings below are just to unify it)
set softtabstop=4 " unify
set shiftwidth=4 " unify
set noexpandtab " real tabs please!
set nowrap " do not wrap lines
set smarttab " use tabs at the start of a line, spaces elsewhere

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Folding
" Enable folding, but by default make it act like folding is off,
because folding is annoying in anything but a few rare cases
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set foldenable " Turn on folding
set foldlevel=100 " Don't autofold anything (but I can still fold manually)
set foldopen-=search " don't open folds when you search into them
set foldopen-=undo " don't open folds when you undo stuff

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" File Explorer
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:explVertical=1 " should I split verticially
let g:explWinSize=35 " width of 35 pixels

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags and Taglist
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd = "/usr/bin/ctags-exuberant" " Location of my ctags
let Tlist_Sort_Type = "name" " order by
let Tlist_Use_Right_Window = 0 " split to the left side of the screen
let Tlist_Compart_Format = 1 " show small meny
let Tlist_Exist_OnlyWindow = 1 " if you are the last, kill yourself
let Tlist_File_Fold_Auto_Close = 0 " Do not close tags for other files
let Tlist_Enable_Fold_Column = 0 " Do not show folding tree

set tags=./tags,./../tags,./../../tags,./**/tags,tags " which tags files
CTRL-] will search
"set autochdir " auto change the current dierctory when you open the
file or window or any other buffer Vim64不支持
set makeef=makeerror.err
set path=.,./../**,/usr/include/*,,

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Minibuf
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:miniBufExplTabWrap = 1 " make tabs show complete (no broken on two
lines)
let g:miniBufExplModSelTarget = 1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Matchit
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let b:match_ignorecase = 1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Mappings,I don't need any mapping now
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"map <right> <ESC>:MBEbn<RETURN> " right arrow (normal mode) switches
buffers (excluding minibuf)
"map <left> <ESC>:MBEbp<RETURN> " left arrow (normal mode) switches
buffers (excluding minibuf)
"map <up> <ESC>:Sex<RETURN><ESC><C-W><C-W> " up arrow (normal mode)
brings up a file list
"map <down> <ESC>:Tlist<RETURN> " down arrow (normal mode) brings up
the tag list
"map <A-i> i <ESC>r " alt-i (normal mode) inserts a single char, and
then switches back to normal
"map <F2> <ESC>ggVG:call SuperRetab()<left>
"map <F12> ggVGg? " encypt the file (toggle)

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd BufEnter * :syntax sync fromstart " ensure every file does
syntax highlighting (full)
"autocmd GUIEnter * :simalt ~x -- " having it auto maximize the screen
au BufEnter /usr/include/c++/* setf cpp " all the file under the
directory are recognized as cpp files by vim

" if there are any error space(the end of line or before the tabs) in
c/c++ code,highlight it
"if $VIM_HATE_SPACE_ERRORS != '0'
"let c_space_errors=1
"endif

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Useful abbrevs, I don't need any iab now
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"iab xasp <%@language=jscript%><CR><%<CR><TAB><CR><BS>%><ESC><<O<TAB>
"iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>


if has("autocmd")

" 自动检测文件类型并加载相应的设置
filetype plugin indent on

" Python 文件的一般设置,比如不要 tab 等
autocmd FileType python setlocal et | setlocal sta | setlocal sw=4

" Python Unittest 的一些设置
" 可以让我们在编写 Python 代码及 unittest 测试时不需要离开 vim
" 键入 :make 或者点击 gvim 工具条上的 make 按钮就自动执行测试用例
autocmd FileType python compiler pyunit
autocmd FileType python setlocal makeprg=python\ ./alltests.py
autocmd BufNewFile,BufRead test*.py setlocal makeprg=python\ %

" 自动使用新文件模板
autocmd BufNewFile test*.py 0r ~/.vim/skeleton/test.py
autocmd BufNewFile alltests.py 0r ~/.vim/skeleton/alltests.py
" autocmd BufNewFile *.py 0r ~/.vim/skeleton/skeleton.py

""新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.[ch],*.sh,*.java,*.py,*.pl,*.cpp,*.xhtml exec
":call SetTitle()"
"新建文件后,自动定位到文件末尾
"autocmd BufNewFile * normal G

endif


" python auto-complete code
" Typing the following (in insert mode):
" os.lis<Ctrl-n>
" will expand to:
" os.listdir(
" Python 自动补全功能,只需要反覆按 Ctrl-N 就行了
if has("autocmd")
autocmd FileType python set complete+=k~/.vim/tools/pydiction
endif

"定义函数SetTitle,自动插入文件头
func SetTitle()
""如果文件类型为.sh, .py, .pl 文件
if (&filetype == 'python' || &filetype == 'sh' || &filetype == 'perl')
if &filetype == 'python'
call setline(1, "\#!/usr/bin/env python")
call append(line("."), "\# -*- coding: utf-8 -*-")
elseif &filetype == 'sh'
call setline(1, "\#!/bin/bash")
call append(line("."), "")
elseif &filetype == 'perl'
call setline(1, "\#!/usr/bin/env perl")
call append(line("."), "")
endif

call append(line(".")+1,
"\#########################################################################")
call append(line(".")+2, "\# Author : ox0spy")
call append(line(".")+3, "\# Email : ossteerer@gmail.com")
call append(line(".")+4, "\# Blog : ox0spy.blogspot.com")
call append(line(".")+5, "\# Created Time : ".strftime("%c"))
call append(line(".")+6, "\# File Name : ".expand("%"))
call append(line(".")+7, "\# Description : ")
call append(line(".")+8,
"\#########################################################################")
cal append(line(".")+9, "")

if(&filetype == 'python')
call append(line(".")+10, "\"\"\"docstring")
call append(line(".")+11, "\"\"\"")
cal append(line(".")+12, "")
cal append(line(".")+13, "__revision__ = '0.1'")
cal append(line(".")+14, "")
cal append(line(".")+15, "")
endif
elseif (&filetype == 'xhtml')
call setline(1, "{% extends 'base.xhtml'}")
call append(line("."), "{% block title %} {% endblock %}")
call append(line(".")+1, "{% block content %}")
call append(line(".")+2, "")
call append(line(".")+3, "{% endblock %}")
else
call setline(1,
"/*************************************************************************")
call append(line("."), " Author : ox0spy")
call append(line(".")+1, " Email : ossteerer@gmail.com")
call append(line(".")+2, " Blog : ox0spy.blogspot.com")
call append(line(".")+3, " Created Time : ".strftime("%c"))
call append(line(".")+4, " File Name : ".expand("%"))
call append(line(".")+5, " Description : ")
call append(line(".")+6, "
************************************************************************/")
call append(line(".")+7, "")
endif
endfunc

路在何方

    最近忙着找工作,状况很不理想。哈哈,就如 仅仅是巧合??

    易穷则变,变则通,通则久,人总是在失意时思考的更深,我以前一直以为自己是棵葱,其实我啥都不是...
    想想我的工作经历,得安3个月;友为1年多
    得安3个月,2个月培训了,还好李老师比较看的起,在大家都没事做(公司不准让未转正的员工做项目)的时候,就让我给吉大正元做加密卡接口.
    得安的开发语言是c,公司最基本的加密卡API都是c写到的,自己又学习了Linux网络、shell编程。
    友为我是以Linux c程序员进入的,不过工作内容很杂。
    I、在RHEL 5上安装Oracle 9i
    II、IVR语音服务开发,最终修改了一个demo,做的最不成功的东西,因为我讨厌MFC。开发语言:VC
    III、嵌入式开发,我本来想做Linux的,但公司要做WinCe。做了一个号码归属地查询(检查来电、挂断有问题)。开发语言:C#
    IV、销售管理支撑系统(web/wap),开发语言:Python; 环境:Apache + MySQL + Mod_Python + Python + Django

    昨天和TaoA、Yang的聊天让我思考了我能做什么
    现在我能做什么:
    1、Linux系统管理员(一直喜欢Linux系统,对系统管理、网络安全有一定的认识,以优秀的成绩通过HP CSA认证)
    2、Linux C程序员,最好做Linux嵌入式开发(C是以前我最喜欢的语言,对Linux系统很熟)
    3、Web开发(我觉得Web开发挺有前途,也做过点东西)

    再看看我2009年的计划,明显看的出:鱼和熊掌都想要,哈哈

    也不说如果我当年就一直做什么,现在就。。。
    但现在必须选择一个方向,并且搞定它!

    ok,就WEB开发吧,语言Python,框架:CherryPy、Django、web2py

仅仅是巧合??

最近的事情想想就觉得很搞笑

天气:

14号到北京,songze接我到他那,然后就感觉开始降温。。。

15号和hewei去他那住

好像16号开始下雪,一下就是几天,今天雪还没化完呢。。。

最近北京很冷!

面试:

13号早上songze问我几点到,说他刚推掉一个面试,准备去接我。我告诉他14号到...

14号他说,他的一个同事13号去他推掉的那个公司,然后老板就要了

从此之后,一直到今天(20号),他一个电话通知也没有

刚聊起来,他说(13号)之前一天都有两个面试...
几天前就发现这问题,和一初中同学(liujia)聊。她告诉我,为了北京的朋友们,让我早点离开北京难过

难道真的是 故天将降大任。。。

 

PS:hewei早上回成都了

PPS:少不入川,老不出蜀。网上看了看,对成都有了莫名的好感

                                                                     2009-2-20 北京

Jan 8, 2009

Motorola E2 删除mpkg软件

mpkg软件不像jar软件那样,可以卸载。所以要用下面的方法删除...

a. 编辑 .system/java/CARDREGISTRY, 删除对应的MPKGl软件的"键和值"
b. 删除 .system/QTDownLoad 里面对应的MPKG软件
c. 刷新sd卡

Word 清除保存网页的乱码

有些网站你看的时候正常,但是你把他们复制保存到文本编辑器中却出现很多
乱码。
查看网页源码基本都可以发现如下的代码:
<font style="font-size:0px;color:#FFF">
乱码其实隐藏在白色背景中

解决方案:
把你要copy的内容paste到word文档中,编辑->替换->查找和替换,高级->格式
->字体,从"全部文字"中的"字体颜色"内的下拉菜单,选择 白色
然后 替换为 不填就可以了,再点下 全部替换 就ok了

mount error 13 = Permission denied

ubuntu 8.10
$ sudo smbmount //192.168.1.7//SMG /mnt/smb
mount error 13 = Permission denied

系统使用当前用户名mount的,所以如果该用户名你的192.168.1.7上没权限(或者
根本就不存在),就会出现上面的错误

加个-o username=administrator 就没问题了
$ sudo smbmount //192.168.1.7//SMG /mnt/smb -o username=administrator
$ ls /mnt/smb
CG0_0x10080000.smg CG33_0x000A0000.smg CG7_0x10350000.smg
CG1_0x100800C8.smg CG34_0x001A0000.smg RDL1_0x03FC8000.smg
CG18_0x10330000.smg CG35_0x00AA0000.smg RDL3_0xA0DE0000.smg
CG2_0x10390000.smg CG36_0x010A0000.smg SBFData.dat
CG3_0x10040000.smg CG39_0x01CE0000.smg SBFHeader.hdr
CG31_0x00060000.smg CG41_0x01DE0000.smg
CG32_0x00080000.smg CG43_0x02600000.smg

Jan 7, 2009

Motorola E2 声音配置 (增多/调小)

调大手机通话音量
把下面的内容保存为 ezx_volumetable.cfg,修改相应字段的值
然后看下你手机的/root/autorun.txt,确定下放的手机那块才起作用
比如,我的autorun.txt中是:
# 用户音量配置
if [ -f $MYFAVOR/ezx_volumetable.cfg ]
then
    mount --bind $MYFAVOR/ezx_volumetable.cfg /usr/SYSqtapp/sound/ezx_volumetable.cfg
    kill `pidof soundmanager`
fi

所以把 ezx_volumetable.cfg 放到 mystuff\unKnown\My_FAVOR下

[pcap_loudspk_music]
 12, 12, 12, 12, 12, 12, 15, 15, 15, 15;
[pcap_headset_stero]
 1, 4, 4, 2, 1, -1, -1, 1, 1, -1;
[pcap_loudspk_hfree]
 12, 12, 12, 12, 12, 12, 12, 12, 12, 12;
[pcap_handset_vcall]
 3, 4, 5, 5, 5, 5, 5, 5, 5, 5;
[pcap_headset_mono]
 3, 3, 3, 3, 3, 3, 3, 3, 3, 3;
[pcap_car_kit_vcall]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
[pcap_3mm5_nomic_st]
 1, 4, 4, 2, 1, -1, -1, 1, 1, -1;
[pcap_3mm5_nomic_cl]
 1, 4, 4, 2, 1, -1, -1, 1, 1, -1;
[pcap_mic_normalrec]
 28, 28, 28, 28, 28, 28, 28, 28, 28, 28;
[pcap_mic_voicecall]
 29, 29, 29, 29, 29, 29, 29, 29, 29, 29;
[pcap_mic_handsfree]
 31, 31, 31, 31, 31, 31, 31, 31, 31, 31;
[pcap_headmic_music]
 28, 28, 28, 28, 28, 28, 28, 28, 28, 28;
[pcap_headmic_vcall]
 19, 19, 19, 19, 19, 19, 19, 19, 19, 19;
[pcap_carkit_mic_in]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
[pcap_emukit_spk_ou]
 -3, -3, -3, -3, -3, -3, -3, -3, -3, -3;
[pcap_emukit_mic_in]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
[pcap_emukit_spk_cl]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
[pcap_emukit_mic_cl]
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
[pcap_fmradi_spk_ou]
 -18, -18, -12, -6, 0, 3, 6, 9, 9, 9;
[pcap_3mm5_st_miccl]
 22, 22, 22, 22, 22, 22, 22, 22, 22, 22;
[end]

注:

[pcap_loudspk_music]  扬声器音量
[pcap_headset_stero]  耳机音量
[pcap_loudspk_hfree] 
通话免提
[pcap_handset_vcall]  听筒音量
[pcap_3mm5_nomic_st] 
3.5通用立体声不带mic
[pcap_3mm5_nomic_cl] 
3.5线输出不带mic
[pcap_mic_normalrec] 
MIC录音
[pcap_mic_voicecall] 
MIC语音拨号
[pcap_mic_handsfree] 
MIC免提
[pcap_emukit_spk_ou] 
收音机扬声器



 

Motorola E2 /root/autorun.txt

/root/autorun.txt 文件内容:

#!/bin/sh


# 用户字体
if [ -f $MYFAVOR/myfont.ttf ]
then
    mount --bind $MYFAVOR/myfont.ttf /usr/language/fonts/AMCSL.TTF
fi

# 用户音量配置
if [ -f $MYFAVOR/ezx_volumetable.cfg ]
then
    mount --bind $MYFAVOR/ezx_volumetable.cfg /usr/SYSqtapp/sound/ezx_volumetable.cfg
    kill `pidof soundmanager`
fi

# 自动开关机
[ -f /ezxlocal/.autopower ] && /bin/autopower

# 脚本接口
for DIRS in $MYFAVOR $UNKNOWN $OTHERS $MYFAVOR/autorun $UNKNOWN/autorun $OTHERS/autorun $MMCA1/autorun
do
    [ ! -f $DIRS/startup.txt ] && continue
    . $DIRS/startup.txt &
done

for DIRS in $MYFAVOR $UNKNOWN $OTHERS $MYFAVOR/autorun $UNKNOWN/autorun $OTHERS/autorun $MMCA1/autorun
do
    [ ! -f $DIRS/startup.sh ] && continue
    chmod +x $DIRS/startup.sh
    $DIRS/startup.sh &
done

for DIRS in $MYFAVOR $UNKNOWN $OTHERS $MYFAVOR/autorun $UNKNOWN/autorun $OTHERS/autorun $MMCA1/autorun
do
    for FILES in $DIRS/S*
    do
        [ ! -f $FILES ] && continue
        chmod +x $FILES
        $FILES &
    done
done

# 多分区自动挂载
if [ -f /ezxlocal/.mmca6 ]
then
    mkdir -p --mode=777 $MMCA6
    mount -t ext3 /dev/mmca6 $MMCA6
    if [ "$?" != "0" ]
    then
        rm -rf $MMCA6
    fi
else
    rm -rf $MMCA6
fi

if [ -f /ezxlocal/.swap ]
then
    swapon /dev/mmca5
fi

# 重新载入SD端主题
/usr/SYSqtapp/systemsetup/sdthemesetup reload

/usr/data_resource/tools/incalladd//incalladd_loop.lin &