Apr
11
两个东西。
http://niu.bi 牛逼一下,你就知道
-----
N.B. 或者 NB
notabene的缩写,
http://niu.bi 牛逼一下,你就知道
-----
N.B. 或者 NB
notabene的缩写,
引用
Used to direct attention to something particularly important.
N.B. n : a Latin phrase (or its abbreviation) used to indicate that special attention should be paid to something; "the margins of his book were generously supplied with pencilled NBs" [syn: notabene, NB, N.B.]
N.B. n : a Latin phrase (or its abbreviation) used to indicate that special attention should be paid to something; "the margins of his book were generously supplied with pencilled NBs" [syn: notabene, NB, N.B.]
Apr
11
题外话:推荐felix的vimrc, http://www.felix021.com/blog/read.php?1092
标题很清晰了:就是把你的vimrc放在代码里。
对于你写的代码,可能你习惯一些特殊的风格,比如缩进2格或者什么的。在你自己的机器上自然简单,直接写进vimrc就好了,可是如果copy到其他机器上的时候呢,就比较麻烦了,修改vimrc多麻烦阿,直接把这些格式放到vimrc里头岂不最好?
vimrc提供两
标题很清晰了:就是把你的vimrc放在代码里。
对于你写的代码,可能你习惯一些特殊的风格,比如缩进2格或者什么的。在你自己的机器上自然简单,直接写进vimrc就好了,可是如果copy到其他机器上的时候呢,就比较麻烦了,修改vimrc多麻烦阿,直接把这些格式放到vimrc里头岂不最好?
vimrc提供两
Apr
11
1. vimtutor乱码
这个简单,因为默认的是gb18030的编码(莫名其妙嘛),
$ sudo gedit /usr/share/vim/vim71/tutor/tutor.zh.euc
令存为UTF-8编码的就OK了
2. vim打开文件乱码
在linux下面,默认编码是utf-8,在windows下面,默认是cp936,纠结。
不过还好vim提供了3个和编码有关的选项:
encoding: vim显示的任何内容(包括文件正文以及提示)就是用这个了,所以非特殊情况就保持默认吧。
fileencodings: 是一个用逗号分隔的编码列表,当vim打开文件时,会按顺序检测是否是对应编码
fileencoding: vim检测到编码后,就将其存入fileencoding选项,以便在存取的时候进行对应的编码转换。
于是解决方案就是,在vimrc里面加上这样一句:
按照 http://blog.chinaunix.net/u2/87718/showart_1685218.html 页面的说法
ucs-bom和utf-8是最不容易被误判的,就放在最前面拉
gb18030和cp936(貌似就是gbk), 以及big5,euc-jp,有一定误判几率,把最经常遇到的放在前面。
那篇文章是把cp936放在gb18030前面,于是有些gb18030的文件(比如前面的vimtutor)就被当成cp936了
所以我觉得应该把gb18030放在前面:D
至于最后的latin1,貌似可有可无吧。
这个简单,因为默认的是gb18030的编码(莫名其妙嘛),
$ sudo gedit /usr/share/vim/vim71/tutor/tutor.zh.euc
令存为UTF-8编码的就OK了
2. vim打开文件乱码
在linux下面,默认编码是utf-8,在windows下面,默认是cp936,纠结。
不过还好vim提供了3个和编码有关的选项:
encoding: vim显示的任何内容(包括文件正文以及提示)就是用这个了,所以非特殊情况就保持默认吧。
fileencodings: 是一个用逗号分隔的编码列表,当vim打开文件时,会按顺序检测是否是对应编码
fileencoding: vim检测到编码后,就将其存入fileencoding选项,以便在存取的时候进行对应的编码转换。
于是解决方案就是,在vimrc里面加上这样一句:
引用
set fileencodings=ucs-bom,utf-8,gb18030,cp936,big5,euc-jp,latin1
按照 http://blog.chinaunix.net/u2/87718/showart_1685218.html 页面的说法
ucs-bom和utf-8是最不容易被误判的,就放在最前面拉
gb18030和cp936(貌似就是gbk), 以及big5,euc-jp,有一定误判几率,把最经常遇到的放在前面。
那篇文章是把cp936放在gb18030前面,于是有些gb18030的文件(比如前面的vimtutor)就被当成cp936了
所以我觉得应该把gb18030放在前面:D
至于最后的latin1,貌似可有可无吧。
Apr
10
安装bo-blog的时候还不太懂编码的问题,于是数据库的编码就选择了按照服务器的设置存取。
于是在phpmyadmin里面看到的数据,只要遇到中文,全部都是乱码,郁闷。
花了一点时间,转换了一下:
1。用我的那个后台管理程序,它有数据库备份功能,备份出来的就是UTF-8编码的了。
2。修改数据库编码。直接在phpmyadmin里面修改,或者运行
3。导入第一步备份出来的数据库文件。
4。对于bo-blog,还需要修改data/config.php里面的$db_410,把后面的"0"改成"1"
哦也,问题解决拉~
于是在phpmyadmin里面看到的数据,只要遇到中文,全部都是乱码,郁闷。
花了一点时间,转换了一下:
1。用我的那个后台管理程序,它有数据库备份功能,备份出来的就是UTF-8编码的了。
2。修改数据库编码。直接在phpmyadmin里面修改,或者运行
ALTER DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
3。导入第一步备份出来的数据库文件。
4。对于bo-blog,还需要修改data/config.php里面的$db_410,把后面的"0"改成"1"
哦也,问题解决拉~
Apr
9
好吧,你不用查了,就是一个无线路由器。我的第三个无线路由器。
前两天和sheen聊天的时候随口向他推荐袖珍无线路由器
然后搜了一下,就发现了几款,其中wl-530g是最小,最漂亮的
整机尺寸是12.9cm * 4.3cm * 2.9cm,只有不到一个巴掌那么大。太可爱了。
淘宝上看到价格是178.4+15运费,于是一冲动就付账了(冲动是魔鬼!)
今天下午2点,我还在开往樱顶的车上时,快递的电话打过来了。让朱帮忙取了回来。
晚上回到宿舍,就看到它躺在我桌上,马上抽出刀子划开包装—果然惊艳!太可爱了~~
打开说明书,看到目录的最后一条:GPL !
Oh My God,简直是太令人happy了:又是一款开源无线路由器!本来只是打算拿来随便玩玩的,真是惊喜阿!
快速浏览完说明书,打开电脑,连上路由器,于是又见到了这个世界上最ugly的无线路由器管理界面。
还是openwrt论坛的Mr. db90h说的好,华硕无线路由器的界面设计人员要么是色盲,要么就是对界面设计毫无感觉。
[ "The author was clearly either color blind or otherwise not inclined towards visual design." ]
然后马上打开restore.exe,选中tomato固件,拔掉路由器电源,用挖耳勺捅住reset按钮,加电,等灯闪,点击update...
(居然跟wl-520gu的恢复方法一样,asus的这个恢复方法做的还是蛮不错的)
可惜在上传过程中提示固件有问题,不能用。
于是上网搜了一下,原来530g的CPU是marvel的芯片(160MHz),不是broadcom的,不能刷dd-wrt/tomato
不过4M Flash + 16MB RAM倒是不错。
然后看了看openwrt的论坛,有一个帖子有人提出这点,但是openwrt的开发者对530g不感冒
http://forum.openwrt.org/viewtopic.php?id=5012
有个人问,有没人有兴趣拿笔钱(wl-530g)开始搞这个?
Mr db90h说,我就试着整整。
于是就开始整了,于是就整出了不少成果。
http://www.bitsum.com/openwiking/owbase/ow.asp?WL-530G
把openwrt移植了,虽然还是beta版但是有不少功能了(但是貌似没有MMU!)
然后搞明白了怎么开启telnetd,还整出一个firmware-mod-kit
http://firmware-mod-kit.googlecode.com/
可以直接解压firmware, 修改,打包。
试了它的beta版firmware,不能启动=.=
于是还是刷回来。
然后用那个firmware-mod-kit解包,开启telnetd,加入我给wl-530gu编译的newstar(mips)
然后刷进去,启动,telnet — 哦也,连上了!
不过固件里面的sash真LJ阿。。。Orz华硕的开发人员。。就算为了测试固件,你们也该用个好点儿的shell阿!
不过newstar不能正常运行,提示二进制文件格式不对。
然后用asus提供的toolchain重新编译了一下这个newstar,加入固件,打包。。。。
可惜停电了,现在不能测试=.=
明天。。。
--
@ 2009-04-09
中午测试了一下,还是提示exe format error。Orz.
# cat /proc/cpuinfo
然后发现是arm的处理器,ooxx的华硕,提供的toolchain是mipsel的。。。orz他们到无限。。。
回头再去整吧,没那个精力了。。。
前两天和sheen聊天的时候随口向他推荐袖珍无线路由器
然后搜了一下,就发现了几款,其中wl-530g是最小,最漂亮的
整机尺寸是12.9cm * 4.3cm * 2.9cm,只有不到一个巴掌那么大。太可爱了。
淘宝上看到价格是178.4+15运费,于是一冲动就付账了(冲动是魔鬼!)
今天下午2点,我还在开往樱顶的车上时,快递的电话打过来了。让朱帮忙取了回来。
晚上回到宿舍,就看到它躺在我桌上,马上抽出刀子划开包装—果然惊艳!太可爱了~~
打开说明书,看到目录的最后一条:GPL !
Oh My God,简直是太令人happy了:又是一款开源无线路由器!本来只是打算拿来随便玩玩的,真是惊喜阿!
快速浏览完说明书,打开电脑,连上路由器,于是又见到了这个世界上最ugly的无线路由器管理界面。
还是openwrt论坛的Mr. db90h说的好,华硕无线路由器的界面设计人员要么是色盲,要么就是对界面设计毫无感觉。
[ "The author was clearly either color blind or otherwise not inclined towards visual design." ]
然后马上打开restore.exe,选中tomato固件,拔掉路由器电源,用挖耳勺捅住reset按钮,加电,等灯闪,点击update...
(居然跟wl-520gu的恢复方法一样,asus的这个恢复方法做的还是蛮不错的)
可惜在上传过程中提示固件有问题,不能用。
于是上网搜了一下,原来530g的CPU是marvel的芯片(160MHz),不是broadcom的,不能刷dd-wrt/tomato
不过4M Flash + 16MB RAM倒是不错。
然后看了看openwrt的论坛,有一个帖子有人提出这点,但是openwrt的开发者对530g不感冒
http://forum.openwrt.org/viewtopic.php?id=5012
有个人问,有没人有兴趣拿笔钱(wl-530g)开始搞这个?
Mr db90h说,我就试着整整。
于是就开始整了,于是就整出了不少成果。
http://www.bitsum.com/openwiking/owbase/ow.asp?WL-530G
把openwrt移植了,虽然还是beta版但是有不少功能了(但是貌似没有MMU!)
然后搞明白了怎么开启telnetd,还整出一个firmware-mod-kit
http://firmware-mod-kit.googlecode.com/
可以直接解压firmware, 修改,打包。
试了它的beta版firmware,不能启动=.=
于是还是刷回来。
然后用那个firmware-mod-kit解包,开启telnetd,加入我给wl-530gu编译的newstar(mips)
然后刷进去,启动,telnet — 哦也,连上了!
不过固件里面的sash真LJ阿。。。Orz华硕的开发人员。。就算为了测试固件,你们也该用个好点儿的shell阿!
不过newstar不能正常运行,提示二进制文件格式不对。
然后用asus提供的toolchain重新编译了一下这个newstar,加入固件,打包。。。。
可惜停电了,现在不能测试=.=
明天。。。
--
@ 2009-04-09
中午测试了一下,还是提示exe format error。Orz.
# cat /proc/cpuinfo
然后发现是arm的处理器,ooxx的华硕,提供的toolchain是mipsel的。。。orz他们到无限。。。
回头再去整吧,没那个精力了。。。
Apr
8
刚刚翻看vim的help,发现了usr_12.txt里面的12.3 Sort a list的例子,相当NB。
假设有一个文件a.txt内容为
使用ggVG命令选中所有行,然后输入 :'<,'>!sort ,于是所有行都被排序了。
当然,也可以使用 :1,$!sort 直接排序所有行。
然后看到了usr_21.txt (翻译一点点出来)
sort完就可以uniq,uniq完就可以wc(当然,vim有内置的g ctrl+g计算单词了),再加上sed, awk, grep ....
于是vim变得无限牛B了。。。
假设有一个文件a.txt内容为
引用
3
2
5
4
1
2
5
4
1
当然,也可以使用 :1,$!sort 直接排序所有行。
然后看到了usr_21.txt (翻译一点点出来)
引用
*21.2* 执行shell程序
......
:[range]!{program} 使用 {program} 过滤文本
注意,如果在"!{program}"之前加上了一个范围,那么这个命令的执行就有很大的不同。
如果不加范围,则正常地执行这个程序;而加上范围以后,其间的内容作为程序的输入,
并被程序的输出替代(过滤)。
......
:[range]!{program} 使用 {program} 过滤文本
注意,如果在"!{program}"之前加上了一个范围,那么这个命令的执行就有很大的不同。
如果不加范围,则正常地执行这个程序;而加上范围以后,其间的内容作为程序的输入,
并被程序的输出替代(过滤)。
sort完就可以uniq,uniq完就可以wc(当然,vim有内置的g ctrl+g计算单词了),再加上sed, awk, grep ....
于是vim变得无限牛B了。。。
Apr
7
在http://www.wangtianqi.com/160看到了sunpinyin,
于是抱着尝鲜的态度去试了一下,发现果然比scim自带的pinyin好用阿!
http://mentors.debian.net/debian/pool/main/s/sunpinyin/
下载这三个文件,然后
可能会遇到几个包没有安装,按照提示安装就行了。
等build完,在上一层目录[ $ cd .. ]就会发现一堆deb包。
注意,有一个data-be,还有一个data-le,be是big-endian的意思,le就是little-endian。
一般我们的pc都是little-endian(小端存储)的,所以可以直接把data-be删掉,然后
重新启动X以后,就会发现在scim里面有sunpinyin了,比自带的pinyin用着舒服:D
--
p.s. 顺便试试能否用guanghutun/guangfutun打出“广埠屯”,还是不行
于是去百度百科看了一下"埠"的词条,发现原来读作"部",我囧。
于是抱着尝鲜的态度去试了一下,发现果然比scim自带的pinyin好用阿!
http://mentors.debian.net/debian/pool/main/s/sunpinyin/
下载这三个文件,然后
$ dpkg-source -x sunpinyin-ooxx.dsc
$ cd sunpinyin-ooxx
$ dpkg-buildpackage
$ cd sunpinyin-ooxx
$ dpkg-buildpackage
可能会遇到几个包没有安装,按照提示安装就行了。
等build完,在上一层目录[ $ cd .. ]就会发现一堆deb包。
注意,有一个data-be,还有一个data-le,be是big-endian的意思,le就是little-endian。
一般我们的pc都是little-endian(小端存储)的,所以可以直接把data-be删掉,然后
$ dpkg -i *.deb
重新启动X以后,就会发现在scim里面有sunpinyin了,比自带的pinyin用着舒服:D
--
p.s. 顺便试试能否用guanghutun/guangfutun打出“广埠屯”,还是不行
于是去百度百科看了一下"埠"的词条,发现原来读作"部",我囧。
Apr
5
话说以前对这种微博客有一点点反感,不过试了一下,觉得还是挺方便的
QQ签名什么的直接就可以更新进来,也省得我去改公告了。
不过腾讯的滔滔有一点很不爽,就是有些很废的东西,比如“通过 xxx 发布”,以及多余的taotao的logo,不好看。
特别是对于我的这个blog模板,本来就小,还占空间。
于是就写了一小段脚本,去掉这些多余的字符。
参照我的代码吧:
QQ签名什么的直接就可以更新进来,也省得我去改公告了。
不过腾讯的滔滔有一点很不爽,就是有些很废的东西,比如“通过 xxx 发布”,以及多余的taotao的logo,不好看。
特别是对于我的这个blog模板,本来就小,还占空间。
于是就写了一小段脚本,去掉这些多余的字符。
参照我的代码吧:
<!--这里是腾讯给的代码的第一句-->
<script type="text/javascript">var taotao_qq=19880711; var taotao_num=3;var taotao_type=0;</script>
<div id="taotao">
<!--这里是腾讯给的代码的第二句-->
<script type="text/javascript" charset="utf-8" src="http://www.taotao.com/js/dkapi.js"></script>
</div>
<script>
try{
var divtao = document.getElementById("taotao");
var re1 = new RegExp("<span[^>]*?>通过[^<]*?</span>", "ig");
str = divtao.innerHTML.replace(re1, "");
var re2 = new RegExp("<a[^>]*?>(.*?)</a>", "ig");
str = str.replace(re2, "($1)");
var re3 = new RegExp("<table[^>]*?>.*?</table>", "ig");
str = str.replace(re3, "");
var re4 = new RegExp("<span>(.*?)</span>", "ig");
str = str.replace(re4, "<b>~ $1</b>");
divtao.innerHTML = str;
}catch(e){}
</script>
<script type="text/javascript">var taotao_qq=19880711; var taotao_num=3;var taotao_type=0;</script>
<div id="taotao">
<!--这里是腾讯给的代码的第二句-->
<script type="text/javascript" charset="utf-8" src="http://www.taotao.com/js/dkapi.js"></script>
</div>
<script>
try{
var divtao = document.getElementById("taotao");
var re1 = new RegExp("<span[^>]*?>通过[^<]*?</span>", "ig");
str = divtao.innerHTML.replace(re1, "");
var re2 = new RegExp("<a[^>]*?>(.*?)</a>", "ig");
str = str.replace(re2, "($1)");
var re3 = new RegExp("<table[^>]*?>.*?</table>", "ig");
str = str.replace(re3, "");
var re4 = new RegExp("<span>(.*?)</span>", "ig");
str = str.replace(re4, "<b>~ $1</b>");
divtao.innerHTML = str;
}catch(e){}
</script>