Tuesday, June 30, 2009

不翻墙观看YouTube的方法

荣耀属于: 不用翻墙访问YouTube的方法[可行][转]

方法是修改本地host文件, 将YouTube的地址解析到谷歌中国的IP, 即这样几行:
203.208.39.104 www.youtube.com
203.208.39.104 gdata.youtube.com
203.208.39.104 upload.youtube.com
203.208.39.104 insight.youtube.com
203.208.39.104 help.youtube.com
203.208.39.104 youtube.com
  1. Linux

  2. 修改/etc/hosts文件, 添加上面几行, 然后重启浏览器.
    $ sudo ifdown eth0
    $ sudo ifup eth0


    7月6日更新:
    Ubuntu 9.04默认使用上面的命令会出现找不到eth0的错误提示, 原因在于ifdownifup这两个命令的配置文件 (/etc/network/interfaces) 里没有对于eth0的定义. 修改一下即可:
    $ cat /etc/network/interfaces
    iface eth0 inet dhcp
    上面的inetdhcp请根据你具体的网络环境设置, 详细参数可以参见man interfaces.


    7月6日再更新:
    刚才重启了下, 发现在改了上面那个文件之后电脑不会自动连上宽带了, 于是又改了回来... 暂时还不知道这是为什么. 大家还是用下面的命令吧:
    $ sudo ifconfig eth0 down
    $ sudo ifconfig eth0 up


  3. Window$

  4. 修改%SystemRoot%\system32\drivers\etc\hosts文件, 同样添加上面几行, 然后也是重启浏览器.... 禁用本地连接后再重开应该能行, 重启电脑也行, 我没试过, 有知道的各位麻烦说下.

YouTube

Monday, June 29, 2009

转到FeedBurner了

为了更好地统计RSS, 昨天转到了FeedBurner上, 请各位都换成新的Feed地址: http://feeds.feedburner.com/xiaogaozi. 用FeedBurner还有一个附加功能, 那就是可以翻墙看Blogger了, 嘿嘿~ 只是如果要想评论的话, 还是得手工翻墙才行. 昨天发现Blogger也有邮件提醒新评论功能的, 如下图:
reply

比较有名的同类服务还包括国内的Feedsky, 只是Feedsky不会翻墙...

Saturday, June 27, 2009

MySQL的自动补全

今天在群上和双眼波同学讨论了下MySQL的自动补全, 我们想要达到的功能是既能补全数据库和表名, 还要能补全SQL语句.

然后就去搜索了下, 在这里发现了一个选项: --auto-rehash, 说是可以实现, 看了下man page的描述确实也是. 于是就加上了试试, 结果刚开始一直不行, 在一个偶然的情况下, 发现只有在使用USE命令后, 自动补全才会开启.

另外刚才那个选项MySQL默认是加上了的, 所以也没必要再人工写出来了.

Friday, June 26, 2009

怎样修改MAC地址?

前段时间小妮子的电脑出现了一个很神奇的问题, 校园网连上几分钟就会自动断开, 需要重新连接才行. 并且在Window$和Linux下都有这样的问题, 在进行了各种排错工作——还包括一次重装Win——之后, 问题依旧. 最后请了一个高手来看看, 高手先捣鼓了一阵, 然后就决定改下MAC地址试试, 结果就这样奇迹般地好了.

这是什么原因呢? OK, 我想这个问题恐怕也只有我们学校的人能解决了. 这既不是一个软件问题, 也不是一个硬件问题, 这是一个很操蛋的问题... 伟大的学校网络中心可能最近在抽筋, 就一不小心把小妮子电脑的MAC地址封了, 或者是分配的IP和某人的冲突, 反正当发现原来问题是这个的时候, 我很无语...

不过这次也学到了怎么改MAC地址, 在Win下的方法我还真没见过以前, 比之前用某软件改方便多了. 方法就是在"设备管理器"里的网卡属性里"高级"选项卡里有一个叫做"Locally Administered Address"的东东, 它的值就是MAC地址, 只是少了分号间隔.

Linux下的就交给我了, 在参考了"[精彩] 如何修改mac地址让它一直生效?"这篇文章后, 成功修改. 永久修改的方法是在/etc/rc.local这个文件里添加如下信息:
/sbin/ifconfig eth0 down
/sbin/ifconfig eth0 hw ether 00:11:22:33:44:55
/sbin/ifconfig eth0 up
eth0是你的网卡编号, 如果你只有一个网卡, 那就是eth0了. 如果只是想暂时修改, 就直接依次运行上面的命令就行了.

Tuesday, June 23, 2009

隆重推荐VC精华资源: 计算机科学经典著作

今天无意发现的, 这个资源绝对称得上重量级, 不知道发布者收集了好久...

里面包含了几乎所有你知道的和你不知道的经典书籍, 大部分为PDF格式, 少数为CHM. 不多说了, 反正不下会后悔的: 《计算机科学经典著作》

Monday, June 22, 2009

收集你的Firefox扩展

Amo Fox
前段时间Mozilla在Firefox扩展网站上添加了一个新功能: Collections. 这是一个为注册用户提供的个性化服务, 将你喜欢的Firefox扩展都添加到你自己创建的Collections里, 同时还能把这些分享给别人.

觉得这样很方便, 以后走到哪都可以看到我的常用扩展了. 这是小高子的Collections, 右侧的"小高子的Web 2.0"栏目里也添加了这个链接. 同时从侧面显示了我是一个Firefox重度依赖者, 希望Chrome也能有好的扩展出现.

Sunday, June 21, 2009

我喜欢顺藤摸瓜

前几天听Dew的翻唱专辑, 听到一首《Daisy》, 就去查原唱是谁, 然后就找到了Bonnie Pink, 在看了点简介后就又去把Bonnie Pink的精选下了. 原唱和Dew的翻唱区别还是有点大的, Dew的伴着钢琴的点缀很舒缓, 有着慵懒下午的感觉, Bonnie Pink则是木吉他加上架子鼓, 歌声很悠扬.

发现我一直都有这样的习惯, 喜欢一个东西就会沿着某种线索一直找下去. 今天在Ray那看到李开复的Twitter, 进去发现了Blog地址, 就又进去顺便放到Google Reader里. 这里面隐含着一种牛人欣赏的多半也是牛人, 精华收集的一定也是精华的思想, 这能帮助我找到很多有价值且高质量的资源. "物以类聚, 人以群分", 这样也难免把自己局限在某个特定领域, 我还是比较欣赏不同领域的人共同交流而蹦出的火花, 像华裔数学家陶哲轩 (虽然他本人不认为自己是华人...) 就很喜欢同不同领域的人一起合作, 他得菲尔兹奖的成果是属于数论范畴, 而他自己却是一个调和分析以及偏微分方程领域的专家, 原因在于他乐意同其它研究领域的人合作. 顺带想起了《Beautiful Mind》里Nash调侃说数学家千万别跟搞生物的一起讨论.

本文初发于校内, 由于严重不满校内的火星编辑器, 今天跑去给校内客服提建议去了, 看什么时候才能有回复. 很久以前也提过一次, 从此没有音讯...
我提交的校内建议

以FastCGI的方式运行PHP

让PHP以FastCGI的方式运行可以最多提高10倍左右的速度, 还是很诱人的, 那天为了测试这个性能提升有多少, 就在Ubuntu里配置了一下.

首先需要安装一个软件包, 如果按上一篇文章[使用Ubuntu源安装LAMP]里讲的过程安装好的话其实就已经不用再安了, 需要的就是php5-cgi这么一个包.

然后需要打开Apache的actions模块, 因为后面的配置需要用到. 以下操作基于源安装的Apache:
$ cd /etc/apache2/mods-enabled/
$ sudo ln -s ../mods-available/actions.* .

最后就是修改配置文件了, 参考了FastCGI的官方文档. 添加如下配置:
# FastCGI for PHP
FastCgiServer /usr/lib/cgi-bin/php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/php
需要注意, 最后一句中的/cgi-bin/是一个别名, 即下面一行配置指定的:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
经过上面的一系列配置, 当php后缀的文件运行时就会自动以FastCGI的方式运行了. 还可以使用php_sapi_name这个函数测试是否配置成功, 如果运行输出的是cgi-fcgi就证明成功了, 失败通常输出apache2handler.

运行的时候需要注意两点, 一是要给PHP文件加上可执行 (x) 权限, 另一个就是PHP文件所在目录需要在Apache中设置+ExecCGI选项:
Options +ExecCGI

这时就可以使用ab工具来测试了:
$ ab -c 50 -n 1000 http://localhost/fcgi-bin/test.php
经测试, 一个简单的字符串输出的PHP程序才只有处理复杂操作的C++程序性能的2/3, 看来差距还是挺大的.

使用Ubuntu源安装LAMP

以前写过一个编译安装LAMP的文档, 放在我的Google Code的texsky项目里 (关于texsky的详细介绍参见以前的一篇文章[又建了一个项目 -- texsky]), 前段时间觉得有源还是用源好点, 毕竟更新会更加方便.

用源就简单了, 只需要记住软件包名就行了, 以下包名在9.04下测试通过:
$ sudo apt-get install apache2.2-common mysql-server php5 php5-cgi php5-cli php5-mysql
真怀疑为了一点扩展性和性能提升去折腾编译值不值得...

如果还需要FastCGI的支持, 再加上两个软件包:
$ sudo apt-get install libapache2-mod-fastcgi libfcgi-dev
顺便提一下libfcgi-dev这个包, 刚开始以为这个包只是编译的时候需要用到, 因为它的描述是: Header files of FastCGI, 所以误以为只有头文件而已. 结果运行的时候由于没安这个包就出错了, 研究了一下才发现这个包里还包含了一些so文件 (好阴险), 自然是运行时需要用到的了, 安上以后运行一切正常.

Friday, June 19, 2009

Ubuntu下安装Bugzilla

Buggie
今天整了一下Bugzilla, 过程那叫一个痛苦, 缘起还得从MySQL讲起.

由于Bugzilla依赖MySQL, 偏偏9.04里面依赖的版本是5.0, 而我以前装的是MySQL 5.1... 好吧, 肯定是免不了要把以前的MySQL卸载了的, 那就装个5.0吧 (埋怨自己干嘛非得追新...). 这时一件很悲剧的事情发生了, dpkg错误, 这是我最不愿意看到的东西, 依稀仿佛记得以前整AUCTeX的时候也遇到过类似的情况, 当时因为错误严重, 差点就重装了. 好了, 这次算我运气好, 咱又遇上了:
Aborting downgrade from (at least) 5.1 to 5.0.
dpkg: error processing /var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb (--unpack):
subprocess pre-installation script returned error exit status 1
Selecting previously deselected package mysql-server.
Unpacking mysql-server (from .../mysql-server_5.1.30really5.0.75-0ubuntu10.2_all.deb) ...
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
咱可是那种遇到困难就退缩的人? 显然不是! 俗话说"困难像弹簧, 你弱他就强", 这等小事算个啥啊, 在无敌的Google大法面前颤抖吧, 哇哈哈~ 下面隆重介绍Google大神的答案:
$ sudo rm /var/lib/mysql/debian-5.1.flag
主要原因是这个文件影响了MySQL的降级. 然后重新安装MySQL就行了, 我用的是下面的命令:
$ sudo apt-get -f install

经历了MySQL的煎熬, 现在开始安装Bugzilla, 中途会有对话框弹出来叫你设置, 需要输入MySQL中root用户的密码 (这就得要求安装的时候MySQL是启动的, 因为它会去建数据库和表), MySQL中新建的用户bugzilla3的密码, Bugzilla管理员的邮箱 (同时也是账户), 管理员的密码. 顺利完成之后, 麻烦事才刚刚开始.

先来讲讲怎么用Bugzilla. 首先你需要一个Web服务器, 我用的Apache. 如果你没有修改Apache的默认配置的话, 通过网址http://localhost/cgi-bin/bugzilla3/index.cgi就可以访问了. 但现在显示出来的只有文字, 图片、CSS什么的都不能访问, 这时就需要在你在Apache下设置的网站根目录下放置一个链接, 指向/usr/share/bugzilla3/web/:
$ ln -s /usr/share/bugzilla3/web/ bugzilla3
这个链接的名字是固定的.

修正: Bugzilla安装好之后会在/etc/apache2/conf.d下放置一个叫做bugzilla3的链接指向/usr/share/doc/bugzilla3/examples/basic.conf, 这是一个包含VirtualHost的配置文件, 经测试, 会影响其它VirtualHost的访问. 于是我将那个文件的内容合并到了最初始的配置文件里, 并移除了链接, 同时删除其中一行:
Alias /cgi-bin/bugzilla3 /usr/lib/cgi-bin/bugzilla3

使用刚才安装时输入的邮箱就可以登录管理员账户了, 当然, 会有一系列的东西等着你去设置, 毕竟默认配置都是不完美的.

Bugzilla使用邮箱作为账户, 如果有人来注册新账户, 在输入自己的邮箱之后, 服务器就会发送一封邮件给刚才的邮箱进行确认. 这时才发现我电脑上的邮件服务器还没配好, 就顺便折腾了一下. 我用的是Postfix, 不知道为什么, Ubuntu源里安装好的Postfix在用sendmail发邮件的时候会找不到main.cf这个配置文件, 到/etc/postfix下一看才发现根本就没有... 我也懒得自己去配了, 就用的别人的一个例子, 需要安装postfix-doc这个包, 安好之后会有/usr/share/doc/postfix-doc/examples/main.cf.default.gz这么一个文件, 解压, 把文件拷过去重命名就行了. 注意: 不要使用/usr/share/postfix/main.cf.dist这个文件, 里面的配置是不完全的, 我最开始就是用的这个, 结果运行的时候出现了一堆错误. 这时再用sendmail试试, 又发现了一个新错误:
postdrop: warning: unable to look up public/pickup: No such file or directory
在Ubuntu官方论坛的一篇帖子里找到了解决方法:
$ sudo mkfifo /var/spool/postfix/public/pickup
$ sudo /etc/init.d/postfix restart
这下就可以顺利通过sendmail发送邮件了, 不过我电脑上发出去的邮件地址还有点难看, 等有时间再弄一弄, 呵呵~

Bugzilla刚用, 配置等以后再研究了, 到时候肯定还会写一篇讲配置的.

P.S. 这是我目前为止用的标签最多的一篇文章.

Tuesday, June 9, 2009

使用Minicom的几个问题

Minicom是Linux下调试嵌入式板的利器, 和Window$下的超级终端属于同一类软件.

刚开始用的时候遇到了两个问题, 一个是中文问题. 如果你的默认环境是中文的话, 安装好的minicom会自动使用中文界面, 但是用中文显示会有一些比较严重的问题, 还是用英文好点. 我起先把环境变量LANG设置成en_US.UTF-8, 结果还是显示的中文, 在看过一篇文章后有了解决方法:
$ env LANG=en_US minicom
不知道这个为啥就行... 做成alias最好, 免得每次都输这么多.

第二个问题是键盘输入问题, 默认情况下minicom是不会响应键盘的, 在另一篇文章中知道了原因, 原来需要修改一个配置, 将Serial port setup下的Hardware Flow Control改成No就行了.