»
S
I
D
E
B
A
R
«
闭关九九八十一天
Jan 5th, 2010 by 一米六二

1.绍明批评我说,博客数据库回档了,丢失数据,也不出来道个歉。我说,没事,反正迟早都是要和谐的。君不见,博客大巴啦,51.com啦,域名不是也被ban吗。我这博客,丢也,也没关系。
2.新年,实在没什么好总结的。没什么好展望的。
3.做好准备,迎接宝宝的到来。
4.闭关一阵,嗯,准备成仙。
5.欲向某人讨要一份停用词表,因为,介个人是做搜索的,不过自己也觉得直接去要显得脸皮太厚了一点。于是在推特上发一推:万能的推特,请给我一份停用词表吧。没成想,没要到,tiny同志提醒说:去问万能的google吧。接下来我发现我被鄙视了:批评说,现在某些人啊,只知道有问题就来问别人,不知道自己动手解决问题。于是心里很郁闷,想:我找人要一份词表,干你鸟事啊,稀罕你装专家来教育人啊。不过后来一想,人家在推上发,全凭个人喜好。也没找上门来鄙视我,我又何必去和人理论一番呢。我不爽,说明我这个现在有点小得瑟,容不得他人批评,这是个不好的苗头。以后我还需要带团队,有很多事情需要去做,这种苗头,实在很不好。面对批评,不管批评得对与不对,先笑而纳之。有则改之,无则加勉。一旦动怒,再也没有人敢对你的不对提出批评了。人生最可怕的事情就是,你做错了事情,却没有人告诉你。古之圣人,尚一日三省其身呢。so,面对批评,平和心态,有则改之,无则加勉。
6.某程序员捐了一点点钱。我想任何人都无法承受这种大悲。凑一点,是一点。如果你也想尽一点点力,请点击这里:
7.本人在github上的page:http://github.com/xurenlu/。我希望在宝宝出生的时候,我能把nginx的扩展给理清楚。
好鸟,封闭修仙去鸟。

PHP版的slow-query
Nov 4th, 2009 by 一米六二

slowphp是由本人开发的一个简单的PHP扩展。目的在于记录web server上执行时间过长的php脚本。用法和mysql上的slow query极为相似。
代码地址:http://github.com/xurenlu/slowphp/.本周内即可完成全部功能。
版本: 1.0
示例:在php.ini中加入:

extension=slowphp.so
[slowphp]
slowphp.long_query_time=3
slowphp.long_query_log=”/var/log/php_long_query.log”

然后重启yapache,运行一段时间后即可查看/var/log/php_long_query.php中记录下了慢脚本的启动时间,消耗时间和脚本路径。
下一步功能:
为了方便调试,下一步将在ini中多加这样两项配置:

slowphp.long_query_log_probability=0.0001
slowphp.long_query_lock_file=”/tmp/open_long_query”

功能分别为:
1.有0.0001的概率记录当前脚本执行时间。
2.有/tmp/open_long_query文件存在时才记录脚本运行文件。
这样一来能极大地方便线上脚本运行效率的监控。

小技术团队的成长
Oct 25th, 2009 by 一米六二

很多小技术team,面对快速成长的业务,感到力不从心。他们觉得,迫切需要牛人,可是牛人总是,不是要价高,就是只想呆大公司,还不想在小企业冒风险,要了高薪还要期权…其实,牛人不需要多,牛人不总是能呆得住,牛人不解决一切问题。我想总结点什么,不过没啥经验,嗯。随便想点儿。不算指导,算是留此存照,将来有机会自己拉队队干革命,希望能解决好这个问题。

  • 团队需要从一开始积累经验。我看到过一个故障汇报系统,发生故障时,第一步就是记录这个问题。然后着手解决问题。解决完问题,再把过程记录下来。以后有新人来,可以先阅读这一些常见故障的解决办法,快速上手。雅虎内部有好几个wiki,一般都要求把所有项目的文档都放在上面,wiki带有完善的搜索功能。有人离职什么的,就算没有交接,也不至于让后来人无从下手。
  • 规范很重要。一开始就建立。规范不在多。也许没人遵守,不过想遵守一个规范的时候,得有一个范本。最好有人推动。代码要有注释,这个所有人都这么说,但是真的太多coder不遵守这个了。起码,注释上谁写的代码,啥时候写的,总可以吧?一个文件加这么两行,要求够低了吧?我在处理雅虎关系的某个业务问题的时候,真的很头疼:一堆php文件,往往开头几个函数有注释,到了后面估计是懒了,或是忘了,就一行注释也没了。大哥,您就在文件头写上您的gtalk或msn,我专门去请教您行么?
  • 存档。备份。技术文档,程序代码,都要备份。不然,一次硬盘挂了什么的,可能就全盘玩完。大团队什么都有现在制度,出不了大差错。而且就是一个人出个错,一个项目出个错,没啥严重后果。小团队可以一次挫折,就是项目受挫 经济受损 团队走人。。。。。
  • 如果可以,尝试一下,团队里结对开发什么的,结对测试什么的。人人总有长处,我有一段时间老跟霍炬后边瞅,(嗯,偷窥呢…),发现他都用vim,后来就缠着他让教我。学会之后,就再也离不开了。还有一阵瞅着徐鹏写东西,也受益不少。比如,开始就把数据库里填满东西(100w+),性能问题开发阶段就能暴露个差不多,以后会少走回头路。
  • 牛人不总是能解决问题。嗯,开头就说过了。一开始并不是所有东西都需要多牛的人去解决的。牛人的意义在于,给团队介绍学习方向,指导团队成长,关键时刻挑起担子。小团队,弄一个牛人就够了。多了,添乱。小企业的老板,伺候一个牛人就很不容易了。一旦牛人请个假什么的,就在想,唉,他不会不干了吧。牛人总喜欢一下子上很多新东西,不能都满足他。嗯,牛人搞的东西 要比团队现在能力稍高一点,是可以很快让团队其他成员也会的。太新潮的东西,容易把自己玩死。尊重他,约束他。
  • 团队成长的同时,待遇也跟着涨。不然,好不容易培养出来几个人,能力强点,就都飞了。把人培养出来了,还要留住。新人一般在最初能力快速增长的时候,很容易受诱惑,容易个人膨胀。经历过一点,就好了。对老板来说,少挣点没关系,咱们慢慢来。也不急这一时。
  • 随时干掉害群之马,在发现苗头之时。别等着他鼓动其他人一起跳槽,或是给同事介绍猎头之前。小团队,稳定第一,团结第一。小团队,非常脆弱。三五个人,十来条枪,一下子一个跳槽,还带俩一起走,够老板受一阵子的。

嗯  团队成长是痛苦Di,费心Di,让人头疼地。小团队,要稳步前进。

整理了一份招PHP高级工程师的面试题
Oct 15th, 2009 by 一米六二

嗯,基本上这些题都答得好 那就…
直接上题.

1. 基本知识点

  1. HTTP协议中几个状态码的含义:503 500 401 200 301 302。。。
  2. Include require include_once require_once 的区别.
  3. PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。
  4. HEREDOC介绍
  5. 写出一些php魔幻方法;
  6. 一些编译php时的configure 参数
  7. 向php传入参数的两种方法。
  8. (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;
  9. error_reporting 等调试函数使用
  10. 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?
  11. posix和perl标准的正则表达式区别;
  12. Safe_mode 打开后哪些地方受限.
  13. 写代码来解决多进程/线程同时读写一个文件的问题。
  14. 写一段上传文件的代码。
  15. Mysql 的存储引擎,myisam和innodb的区别。

2. web 架构,安全,项目经验

  1. 介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。
  2. 使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.
  3. MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
  4. 写出一种排序算法(原理),并说出优化它的方法。
  5. 请简单阐述您最得意的开发之作
  6. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题
  7. 您是否用过模板引擎? 如果有您用的模板引擎的名字是?
  8. 请介绍Session的原理,大型网站中Session方面应注意什么?
  9. 测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。
  10. 正则提出一个网页中的所有链接.
  11. 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。
  12. 您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。
  13. 大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?
  14. 相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。
  15. 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用

  1. linux下查看当前系统负载信息的一些方法。
  2. vim的基本快捷键。
  3. ssh 安全增强方法;密码方式和rsa key 方式的配置。
  4. rpm/apt/yum/ports 装包,查询,删除的基本命令。
  5. Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。
  6. gdb,strace,valgrind的基本使用.

4. 前端,HTML,JS

  1. css盒模型。
  2. javascript中的prototype。
  3. javascript中this对象的作用域。
  4. IE和firefox事件冒泡的不同。
  5. 什么是怪异模式,标准模式,近标准模式。
  6. DTD的定义
  7. IE/firefox常用hack.
  8. firefox,IE下的前端js/css调试工具。
宝宝妈妈的第一次产检
Oct 13th, 2009 by 一米六二

昨天忽然发现别的孕妈妈都老早去医院检查、建档了,我们还没有准备,再一看,呀,好多医院根本挂不上号,于是,赶紧请假,今天早上一大早就去医院排队了。
光是选在哪个医院建档,就很费神。开始一直想在中日,后来说中日基本无法挂上号,因为一天只有5个号,而且不知道有多少人盯着中日呢,根据排不上号,又选煤炭总医院,结果在网上看评价不好。于是最后选了306医院。
早上那可真是早啊,不过,已经有很多人在排队了。每个队都有10多个人了。后来到三楼妇产科时,看到等假区人满为患,这才知道北京生孩子的人还真是不少啊。这还只是一般的医院啊,不知道朝阳妇幼 和朝阳医院 ,又会是怎么一幅情形呢。
今天都没怎么查到,因为B超这周都排不上了,护士小MM给在周五下午加了个塞儿。从来没听说过检查项还要提前好几天预订的。
今天的一些结果:
胎心:150 (嗯 网上好多说胎心在145以上的尤其是150以上的,一般都是女宝宝~)
嗯,周五下午我就不陪着去了,不过周六又得起一个大大的早啊。

一个有意思的题
Oct 12th, 2009 by 一米六二

在网上看到的:
1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计?

嗯,让我这个自以为是的不知天高地厚的家伙来看看该怎么设计。
嗯,首先确认的是,出题者应该是想考实际算法的,和应试者解决难题的方法,全方位思考问题的意识。所以”花600百万美刀花一套oracle的顶级牛B数据库然后把五分钟内的用户记录入库,连数据库查询“这样回答可能确实解决问题 不过不是出题想要的。
好吧,哪,准确地说,啥数据结构,啥算法?
让我们先想象数据容量和运算量。嗯,五分钟内可能有300万用户名要存储。这个嘛,不大,完全在单机范围之内,内存稍大的机呖器,就能全装下这个量级的用户名或id数据。再看时间要求:一分钟内要上线60万用户,每个用户上线时都要查询是否重复了,呀,这是一秒钟1万次查询。如果说是网络服务器的话,比如web这种效率低一点的服务,一万次每秒还是相当复杂的。不过如果是机器内运算1万次,嗯,还是可行的。
接下来,咱们要看是最麻烦的部分,也是要点一:如何应对一秒内完成一万次对该用户是否在五分钟后上线过的查询。这实际是一个要查询一个数据是否在一个列表中存在的问题。嗯,当然我们可以挨个去比对,这个列表比对完了我们就知道这个数据是不是存在了。不过,做为搞软件开发的,大家都知道,如果这个列表能够事先排好序,那是最好不过了。好吧,让我们确定一点:我们最好应该将某一时间的用户名排个序。
接下来我们假定我们把每秒钟内上线的1万个用户放在一个桶里,然后对该秒中的所有用户按名字排序,从小到大或都是从大到小,都行。现在我们时间每推进一秒,我们就噌地新建建一桶,这一秒时间内的新增的一万用户呀,就存这个桶里了。嗯,做为开发者,实际情况是,我们一始就建了300秒这么多桶,申请了大小为300的内存块。然后每块内存里要能有足够容纳一万个用户的内存大小。
嗯,每当时间的车轮进入新的一秒,我们就去这300个中间去找到已经过期的那一“秒“,给它打上当前时间标记,嗯,把它个1万个用户数据清空。每进来一个用户,我们就丢进去,让它们按用户名大小排队。
每一个新用户上线时,我们都需要向这个300个桶发出查询请求。嗯,学过二分法的话,就应该知道,一万个排好序的数据,要查询是否包含某一数据只需要log10000就行了,啊,大概是14次查找。嗯,比你一万个挨个查好了吧,那可是1万次查找啊。
再接下来,我们再思考一下,检查一下:如果是实际场景的话,我们用户们可能不那么听话,每分钟内的60万用户未必刚好平均分配到一秒一万。嗯,而且就跟电灯炮一般能承受的电压都不是220v,而会高出不少,比如250v也能工作,180v也能点亮。比如,明天突然出了个重大新闻,一秒钟内涌进了13000名用户,那我们这么桶的大小就不能承受了。这个,我们做一点点改进,因为二分法最多反正也得比较14次,我们就以2的14次方做为桶大小。如果再还不能承受,那就在用户超出时2的14次方时单独再申请内存。
嗯,这样看上去好多了,不过,排序也是一个比较繁琐的过程,嗯。假设这样一个场景….算了,直接说吧。对于这种从一堆数据中查询是否存在某一个数据的做法,有一个算法叫布隆算法,可以google 一下bloom algorithm或是bloom filter,就专门干这些事。布隆算法做这个查询会有误差,比如,有的用户明明是没有登陆,可是却被提示重复登陆了。这个误差机率我们是可以计算的。
接下来我们可以试际测试一下,看看单机测试的结果。如果实在还不行,那就需要把这300个秒上的数据分布到几台机器上去计算。比如每分钟内的时间分在一台机器上…
有的哥们是这样考虑的:
做一个长度为300的循环链表,每个链接项的数据是一个hashtable,这样来判断。也是删掉过期数据。我觉得这样难度挺大的,因为这样每秒种进1万个用户,对300个链表项中每一个项的1万个数据都要做比较,大致相当于一秒内做了10k*300*10k次比较。我的印象中,就是一亿次for循环,每个循环基本上啥也不干,这个时间,也应该在一秒左右。我偷了下懒, 用c写了个简单的测试:

#include “stdlib.h”
#include “stdio.h”

int main(int argc,void ** argv){
int i=0;
int j=10000*10000*3;
for(;i }
printf("done");
}
编译后:
$time ./a.out
done
real 0m1.363s
user 0m1.268s
sys 0m0.008s

如果再100倍,时间就远超出1秒了。还没有做其他事情呢。我用的是10000*10000*3是因为,如果是10000*10000*300,就溢出了。
不过至于究竟分桶排序后效率如何,也还不好说。没有实战。只是我凭经验觉得一秒钟几百亿次比较是不靠谱的。嗯,不知道有没有时间写个程序验证一下。

二十七岁了,怀怀旧
Oct 9th, 2009 by 一米六二

不知不觉,已经满了二十六岁。
我总是遇到跟我同年同月同日生的兄弟。
大学的室友,某次聊起来,突然发现,原来居然是同一天出生的,而且,居然都是早上五点至七点之间的。哈,八字都是相同的。
雅虎的同事,超超同学,跟我的身份证上出生年月日是相同的~ 现在雅虎资讯的工程师,就只留下他和我了….当年的雅虎新媒体,上百号开发工程师呀~
今年国庆回家,不知不觉就把二十六岁生日过了。呀,一下子就二十七了,忽然发现离三十岁好近了。嗯 ,再也不是小孩子了。
明年,我就要做父亲了。。。可我还觉得似乎没有准备好。
回家玩了几天,发现家里变化很大。农村里安静多了,也不知道是因为安静,还是因为回家了什么压力都没有,睡得很踏实。晚上11:00睡,早上7:00就起来,还觉得很有精神。
家乡的山,绿绿的,水,镜平如画。于是特意拍了几张照片,放在yupoo上的相册上。看看家乡的山水,我在想,如果能在家里生活该多好啊。
一天下午,看到挂在浴室里的两张鱼网。想起父亲说过,这几年政府大力治理环境,河里有不少鱼了。于是拿了张网,去一个浅水区下着了。不一会儿果然就有些小鱼儿可怜地粘上了。不过半小时后这些小家伙就全跑了,可能是鱼网太大了吧,应该下到深潭里才对。不过有什么关系呢,我无所谓了,只想找找那种感觉罢了。十几岁的时候,最喜欢的事就是拿着一把大锤到河里砸鱼。过程很简单,用大锤狠狠地敲石头,石头下藏着的鱼儿就被震晕了,然后掀开石头,用手在手里一捞,就能凭有没有粘液知道有没有鱼。几秒钟后鱼儿就会翻着肚皮浮上来。唯一不爽的事,这事一般都得两三个人一起,至少得一人抡大锤一人拎鱼篓。那种快乐,无法言说。
假期的其他日子,便是窝沙发里看电视。便又想起来小时候,村里人们都还没有彩电和录像机这些东西,DVD就更不用说了,那会儿还没有。一旦有人结婚,小孩满月这种大喜事,一般就会大摆宴席,夜晚远来的亲戚无处安歇,主人便会请来放电影的或是放录像的,通霄放映。其实很多大人们是没有办法只能去看,小孩子才最喜欢这些,李连杰的少林小子啊什么的,吸引得小孩们不惧磕睡和深夜里的寒气。往往到天亮,小孩们都是大人们抱回去的。那时的人们无法想象后来的40寸电视和100个频道。当然,也无法想象某些省的卫视能放丰胸产品电视连着放一个小时。
嗯,不乱想了,房东打电话让准备一下房租。接下来半年的,一万多呢,加上水电煤气得一万五了吧。呀,我还得再算算信用卡要还多少钱…..

母亲也是爱美的
Sep 3rd, 2009 by 一米六二

看了黑夜路人的博客《妈妈,我再也没法这样叫你》,不仅感慨万千,赶紧上gtalk,跟他说了声,节哀吧,兄弟。
其实,对于每个人,这都是撕心裂肺之疼。至亲的失去,有谁能够承受!
这个时候,我刚刚把母亲送上回家的火车。
母亲是我接过来小住的。一辈子没有出过远门,这次终于有机会走出来,看看外面的世界。
小时候,家里穷,偏远的农村,穷得你无法想象。我把那些都市人看起来年代遥远的故事揉进了小说,一个读者留言说:你好啊,爱写小说的大叔……他以为我是六十年代的人呢。不是,我是地地道道的八零后。 你们这样称呼我这号的人,认为我们生在福窝里。
种种原因,包括两个舅舅的残疾,外公想要个儿子来养老,计划生育政策决定用不给分土地来惩罚这些不守政策的超生户,导致的直接后果就是,我们家在一个偏僻的农村,却没有土地!
想象一下吧,刚刚进入80年代,偏远的小山村,老实巴交的农民,打压私营经济的社会….那这一家子人,是怎么活下来的呢?
父亲挖出一座窑,烧瓦。烧瓦的流程很麻烦,得先和上一大堆泥,然后在一个转动的工具上面做成一个个圆筒状的东西,堆在外面晒干。还不能太暴晒,那样容易裂,遇到下雨, 就得赶紧收屋里来。这玩意儿,一见水就废了。等都晒干了,就拿捏好力度,轻轻一拍,因为做的时候就留好了薄的地方,这时候就会顺薄沟裂开。现在瓦已经做好,就等烧了。母亲就到山上把那些大大小小的灌木都砍下来,捆一大捆,背回来做燃料。好了,开烧吧。一窑瓦大概得烧一天一夜吧。整个窑里的瓦烧得通红的时候,就要在窑顶放水下去。放水的时间,多少,就决定了瓦的颜色。颜色其实也就是红瓦跟青瓦了,没啥好选的。
就是靠着辛辛苦苦的烧瓦,养活了一家人。时间就这么进入了90年代。
一件大事:重新分田了。重于,吃饭不是重要难题了。那年秋天,打下来的稻谷,堆在墙角,金灿灿的。母亲站在谷堆边,捧起一把稻子说,我们一定得打一个谷仓。
父亲从外公那里用板车拉回一车柳木。母亲说,柳木,打谷仓最好了。料子轻,结实,不招老鼠。
谷仓打好的时候,我们一家就如过年一般。

那个时候,我从来没有听到母亲说过,衣服好看不好看。母亲从不给自己买衣服。母亲一分钱也啥不得花,全给孩子们攒着。
印象最深的是有一次母亲去给住校的我送东西。那时候的学生们都是说方言,除开一个从外地大城市转学过来的戴一副大眼镜以外。他最热衷的莫过于宣传他的父母月薪加起来有2000块钱,一幅瞧不起所有人的样子。那天,他走进教室,用着那时我非常不习惯的普通话说,你妈妈来找你了。
母亲就站在教室外。她刚干完农活,也没有换衣服就来了。其实,也没啥衣服好玩的,都是旧衣服。我注意到母亲的衣服上一块块的污渍。母亲却完全不知情。她完全不曾去想这些。
那天接下来我就一直在想,那个眼镜一定会到处说谁谁谁的妈来了 衣服脏兮兮的。
但是,他没有说,啥也没有说。
从此以来,我对他改变看法。我从心底感谢他。

在家的时候,有时候觉得母亲应该换一下衣服,也经常让她买件新衣服。可是她总是蛮不在乎,就跟没有听到一样。
于是,活到27岁,我一直以为,母亲是不爱美的。再说了,现在母亲都55岁了,头发花白了。

可是,两个星期前,去颐和园玩的时候,我一说让我给她照张像,母亲立马开始整理衣服。然后站得正儿八经的,像是谁会检查似地。我心底好笑,何必呢,这都数码相机了,想照多少张就照多少张了,何必站这么标准呢?
然后再出去的时候,母亲一大早就把衣服换好了。然后出门的时候说:我觉得换这件衣服照像好看一些,你说呢?
那一刻,我如遭雷击。

每一个女人,都是爱美的。哪怕是生在三年自然灾害年代挨过饿受过冻的女人。
只是,为了孩子,她们可以把这颗心,埋在心里二十多年。

一个小小的C 写的web server
Aug 26th, 2009 by 一米六二

嗯 现在闲得慌,呵呵。集团正在大手笔地调整几个子公司,我一下子就突然闲了起来。新同事好像动不动就是高级开发工程师,专家,高级专家,资深专家。嘿嘿,我的title还是一个普通普通的开发工程师。加薪无望啊,升职无望。只好静下心好好学习学习。
C乃万物之源,当然要好好学习学习,于是就有了这么个东东:
下载C写的web server,支持cgi和简单的配置文件
代码基本东拼西凑,qps基本马马乎乎,ab测出来的qps,纯html文件,大约也能上2k,php-cgi程序qps在60,我以为是机制问题,后来发现这个php文件在apache下也只能跑到45,可能是php模块太多了,跑得慢),perl-cgi程序qps在150~380,用c写了一个极小的cgi hello world,qps能上900;
嗯,纯属学习,欢迎指教,轻点儿拍砖。

我的大学
Aug 20th, 2009 by 一米六二

2001年7月,我考完高考。考完后,所有的同学都兴奋或是不安地等待,或是四处打听消息。而我,对于考了多少根本不在乎。我非常清楚,清华北大,我考上的几率太小了,所以,试都不用试。因为读上三年高中已经是很难得了,要是考不上,我根本不可能有机会去复读。而差劲的大学,就是考上了以我的家庭条件,也不可能念得了.在湖北,也只能报那么几所学校,武大,或是华中科大。于是我想都懒得想,填了高考志愿:华中科技大学.

填完志愿,很快就到估分环节了。以平时的成绩,上武大华科应该就没问题,估了分之后,我更确信了。接下来的工作,是要为上大学准备。对于我来说,就是学费的问题。

父亲不打算做任何支持。我跟他说的时候,他说,等你考上了再说吧。我知道他是在逃避,他不希望我考上。我上初中的时候,他不想我上,结果外公拿了一部分钱出来,让我上。而高中时,则是高中老师几次去劝说。但是不管能不能上大学,我想的仍然是,都得挣钱啊。上大学需要挣钱,不上大学,也得需要挣钱。

我在县城一个小小的汽水厂找到一份工作,洗汽水瓶。每个瓶子是1分钱还是5分钱吧。我忘了,只记得一天下来累得腰酸背疼,连十块钱都挣不到。干了二十来天后,我挣了150元。

也许是苍天有眼,这一年,郎酒集团搞了个助学活动,宜昌地区一共有7个名额,每个学生可以拿5000块钱,用做上大学的费用。一次付清,且不附带任何附加条件。为了拿到这个钱,我去了宜昌市两次,第一次,是去交报名表,第二次,是去领钱。去宜昌的车费是25,头一次去,还在宜昌住了一晚,我沿着长江走了很久,找到一个很便宜的小旅馆。我打工挣的钱,终于排上用场。如果没有打工得来的这点儿钱,我连去申请这个助学金的机会也没有,因为没有人会给我20来块钱去宜昌。十年之后呢,二十块钱只不过是上岛一杯可乐的钱。这次去宜昌,是我第一次走出小山沟,第一次见到长江。见到长江的时候我很吃惊,那种吃惊我隔了这么久仍然记得,原来长江水竟然是浑的,地理课本上只说黄河水是浑的,可从来没有说过长江水是浑的!

我一个人去拿回了这笔钱,然后接下来的事情仍然没有让我想到。没有亲友祝福。跟之前其他人上大学的反应完全不一样。几年前周连村子有一个孩子上了大学的话,一定会把所有亲友请来,如同结婚、得子一样地大办喜宴。我一个人悄悄地出发了,揣着这几千块钱。

上大学的头一年,我感觉到了自己的不一样。不仅仅是家庭条件的差距,更有性格上的显著不同。我内向,胆儿小,这是最要命的问题。但是值得庆幸的是,我意识到了。第一年,我参加了好几个社团,甚至有不少课都因为这样那样的活动而丢掉了。去了没几天,就在老乡会上认识了一个同镇的师兄,很豪爽地带我到他的寝室玩了几次。后来,我发现我错过了三次高数课,而那时的课是半天半天地上的(一周两次,一次半天)!
接下来,我怎么看书,也不管用,跟不上。本来一本书,老师也就上15个星期左右就讲完了,而我是一来就错过了一本书的十分之一!期中考试,我高数差点儿就不及格了。不过元旦的时候,我大病一场,躺在学校附属医院14天。其实也就是个牙周炎,但是因为进医院是周末,再连上元旦放假,基本就没医生在,就护士给输点液,所以前面5天我高烧,迷迷糊糊地在就睡过去了。现在才知道,其实高烧不退对于人来说,是很可怕的,古时候很多人一烧就过去了,就是现在不明原因的高烧不退,就是很严重的,啥白血病之类的,往往是在高烧不退后才查出来的。记得有一天,有一个中专的实习小护士,很瘦的小MM,过来跟我说,你要多喝水啊。其实来个护士都这么给我说,可是我起不来床,动一动都难,我上哪儿弄开水啊。唯独这个小MM发现我原来高烧着,根本打不了水,于是有空就帮我打开水,倒在杯子里放在床头柜上。那时候,我觉得她简直是个天使。帮我打过开水的,还有一个是班上的团支书,大姐式的热心人物,后来呆在武汉一家法资公司,已经有了baby,日子过得相当美满。

等医生同志们休假归来后,查到了病因,打了几针,烧就退了。不过还呆在医院住院部里,天天没啥事干。这时候我就天天搬个小凳子,把高数教辅书摊在病床上天天做题。出了院没几天,就期末考试了,虽然我住院又错过了一个星期的高数课,我竟然得了85分,并列第三。虽然我对那些公式啥的仍然不懂,不过做有几个大题我都做过了,对过答案了….所以高分很正常~

第二学期,就开始根据第一学期的成绩排奖学金了,一等奖学金有一个条件是,必须担任学校或系的学生会干部并有突出贡献,我自觉不行,就只参与了二等奖学金的竟选。奇怪吧,奖学金是先把有不及格历史或是四级未过的人剔除,再提出成绩在若干名的,然后再加上当过学生会干部或是社会活动等条件挑出一部分,然后再由个人发布一篇演讲,自己介绍自己为什么能得这个奖学金,最后由全班投票。不过,国家奖学金,却是由辅导员自己定的(名义上是班长报人选,辅导员定,不过几个候选人名单也是由辅导员给班长的).
大一的奖学金,只发一半。不过这钱先扣掉了学院了一个什么份儿钱,所有奖学金都这么扣一笔,再扣了一笔系里的啥钱,然后拿点儿出来做班费,再给寝室添了点垃圾痛扫把啥的。最后反正不剩下多少了,干脆,我就请同学们去吃了一顿,算是答谢他们在住 院期间照顾我吧。

未进大二,我已已经意识到要开始挣钱了。因为,虽然有助学贷款,有前面拿的助学金,可是我没有想到,一进去就交了军训费啦,保险费啊,被服啦啥的,一下子花去不少。另外住宿舍要交钱,买教材要交钱,还得按月支出生活费。进实验室做实验,也还得交费。而这些都不包含在学费里的。学费虽然是可以贷款的,但是看上去,学费好像就是用来支付老师的工资了。其他的费用,全部得照交不误。

在我看来,挣钱主要有两个渠道,一个是家教,一个是打工。家教嘛,看起来简单,其实不然。武汉高校多,做家教的学生太多了,武胜路门口,学生们跟摆地摊的小贩一样,一长溜。就是揽到活儿了,也不容易。10来块钱一小时,从武昌到汉口就得一个多小时,回来一个小时,一个周天就顶多干俩,挣20来块钱。当然也有个别好点的,给得多。
另外的打工吗,就去公司应聘做兼职了,不过如果什么都不会的,也不好找。这是我后来决定学计算机的原因:一个师兄计算机系的,在外面兼职,挣得不少。
当然,在学校还可以申请一个叫“勤工助学”的东东。极少数情况是直接给钱。这都有个条件,就是得去填各种表,列举你家庭条件差的原因,比如说父母下岗啦,残疾啦啥的。不知道为啥,真正需要的,往往反而不去挣这个。常见的就是,安排个工作岗位,比如说自行车看守啥的。这也是僧多粥少,往往早早报了名也排不上。为啥呢,现在的孩子们都很重视社会经验,认为参加勤工助学能增加社会经验。所以去看车的,一大溜的跨着那个叫安什么的1000多块钱一辆的自行车。这些机会不多,也没多少钱。当然有的岗位比较轻松,不过一般人轮不上,都由辅导员决定。
勤工俭学还有的就不知道是不是勤工俭学的了,曾经有一个长得很壮实人也很老实的同学,老早就在辅导员那儿登记了,后来终于有一天安排他去干活了,干了一整天,搬桌子,整理教室,打扫卫生。晚上累得够呛,挣回来50块钱。另一个同学提醒说,这么累,干钟点工也能挣50块钱了吧!

好吧,跑题了,接着说我的大学。既然师兄为我指道说学好编程,方便在学校接点儿活干,挣得也多点,也能不影响上课。那就,学吧。学什么呢,现在网站比较热,那啥etang,那chinaren,不都挺火热的吗,那就学网站编程吧。

于是,我就这么走上贼道儿了。
不过当时对于我来说最重要的事情,还是考过四级。那时候过四级是辅导员每天必讲的话题。最简单的理由便是,如果不能过四级,大学就是白上了。因为连个学位证都没有。到毕业了我才知道,原来是有一个毕业证,还有一个学位证,不过四级,是不发学位证。并不是所有接收单位都要求有学位证的。

大学的英语课,基本上都白上了。英语课过得倒是挺滋润,看看英文原版电影,听老师讲讲英美风俗啥的,跟高中果然不一样。不过,这对提高考试成绩真是一点用没有。那段时间,我是把所有的时间都投入到了四级上。并且我大胆地做出决定,即使是把有几门不及格,也不要紧,首先把重点解决了:把四级过了。

后来考完,我终于解脱了。我一定要狠狠地骂上几句,我有半年的青春,就浪费在小小一本smart四级词汇表上了。事实证明,即使是背了几遍,这玩意儿在我的脑子里仍然没有扎上根,也根本没帮我提高四级成绩。也许那个说“考四级就是考词汇”的人没错吧,错的只是我们把四级看得太重了,不过我们有什么办法了,有个老家伙天天到各个寝室催大家背单词!

考四级时,我其实已经迷上电脑了。我已经会鼓捣点VB/ASP,PHP的程序了。那会儿比较土,教材上的PHP文件还是.php3的后缀的。大二下学期开学了,一大坨人就围在电脑前,在etang网上输了准考证号,排队等成绩。一刷,前面有4千多位排着,等一会再刷 ,还有几千个。终于等到了,谢天谢天,过了。险过。于是立马解脱。从未有的解脱。接着去鼓捣先前的程序。

那会儿,我在西九教学楼的机房里,申请到了一个10M的空间,建了一个小小的文学站。如果我有机会做好一个网站的话,这是头一个。程序,是有一个叫“编程浪子”的人写的,我从k666.com上下载下来,然后改头换面,在DreamWeaver 4上面东增西删地乱改。那时候dw是一个很高级的东西,很多人都在frontPage里拖组件,而FrontPage里拖出来的不少动态内容,需要在微软的PWS上才有支持。哈哈,PWS!不是WPS!Microsoft Personal Web Server!如今还有几个人记得,在frontpage里加个计数器呢?
[后来不知道是霍炬还是高春辉,提醒我说,那时候已经不是编程浪子的时代了。不过也许是另一个人取了同样的网名吧。是叫编程浪子还是叫边城浪子,我都不确定了。]
在西九,我认识了网名”大牛”的一个铁哥们,后来我一个人带着600块钱晃荡到北京以后,我就推荐他到北京来上班了。当时在西九的那些64M内存的机器上,我们可怜巴巴地瞪大了眼睛,调试着巨难伺候的ASP.不过后来有几台机器坏掉了,换代了,有了128M的内存,于是我们就草草地吃完饭,在机房外排队,为的是能占着那些128内存的机器。再后来,大牛同学在学校补考,然后我在国企呆了半年之后决晃到北京,把大牛也叫到了北京。再后来….我又到了雅虎,某天为了挣那千把块钱的内部推荐奖金,决定把大牛同学推荐进来,结果人力动作太慢,给大牛打电话时,大牛已经定下了工作。然后再后来,大牛同学到了上班,跟着朋友创业,小日子过得有滋有味…

嗯,接着说。
这段时间,我对捣弄网站简直入迷了,那个小小的文学站,用的是access的数据库(天,我那时候认为它就数据库,虽然一年后教数据库课程的老师给我布置作业的时候,我牛B哄哄地说:Oracle是数据库,SQL server是数据库,Mysql 是数据库,Access算哪门子数据库?),跑得是改巴改巴的程序。那时候,我还有点点年轻人的幻想,仍然希望着将来有一天成为一个作家,于是坚持在上面写点儿东西。居然后来吸引来了几个真正的民间高手,我还记得其中有一个是四川一个小县城税务系统的,天天闲着没事,上网写小说。后来有一批人,天天在网上等他的连载,我这个“斑竹”还很嫉妒他。还有杂志来问我要他的联系方式,商量出版的事情。

再后来,有一个人说,你这么做不大的,我们合作吧。于是,我决定把这个小小的东西迁到他那里。他说有空间,有域名。可是迁移之后,就没下文了。

这之后有很长一段时间我不再那么迷恋上网搞网站。钱也不是那么好挣着,偶而挣一点点而已。我经常为怎么挣钱发愁。有一个学期,我买教材的钱也没有了。不过图书馆不收费。于是,我干脆没什么事就天天在图书馆泡着。课也不去上。图书馆主要是旧书,发黄的书。只有一个图书室是稍新一点儿的计算机类图书。于是我看到了一本讲Java的书。看过介绍之后,我决定学好Java。我的目标在那会儿变成了先考上SCJP,再考上SCJD。这两个分别是sun公司认证java程序员和sun公司认识程序设计师的意思。我拿着一个厚厚的大笔记本儿,天天在图书馆抄java书。很快抄下来厚厚一本。后来我打听到一个消息,考这玩意儿是要交钱的,要交很多钱(好像是1200吧),而且是考不过的话下次再交钱考。我就不再抱那么大希望。更何况--这时候我挂科了。得重修。

这里插进来,提一提两个人,一个是覃健祥,现在也在雅虎口碑,不过是在杭州,混得比我好多了,在杭州买了房子,马上要结婚了,以后也应该就扎根杭州了吧。他当时在学校学工处做一些院系官方网站,属于学校党委下面的吧,我呢,在一个学校门户挂着名,属于团委。这俩部门的区别就是,党委的经费多,团委的经费少。呵呵。他比我大一年,也比我早一年在图书馆的桂花树下看“疯狂站长之PHP”;另一个是郭琪睿,比我晚上年,一直在做Flash和前端编码工作,做过两年的web team leader,现在在创业,据说几天前接刚接到欧洲的一个大单。嗯,他那会儿也在一个校园门户网站做Flash编程。两人都混得很不错。

大三就这么在图书馆里混着,挂了一些科,重修了好几门,重修费不少。据说有的学校是挂科了先重考,不过再交钱重修。我们是直接收钱让你重修,跟下一届或是其他系的下一轮一起听课,一起考试。接了两个活儿,钱也挺少。大三就这么过去了。
大三快结束的时候,有几次实习。先是在校属机械厂搞加工,做个锤子啊,加工个轴承啥的。接着在武汉汽轮机厂去参观,最后去十堰二汽去实习。去十堰的时候也可怜巴巴的,身上带了一百块钱,回来还剩五十,我啥也没买,就是偶而买个泡面啥的。哦,主要是买了张IP电话卡。火车票啊,吃饭啊,住宿啥的,都没收钱。连组织去那个十堰有名的大水库去玩,记得还租了条船,也没有收钱。原因是……一开学就收了一大笔上去。

大四很快来了。大四的主要事情,就是毕业论文和找工作。华科的毕业论文,一向严格,一定要有点儿东西。有个老师从外面接个了项目,需要一个很懂电脑的人,不过好处是,接这个,可以一个课题把我们双学位的两个学科的论文全部摆平。因为这个是用计算机对钢构件的失效做模拟分析。同学们都推荐我,我也就稀里糊涂地上了。结果是,我整整地打了大半年的工。

这个要用到一个叫Ansys的软件,有限元分析的。后来很巧的时,上班的地方是在温特莱,6层就是安世亚太,也就是所谓的ansys中国。但是国内缺乏相关的资料。我的英文烂,求爷爷告奶奶地找同学帮忙,不过那会儿,同学们不是在准备考研,就是忙着找工作,谁能帮我呢。只好自己整英文资料。后来在图书馆居然找到了几本ansys的书,乐坏我了。不过幸好我看了部分ansys的manual,原来这些中文书,全是翻译的人家的manual,或是从英文网页上搞的。把人家的叙述翻译错了也就算了,连ansys命令行的基本格式都搞不懂,有些本来是需要原样输到ansys命令行的,这些翻译大师们,也给翻译了。感觉用google translate toolkit翻译的一样。后来,我看到中文的翻译过来的书,都不怎么信。 不过我英文差,也是有中文的就尽量看中文的。

未完待续。

»  Substance: WordPress   »  Style: Ahren Ahimsa
16828 页面访问次数, 491 今天
7720 访问数, 161 今天
FireStats icon 由FireStats提供支持