星期四, 一月 29, 2009

ubuntu 8.10 intrepid 修复vpnc导致的dns resolv问题

vpnc连接后会产生一个P2P tunnel ── tun0。常常在非正常vpnc-disconnect的情况下,它对系统做的一些修改不会恢复。此时就需要手工恢复。比如dns解析就是一个例子。

查看目前的dns是什么要 cat /etc/resolv.conf

但是这个文件是由ubuntu的network manager根据各个interfaces的配置自动生成的。

tun0的配置在:/etc/resolvconf/run/interface/tun0

把这个文件删除,然后右击network manager的图标(gnome的右上角的那个网络图标),取消enable networks,关闭网络;然后再勾选enable networks,重启网络。

cat /etc/resolve.conf 看看修改是否生效。

执行nslookup,然后输入一个域名解析一下试试看。

星期三, 一月 28, 2009

ubuntu 8.10 intrepid totem rmvb

http://man.chinaunix.net/linux/debian/debian_learning/ch08s23.html
不行!

http://bamanzi3.blogspot.com/2007/06/stracetotemrmvb.html
不行!

http://blog.csdn.net/catfoxsh/archive/2008/11/07/3247363.aspx
靠谱。
不过。。。声音图像错位,totem不能调整。。。只好再装一个mplayer -_-!!!


ubuntu 8.10 intrepid nx6320 intel iwl3945 无法激活无线网卡的问题

硬件:HP Compaq nx6320, intel 3945ABG

$ sudo lshw -C network
  *-network DISABLED     
       description: Wireless interface
       product: PRO/Wireless 3945ABG [Golan] Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:08:00.0
       logical name: wmaster0
       version: 02
       serial: 00:18:de:2e:28:f6
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list logical ethernet physical wireless
       configuration: broadcast=yes driver=iwl3945 ip=172.168.0.1 latency=0 module=iwl3945 multicast=yes wireless=IEEE 802.11abg

系统:
liuqingy@ubuntu:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 8.10
Release:    8.10
Codename:    intrepid

症状:
切换无线网卡的按钮无法激活。进入Windows XP,激活之,进入ubuntu则wireless是激活的。此时再按切换按钮,则无线网卡灯灭,再按按钮无法重新激活。

解决方案:
执行命令:
$ sudo rmmod iwl3945
$ sudo modprobe iwl3945

参考文献:
https://bugs.launchpad.net/ubuntu/+source/linux-ubuntu-modules-2.6.24/+bug/193970

星期四, 一月 22, 2009

Standford,创业者的摇篮!

Standford,创业者的摇篮!A dreaming place.

google黑板报上有几篇连载,写的精彩,请猛点以下链接查看:
http://googlechinablog.com/2009/01/blog-post_05.html
http://googlechinablog.com/2009/01/blog-post_13.html
http://googlechinablog.com/2009/01/blog-post_20.html
http://googlechinablog.com/2009/01/blog-post_21.html

纠正一篇关于hadoop的流传甚广的文章的重要错误

原文在这里: http://www.infoq.com/cn/articles/hadoop-process-develop
用搜索引擎一搜有很多转载。

其中提到:
没有配置RecordReader,所以默认采用line的实现,key就是行号,value就是行内容。  这个解释是错误的。 正确的是:key是该行开头在文件中的偏移位置(offset),value是该行的内容。 

星期日, 一月 18, 2009

hadoop问题:mapper停留在99.99%,reducer一直是0%

在使用hadoop编写一个统计文件行数的程序的过程中,发现了一个十分奇怪的现象:

- mapper都达到99.99%了,但是状态还是RUNNING
- reducer一直是0%
- 登录到tasktracker上,top查看发现java进程一直占用99%的CPU

困惑了很久之后找到了原因,原来是reducer的代码书写的问题。

我的mapper函数是这样的:

  public static class MapClass extends MapReduceBase
    implements Mapper<LongWritable, Text, Text, IntWritable> {

    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(LongWritable key, Text value,
                    OutputCollector<Text, IntWritable> output,
                    Reporter reporter) throws IOException {
        output.collect(word, one);
    }
  }

reducer函数是:

  public static class Reduce extends MapReduceBase
    implements Reducer<Text, IntWritable, Text, IntWritable> {

    public void reduce(Text key, Iterator<IntWritable> values,
                       OutputCollector<Text, IntWritable> output,
                       Reporter reporter) throws IOException {
      int sum = 0;
      while (values.hasNext()) {
        sum += 1;
      }
      output.collect(key, new IntWritable(sum));
    }
  }

我的本意是,统计行数嘛,就是每行+1不就完了?
可是问题就出现在 sum += 1; 这一行上,改成
        sum += values.next().get();
就可以了。

通过这个问题,我们可以进一步对hadoop的数据流处理机制有更加深入的思考。
reducer相对于mapper的关系就像consumer/producer的关系,如果reducer不consume掉mapper的输出,那么就会陷入死循环。。。

发现网上貌似没有人讨论过这个问题,记录于此供大家参考。

星期四, 一月 15, 2009

用google reader分享读网心得

我有经常用google reader阅读的习惯。
我发现google reader的共享备注功能非常好。
我把google reader share的项目嵌到了我的blog上。
我现在的使用路线是:阅读-共享备注-添加备注-确定-展现到blog。
如果没有备注,那就直接用"共享"来share。
如果不希望分享,只是备忘一下,那么就用星标。

值得注意的是,使用"共享备注"就不要使用"共享",不然就会share两次了。

enjoy readings!

星期一, 一月 12, 2009

成功把treo600的地址簿转移到blackberry!

最近刚刚入手blackberry 8700v,急需把原来treo600的地址簿转移过来,好几百联系人呢!
查遍了也没找到做法,于是自己动手。做法如下,写下来供为此发愁的人解燃眉之急:

第一步,把treo的address.pdb拷贝出来
第二步,使用perl程序把pdb中的数据抽取出来,生成csv
第三步,使用blackberry desktop manager的sync功能把csv导入blackberry

具体操作方法步骤繁琐,不再详述。感兴趣的可以和我email联系: qingyan123 (AT) gmail (DOT) com 。文中提到的perl代码也可发送email给我进行索取。:)


星期日, 一月 11, 2009

graphviz dot的潜规则

digraph G {
    subgraph person {
       a -> b;
       label="person";
    }
    b->c;
}

subgraph的框框死活出不来。
必须把subgraph的名字person改的和label不一样,比如叫cluster_person。
一改就灵!

星期一, 一月 05, 2009

git svn rebase干嘛使的?

每次git搞完之后,都是标准两步:

git svn rebase
git svn dcommit

第一句相当于svn update,检查一下远端是否有其他人checkin了新东西;
第二句是做svn checkin的工作。

git svn rebase就是干这个使的。赫赫

星期五, 一月 02, 2009

ubuntu 8.10搭建lighttpd+php开发环境

$ sudo apt-get install lighttpd php5-cgi
$ sudo lighty-enable-mod fastcgi
$ sudo /etc/init.d/lighttpd force-reload

编辑/var/www/index.php
<?php phpinfo(); ?>
存盘。

浏览器访问 http://localhost/

ubuntu 8.10 intrepid java汉字方块问题解决

在ubuntu 8.10下使用freemind发现,有个别汉字显示为一个方块。解决方法:

在 /usr/lib/jvm/java-6-sun/jre/lib/fonts 建立目录 fallback

sudo mkdir /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback

将 uming.ttf 链接到 fallback 中

sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/