2013年11月7日星期四

命名

我在写程序时,一直觉得给函数和变量命名是值得消耗很多脑力的事情,花费一两个小时甚至一整天的时间去给一个函数命名也是常有的事情。今天无意看到一篇文章,发现命名的艰难是很多程序员都会面临的问题。

参考:http://kb.cnblogs.com/page/192017/

命名是我们认真对待编码的第一个环节,若这个环节不重视,后面注释、逻辑、自测都会存在轻视的问题。这个世界99.99%+的运行良好的代码不是来自天才的构想,而是来自辛勤的汗水。绝大部分垃圾代码诞生的原因并非是因为设计者的智力不够,而是设计者不够认真勤奋。程序员的俗称“码农”颇有其形象的一面,命名就像插秧,需要好好的对待它。

2013年10月31日星期四

未使用mfence引起的bug

前几天为了提高内存分配模块的效率,而使用了自行实现的spin_lock(即采用GCC的内置宏__sync_lock_test_and_set、MSVC的内置宏_InterlockedExchange)

理论上,释放锁时,需要考虑执行乱序的问题,需要有Memory Barrier(即执行mfence)避免临界区内的改动在临界区外生效。不过,我在本机上测试,发现无论如何不会出现乱序的情况,这让我以为处理器有机制避免这种乱序问题。考虑到引入mfence会带来明显的性能下降,我就去掉了这个语句。

结果,QA在服务器上测试时,就发现了异常问题,而且看上去和内存管理有关。在排除了其他bug以后(事实上,这个版本有很多其他各色问题),仍然没有彻底解决。我考虑可能和未使用mfence有关,便重新加上,果然恢复正常了。

测试表明,若无mfence,桌面的处理器和AMD的服务器处理器似乎都不会有乱序执行导致错误,而XEON则很容易出现问题。

一段用于测试乱序执行的代码:

makefile

a.out : main.cpp
    g++ -O2 -g -lpthread -o $@ lt;


main.cpp

#include
#include
#include
#include
#include

volatile unsigned int a1 = 0;
volatile unsigned int b1 = 0;

int lock = 0;

int failed_count = 0;

#define spin_lock(p) while (__sync_lock_test_and_set(p, 1)) __asm("pause")

#if 0
// No mfence
#define spin_unlock(p) *p = 0
#else
// Use mfence
#define spin_unlock(p) __sync_synchronize(); *p = 0
#endif

static void* f(void* arg)
{
    unsigned int c1, d1;

    for(;;)
    {
        spin_lock(&lock);
        c1 = a1;
        d1 = b1;

        a1++;
        b1++;
        spin_unlock(&lock);
        if (c1 != d1)
        {
            failed_count++;
            spin_lock(&lock);
            a1 = b1;
            spin_unlock(&lock);
        }
    }
}

static void* g(void* arg)
{
    struct timeval now, last;
    int us;

    gettimeofday(&last, NULL);
    for(;;)
    {
        spin_lock(&lock);

        b1++;
        a1++;
        if (b1 >= 0x1000000)
            break;

        spin_unlock(&lock);
    }

    gettimeofday(&now, NULL);
    us = (now.tv_sec - last.tv_sec) * 1000000;
    us += (now.tv_usec - last.tv_usec);
    printf("us = %d.\n", us);
    printf("failed_count = %d.\n", failed_count);
    exit(0);
}

int main(int argc, const char* argv[])
{
    pthread_t pid1,pid2;

    if (pthread_create(&pid1, 0, f, 0))
    {
        printf("Create thread1 error\n");
        exit(-1);
    }

    if (pthread_create(&pid2, 0, g, 0))
    {
        printf("Create thread2 error\n");
        exit(-1);
    }

    while (1)
        sleep(1);

    return 0;
}


通过调整#if 0/1的开关,可以选择使用/不使用mfence。

注意:出现failed count说明受到乱序执行的影响;但是若没有出现failed count并不意味不存在问题,可能只是没有引发问题;另外,编译时必须开启优化,否则生成臃肿的代码很可能会掩盖问题。

2013年10月27日星期日

英语、数学和八股文

经过多年的反英、反高考变态化人士的不懈努力,终于迎来了一个重要的变化 - 北京高考英语降低权重了,降低的分值转加到了语文科目。

这战果深刻鼓舞了各界人士,于是对数学发起了追击,更有大量网友投票,要求数学滚出高考。理由大抵是:变态的难,学不明白,无以致用,生活中除了加减乘除,其他毫无用处。

若投票真能发挥作用,数学大概就会死在滚滚的历史车轮之下了。这就是民主制度导致退步的非理智典型案例。

作为饱受英语折磨的一员,当年我也曾无数次企盼它被降分,甚至被踢出高考。然而这只是我的心情,合理的选择是英语不仅不应削弱地位,反而应该加强,让高考增设英文的听力、写作项目(口语考试太难评分,难以纳入)

这个问题需要从几个角度来看:

首先,需要变革的是中国教育资源分配及就业市场的问题。

目前我国教育资源明显集中在北大清华这几个一线院校和教育部直属的几十个二线院校上。结果就是像很多人往北上广深和各地省会、大城市等一、二线城市集中一样,学生也会削尖脑袋挤入这些一、二流的学校。同时,就业市场也会集中从这些学校挑选人才,结果又造成这些学校更有号召力,资源更集中,成了一个不断强化的循环。在这个问题解决之前,所有针对考核科目、繁重作业、补习问题的改革都不会有任何实际作用。

这种具有“跃龙门”效果的考试,当然是题目越出越变态。即使把所有的现行科目全部拿下,将内容改为比“糊火柴盒”,其结果也将是一批具有世界级糊火柴盒能力的人在考核中获得好成绩,从而进入理想的学校。

而国家的公务员考试,题目之所以还没有像高考那么变态(已经有开始变态的趋势),主要原因是开展时间不久并且考试相比高考还不够公平(内定的情况很严重)。若这个考试能够做到当年高考那样公平,再过几年,公务员考试也会很变态 - 无论考什么科目。

其次,高考内容本来就和生活无关。

很多人痛恨数学,这可以理解。但是以“数学在生活中毫无用处”为理由去排斥它,则失于偏颇。从初中开始,我们学习的知识基本就和生活无关了。总的来说,我们日常生活所需要的知识是很少的,有一些文字基础、认识ABC、会加减乘除也就足够了。但是,高考是高等教育的入门考试,和生活就是两码事。数学作为理工、经济类学科的基础,属于必备知识。(当然,文科、艺术类的考试,可以将数学内容去除。)

最后,若高考不考这些,考什么?

文科类的高考科目且不谈,这可以重新审视。

理工类的高考科目,若不考英语,不考数学,难道专考语文 - 这不是回到了八股文时代么?事实上,八股文要做好也是非常困难的。

因为觉得难而削减科目,是削足适履。

“题目难”是体制缺陷的结果,而不是成因。直接在结果上修正,无异于削足适履。

若没有基础的英语水平和数学功底,又谈何学习高等教育的其他科目 - 大学里的数学、物理、化学那可远比高考要求的内容变态。只不过考试评定松懈的很,所以容易蒙混过关罢了。若是以“对生活工作无用”的目的,把这些大学科目也全部废除,何不废除大学算了?其实我们小学毕业后,除非搞科研,否则就可以直接参加工作了。

事实上,对这个世界上绝大部分工作而言,小学毕业时掌握的知识的确足够了。不过招聘的企业并不会这么想,大部分企业会倾向于招一些学历更高、出身更好的人员。这个道理也很简单,毕竟我们不能使用童工,参加工作时都要18岁以上,企业自然会考虑从大学生中招募。而高考作为一个选拔体系,好学校的学生(意味着高考中获得了更好的分数)普遍具有更强的学习能力和勤奋程度,自然也被企业所青睐,在这个人群中挑选,选择成本更低。

高考之所以够难够折磨人,是因为后面“好出路”的稀缺性导致的。即使全面废弃高考,我们也会面临这个竞争压力,承受这个竞争带来的痛苦。无论怎么限制科目,调整分数,作业减负,禁止补习都没有什么意义。只有让社会发展,分配公平,增多“好出路”,才能缓解这种压力。

至于为了应付高考而进行“毫无意义”的学习,真的会降低我们的创造力吗?这可不见得。这是另一个大话题,姑且不谈。

ps:应该彻底从课程和考试中消失的是政治,它不仅没有达到稳定我党统治的目的,反而一早就教会了大家说谎话,建立混乱的逻辑等恶习。

2013年10月2日星期三

什么是政府关门?

美国政府关门,我国官媒很低调的起了下哄,批评了一下“美国的虚伪民主”,毕竟老百姓不太好忽悠了,说多了也没意思。

所谓的政府关门,无非就是小区里的业主委员会分为两拨,产生了分歧,到续合同的时候确定不了,物业的人回家睡觉等消息而已。没什么大不了的,什么时候找到解决方案,什么时候物业的人回来上班,当然了,这要忍受一些不便,比如小区垃圾没人清洁了。

我国的物业公司后台普遍比较硬,要牛气的多,业委会都是在物业公司的英明领导下工作的,自然不会有太大分歧。若真有刺头出现,可以出动后台物理镇压,也可以私下里给点甜头收买;当然,小区里面有时也有一些得罪不起的特别人物,可以在楼顶加盖,物业也奈何他们不得。我国政府就是管理全国的超级物业公司,而且自己还豢养了武装力量,自然是一言九鼎,逆我者亡。什么时候我国的物业公司基本都正常了,政府估计也就正常了。

2013年10月1日星期二

遗产税

据说要收遗产税了,又据说起征点从80万开始,新闻很多,不附链接。

这是我国政府推行政策传统手法,先放风,给个惊天动地的条件来试探一下群众的底线,若尚可控即推行;反之则略作调整再推行,让大家有种还价成功的感觉。过两年正式出台的时候,条件或许是800万开征,老百姓心头一算,似乎不关我啥事,说明我党从谏如流,于是喜而纳之。

当然了,现在互联网发达,民智已开,就算一时把人们忽悠住了,到最后未必也就是我党想要的结果。故而我党现在忙着清理大V,杜绝谣言,以免不好管理。

其实争论遗产税的起征点毫无意义。一方面,我们现在通胀很快,并且面临持续上涨的巨大压力,就算是800万,二十年后很可能也就是一套普通的住房,伪“中产”们人人都躲不过遗产税这一刀;另一方面,起征点和遗产税的覆盖面其实并无关系。很多人以为只要起征点高,普通人就可以躲过这一劫,由巨富们来承担,进而达到“均富”的目的。实际上,不管遗产税怎么征收,都不可能让实际的有钱人来承担。隐形的公务员富豪,我们连他们的财产是多少都搞不清楚,谈何征收;对官员和关系户来说,办理多个身份证都是轻而易举的事情,谈何征税?而明面上的有钱人,有各种手段转移财产。所以,最终征税目标,还是落在那些握着房子的老百姓头上。

其实这些都不重要,再怎么说,遗产税也是我们挂了以后才征收,影响的是我们的子孙。真正可怕的问题在于:政府缺钱了,要扩大税源。

我们政府效率低下,贪污严重,在经济高速增长时这些问题都被掩盖了。而随着经济增速放缓,贪污腐败日益恶化,政府赤字越发严重。不能节流,只好开源,之前卖地卖了二十年,仍然不够,政府必须寻找新的增长点。所以扩大税源、提高收税力度是势在必行之举。遗产税只不过是冰山一角罢了,各种稀奇古怪的税都会冒出来。比如增加消费税(西方国家也有嘛),生育税(开放多胎,但是每多一个就要交税,把原先的社会抚养费变成税收,同时鼓励多生),提高汽油税(可以说是保护环境),提高电价,水价,凡是等等,不一而足。

古往今来、世界各国政府均是如此,要削减赤字,只有开源节流,开源无非就是提高税收。这点倒是不必则对我党多加苛责。只是若不能节流(中国历届政府都无法解决贪腐问题,因此不具备节流能力,最后一一倒台),开源迟早会压垮整个社会经济体系。

政府最后一招是征收通胀税,这个征收成本低,过程隐蔽。政府倒台前一般都要收这个税。

ps:若真是开征遗产税,对赠与也严格控制,会不会发生“先离婚,然后公公和儿媳结婚,婆婆和女婿结婚,再离婚,再复婚”,这种奇葩的财产转移方法?所谓淮北为枳,大概就是这个道理了。

2013年8月25日星期日

博督之殇

这几天在审博督,我越看越觉得博督简直就是一个清官。连续折腾了好几天,还在几百万美元这个量级纠缠。在这个村官都能随便有上亿人民币资产、多少出逃的官员都能带走数亿人民币、中国人(什么人?)在美国每年能砸下一百多亿美金买房的背景下,博督的案子审来审去,牵扯的居然只有几百万美金,以他曾经的地位,简直算得上红旗下的海瑞了。

当然,博督实际上涉案的金额是多少,我们不知道。我们知道的是:这显然是一个借口,若当权者真的对贪污几百万美金的公务员们都这么关心,那么随便抽查几个官员调查都能抓上一批了。博督被拎了出来,显然不是运气不好,而是另有其他原因。

这就是令我们纠结的地方,我们不知道什么时候,因为什么原因就会被收拾。得罪了领导那就是死路一条,更可怕的是也许只是无意中得罪了他们。

博督和秦火火倒下的原因都很类似 - 惹了当权者。秦火火并不是因为“造谣”而被生擒活捉,而是因为让当权者难受。“造谣”只是让人难受的手段罢了,如果秦火火造冯小刚、范冰冰的谣,他还会安然无恙,开心的活着。同时,若是某个人说真话让当权者难受,那么他一样也会倒霉。只是他会因为别的罪名被抓,比如偷税?嫖娼?重婚?等等各色理由。只要不是圣人,就一定会有把柄。如果是圣人呢?也许会先被随便按上一个罪名,关上几年,运气好的放出来,然后国家赔偿你一千多元,道歉则不必。

ps:我当然不是博督和秦火火的同情者,只是,他们并不是因为公布于众的罪名被拿下。

从秦火火开始

秦火火被抓了,原因是造谣。

造谣者当然应该惩处,这点毫无疑问。不过各路领导对奶粉漠视、对各种冤假错案消极处理,却对造谣者开始下手,这反应了领导们目前关注的重点。秦火火或许该抓,但是接下来,在互联网上整天让领导们不爽的意见领袖们,是否也会被抓?如果秦火火能抓,其他人凭什么不会被抓呢?如果政府纯心想对付一个人,即使不用造谣这个理由,也可以找到无数其他的把柄吧。

当长官意志可以决定暴力机器的动向时,我们就会生活在所谓的白色恐怖下了。

其实秦火火的下场,和博督有异曲同工之妙啊。

2013年6月8日星期六

跑题作文 - 从需求出发设计产品

2013年北京高考作文:

材料
科学家:假如爱迪生来到21世纪生活一星期,最让他感到新奇的是什么?
文学家:我想手机会不会让他感到不可思议呢?
科学家:我同意,手机是信息时代的一个标志物,简直称得上是一部掌中电脑,丰富的功能一定会让这位大发明家感到新奇。
文学家:手机的广泛应用深刻的影响着人们的交往方式、思想情感和观念意识,或许这也是爱迪生想不到的吧?
科学家和文学家关于手机的不同看法引发你什么样的思考?
自拟题目,自选角度,诗歌除外,写一篇不少于800字的作文。


先鄙视一下出题的语文老师,题目中的科学家一定是个冒牌货(当然,也可能是我国专家),现代手机可不是“简直称得上掌中电脑“,它就是一部电脑,这句话一看就是文科生的想法。而且,强调“丰富的功能”可不是科学家的喜好,那更像是卖八心八箭的候总的爱好。科学家会关注布尔代数和各色算法,工程师会关注手机能够用如此小的体积进行运算,推销员会关注手机有很多功能。

OK,我想爱迪生要是真穿越了,关注的恐怕不是手机,而是到处都是那令人痛恨的交流电,尤其是搞出的电动车居然叫做TESLA...

以上全是废话,提到爱迪生,对我们产品设计还是很有启发作用的。

爱老在1869年获得了第一个专利,发明是“Vote Recorder” - 用来进行快速投票计票的机器。这还是一个C/S结构的高级货,只要投票人员选择Yes/No,就会将信号发给服务器,然后自动输出一份表格,列出哪些人选择了Yes,哪些人选择了No,还有统计结果,用模拟电路做这样的设备真是不可思议(要么说姓爱的都是天才呢,什么爱因斯坦、爱新觉罗、爱马仕之类的...)

然后国会的议长看了这玩意,评价是:“要是这地球上有什么发明是我们不想要的,那就是它了!”对政治家来说,立法过程中投票慢是一件好事,这让大家有时间去争取其他议员改变主意。于是,爱迪生的这项发明从来没有被人使用过。

从此,爱迪生开始只去研发发明那些有用户需求的产品。

这和我们做游戏颇有一致之处,玩家需要的不见的是那些最方便、最炫丽的东西,而是要能满足他们需求的东西。做产品不是要满足设计者的需要,而是满足最终用户的需要。爱迪生说:“天才=1%的天分+99%的汗水”,挖掘用户的需求,类似于那1%的天分,没有它,汗水只是汗水(BTW,别忘记了99%汗水也不可或缺的)。没有技术的革新,我们很难开拓并满足用户的新需求;没有挖掘把握需求的能力和意识,技术的革新就成了泡沫。需求和技术二者相辅相成,才可能让我们为用户创造美好的体验。

2013年5月14日星期二

学C#还是学C++

这两天我正在捣鼓C#,做点工具。MM看到了,觉得很奇怪:“你不是说C++好,C#不好么?怎么现在又学C#,用它做东西?”

我听了觉得很纳闷,作为多年来坚定的反C/C++份子,整天鼓吹C/C++必然没落,听到这个,感觉就像是佛教徒听别人说“你不是信上帝么,怎么拜起佛祖来了?”

再一细问,才知道MM误解了我当年的说法。

我说:“学习还是要学习C/C++,而不要只学习Java/C#。”嗯,我的意思其实是C/C++比Java/C#更基础,更贴近计算机程序设计的本质,学明白这两种语言,会知道计算机逻辑处理的来龙去脉。一旦学通了C/C++,再去掌握Java/C#就很容易了,并且比直接去学习这些语言可以理解的更深刻、掌握的更透彻。

Anyway,真的要干活(除非你写驱动),还是要用Java/C#这些现代语言。虽说C/C++更贴近本质,但是弓箭也很贴近本质,我们还用火枪干嘛?

从长远来看,程序猿泛滥成灾,模块化设计已经越发成熟,很多人只需要基于浩瀚的控件定制一些简单的逻辑就可以了。在这种情况下,学C/C++应该都无必要了。就像现代军人,学好使用武器就行了,怎么设计武器,武器原理机制,不学也罢。

2013年5月9日星期四

网站收集个人隐私的问题

很早就有这个传闻,今年315还曝光了一把,不过从来没有像今天这样亲身体验过。

我打开新浪网的时候,突然发现右侧的广告是相机配件的广告,有贴膜、UV镜、皮套这些产品的展示。这令我有些怀疑,因为前几天我刚在淘宝上采购过这些产品,确切的说不是采购,而是观看。选购产品是别人做的,他直接发给我看了这些产品链接。

为了确认这不是巧合,我用Safari打开了新浪(这样就不会使用Chrome的Cookie了),右侧则是男装的广告。我分别刷新了一下Safari和Chrome,Safari的广告变成了女鞋,而Chrome还是相机配件产品,只是换了一批。我再刷新Chrome,仍然是配件信息(这应该和我上淘宝很少有关,只看过这些信息),当我删除Cookie以后,世界清净了。

很显然,网站使用Cookie记录的信息来提高其推送广告的有效性。我仔细想了一下,淘宝做的并不算过分,因为它只使用了Cookie,似乎并没有把这些隐私信息上传 - 否则我删除Cookie后,或者使用其他浏览器,仍然可以给我推送这些相关产品信息。当然,也可能它收集了,但是并没有滥用。

不过这并不值得欣慰,按照315的说法,有一些制作插件的公司专门和各个网站合作用来收集用户信息。而这些行为政府似乎也无所谓(大概是对这些监管赚不到钱),长此以往,互联网会变得越来越不安全,对互联网发展来说应该不是好事。

2013年5月4日星期六

民主制度若是不好,我们为什么还要用

如果我们要求中国进行政治体制改革,采用分权的民主制度 - 当然,我党一定会说我们早已实现民主,你们要求的那种玩意是西式民主,是不符合中国国情的 - 所以,我们这里要的就是进口正版民主,而不是有中国特色的QQ民主。那么,精英人士大体会用印度来举例:“印度阿三玩了民主,腐败照旧,问题一样很多,而且发展缓慢,万万比不上中国”;你若是提了台湾,精英人士必称:“台湾小,而且人均素质较高,因为历史机缘,有条件、所以可以使用”。

OK,这些问题我们都可以认可。中国地域广阔,环境复杂,人口众多,缺乏民主基础。吃了西药,不一定能解决问题,很难比得上台湾,很可能会像印度一样。

但是,任何制度都有其背景。随着时间的变化,制度也需要调整。在30年前,我们在集权的领导下采用改革开放的制度,收获不错;但是一代人过去,问题越来越多,在原有的制度框架下,这些问题可能已经无法解决了,我们为什么不换一个新方案试试?尤其是新方案被验证在很长一段时期是有效的情况下。

中国人常提要“跨越式发展”,结果发现,很多事情跨不得,容易掉沟里。我们在工程领域解决问题时,也常常使用“有局限性”的解决方案,解决一段时期的问题,而非一劳永逸的解决所有问题 - 甚至是未出现的问题。我党很希望用一套方案解决所有时期的问题,一直用到人类从未看到过的“共产主义”,这有点“用汇编语言写Windows”的感觉。而我国使用的民主集中制(应该说是元老民主,百姓集中),在一段时间内效果不错。但是今天看来,已经有诸多无法解决的问题,非变不可了。

从上往下的监督,精力有限,不能落实。来自媒体及群众的监督,没有实权,难以生效。不调整权利结构,我们不能比明朝做的更好。虽说西式民主这贴药剂,只能治病一时,毒副作用也不算小,好歹比现在这样坐着干耗还是强啊。

从税收到政府管理

今天收到水费、垃圾处理收费账单,我突然想起交了这么多的物业税,政府都用去干什么了呢?

上网查了一下,政府有个简要的说明:



From: http://www.toronto.ca/budget2012/pdf/factsheet_2012_howyourtax.pdf

看来大部分钱都花在警察和司机身上了。

我顺便又看了一下市政府的财政预算(2012年刚过去估计还没出来,只有2011年的),给我的感觉和公司的报表很像。有财务数据,有关键问题总览及行动计划。管理一个城市和管理一个公司有不少类似的地方,都是要考虑如何创收、怎么花钱的问题。


什么样的制度出什么样的结果,我党也很希望各级政府是一个“服务型”的政府,并且花了很大力气努力教育诸多公仆,但是现在看来显然未遂。嗯,Toronto这种城市算是上市公司,全体市民是股东兼公司员工,区议员是董事会成员,市长是聘任CEO,公务员是公司行政后勤人员;我国则是一个私有企业,党内元老是股东,元老代言人是董事会成员,总书记是某执行董事兼职的CEO,各个省市是子公司,公务员是诸公司中低层,老百姓自然是公司下属的临时工,军委是包工头,士兵是保安打手。你自然不会听到有公司中低层为临时工们服务的道理,只有管理。虽说元老股东们心怀仁慈,大力建设企业文化,常教育公司中低层小组长们,要善待临时工。不过真心信了股东们的那些员工却没有什么好下场,因为考核的时候只看业绩,和临时工满意度无关。长此以往,所有员工、子公司领导都是忙于创业绩,至于建设服务型团队,别逗了,那几个脑子进水的早就淹死了。

不过,事务总是有两面的。任何制度都有合理性,都适用于某个阶段。向Toronto这种上市公司,业绩实在平平。关键行动计划说得多,落实的少,赚钱很困难,花钱不含糊,好点的收支持平,差点的就是债台高筑。干点什么事情都是啰里啰嗦讨论半天,10年也不见得能修出一条高速公路。像我国这种当年底子薄弱的,还真不能这么折腾。问题是,现在好歹有点积蓄了,是不是该考虑一下上市的问题了?

2013年4月30日星期二

人民?你想太多了

有人说,凡是“人民”打头的,人民都进不去,也不为人民做主。比如人民法院、人民政府、人民日报、人民大会堂。这听起来很有点问题,但是我想说的是:大家想多了,谁说你是人民?

从高考以来,我填了很多表格,姓名性别出生年月日籍贯住址政治面貌 - 好吧,我一开始真的很困惑啥是政治面貌,一问才知道,党员填写“党员”,团员填写“团员”,那我这种非党非团的闲杂人等呢?要填写“群众”。

感情我们就是一群众,和人民有一毛钱关系么?

让我们论证一下,先看看这些熟悉的词语:党群关系、干群关系、人民群众。发现了奥妙不?约掉群众,“党、干”=“人民”嘛!简单来说,公务员才是人民。

理解了不,领悟了不?我党可从来没有哄骗人,只是咱们理解能力不足。一旦咱们能准确的理解人民的含义,你就会发现,一切都是顺理成章,

看看宪法第二条:中华人民共和国的一切权力属于人民。
人民行使国家权力的机关是全国人民代表大会和地方各级人民代表大会。
人民依照法律规定,通过各种途径和形式,管理国家事务,管理经济和文化事业,管理社会事务。

国家权力、管理国家和我们群众是没有啥关系的。人民代表大会,和我们群众也没啥关系哦。

毛泽东说:“人民,只有人民,才是创造世界历史的动力。”(《毛泽东选集》第3卷,第1031页)

三个代表说:“始终代表中国最广大人民的根本利益”

这其实都说的很清楚了。想通这点,也就知道为什么是“军民鱼水情”了,也就理解“为人民服务”的真谛了。至于腐败的问题?打建党以来,党章里好像就从来就没说过要解决这个问题吧,倒是要“在生产发展和社会财富增长的基础上不断满足人民日益增长的物质文化需要”,呃,日益增长的需求啊!

努力考公务员吧!脱离群众,加入到人民的汪洋大海中来!

2013年4月19日星期五

DSC-RX1 & 智能相机

今天入手SONY DSC-RX1一部。优缺点就不谈了,很多人都评测过。

让我觉得遗憾的几点是:不能使用WiFi传相片;没有GPS。在习惯了用手机进行方便的拍照以后,还要牵个尾巴去传数据,真不是一个好的感受。如果它能像6D那样更加IT友好一些,能让使用者舒服很多。

我在对比手机(Samsung Note II)拍照在光线较暗处的拍照效果时,也遇到了传输的问题。不知道何故,我安装了Android Filetransfer for Mac以后,总是无法从手机上取下相片,后来找了一个App Airdroid,问题迎刃而解。使用WiFi传递文件,非常便捷 - 如果相机也用Android系统就好了,凭什么不呢?相机核心的功能是拍照,其竞争力表现在镜头、感光电路、快门控制这方面;但是操作系统何必局限在一个专用的,不方便使用的范围呢?专业相机对新技术的态度也许还是太过于保守了。

让专业的智能相机来的更早一些吧~~~

2013年3月30日星期六

给十年前的自己发条四字短信。下面12个,你会选哪条?

今天在网易新闻看到这个:





要是真有这个机会,我想我会发“赶紧买房”。

这当然是说笑,一个国家经济,若靠房地产驱动,租售比远离市场的合理值,必然要出问题。迟早有一天,我们得连本带利的吞下苦果。

2013年3月9日星期六

虚假宣传感动了谁

躺在床上假寐,突然听到央视一个公益广告,某乡村医生29年走了60万公里为百姓提供服务(搜索结果应为王玉军)。我直觉就觉得不对,心算了一下一天得走60公里,用计算器仔细算了一下,60万公里 / 29年 / 365.25(把闰年也考虑进去,让他每天少走点) = 56.6公里。

也就是说,此人每天都坚持出诊,没有任何休息,平均每天也要走56.6公里。即使在平地上,按照年轻人则为5.32 km/h ~ 5.43 km/h(见维基百科),也就是要走10小时以上。在携带医疗器具,路况不好的情况下,这个时间只会更长。

这个宣传的数据可信吗?这个数据怎么来的?经手人真的不知道真假吗?

很多人为了说服别人,感动别人,常常喜欢夸大数字。可是,这样做,究竟能感动谁?

2013年3月4日星期一

Surface Pro用后感

我希望能用最少的个人计算设备支撑起完整的工作、娱乐的需求。目前是手机、桌面电脑、笔记本。这其中缺少了一个环节,你很难躺在沙发上、床上使用笔记本,所以还需要一个平板电脑。而这样设备未免太多,多一件设备,就多出一份维护使用成本,所以我迟迟没有选择使用任何平板电脑。当Surface Pro出现后,我觉得这似乎可以满足我的需求,用来替代目前笔记本。

当SP刚入手体验时,发现不少瑕疵。

1. 当然是续航能力不足,3-4个小时的使用时间(视频、网页、阅读模式)很尴尬。乘坐飞机时很容易会遇到没电的情况,除非只在深圳和厦门这种航线上使用。即使在家里,你也要时刻拖着一根电源尾巴到处跑。

2. 传统桌面和Start界面衔接的还是有些生涩。明显感觉这是两套平行的界面,只是有个互相切换功能 - 说实话,我总觉得传统桌面好像使用虚拟机一样(不是说性能,而是指操作)

3. 手写笔没地方放 - 真的没地方放,虽说可以把它吸附在电源插口那里,问题是SP是一个经常需要接着电源跑的家伙,你没法在接电源的同时安置手写笔。所以,当我想偶然用用手写笔的时候,都需要克服怕麻烦的极大勇气,去把笔从某处搬来。不过好在可以兼用手机的手写笔,只是没有右键而已。

说起笔的功能,还有一个小小的瑕疵,就是不能用笔去点击屏幕外的Windows键(相当于苹果的Home键)。当你右手持笔,尝试用某个手指去点击Windows键时,因为笔离屏幕太近,很容易受到干扰,如果能够用笔直接点击就好了。

4. 支架缺乏灵活性,屏幕的角度不能调整。当坐着使用SP的时候(也就是工作状态下),需要调整好椅子的高度,否则无法正视屏幕,很别扭。

5. 软件太少。虽说SP是完整的x86 Windows,号称可以使用一切Windows软件。但是实际上你不要把这话太当真,在一个10"大小的高分辨率屏幕下,传统的软件表现实在不怎么样。看上去粗糙,操作也困难 - 除非你的手指和牙签一样的细。Metro模式下的软件太少,啥都找不到。比如输入法,我还得用系统自带的微软拼音,搜狗拼音?别逗了,Metro模式下的键盘丑陋的很,而且经常(或者说基本上)还看不到选择窗口。

6. 显卡性能一般。Intel HD 4000号称超级本的配置?说这话的人胆量倒是不小。我只记得Macbook Pro 15"去年的型号,HD 4000仅仅是闲暇时间使用的显卡,真正需要卖力的时候是nVIDIA GT650M。

SP的问题当然不止以上几处,但是以上几点基本摧毁了实际的体验。

虽然如此,我觉得Surface Pro很不错,在可以预见的将来,它的确有可能替换我的笔记本。

这听起来非常的疯狂,但是的确如此。因为上述这些问题虽然存在,但是它们可以被解决,或者说对我而言不需要解决。续航能力不足?既然笔记本也需要拖着一根电源线,那么这个问题并非不能忍受。不论如何,Surface Pro才称得上是笔记本,而目前使用的便携电脑正如它的名字那样是膝上型电脑(Laptop)

桌面使用不舒服属于设计问题,当然也需要桌面软件的一些配合,这个会发生的。类似的,手写笔和支架的问题更容易得到解决。

至于软件,虽说少了点。但是我需要使用的软件也不多,Browser、Office、Mail已经有足够好用的产品了。其次就是游戏,而游戏最容易适应平板的输入设备,只要做微小的改良即可。这并不难,将来出的游戏产品会考虑到这点。同时,随着Windows 8逐步流行,新生代的软件会考虑高分变率的问题,对原有软件的移植并不需要多高昂的成本 - 即使在一个完全不兼容的新平台上,移植软件也不见得需要多久的时间。

第1代的SP可能不是那么实用,除非那些很想尝鲜的人或有特别需求的人,我不建议选购这款设备。不过随着改进,2、3代以后它可能可以满足不少人的需求。前提是微软不放弃这款产品。好在微软不是IBM,似乎没有那种动不动抛弃产品线的习惯,反倒是颇有百折不挠的态度。

我期待未来的SP能有一款13"甚至是15"屏幕,显卡强大的配置,它最好足够使用6+小时,重量适中,有更多适配于高分辨率和触控输入的软件。