Apr 7, 2010
宏中”#”和”##”的用法
一、一般用法
我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.
用法:
#i nclude
#i nclude
using namespace std;
#define STR(s) #s
#define CONS(a,b) int(a##e##b)
int main()
{
printf(STR(vck)); // 输出字符串”vck”
printf(”%d\n”, CONS(2,3)); // 2e3 输出:2000
return 0;
}
二、当宏参数是另一个宏的时候
需要注意的是凡宏定义里有用’#’或’##’的地方宏参数是不会再展开.
1, 非’#’和’##’的情况
#define TOW (2)
#define MUL(a,b) (a*b)
printf(”%d*%d=%d\n”, [...]
Mar 30, 2010
媳妇说:“煮淡一点你就嫌没有味道,现在煮咸一点你却说咽不下。你究竟怎想怎么样?”
母亲一见儿子回来,二话不说便把饭菜往嘴里送。她怒瞪他一眼。
儿子试了一口,马上吐出来, 儿子说:“我不是说过了吗,妈有病不能吃太咸!”
“那好!妈是你的,以后由你来煮!”媳妇怒气冲冲地回房。
儿子无奈地轻叹一声,然后对母亲说:“妈,别吃了,我去煮个面给?”
“仔,你是不是有话想跟妈说,是就说好了,别憋在心里!”
“妈,公司下个月升我职,我会很忙,至于老婆,她说很想出来工作,所以……”
[...]
Mar 25, 2010
对于驱动开发来说,设备模型的理解是根本,毫不夸张得说,理解了设备模型,再去看那些五花八门的驱动程序,你会发现自己站在了另一个高度,从而有了一种俯视的感觉,就像凤姐俯视知音和故事会,韩峰同志俯视女下属。
顾名而思义就知道设备模型是关于设备的模型,既不是任小强们的房模,也不是张导的炮模。对咱们写驱动的和不写驱动的人来说,设备的概念就是总线和与其相连的各种设备了。电脑城的IT工作者都会知道设备是通过总线连到计算机上的,而且还需要对应的驱动才能用,可是总线是如何发现设备的,设备又是如何和驱动对应起来的,它们经过怎样的艰辛才找到命里注定的那个他,它们的关系如何,白头偕老型的还是朝三暮四型的,这些问题就不是他们关心的了,而是咱们需要关心的。在房市股市千锤百炼的咱们还能够惊喜的发现,这些疑问的中心思想中心词汇就是总线、设备和驱动,没错,它们就是咱们这里要聊的Linux设备模型的名角。
总线、设备、驱动,也就是bus、device、driver,既然是名角,在内核里都会有它们自己专属的结构,在include/linux/device.h里定义。
52 struct bus_type {
53 const char * name;
54 struct module * owner;
55
56 struct kset [...]
Mar 25, 2010
不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多。除了格式化输出之外,我实在没看到多少应用。主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替换它。尽管如此,既然大家对它比较感兴趣,我就简单总结一下它的使用和需要注意的常见问题。
原理
刚学C语言的时候,一般人都会首先接触printf函数。通过这个函数,你可以打印不定个数的变量到屏幕,如:
printf(”%d”, 3);
printf(”%d,%d”,3,4);
上述代码看似简单,实际上却需要我们解决许多问题。在我们设计printf的时候,我们是不知道到底会传入几个参数的。在这种未知的情况下,我们需要解决下面几个问题:
怎么告诉printf我们会传入几个参数
printf怎么去访问这些参数
函数调用完成后,系统怎么把参数从传递用的堆栈中释放
为了解决这些问题,我们首先要解释cdecl调用约定(参见论调用约定),所有使用不定参数的函数必须是使用cdecl(全局函数)或者this call(类成员函数)调用约定。该约定对于参数传递规定如下:
参数从右向左入栈(也就是如果你调用f(a,b,c),则c先入栈,然后是b,最后是a入栈)
调用者负责清理堆栈
其中第二点直接解决了前面三个问题中的第三个问题。我们来详细说说其他两个问题。
确定参数的个数
在一个函数中,一般有如下prolog代码:
00401020 push ebp
00401021 mov ebp,esp
00401023 sub esp,48h
执行上述代码之后,func(a,b,c)函数所处的堆栈上下文就变成如下布局:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/arong1234/archive/2008/05/18/2456455.aspx
其中,ebp指向保存旧的ebp的堆栈内存的下一个字的地址,ebp+8指向eip地址,ebp+12则指向函数调用的第一个参数,而ebp和esp之间是用于临时变量(也就是堆栈变量)的空间。
注意,由于上述prolog代码的存在,我们很容易通过ebp得到第一个参数的地址,对于不定参数列表之前的类型固定的参数,我们也可以根据类型信息得到其实际的位置(例如,第一个参数的位置偏移第一个参数的大小,就是第二个参数的地址)。
注意不定参数函数有个限制,就是不定参数的列表必须在整个函数的参数列表的最后。我们不可以定义如下的函数:
void func(int a, …, int c)
所有类型固定的参数都必须出现在参数列表的开始。这样根据前面的论述,我们就可以得到所有类型固定的参数。
在设计具有不定参数列表的函数的时候,我们有两种方法来确定到底多少参数会被传递进来。
方法1是在类型固定的参数中指明后面有多少个参数以及他们的类型。printf就是采用的这种方法,它的format参数指明后面每个参数的类型。
方法2是指定一个结束参数。这种情况一般是不定参数拥有同样的类型,我们可以指定一个特定的值来表示参数列表结束。下面这个sum函数就是一个例子:
int sumi(int c, …)
…{
va_list ap;
[...]
Mar 23, 2010
有时候使用rm命令的时候觉得有个删除提示比较保险;但真的加上了,
在使用的大多数时候又觉得比较麻烦。这其实可通过rm的-i选项来控制的.
以下是用rm –help命令查出来的
用法:rm [选项]… 文件…
删除 (unlink) 文件。
-f, –force 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提
示内容更少,但同样可以阻止大多数错误发生
–interactive[=WHEN] 根据指定的WHEN 进行确认提示:never,once (-I),
或者always (-i)。如果此参数不加WHEN 则总是提示
–one-file-system 递归删除一个层级时,跳过所有不符合命令行参
数的文件系统上的文件
[...]
Mar 22, 2010
前段时间,爆出一个linux用户提升普通用户权限到root权限的漏洞,很多小白开始试了,进ssh,然后./a,咋什么都没有呢?殊不知,哪有这么简单,还是需要代码的。。本文的末尾提供了代码(代码版权归原作者所有:p0c73n1(at)gmail(dot)com),也提供了编译后的执行程序。gcc版本是gcc (GCC) 4.1.1 20070105。还要注意,此漏洞需要在Linux kernel 2.6 < 2.6.19 (32bit)下才能测试通过,目前还没有好的补救办法。
国内极少数有主机商提供ssh登入权限,所以,机会不多,但是国外有很多都提供,例如DreamHost等等。。如果空间没有使用gcc的权限,可以找对应版本的gcc编译之后,ftp上去亦可。。编译命令是: gcc -o t t.c,然后执行/path/to/t 即可。。如:
[leekooqi@icnote ~]$ gcc -o t t.c
[leekooqi@icnote ~]$ ./t
sh-3.1# id
uid=0(root) gid=0(root) groups=512(leekooqi)
sh-3.1#
你会发现,你已经拥有root权限了,可以为所欲为了。。但是,记住,不要干坏事!!
原文件如下:
1./*
2.**
3.** 0×82-CVE-2009-2698
4.** Linux kernel 2.6 < 2.6.19 (32bit) ip_append_data() local ring0 root exploit
5.**
6.** Tested White Box 4(2.6.9-5.ELsmp),
7.** CentOS 4.4(2.6.9-42.ELsmp), CentOS 4.5(2.6.9-55.ELsmp),
8.** Fedora Core [...]
Mar 12, 2010
为了说明问题,我们看如下三个php文件:
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
require_once(’my_unonce.php’);
//require(’my_unonce.php’);
}
test();
test();
//file:my_once.php
printf(”%s\n”, ‘my_once’);
//file: my_unonce.php
printf(”%s\n”, ‘my_unonce’);
好,现在我们做一下测试:
php functions.php
输出结果如下:
my_once
my_unonce
这与我们期望的结果是不一致的,因为我们期望调用两次test函数,
即让test做两遍事情,但事实上只做了一次。
我们对functions.php改一下,require_once改成require(函数内部)
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
//require_once(’my_unonce.php’);
require(’my_unonce.php’);
}
test();
test();
再试一下,输出结果如下:
my_once
my_unonce
my_unonce
正是我们期望的结果。
时常听人说,即然有了require_once就不要再使require了,实不正
确的,各有各的用处点吧。
另外需要说明的是,实际效率也是不同的,require要比require_once快
好多。
多谢
张久安
If you enjoyed this post, make sure you subscribe to my RSS feed!
Mar 11, 2010
我早已想写一点文字,来记念几个青年的作家。这并非为了别的,只因为两年以来,悲愤总时时来袭击我的心,至今没有停止,我很想借此算是竦身一摇,将悲哀摆脱,给自己轻松一下,照直说,就是我倒要将他们忘却了。
两年前的此时,即一九三一年的二月七日夜或八日晨,是我们的五个青年作家〔2〕同时遇害的时候。当时上海的报章都不敢载这件事,或者也许是不愿,或不屑载这件事,只在《文艺新闻》上有一点隐约其辞的文章〔3〕。那第十一期(五月二十五日)里,有一篇林莽〔4〕先生作的《白莽印象记》,中间说:
“他做了好些诗,又译过匈牙利和诗人彼得斐〔5〕的几首诗,当时的《奔流》的编辑者鲁迅接到了他的投稿,便来信要和他会面,但他却是不愿见名人的人,结果是鲁迅自己跑来找他,竭力鼓励他作文学的工作,但他终于不能坐在亭子间里写,又去跑他的路了。不久,他又一次的被了捕。……”
这里所说的我们的事情其实是不确的。白莽并没有这么高慢,他曾经到过我的寓所来,但也不是因为我要求和他会面;我也没有这么高慢,对于一位素不相识的投稿者,会轻率的写信去叫他。我们相见的原因很平常,那时他所投的是从德文译出的《彼得斐传》,我就发信去讨原文,原文是载在诗集前面的,邮寄不便,他就亲自送来了。看去是一个二十多岁的青年,面貌很端正,颜色是黑黑的,当时的谈话我已经忘却,只记得他自说姓徐,象山人;我问他为什么代你收信的女士是这么一个怪名字(怎么怪法,现在也忘却了),他说她就喜欢起得这么怪,罗曼谛克,自己也有些和她不大对劲了。就只剩了这一点。
夜里,我将译文和原文粗粗的对了一遍,知道除几处误译之外,还有一个故意的曲译。他像是不喜欢“国民诗人”这个字的,都改成“民众诗人”了。第二天又接到他一封来信,说很悔和我相见,他的话多,我的话少,又冷,好像受了一种威压似的。我便写一封回信去解释,说初次相会,说话不多,也是人之常情,并且告诉他不应该由自己的爱憎,将原文改变。因为他的原书留在我这里了,就将我所藏的两本集子送给他,问他可能再译几首诗,以供读者的参看。他果然译了几首,自己拿来了,我们就谈得比第一回多一些。这传和诗,后来就都登在《奔流》第二卷第五本,即最末的一本里。
我们第三次相见,我记得是在一个热天。有人打门了,我去开门时,来的就是白莽,却穿着一件厚棉袍,汗流满面,彼此都不禁失笑。这时他才告诉我他是一个革命者,刚由被捕而释出,衣服和书籍全被没收了,连我送他的那两本;身上的袍子是从朋友那里借来的,没有夹衫,而必须穿长衣,所以只好这么出汗。我想,这大约就是林莽先生说的“又一次的被了捕”的那一次了。
我很欣幸他的得释,就赶紧付给稿费,使他可以买一件夹衫,但一面又很为我的那两本书痛惜:落在捕房的手里,真是明珠投暗了。那两本书,原是极平常的,一本散文,一本诗集,据德文译者说,这是他搜集起来的,虽在匈牙利本国,也还没有这么完全的本子,然而印在《莱克朗氏万有文库》(Reclam‘sUniversal-Bibliothek)〔6〕中,倘在德国,就随处可得,也值不到一元钱。不过在我是一种宝贝,因为这是三十年前,正当我热爱彼得斐的时候,特地托丸善书店〔7〕从德国去买来的,那时还恐怕因为书极便宜,店员不肯经手,开口时非常惴惴。后来大抵带在身边,只是情随事迁,已没有翻译的意思了,这回便决计送给这也如我的那时一样,热爱彼得斐的诗的青年,算是给它寻得了一个好着落。所以还郑重其事,托柔石亲自送去的。谁料竟会落在“三道头”〔8〕之类的手里的呢,这岂不冤枉!
二
我的决不邀投稿者相见,其实也并不完全因为谦虚,其中含着省事的分子也不少。由于历来的经验,我知道青年们,尤其是文学青年们,十之九是感觉很敏,自尊心也很旺盛的,一不小心,极容易得到误解,所以倒是故意回避的时候多。见面尚且怕,更不必说敢有托付了。但那时我在上海,也有一个惟一的不但敢于随便谈笑,而且还敢于托他办点私事的人,那就是送书去给白莽的柔石。
我和柔石最初的相见,不知道是何时,在那里。他仿佛说过,曾在北京听过我的讲义,那么,当在八九年之前了。我也忘记了在上海怎么来往起来,总之,他那时住在景云里,离我的寓所不过四五家门面,不知怎么一来,就来往起来了。大约最初的一回他就告诉我是姓赵,名平复。但他又曾谈起他家乡的豪绅的气焰之盛,说是有一个绅士,以为他的名字好,要给儿子用,叫他不要用这名字了。所以我疑心他的原名是“平福”,平稳而有福,才正中乡绅的意,对于“复”字却未必有这么热心。他的家乡,是台州的宁海,这只要一看他那台州式的硬气就知道,而且颇有点迂,有时会令我忽而想到方孝孺〔9〕,觉得好像也有些这模样的。
他躲在寓里弄文学,也创作,也翻译,我们往来了许多日,说得投合起来了,于是另外约定了几个同意的青年,设立朝华社。目的是在绍介东欧和北欧的文学,输入外国的版画,因为我们都以为应该来扶植一点刚健质朴的文艺。接着就印《朝花旬刊》,印《近代世界短篇小说集》,印《艺苑朝华》,算都在循着这条线,只有其中的一本《拾谷虹儿画选》,是为了扫荡上海滩上的“艺术家”,即戳穿叶灵凤这纸老虎而印的。
然而柔石自己没有钱,他借了二百多块钱来做印本。除买纸之外,大部分的稿子和杂务都是归他做,如跑印刷局,制图,校字之类。可是往往不如意,说起来皱着眉头。看他旧作品,都很有悲观的气息,但实际上并不然,他相信人们是好的。我有时谈到人会怎样的骗人,怎样的卖友,怎样的吮血,他就前额亮晶晶的,惊疑地圆睁了近视的眼睛,抗议道,“会这样的么?——不至于此罢?……”
不过朝花社不久就倒闭了,我也不想说清其中的原因,总之是柔石的理想的头,先碰了一个大钉子,力气固然白化,此外还得去借一百块钱来付纸账。后来他对于我那“人心惟危”〔10〕说的怀疑减少了,有时也叹息道,“真会这样的么?……”但是,他仍然相信人们是好的。
他于是一面将自己所应得的朝花社的残书送到明日书店和光华书局去,希望还能够收回几文钱,一面就拚命的译书,准备还借款,这就是卖给商务印书馆的《丹麦短篇小说集》和戈理基作的长篇小说《阿尔泰莫诺夫之事业》。但我想,这些译稿,也许去年已被兵火烧掉了。
他的迂渐渐的改变起来,终于也敢和女性的同乡或朋友一同去走路了,但那距离,却至少总有三四尺的。这方法很不好,有时我在路上遇见他,只要在相距三四尺前后或左右有一个年青漂亮的女人,我便会疑心就是他的朋友。但他和我一同走路的时候,可就走得近了,简直是扶住我,因为怕我被汽车或电车撞死;我这面也为他近视而又要照顾别人担心,大家都苍皇失措的愁一路,所以倘不是万不得已,我是不大和他一同出去的,我实在看得他吃力,因而自己也吃力。
无论从旧道德,从新道德,只要是损己利人的,他就挑选上,自己背起来。
他终于决定地改变了,有一回,曾经明白的告诉我,此后应该转换作品的内容和形式。我说:这怕难罢,譬如使惯了刀的,这回要他耍棍,怎么能行呢?他简洁的答道:只要学起来!
他说的并不是空话,真也在从新学起来了,其时他曾经带了一个朋友来访我,那就是冯铿女士。谈了一些天,我对于她终于很隔膜,我疑心她有点罗曼谛克,急于事功;我又疑心柔石的近来要做大部的小说,是发源于她的主张的。但我又疑心我自己,也许是柔石的先前的斩钉截铁的回答,正中了我那其实是偷懒的主张的伤疤,所以不自觉地迁怒到她身上去了。——我其实也并不比我所怕见的神经过敏而自尊的文学青年高明。
她的体质是弱的,也并不美丽。
三
直到左翼作家联盟成立之后,我才知道我所认识的白莽,就是在《拓荒者》上做诗的殷夫。有一次大会时,我便带了一本德译的,一个美国的新闻记者所做的中国游记去送他,这不过以为他可以由此练习德文,另外并无深意。然而他没有来。我只得又托了柔石。
但不久,他们竟一同被捕,我的那一本书,又被没收,落在“三道头”之类的手里了。
四
明日书店要出一种期刊,请柔石去做编辑,他答应了;书店还想印我的译著,托他来问版税的办法,我便将我和北新书局所订的合同,抄了一份交给他,他向衣袋里一塞,匆匆的走了。其时是一九三一年一月十六日的夜间,而不料这一去,竟就是我和他相见的末一回,竟就是我们的永诀。第二天,他就在一个会场上被捕了,衣袋里还藏着我那印书的合同,听说官厅因此正在找寻我。印书的合同,是明明白白的,但我不愿意到那些不明不白的地方去辩解。记得《说岳全传》里讲过一个高僧,当追捕的差役刚到寺门之前,他就“坐化”了,还留下什么“何立从东来,我向西方走”的偈子〔11〕。这是奴隶所幻想的脱离苦海的惟一的好方法,“剑侠”盼不到,最自在的惟此而已。我不是高僧,没有涅槃的自由,却还有生之留恋,我于是就逃走。
这一夜,我烧掉了朋友们的旧信札,就和女人抱着孩子走在一个客栈里。不几天,即听得外面纷纷传我被捕,或是被杀了,柔石的消息却很少。有的说,他曾经被巡捕带到明日书店里,问是否是编辑;有的说,他曾经被巡捕带往北新书局去,问是否是柔石,手上上了铐,可见案情是重的。但怎样的案情,却谁也不明白。
他在囚系中,我见过两次他写给同乡〔14〕的信,第一回是这样的——
“我与三十五位同犯(七个女的)于昨日到龙华。并于昨夜上了镣,开政治犯从未上镣之纪录。此案累及太大,我一时恐难出狱,书店事望兄为我代办之。现亦好,且跟殷夫兄学德文,此事可告周先生;望周先生勿念,我等未受刑。捕房和公安局,几次问周先生地址,但我那里知道。诸望勿念。祝好!
赵少雄一月二十四日。“
以上正面。
“洋铁饭碗,要二三只如不能见面,可将东西望转交赵少雄”
以上背面。
他的心情并未改变,想学德文,更加努力;也仍在记念我,像在马路上行走时候一般。但他信里有些话是错误的,政治犯而上镣,并非从他们开始,但他向来看得官场还太高,以为文明至今,到他们才开始了严酷。其实是不然的。果然,第二封信就很不同,措词非常惨苦,且说冯女士的面目都浮肿了,可惜我没有抄下这封信。其时传说也更加纷繁,说他可以赎出的也有,说他已经解往南京的也有,毫无确信;而用函电来探问我的消息的也多起来,连母亲在北京也急得生病了,我只得一一发信去更正,这样的大约有二十天。
天气愈冷了,我不知道柔石在那里有被褥不?我们是有的。洋铁碗可曾收到了没有?……但忽然得到一个可靠的消息,说柔石和其他二十三人,已于二月七日夜或八日晨,在龙华警备司令部被枪毙了,他的身上中了十弹。
原来如此!……
在一个深夜里,我站在客栈的院子中,周围是堆着的破烂的什物;人们都睡觉了,连我的女人和孩子。我沉重的感到我失掉了很好的朋友,中国失掉了很好的青年,我在悲愤中沉静下去了,然而积习却从沉静中抬起头来,凑成了这样的几句:
惯于长夜过春时,挈妇将雏鬓有丝。
梦里依稀慈母泪,城头变幻大王旗。
忍看朋辈成新鬼,怒向刀丛觅小诗。
吟罢低眉无写处,月光如水照缁衣。
但末二句,后来不确了,我终于将这写给了一个日本的歌人〔15〕。
可是在中国,那时是确无写处的,禁锢得比罐头还严密。我记得柔石在年底曾回故乡,住了好些时,到上海后很受朋友的责备。他悲愤的对我说,他的母亲双眼已经失明了,要他多住几天,他怎么能够就走呢?我知道这失明的母亲的眷眷的心,柔石的拳拳的心。当《北斗》创刊时,我就想写一点关于柔石的文章,然而不能够,只得选了一幅珂勒惠支(KaHtheKollwitz)夫人的木刻,名曰《牺牲》,是一个母潜*哀地献出她的儿子去的,算是只有我一个人心里知道的柔石的记念。
同时被难的四个青年文学家之中,李伟森我没有会见过,胡也频在上海也只见过一次面,谈了几句天。较熟的要算白莽,即殷夫了,他曾经和我通过信,投过稿,但现在寻起来,一无所得,想必是十七那夜统统烧掉了,那时我还没有知道被捕的也有白莽。然而那本《彼得斐诗集》却在的,翻了一遍,也没有什么,只在一首《Wahlspruch》(格言)的旁边,有钢笔写的四行译文道:“
生命诚宝贵,
爱情价更高;
若为自由故,
二者皆可抛!“
又在第二叶上,写着“徐培根”〔16〕三个字,我疑心这是他的真姓名。
五
前年的今日,我避在客栈里,他们却是走向刑场了;去年的今日,我在炮声中逃在英租界,他们则早已埋在不知那里的地下了;今年的今日,我才坐在旧寓里,人们都睡觉了,连我的女人和孩子。我又沉重的感到我失掉了很好的朋友,中国失掉了很好的青年,我在悲愤中沉静下去了,不料积习又从沉静中抬起头来,写下了以上那些字。
要写下去,在中国的现在,还是没有写处的。年青时读向子期《思旧赋》〔17〕,很怪他为什么只有寥寥的几行,刚开头却又煞了尾。然而,现在我懂得了。
不是年青的为年老的写记念,而在这三十年中,却使我目睹许多青年的血,层层淤积起来,将我埋得不能呼吸,我只能用这样的笔墨,写几句文章,算是从泥土中挖一个小孔,自己延口残喘,这是怎样的世界呢。夜正长,路也正长,我不如忘却,不说的好罢。但我知道,即使不是我,将来总会有记起他们,再说他们的时候的。……
二月七——八日。
注:
〔1〕本篇最初发表于一九三三年四月一日《现代》第二卷第六期。
〔2〕五个青年作家参看本卷第283页注〔2〕。〔3〕“左联”五位作家被捕遇害的消息,《文艺新闻》第三号(一九三—年三月三十日)以《在地狱或人世的作家?》为题,用读者致编者信的形式,首先透露出来。
〔4〕林莽即楼适夷,浙江余姚人,作家、翻译家。当时“左联”成员。
〔5〕彼得斐(PetfiSándor,1823—1849)通译裴多菲,匈牙利爱国诗人。主要诗作有《勇敢的约翰》、《民族之歌》等。〔6〕《莱克朗氏万有文库》一八六七年德国出版的文学丛书。
〔7〕丸善书店日本东京一家出售西文书籍的书店。
〔8〕“三道头”当时上海公共租界里的巡官,制服袖上缀有三道倒人字形标志,被称作“三道头”。
〔9〕方孝孺(1357—1402)浙江宁海人,明建文帝朱允吧时的侍讲学士、文学博士。建文四年(1402)建文帝的叔父燕王朱棣起兵攻陷南京,自立为帝(即永乐帝),命他起草即位诏书;他坚决不从,遂遭杀害,被灭十族。
〔10〕“人心惟危”语见《尚书·大禹谟》。
〔11〕《说岳全传》清代康熙年间的演义小说,题为钱彩编次,金丰增订,共八十回。该书第六十一回写镇江金山寺道悦和尚,因同情岳飞,秦桧就派“家人”何立去抓他。他正在寺内“升座说法”,一见何立,便口占一偈死去。“坐化”,佛家语,佛家传说有些高僧在临终前盘膝端坐,安然而逝,称作“坐化”。偈子,佛经中的唱词,也泛指和尚的隽语。
〔12〕我不是高僧,没有涅槃的自由,却还有生之留恋,我于是就逃走。引伸作死的意思。
〔13〕柔石被捕后,作者于一九三一年一月二十日和家属避居黄陆路花园庄,二月二十八日回寓。
〔14〕指王育和,浙江宁海人,当时是慎昌钟表行的职员,和柔石同住闸北景云里二十八号,柔石在狱中通过送饭人带信给他,由他送周建人转给作者。
〔15〕日本歌人指山本初枝(1898—1966)。据《鲁迅日记》,一九三二年七月十一日,作者将此诗书成小幅,托内山书店寄给她。〔16〕“徐培根”白莽的哥哥,曾任国民党政府的航空署长。〔17〕向子期(约227—272)向秀,字子期,河内(今河南武陟)人,魏晋时期文学家。他和嵇康、吕安友善。《思旧赋》是他在嵇、吕被司马昭杀害后所作的哀悼文章,共一百五十六字(见《文选》卷十六)。
If you enjoyed this post, make sure you subscribe to my RSS feed!
Mar 11, 2010
雨水淋过的泥土味道总是很浓厚的。在这样的氛围下,放一部老电影是最适合不过的了。2010年3月10日,有些事终于可以有个了结了,虽然结局对团队是不公平的,但,这也算是一种解放吧。
2007年5月15日百度电子商务项目正式启动,不到10个人的团队,大家踌躇满志的集结在一起,为了一个远大的目标和愿景,愿意为提高中国网民生活水平而努力做一些事情。那时的电子商务,正处于一个混沌时代,没有人关注用户,也没有人关注商户,电子商务市场的用户数增长远远落后于产业规模的增长。
2007年9月,电子商务事业部正式成立,自最开始7个人的产品团队开始,在最初三个月里就完成了早期20人的产品+技术的核心开发团队组建,而就是这样一支团队,完成了几乎是百度有史以来规模最大、最复杂的产品设计和总体设计,什么概念呢?就是技术委员会评价有啊和百付宝系统后,认为其复杂程度相当于10倍的贴吧和知道。
百度电子商务平台,看上去植根于百度大公司,但可以说是白手起家:凭着当时的核心团队,完成了后续80多人的大团队,再到后来,就有上百人的规模。而这其中,公司转入不到20%,自主招聘超过80%。20个RD、10个PM、10个QA、7个前端、4个UE,一半的应届生和实习生,80%的人加入百度不足1年,6个月时间,编码带测试,6×12的强制工作强度,这些人做到了别人认为“不可能完成的任务”。
从2008年中旬开始,我们开始了全国的巡讲。就像普罗米修斯一样,我们将电子商务希望的火种带到全国各个地方。凡所到之处,场面之火爆、反响之热烈实属始料未及。几乎所有的商户,把我们当成了电子商务的救星,但很遗憾,我们才刚刚起步。
2008年中秋节,我们依旧在加班,产品即将上线,我们说:“keep walking”:一个小小的酿酒师Johnnie Walker用150年的执着专注,证明轩尼诗和芝华士和许许多多曾经风靡品牌的一统天下,不代表制酒业就容不下一个新的巨头,150年里的起起落落,坚持到底、不断进步才是胜利。第一瓶酒不论酿的是好还是坏,至少这是迈出了第一步。
同年9月25日,我们发布了商品和商店系统公测,当晚,数万商户几乎是同时涌进有啊测试平台。那天晚上,中国神舟七号发射成功,中国第一次载人航空飞行升天。
10月底,经过36小时的上线后,凭借心中的那一线光亮,持续了6个月的高强度研发,我们正式发布了有啊商城、检索系统和百付宝交易平台,零事故上线。我们在有啊的一个商户上订的蛋糕,被商户忠实的记录了下来。一年半不知疲倦的奋斗和努力,在那一晚上的泪水和笑声中,你就知道,什么都值了。
上线后的第二天,记忆非常恍惚,高烧中。
一个月后的11月,商品突破1000万件。有啊从0增长到10万商户、1000万商品,百度有啊只用了不到20天,发展速度是业内平均水平的500多倍。
2009年1月年会,电子商务事业部荣获百度2008年度最高容易:总裁特别奖。
市场是以结果为导向的,这是残酷的体现。业绩不行,必须有人负责,却无人为我们说话。事实的真相永远是被掌握话语权和媒体的人们/所谓的专家所掩盖,团队和个人的尊严不见去除。越是到困难的时候、越需要有人帮你挺一把的时候,越能让人清楚的看到谁是朋友、谁心怀不轨。当我们面临每月仅数千元市场推广费的无米之催时,当我们发现互联网上淘宝以外的商品网页资源越来越少的时候,当我们发现公司又想马儿跑、又不给马儿吃草后,一切都变了。但负责人的说,这样一支团队,这样群有梦想的人,却是比我看到过、听到过的那些为了市场业绩不择手段的所谓职业人要更加伟大、更加骄傲。如果当一个公司和内部的机制不能为这样的团队的成功而铺平道路,或者说这样一个团队不能发挥其应有的价值和作用,那么一定不是这个团队的问题。
历数一下我们对电子商务市场的贡献和创新吧,趁还能看到:
首创了实物交易与虚拟交易分离的信用机制(已被所有的C2C交易平台所采用);
大胆取消了折磨商户很久的“满意率”指标,首创了满意度打分的信用评价机制,并结合商户的认证资质证明等组成综合的信用认证体系;
首创了电子商务标准库交易模式,先后上线了手机产品库、化妆品产品库,改变了传统的C2C购物流程,攻克了若干技术难度(现已被竞争对手学习);
首创了智能订单聚合模式,能根据用户行为智能合并订单,并首次在C2C交易平台上以购物车+订单的模式提供给消费者(现已被竞争对手学习);
首创了电子商务会员订阅中心的商户营销平台(现已被竞争对手学习);
首创了搜索的按卖家聚合和新的搜索和筛选展现(现已被竞争对手学习)。
……
俞敏洪曾说:如果将人生一分为二, 前半段人生哲学是「不犹豫」,后半段人生哲学是「不后悔」。我想,在未来某个时候或者某个场合,哪怕这些忘却的记忆被人们提起,哪怕做过的事情对其他的人有那么一点帮助,拿这段记忆一定会在我们大家心中占有一个不会磨灭的记忆。最后,以明远对团队曾经的一段话作为结尾吧:
“走过的路是为经历,其实过去的成败与否,对自己的价值其实是一样的,这个价值在于你是否真正的注意到了你之前所走过的路、每一次坎坷和上下坡时谁是值得信赖的旅伴,哪里该快步通过,哪里该停留沉思。人走路,不是驴拉磨,低头拉磨固然也是keep walking,但驴创造的价值永远只是磨磨豆腐,吃豆腐的人不会感激驴,而唯有让走过的路有价值,用心、用腿、知行合一、全身配合着走,才少摔跟头、少走错路,走过的路和最后的所到之处才算得上有价值、值得走。从这个角度,自信、专注、科学、坚持必须兼顾而不是独专,稳稳的走下去。”
面北而望,泪已沾襟,不知所言。
《别董大》
(唐)高适
千里黄云白日曛,
北风吹雁雪纷纷。
莫愁前路无知己,
天下谁人不识君?
If you enjoyed this post, make sure you subscribe to my RSS feed!
Mar 11, 2010
在面试过程中,我时常会问一道简单的题目:
请找出如下程序不妥之处:
void s_c(const char *s, const char *p)
{
while (*s) {
*p = *s;
}
}
首先,这道简单的题目考察的是找错能力,比如结束符和const的应用。
其次,考察的是接口设计能力,这也是重点。
没有返回值,因此对于一些异常现象不好对外表现,const是否应用正确,
函数名使用是否见其名知其意,函数参数是否见其名知其意,有没有对接
口的简述,指针,引用,就量传递使用是否正确等等。
比如改成如下:
/**
* brief: 拷贝字符串,从源串到目的串
* param[in]: src 源串地址
* param[out]: dest 目的串地址
* return: 成功 0
* 失败 错误码
[...]