存档

2010年5月 的存档

中国贫富标准线

2010年5月31日 闫鹏 11 条评论

由总部在美国纽约的经济实验室集团(EconomicLba)颁布的中国贫富标准线,看看你生活在哪个位置?
超级大富豪:年收入在5000万以上
大富豪:年收入在1000–5000万
富豪:年收入在300–1000万之间
富人:年收入在100–300万之间
高产者:年收入在30–100万之间
中产者:年收入在15–30万之间
低产者:年收入在8–15万之间
穷人:年收入在3–8万之间
很穷的人:年收入在1–3万之间
非常穷的穷人:年收入在5千–1万之间
穷得没衣服穿的人:年收入在1千–5千之间
穷得求生不得求死不能的穷人:年收入在100–1000元之间
穷得几乎要死的穷人:年收入在30–100元之间
死路一条的穷人:年收入在30元以下……

唉,我太可怜了

分类: 生活 标签:

sigterm sigint sigkill 区别

2010年5月20日 闫鹏 6 条评论

我看网上应该有不少搜索这个区别的问题,但是回答的都不全面,其中sigterm与sigint尤其有一点区别比较重要,但大都没有提及,今天我就遇到了这个问题,纠结了20分钟才搞明白咋回事。

首先,对于说这几个信号都是终止程序运行的说法不太准确,因为程序收到信号后,如果不对信号处理,就会导致程序退出,但如果程序捕获信号进行处理,按照它的逻辑,它是不一定会退出的。

在这三个信号中,sigkill是不能被捕获的,程序收到这个信号后,一定会退出。这就是kill -9一定能保证将程序杀死的原因。

下面说一下sigterm与sigint的区别,其中有一点区别区别很多文章都没有提及,也是我写这篇blog的原因(如果人家都写了,我就不用写了呗)

信号 产生方式 对进程的影响
sigint 通过ctrl+c将会对当进程发送此信号 信号被当前进程树接收到,也就是说,不仅当前进程会收到信号,它的子进程也会收到
sigterm kill命令不加参数就是发送这个信号 只有当前进程收到信号,子进程不会收到。如果当前进程被kill了,那么它的子进程的父进程将会是init,也就是pid为1的进程

下面这两个代码片段就能够验证这种情况(注意使用pcntl的时候,一定要declare ticks,要不然会杯具的发现函数没有被调用,进程不退出,信号发过去没有作用。php手册竟然没有强调这一点):

文件:loadhelper.php

#为了pcntl能够截获信号
declare(ticks = 1);

$arr_processes = array();

function terminate($signo){
    echo "aaaaaaaaaaa\n";
}

pcntl_signal(SIGTERM, "terminate", true);
pcntl_signal(SIGINT, "terminate", true);

foreach($argv as $key => $operation){

    if(0 === $key){
        continue;
    }   

    $pipes = array();
    $process = proc_open($operation, array(), &$pipes);
    if(false === $process){
        exit(-1);
    }
    $arr_processes[] = $process;
}

while(true){
    sleep(100);
}

文件:child.php

declare(ticks=1);

pcntl_signal(SIGINT, "terminate");
pcntl_signal(SIGTERM, "terminate");

function terminate($signo){
    echo "test_child\n";
}

while(true){
    sleep(100);
}

使用命令php loadhelper.php “php test.php”可以启动这个测试。
1.输入ctrl+c发送sigint可以看到,父进程与子进程的terminate都得到了执行,都有输出,但父进程不会退出,因为子进程还没有退出
2.通过kill向父进程的pid发送sigterm,可以看到,只有父进程输出

遗留问题:

父进程(loadhelper)接受到一次信号后,如果在terminate函数中调用exit,它还是不能退出的,因为还有子进程没有退出。但是从此以后它就不能再接收信号了(子进程还是能够接收到sigint),可能是exit使进程进入了待回收状态,具体还 需要后续在分析一把。

分类: 程序员 标签: ,

Gmail Notifier Plus

2010年5月18日 闫鹏 4 条评论

Gmail Notifier Plus 是一款为 Windows 7 专门开发的 Gmail 新邮件提醒应用软件,而实现 Gmail 新邮件提醒等功能则是基于 Windows 7 的 Jump Lists 桌面特性。用起来很方便

Gmail Notifier Plus 是由 Neowin.net 社区成员 daty2k1 开发的,软件很小,只有1M左右,无需安装即可使用,并且它还支持多个gmail账户

目前最新版本2.1.2可以不用鼠标点击登录那个按钮,直接就能进入gmail了,很好很强大。官方下载地址

gmail notifier plus

Gmail Notifier Plus 利用了 Gmail 的安全 RSS Feed 来返回邮件,主要功能包括:定时或即刻检查 Gmail 邮箱,状态栏显示未读邮件数,预览未读 Gmail 邮件,访问、撰写及未读邮件的 Gmail 链接(如上图)。

文章中有些内容copy自:http://livesino.net/archives/2070.live

分类: 软件 标签:

php中getopt的缺陷及修复

2010年5月17日 闫鹏 没有评论

在这里,我不得不再一次感叹php语言库函数的山寨与不专业。getopt函数就是一个典型的例子,通常用的时候,大家可能觉得没有什么,但在某些情况 下,就真的让人很囧。一个简单的函数,稍微多花几分钟就弄得更好一些了,但这个语言有个随意的开端,就有个随意的实现啊。

在linux中,使用getopt时候,有两种情况:

1.取得的参数解析成字符串:“php test_arg.php -c abc”,这种情况c参数取得的结果就是abc这个字符串

2.取得的参数解析成数组:“php test_arg.php -c abc -c abc123”,这种情况c参数取得的结果就是包含abc与abc123的数组

但是遇到这种情况呢:“php test_arg.php -c abc*”?由于linux的shell已经帮程序做了输入参数的解析,这时候c参数得到的既不是abc*这个结果也不是一个数组,而是被shell展开成了很多文件名后的第一个。

可能getopt用的童鞋很少,但这种山寨的设计,实在太让人憋屈了,自己花个10分钟写一个就比它的要好,为了避免大家重复劳动,分享一个代码片段

   function mygetopt(){
        global $argv;
        $result = array();

        $current_key = false;
        foreach($argv as $opt){

            $matches = array();
            if(1 === preg_match("/^-{1,2}(.*)$/", $opt, $matches)){
                $current_key = $matches[1];

                if(false === isset($result[$current_key])){
                    $result[$current_key] = false;
                }
            }else if (false !== $current_key){

                if(false === $result[$current_key]){
                    $result[$current_key] = $opt;
                }else{
                    if(false === is_array($result[$current_key])){
                        $result[$current_key] = array($result[$current_key]);
                    }
                    $result[$current_key][] = $opt;
                }
            }
        }   

        return $result;
    }

为了方便使用,将新版本的getopt函数设置为不接受任何参数,但是解析的结果可以输出所有的参数内容。因为php官方的getopt函数使用后,也无非是对输出的数组进行foreach之后进行switch,还不如方便点,直接解析所有呢。除了这一点,这个getopt函数的输出结果与php官方的完全一致

php官方getopt函数参考文档:http://cn.php.net/manual/en/function.getopt.php

分类: 程序员 标签: , ,

a4l,迈腾,新君威,c5试驾感受与对比

2010年5月15日 闫鹏 6 条评论

纠结车子已经很久了,但是觉得配置太差,大众太不厚道,总是想看看有没有替代产品可以满足需求,今天是一个稍闲暇的周六,就跑去看了看君威,顺道也看了看c5,这下纠结的车型都已经试驾完了,写个总结,给可能需要的童鞋参考一把。

我的需求就是一个家用型的车,要求安全性有保障(请参考召回门断轴英菲尼迪菲亚特),所以日系的车就没怎么关注过;期望开着方便一些,所以手动挡的不太考虑;期望驾驶方面稍微有激情,所以希望动力与变速箱方面比较不错;另外,车子内饰当然也是期望好一些,毕竟看着车里面时间比看到外面的时间多。

我的驾驶经验:大量桑塔纳2000与少数a6l。下面就逐一谈一下这几个车的试驾感受吧:

1.a4l

这个应该是属于分配精力最多的车了,但是我这么穷,要买也只能是裸奔版了。2010款的a4l 2.0t标准版开起来动力充足,s档动力澎湃,操控性非常好,有指哪打哪的感觉,乘坐舒适感也非常好。相比a6l来说,没有那种感觉车很大不好控制的郁闷,但是车内噪音貌似要大一些。当然,车无完车,目前貌似有三个主要问题:烧机油,发动机舱进泥水,120迈左右可能会出现方向盘抖动,而且这几点貌似是现在还解决不了的。另外,价格是这几款车里面最贵的,配置是最低的,保养是最贵的(价格与保养已超过奔驰与宝马的同级车)。另外一些小问题,比如车内异响,后排没有空调出风口,后座有窟窿等,买车还得排队或者加价,一汽真是让人感到愤怒。

2.迈腾

迈腾(magotan)应该算是大众目前的主力车型之一了吧,2.0t dsg豪华版,动力澎湃,感觉甚至比a4l要要好一些,dsg的变速箱与a4l的无级变速从舒适性上讲几乎差别。但是在试驾的过程中,就遇到了一个致命问题:头晕。这个问题依赖于驾驶技术,第一次坐一个30多岁的大姐(她也是在迈腾与a4l之间比较,最终选择了迈腾)开车,我坐在后排,感觉头很晕,后来自己开,急加速的时候,感觉头还是晕,我爸(30年的老司机了)开的时候,就感觉不晕了,但说到晕的问题,他仔细感受了一下,说开的时候确实有点晕。到网上查了一下“迈腾 晕车”,发现遇到这个问题的人非常多,甚至好多人还在讨论坐姿的问题,真是无语。于是只好无奈放弃了,另外再说一下,迈腾的内饰是这几款车里面最粗糙最差的,尤其是那个紫色的仪表板,感觉太太太难受了。销售说1.4t dsg的车型,在起步时候有点肉,具体没有试过。

3.新君威

今天试驾的2.0t旗舰运动版,试驾的路线不太好,车很多,没法从20给地板油加速到120,所以对一直抱怀疑态度的普通at变速箱没有太大的顿挫感。这个车给人最大的感受就是,动力极为强劲,强劲的如脱缰野马啊,稍微踩下油门就往前窜,动力方面比a4l的s档还要猛,对我来说,操控方面不太适应;地盘悬挂非常的硬,是这几款车里面坐着最不舒服的。至于配置,那是相当的不错,带有的通风座椅,是40万的车都不一定具备的,内饰也很不错,尤其是仪表盘的那一圈蓝色的灯,非常漂亮。对于汽车外观来说,个人感觉与a4l还是有一拼的,但是销售对这个与a4l比自认外观没有a4l好看哈哈。另外这个车非常耗油,美国车都喜欢大马力吧。没有考虑君越是因为君越太大了,觉得操控方面可能不是很好,觉得a6l车很大开着就不太爽。

4.c5

雪铁龙的4s点离别克不远,就顺道去试了试以舒适性著称的c5 2.3尊雅型,到那里的时候,销售mm还说试驾得预约,要求了一下才得以试驾。说实话,这个车没感觉到任何优点,可能价位的原因吧。宣称的舒适度方面,没有迈腾好,动力方面,可以用肉来形容…可能是我刚刚开新君威的运动版后的感觉吧,但给了2/3油门,听着发动机声音上来了,车子就是没有加速的感觉,动力情况大致与那辆开了11年的桑塔纳2000差不多,不愧是零到百公里加速要9.9秒的车啊。试驾后,立刻就嫌弃它了。

5.cc

这个车还没上市,售价也没公布,就简单说两句。这个车既然号称轿跑,估计售价一定是要在迈腾之上不少,现在有说25万起,有说29万起的,但个人觉得,去掉了dcc,就是一个换了壳的迈腾而已,车展上也进去看了,内饰倒是比迈腾好一些。我在汽车之家的论坛里面看到了有人拍的无天窗版,真是让人觉得很faint,如果是29万买个没天窗的,简直比a4l不值太多了。

6.途观

上汽的4s店挨着别克的,就顺道进去看了看途观并没有试驾。空间感不错,内饰方面比迈腾精致不少,但不是很喜欢suv的车型,就没有多问。低配的也是没有天窗,高配的裸车要30万左右,等到年底才能有车,可以加5万提车。葛米奢到了米国后买的就是这个,据说车要2万5刀,交完税保险等大概3万刀多一些,折合成人民币就20万元吧。米国的保险很完善,除了事故不用车主交任何费用,所以保险不便宜。不过总的算起来,还是要比国内划算太多了,国内的进口车与米国的一档次吧,但进口的要40万来的吧。米国人民买一升汽油才50美分左右,对米国人来说就是5毛钱,真是人神共愤的国际剥削啊。

听说别克新君威,雪铁龙c5与a4l在欧洲市场上是竞争车型,但从试驾感受上来说,雪铁龙c5确实没有啥突出的优点。看了一圈,还是比较倾向于大众的车,可怜的我真是悲剧,一汽与上汽都不是好人。啥时候我党我军没收他们的财产,我举双手双脚支持,被我党我军剥削无怨无悔啊。

分类: 生活 标签:

神奇的土地,神奇的国度

2010年5月8日 闫鹏 15 条评论

虽然我们都知道我们生活在一片神奇的土地,每天会发生很多神奇的事情,但神奇的事情发生太多了,也会有规律。别人看起来神奇的事情,我们看起来就很自然了。比如两大巨头在国内汽油不断涨价的同时,还低价出口国外,要知道米国的汽油一升才50美分,对米国人来说,比我们买一瓶水的感觉还便宜。

这不,中国一亿美元援助非洲联合馆43个参展方,非洲人民真是乐开颜啊,我们在看看旱灾拨款地震拨款,不知道为啥,两个结果排在前面的都是香港,中央做啥去了,中央的钱看来都是为非洲劳动人民准备的啊,一出手就是大手笔。

神奇土地上,人民命贱,看起来像是地球上待遇最低的了,非洲人民交税少,还有外国援助,神奇土地上的人民没有外人管,也只有连过去一趟都需要通行证的特区人民才对我们有一些爱心了吧。

这真是自建国以来就有光荣的传统啊…

分类: 生活 标签: