你以为我穷。不漂亮,就没有感情吗?
你以为我穷。不漂亮,就没有感情吗?如果上帝赐给我美貌和财富,我也会让你难于离开我的!就象我现在难于离开你一样! ——《简爱》
你以为我穷。不漂亮,就没有感情吗?如果上帝赐给我美貌和财富,我也会让你难于离开我的!就象我现在难于离开你一样! ——《简爱》
这篇文章是我在部门会议上一次发言的总结。之所以会有这次会议,是因为我的一名员工向我提出了辞职,在思索了几天后,我整理了一下自己的思路,于是便有了这次的会议和现在的这篇文章。
收入是由什么决定的?
这位员工辞职的原因主要有两个:
公司的薪水无法达到他的预期,未来一年在公司的收入前景也不是很明确。
想要去做更底层的开发,方向是使用C/C++开发3D图形图像。而我们公司主要是.NET开发。
既然其中的一个原因是薪水无法符合预期,那么首先要搞清楚的就是收入是由什么决定的。
1.积累
首先要说的一点就是:积累。积累就是你在这家公司所创造的价值的积累。
你今天所领的薪水,并不是由你现在所创造的价值所决定的,而是包含了以前一段时期内其他同事所创造的价值。举个例子来说,公司目前排名前三的大客户:客户A、客户B、客户C。
客户A是2008年接下来的,现在每年为公司贡献600万。
客户B是2009年接下来的,现在每年为公司贡献500万。
客户C是2010年接下来的,现在每年为公司共享350万。
我的年薪是你的两倍还多。可我也承认,我现在所能创造的价值,和我的能力绝对不可能是你的两倍。可问题是:2008年、2009年、2010年这些年份我都在公司,上面的每一个大客户,都有我的贡献。而你2012年才新进公司,你并没有之前的积累。所以,新员工入职后,工资相较老员工会低一些是正常的。很多新员工总是认为自己的收入低了,吃亏了,实际上,很多情况下,新员工在加入公司的头一年,公司仅能维持平衡,即新员工创造的价值全当工资发给他了。直到第二年,有了上一年的积累之后,公司才有所盈余。而加入半年就离职的员工,对公司来说基本上是亏本的。这也就解释了为什么人员流动特别快的公司活不长,因为人力成本太高。
关于积累,我可以再举几个例子说明一下:
洪小莲,李嘉诚的秘书,几十年来一直追随李嘉诚,她从几千元的工薪族,做到身家上亿的工薪族,享受的是公司成长的回报。这种回报并非是她个人的学识和能力有了大幅的提高而得到的等价交换,很大程度上仅仅是因为她忠诚地待在这趟车上。
杨元庆,联想现在的CEO,研究生毕业后就一直追随柳传志,尽管一开始从事的是他并不很乐意的销售工作,但最终还是坚持了下来。上一次注意到他,是看到一则新闻,标题是“杨元庆自掏2000万奖励一线员工”。
上面只是正面的例子,也有反面的例子:
吴士宏,曾写了一本书叫做《逆风飞扬》,可谓是红极一时。1986年进入IBM,1998年离开IBM,进入微软,担任微软中国公司总经理,1999年进入TCL,2002年离开TCL。之后就离开了公众的视线。我特意去百度搜索“吴士宏现在在哪里”,没有任何的消息。我想如果她很成功的话,一定还属于“公众人物”,不至于连度娘都不知去向。
跳槽的话显然就要放弃先前的积累。比方说,当你跳槽到另一家公司以后,你曾经做过的系统、曾经服务过的客户仍然在为先前的公司创造着利润,可是跟你已经一毛钱关系都没有了(极少数公司有股票,另当别论)。所以跳槽之前要慎重考虑,跳得不好,有可能越跳越低。
既然新员工相对于老员工来说,收入低一些是正常的,那么老员工工资高也是合情合理的。但是有一些公司,我将其归为“无良公司”,它们会在老员工的收入高到一定程度的时候,将老员工砍掉,然后再招募低廉的新人来承担之前老员工的工作,以赚取更高的利润。我觉得这些都是小聪明,最后的结果就是,聪明能干一些的人,在看出公司的这些伎俩之后果断离职;能力一般的员工,也会把你这里当成培训基地,翅膀硬了就飞了,受损的最后还是公司,实在是得不偿失。还不如厚待老员工,也让新进的员工对未来有一个更好的预期。也有一些人向我抱怨说:“老员工待得久了,干劲都被磨光了,每天都是混日子,还不如新员工,不开他开谁?”。然后我反问他:“激励员工难道不正是你工作的一部分吗?”。这种情况的出现,更多时候,是管理者的责任,而非员工。
2.老板
这个“老板”是宽泛的老板,不一定是公司最大的老板。有的时候,公司比较大,你的职位又比较低,大老板连有没有你这个人都不知道,此时的老板就是你的顶头上司。很多时候,你的收入与他也有着莫大的关系。
对于我来说,我的原则是:在我的能力范围内,我会为我的员工争取更好的待遇。表面上看,这样做很蠢,花6000块就能雇到一个人,为什么要花8000块?我不是这样认为的,我期望能和我的员工形成这样一种互动:我尽我的能力为你争取好的待遇,你也尽你的努力做好工作。
我不能要求员工“你先把工作做好,我自然会给你好的待遇”。总是要有人先迈出一步,总是要有一方先信任另一方,所以在你什么还没有做的时候,我就先信任你,并且给你尽可能好的待遇,那么我该做的事情都做了,我问心无愧,剩下的,就看你的表现了。
可能有人会想,都这样了怎么还会有人提出辞职?实际上,提出辞职的是一个毕业刚一年的小伙子,1989年生,毕业1年多,我给他的待遇是试用期 9000,转正后9500。在给他这个待遇之前,我是进行过一些调研的,我打电话给我的一个表妹,她是西安电子科技大学的研究生(陕西省排名第三的学校,211院校),她和她的同学在今年毕业找工作的时候,多得是6000到8000的工资。所以从这方面来说,我并没有亏待你,而你要求12K的工资,我并不是不愿意给这么多,你的表现也说明了你是个很有潜力的人才。只是受经济环境的影响,今年公司的效益不及往年,要在一定程度上节省开支。其次,你让其他的老员工情何以堪?所以,综合起来,你的要求超出了我的能力范围之外,我无法开口向公司申请提高你的薪水。
3.门槛
除了积累和顶头上司两个决定因素以外,第三个决定因素就是你从事工作的门槛。为什么餐厅服务员的收入很低?为什么坐在前台收发快递的文员收入很低?因为这些工作的门槛很低,门槛低就意味着你不做有的是人能做,你不做有大批的“后备队伍”在等着做。由于庞大的后备队伍的竞争,你就无法提高自己的要价。而提升自己所从事工作的门槛,实际上就缩减了竞争者的规模。
程序开发也是一样。如果你想收入高,你就做一些别人做不了,又有市场的。
.NET在程序开发中就属于门槛比较低的一类。个中原因我想大家都懂的,就不在这里赘述了。做.NET不需要你科班出身,或许一点兴趣再加上一点时间,或许一个类似北大青鸟的培训,都可以让你开始从事.NET开发了。你可以不懂指针、不懂数据结构、不懂算法、不懂汇编、不懂很多东西,但照样可以做出一个.NET程序来。而这些人往往又是对薪资的要求没那么高的,这样无形中就拉低了.NET程序员的“身价”。.NET的易学易会,很大程度上是由于它的封装性比较好。底层的东西都屏蔽掉了,你只要知道学习一下命名空间,然后寻找相关的API去调用就好了。记得我曾经开发过一个基于C语言的手持设备程序,没有任何的类库支持,连排序、链表这样.NET中的基本功能,都要自己来实现,更别提内存管理和程序逻辑了,和.NET比起来,门槛就相对高一些了。
所以,如果想收入高一些,那么就去做更高难度的技术工作,这里随便想了几个例子:
百度、谷歌的搜索引擎算法。
微软、谷歌、苹果的操作系统。
网络游戏,例如《征途》的游戏引擎。
大型企业的ERP,比方说SAP。
软硬结合,比如单片机,电气自动化。
以及我这位即将离职的同事说的,3D图形图像。
所以,从这个角度来看,这位同事的辞职是明智的,他很年轻,有的是机会重新选择自己的道路,所以我也祝愿他能有更好的发展。而这些好赚的钱,就留给我们来做了:-)。
4.平台
接下来要说的一个决定因素是平台。很多程序员觉得30岁就瓶颈了,30岁写程序就到头了,实际上,这只是你的平台比较小罢了。就拿我自己的公司来说,平台就不大,只要是踏踏实实工作过5年的程序员,基本上就能够胜任公司90%的技术工作了,剩下的10%,请教一下其他同事,进行一下技术交流,也完全能够解决。这样就存在一个问题:随着你年龄的增长,你的生活压力越来越大,要求越来越高,可是公司只要5年经验的程序员就够用了。假设市场上5年经验的程序员的平均要求是10K,凭什么要给你15K?你的优势在哪里?如果你没有突破,就会有“30岁写程序就到头了”的感觉。
而如果平台大一些情况就会不一样,比方说,你去了IBM,可能5年的经验不过刚刚入门而已。IBM有一个工程院,其中有5位院士(IBM Fellow)获得过诺贝尔奖,很多人钻研技术都超过20年或者更久。如果你对技术感兴趣,并执着去钻研的话,你可以不断地去挑战和攀登。
当然,你可能没那么好的运气和实力进入IBM,那么其他一些中型的平台也是不错的,比方说阿里巴巴、金蝶、百度、腾讯等等。在这里,至少你有足够的理由和需要再去进行深入学习。因为在这些地方,5年的经验是远远不够的,还需要进一步地学习和努力。
如果你和我一样,不巧没有那么大的平台,此时的选择大概有这么几种:
1. 你可以凭借你在公司的积累(第一节讲过的),过比较安逸的日子。如果比较幸运,押对了宝,公司发展得比较好,收入一样会变得非常可观;如果比较不幸,公司经营的状况不好,那就要承担比较大的风险了。说得难听一点,公司倒闭了你去哪里?你过去的积累已经一文不值,而你的年龄已经35,水平却相当于只有5年经验。你的竞争力在哪里?
2. 你可以凭自己的努力将现在所在的平台做大,换言之,把自己的小公司做大。这当然是比较积极的做法,也是我一直努力的方向。现在你看到的大公司,不也是从小公司一步一步做起的吗?不过这里还有两个问题:1、有的时候,你的力量在公司中的占比没那么大,你再怎么努力推进的速度也还是有限;2、你缺乏慧眼,选中的公司本身就缺乏长大的资质。我们往往只看到成功了的公司,却忽视了更多在竞争中倒下的公司。
3. 主动选择更大的平台,也就是跳槽了。但是跳槽也是有风险的,尤其是过了30岁的程序员。你在这家公司的收入高,是因为有之前的积累,换一家就没有积累了,等于从新人开始,而大多数的公司,5年经验的程序员就够用了。如果跳得不好,收入还可能越跳越低,如果还有老婆、孩子、房贷,那将面临更大的压力。所以当你想要从一个低的平台向更高的平台跳跃的时候,平时就要做足功夫,认真积累自己的实力。对于我来说,我缺乏大型项目的管理经验,但是没关系,我努力学习考一个PMP没什么问题吧?我缺乏大型软件的架构经验,但是没关系,我把.NET的基础知识和各种设计模式掰开了揉碎了没什么问题吧?我缺乏大型团队的管理经验,但是没关系,每次遇到管理方面的问题我都认真思考仔细总结没什么问题吧?有些人总是抱怨没有机会,运气不好,我想机会总是有的,但只属于有准备的人。
5.行业
我想说的最后一点就是行业。有时候你觉得已经万事俱备了,可是你所处的这个行业本身就属于极低利润率的,你再怎么努力也很难有很高的收入。很多情况下,可能公司也想提高你的待遇,但是由于缺乏利润的支撑,公司也是有心无力。所以,在选择公司,尤其是小公司的时候,要重点考察一下公司所处的行业如何?是不是前景比较好、利润比较高的行业?如果是大公司的话,这方面的问题就会少一些,因为如果方向有问题,它就无法做成大公司。
行业是有周期性的,可能在一段时期内这个行业好,下一段时期这个行业就不行了。最典型的一个例子就是软盘,我现在的老板在成立这家公司之前是做销售的,他有一个客户,做索尼软盘的,这种软盘我想很多80后都见过。当时生意做得很大,可是当光盘出来以后,软盘的市场是会急剧萎缩的,可是这家公司的领导层居然没有看到,或者是看到了但不愿意转变,像鸵鸟一样在危机来临时把头埋在土里,继续做它的软盘。几年以后,这家公司就倒掉了。
选择行业也不是选择暴利行业就一定好,比方说房地产。资本都是逐利的,当一个行业属于暴利,同时所有人都知道它是暴利的时候,危机就来了。这个危机就是会有大量的社会资源、人力物力投入到这个行业中企图分一杯羹。而全局上又没有一个统一的把控,这个行业究竟需要多少公司才是合适的?最后的结果就是过剩。就好像股票在崩盘时,也许跌到3000点是比较合理也比较正常的位置,但是由于人们的恐慌,它就跌到1600点了。
感谢阅读,希望这篇文章能给你带来收获。
不是所有一年工作经验的毕业生都有这样的待遇,我主要是看能力,而不是年龄、学历等。特别说明一下,以免误导。
文章来源:张子阳的博客
sphinx error connection to 127.0.0.1:9312 failed (errno=0, msg=)
sphinx安装好之后,无论如何不能使用php api访问,查找了两天,重装了几次VPS,今天上午,终于找到答案了。在这儿连接里 http://stackoverflow.com/questions/13929949/sphinx-error-connection-to-127-0-0-19845-failed-errno-0-msg ,第一次看时没有注意,今天一句一句的看完了,才发现错误原因。看来学好英语是多么的重要,如果第一次看明白不会浪费这么多的时间了。浪费了一天的时间再研究它。以为没有答案了。
原因很简单,是因为lnmpa服务器下,禁用了一些函数,包括sphinx api必需的一个函数 fsockopen。 修改php.ini
/usr/local/php/etc/php.ini
找到disable_functions 把fsockopen从里面删除就行了。另外再说明下,lnmpa的php配置文件默认也关闭了scandir,这会导致wordpress主题文件显示为空。把它也删了就行了。
20180307 更新:
把失效的图床整理一遍上传到新浪
作为一个mercurial的忠实用户,在日常使用时觉得每次同步代码的时候输入ssh密码甚为繁琐,查看了下官方的文档发现Tortoise HG的运行机制,发现它用的是putty程序中的plink来实现数据链接同时还支持pageant key agent,也就是意味着可以让Tortoise HG用私钥来访问SSH服务器了.下面是操作步骤:
1. 用putty工具生成私钥文件
去putty官网下载puttygen.exe
下载后运行, 界面效果如下:
点击Generate按钮后在下图红框中的区域来回晃动鼠标指针,直到进度条走满为止
进度条走满后,请选择 Save private key 来将私钥保存为一个ppk文件
然后请将上图中 “Public key for pasting into OpenSSH authorized_keys file” 文本框中的 ssh-rsa 开头的字符串整个复制出来,下雨步骤将会用到这个字符串
2. 在SSH服务器上注册你的私钥
用putty或者其他ssh客户端登陆你的ssh服务器,运行命令
vi ~/.ssh/authorized_keys
按i(vi编辑器的插入命令)之后把粘贴的字符串复制进去,按esc键再输入:wq保存该文件(如果提示没有.ssh文件夹或者authorized_keys你可以手动创建).另外请注意注意,每个私钥的字符串只能使用一行
3. 用putty验证你的私钥工作正常
打开putty,新建一个ssh链接,选择data,在这里填写你登陆ssh服务器的用户名


然后在切换到Auth,在右侧选择你先前保存的ppk文件

设定好之后,点击open按钮,putty就会自动登陆到ssh服务器而不会在让你输入密码了,登陆信息显示如下

4. 让你的Tortoise HG也用上私钥
全局法:
如果你想你电脑上所有的HG版本库在同步的时候都用上同一个私钥文件的话,请按照下面的方法操作
在你操作系统的个人目录(Windows 7的话路径是C:\Users\用户名)中,应该有一个mercurial.ini(如果没有请创建之), 用文本编辑器打开这个文件, 在[ui]部分增加下面的配置信息
ssh = tortoiseplink.exe -ssh -i “D:\my.ppk”
请注意: 你需要将 D:\my.ppk 替换为你自己电脑上保存先前生成ppk文件的完整路径,配置文件内容参考如下
1 | [ui] |
版本库法:
如果你只是想让个别几个版本库使用私钥同步
请用文本编辑器打开你版本库目录/.hg/hgrc这个文件
剩下的操作请参看全局法即可
保存完毕之后,可以试试使用hg pull 或者 push 功能来同步数据, 如果在输出窗口看到下面信息的输出,恭喜你,设定成功了.

最近公司需要替换很多页面中的关键词,对于一个网站很好办,但对于很多网站,并且有些是动态的,有些是静态的,就比较麻烦了。以前想到可以用apache的hhtpd.conf替换,不过我的服务器用的lnmpa,那个方法不太好实现,现在用的办法是使用nginx第三方组件完成,运行比较完美!
首先需要了解下substitutions4nginx,这是一个nginx模块,可以实现内容的批量替换功能,支持正则表达式。
http://code.google.com/p/substitutions4nginx/
下面是我在centos上安装它。
1 | svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only |
如果提示没有安装svn, centos下请使用 yum -y install subversion debian下请使用 apt-get install subversion 安装。
下面是查看你的nginx版本和编绎参数。
/usr/local/nginx/sbin/nginx -V
根据你的nginx版本,重新编绎它。比如我安装的是lnmpa0.9
1 | cd /root/lnmp0.9/nginx-1.2.5/ |
重启你的nginx
/etc/init.d/nginx
然后会对不同的网站修改你的nginx网站配置文件
vi /usr/local/nginx/conf/vhost/www.clinkergrindingmill.com.conf
在location / 加上,默认只对html起作用,如果想对php文件也起作用,请在location @apache location ~ .*\.(php|php5)?$下面也加上这代码。
subs_filter ' ' 'SBM' gi;
这是一个示例:
另外如果你只想匹配单词请使用,' \b' \b代表单词的边界,这样就只匹配一个完整的单词。
如果想启用正则匹配:
1 | subs_filter '( | )' 'SBM' gir; |
如果你想把所在VPS下的网站都启用相同的替换功能,请修改/usr/local/nginx/conf/nginx.conf
1 | vi /usr/local/nginx/conf/nginx.conf |
把替换规则写在http之下,server之上。
对于lnmp如果你想替换整个VPS上的网站,可以直接把subs_filter追加到/usr/local/nginx/conft/nginx.conf的 http 里。 即可实现替换。
对lnmpa我详细解释下放到location / 的意思。
location / 对所有静态文件启用localtion @apache 对于伪静态,比如目录启用。location ~ .*\.(php|php5)?$ 对于php文件启用。
放到最外面,即是对所有文件启用,包括css文件及其它文件。
substitutions4nginx参数
g(default):替换所有匹配的字符串。i: 执行不区分大小写的匹配。o: 只需将第一个。r: 该模式是作为一个正则表达式处理,默认是固定的字符串。
如果是替换中文词组则需要将nginx的配置文件保存为utf-8格式!
我知道,世界上的法律分为“普通法系”(common law)和“大陆法系”(civil law)两大流派。
根据我有限的法律知识,“大陆法系”属于成文法,一切以法律条文为准;“普通法系”属于判例法,法官可以用判例造法。
但是,我一直没有搞清楚,为什么会有这样的区别,各国为什么不能用同样风格的法律呢?

今天,我重看了郎咸平教授2005年在上海财经大学的演讲。偶然间,听到他提到这个问题,我才恍然大悟,原来答案同社会制度有关。
郎咸平教授先问:
第一部大陆法系的法典,是由一个法国人创造的。大家知道他是谁吗?
答案是拿破仑。他创造《法国民法典》的目的,不是为了民主和自由,而是为了整饬法国的纪律,使得法国可以被迅速地严格管理起来,达到他的军事和政治目的。所以,《法国民法典》不可能是灵活的判例法,只能是刻板的成文法。
第二部大陆法系的法典,是由一个德国人创造的。大家知道他是谁吗?
答案是俾斯麦。他创造《德国民法典》的目的,也不是为了民主和自由,而是为了统一德国,完成军事扩张。所以,拿破仑就是他最好的榜样。
日本也是大陆法系国家。大家知道,日本的法律是在什么时候制订的吗?
答案是明治维新时期。日本上层已经下定决心,必须强迫国民向西方学习。后果就是,大和民族成了世界上最有规矩和纪律的民族。
反过来,“普通法系”的国家主要是英国和美国,都是强调分权、制衡和个人自由的国家。英美文化的一个重要特点,就是对政府的作用和力量,一直存有怀疑和否定。所以,它们的法律制度一定必须是非常灵活,能够针对各种情况进行变化,各方力量都能够参与到法律的制订和调整之中,防止独裁政府的出现,因此不可能是成文法。
所以结论是,威权统治的国家,一定会选择“大陆法系”,而强调个人自由的国家,一定会选择“普通法系”。
P.S.
郎教授在这次演讲中,还说了一句精彩的话,我以前没注意。
诸位,请问美国是什么?
美国就是一小部分聪敏绝顶的人,统治着大多数的傻瓜。
(完)
原文:http://www.ruanyifeng.com/blog/2008/12/the_difference_between_common_law_and_civil_law.html
/usr/local/nginx/conf/nginx.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf
vi 编辑 以上两个文件,查找你绑定的域名,然后修改成其它域名即可。另外,初次安装lnmpa时,建议不要使用顶级域名绑定。
1 | # 时间截转时间 |
1 | pm.max_children = 30 //设置子进程最大数值 |
1 | pm.start_servers = 10 //php-fpm启动起始进程数 |