父母在北京

2006年底,为找工作,我第一次来了一趟北京。

2007年5月8号在北京五道口租了一间地下室,开始了在北京的工作生涯。工作之余,我几乎玩遍了市内的稍有名气的公园,感觉还不错,至少是我从未想过,更从未有过的时光,只是未与父母家人一同欣赏,甚是遗憾。

2009年初,就是春天的时候,就想接父母来北京,怎奈当时假期很短,游人很多,没地方住,甲型H1N1流感闹得人心惶惶;后来天气炎热不宜出行,所以就一拖再拖。

终于在十一国庆来临之际,我提前把父母接了过来,是9月22号晚上来到北京的。今年十一,非比寻常,它是新中国60周年庆典和八月十五中秋节赶到了一起的盛大节日。

9月23号,我们去了最近的公园——海淀公园。海淀公园的景致还是不错的,但是可能我爸妈期望能看到一些寺庙、古建筑之类的东西,所以多少有些失望。
9月24号,我们去了天安门广场、观看了毛主席纪念堂,然后从天安门来到中山公园,离开中山公园又去了北海,这一天下来也够累的了。因为我爸妈来北京最主要的就是看看天安门和故宫了,所以第二天我们就来这个地方了,刚好还赶上可以免费参观毛主席纪念堂(存包费10元),中山公园不大,我们也仅仅是路过了,北海公园还是比较大的,但是我爸很累了,我们就草草走了一遍。
9月25号,星期五,今天上班,也好让我爸妈歇息一下。
9月26号,星期六,不上班,天气不太好,想随便转转算了,出门后觉得可以去鸟巢看看,那里不算远,我也没去过,但是
似乎我爸妈对鸟巢比较感兴趣。
9月27、28号,星期日、星期一,上班。
9月29号,天气雾蒙蒙的,不适合出游看景致,于是就选择了动物园,看了那么多动物,倒是还挺不错的。
9月30号,天气还是雾蒙蒙的,就去植物园了,本身在这个季节,植物园就不怎么美的,雾蒙蒙就雾蒙蒙吧。
10月1号,本来预报的是下雨天,但是为了新中国的60周年庆典,人为地改变了天气,把本来该下雨的天气变得清空万里,碧蓝碧蓝的,在北京呆两年了,从来没有见过这么好的天气,而且原本预报的一多半的阴天或下雨,这下几乎都变成大晴天了;怎奈国庆庆典的阅兵仪式不能到跟前去看,我们就临时改道去颐和园了,这么好的天气,我们是必须出去的,否则就太对不起这稍有的好天气了;我们进颐和园走的是新建宫门,进去之后就发现了那个直播国庆庆典的大屏幕,而且颐和园里人非常少,这下能在颐和园里既赏风光又看国庆阅兵,实在太好了。
10月2号,我们去故宫,四号线已经开通,做地铁到西单(天安门西和天安门东地铁路过不停车),然后步行道天安门,可把我们累坏了,天安门前除了人就是人,似乎全中国的人都来到天安门前似的;广场上放的是国庆庆典时群众游行展示的花车,好不漂亮;我们下午1:00 时才买票进了午门。直到下午5:00清场的时候我们才从西华门离开故宫,步行走到西单地铁(累死人了)。
10月3号,休息一天
10月4号,上午到公司走了一圈,下午就去景山公园了。
10月5号,休息一天
10月6号,上午送父母上火车,下午整理了这些天的照片,传到了我的qq空间,以便父母在家也能看到,然后就写下了这篇日记。

这些天,我们白天出去玩,晚上回来一遍吃饭,一遍听戏,每天都是那么的悠闲自得;每天买馒头、买饼、买菜;我妈做饭,我洗碗;一切都那么的自然。虽然有些事情已经无法达成共识,但我也不去计较,只要他们高兴,我就开心。
10月6号爸妈就要走了,我舍不得,但也没法挽留,就算我再往后推两天,他们到时还是要走的,所以我需要面对这个现实;送爸妈离开的时候,我什么都不想说,因为这个时候随便说一句嘱托的话,我都有可能哭出来的;9:47的火车,我们早上7:00吃饭,8:00就坐上公交车了,提前一个小时进了候车厅,因为动车没有站台票,我还弄了个例外,弄了一张动车的站台票,才把爸妈送到了车上,然后我就离开火车,不过等到火车开动后,我才做公交车回来了。
或到家之后,家里就剩我一个人,一下子显得那么的清净;窗外的风有些凉了,有道是:人生自古伤离别,更哪堪冷落清秋节。天还是那片天,阳台上的衣服少了,那张大床也一下子空了,两条被子;躺在床上,我哭了,热泪盈眶,我多想嚎啕大哭啊。
中午,我再不能端碗就吃饭了,我不得不打开冰箱看看还有什么,要不要买什么;吃过饭原来要洗三个碗,现在只洗一个了,一切都对比的那么的明显。为了让眼前的事物的变化不至于太大,我尽力让原来有的东西,暂时还有;我的小铁床暂时不拆;吃饭时,我也打开电脑,一边听戏一边吃饭,但是这个却起了相反的效果,我听的是《程婴救孤》,原来是三个人听戏,现在却剩下了我一个,程婴哭的是那么的悲惨,我也忍不住又哭了;
记得最早伤离别是在高中一年级的时候,那时候我已经深深地感觉到爸爸已经老了,我非但不能帮他干活,还要他供应我上学,就在中秋节的时候,我放假三天,回家忙了三天(当然没有干完),返校的时候,我哭了一路,晚上睡觉时还是想哭。
然后就是上大学,我开始先做汽车到安阳,然后坐火车到天津;从那时,我时不时地做梦自己去了一个很远的地方上学,我也不知道是什么地方,反正回家一次肯定很难吧。我上大学的时候,我们家很困难,应该算是最困难的时期吧,我在放寒暑假的时候就不回家,这样,一来可以省火车票,二来也能打工整点儿钱;有一次,我一年半才回了一次家。大概就是这段时期给我的身心留下了阴影吧。

很荣幸我考上了天大,也很荣幸从天外天来了新浪,最困难的时候已经过了,母亲的身体好了许多,父亲的身体却令人担心了;原以为挣很多钱,可以让父母吃的好些,穿的好些;但是这次看见父母后,他们还是那么的俭朴,虽然有钱也还是舍不得吃、舍不得穿,所以我就觉得辛辛苦苦挣钱,还不如多陪老爸老妈几天。而我身在他乡,实在有些愧对父母,愧对良心。

为了不在无聊中伤感,我下午把这些天的照片整理了一下,上传到了我的qq空间。QQ空间的相册说是不改变图片的大小,其实只是没改变图像的尺寸,清晰度却改变了,本来的1.6M的图片,上传以后只有200K了。看到父母的照片,我的心情会好一些的。

人生应该记住的16句话

1、再烦,也别忘微笑;再急,也要注意语气: 再苦,也别忘坚持;再累,也要爱自己。
2、低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀。
3、成功的时候不要忘记过去;失败的时候不要忘记还有未来。
4、有望得到的要努力,无望得到的不介意,则无论输赢姿态都会好看。
5、生活不是单行线,一条路走不通,你可以转弯。
6、泪水和汗水的化学成分相似,但前者只能为你换来同情,后者却可以为你赢的成功。
7、变老是人生的必修课,变成熟是选修课。
8、以锻炼为本,学会健康;以修进为本,学会求知;以道德为本,学会做人;以适应为本,学会生存。
9、人生四项基本原则:懂得选择,学会放弃,耐得住寂寞,经得起诱惑。
10、当所有人都低调的时候,你可以高调,但不能跑调。
11、学会忘记是生活的技术,学会微笑是生活的艺术。  
12、什么是好工作:一不影响生活作息,二不影响家庭团聚,三能养家糊口。
13、懒惰像生锈一样,比操劳更消耗身体。
14、让梦想成真的最好办法就是醒来。
15、哲人无忧,智者常乐。并不是因为所爱的一切他都拥有了,而是所拥有的一切他都爱。
16、人生有几件绝对不能失去的东西:自制的力量,冷静的头脑,希望和信心。

成大事的九种手段

    

        

            

        

    

          1、敢于决断——克服犹豫不定的习性 
                很多人之所以一事无成,最大的毛病就是缺乏敢于决断的手段,总是左顾右盼、思前想后,从而错失成功的最佳时机。成大事者在看到事情的成功可能性到来时,敢于做出重大决断,因此取得先机。 
            2、挑战弱点——彻底改变自己的缺陷 
                人人都有弱点,不能成大事者总是固守自己的弱点,一生都不会发生重大转变;能成大事者总是善于从自己的弱点上开刀,去把自己变成一个能力超强的人。一个连自己的缺陷都不能纠正的人,只能是失败者! 
            3、突破困境——从失败中撮成功的资本 
                人生总要面临各种困境的挑战,甚至可以说困境就是“鬼门关”。一般人会在困境面前浑身发抖,而成大事者则能把困境变为成功的有力跳板。 
            4、抓住机遇——善于选择、善于创造 
                机遇就是人生最大的财富。有些人浪费机遇轻而易举,所以一个个有巨大潜力的机遇都悄然溜跑,成大事都是绝对不允许溜走,并且能纵身扑向机遇。 
            5、发挥强项——做自己最擅长的事情 
                一个能力极弱的人肯定难以打开人生局面,他必定是人生舞台上重量级选手的牺牲品;成大事者关于在自己要做的事情上,充分施展才智,一步一步地拓宽成功之路。 
            6、调整心态——切忌让情绪伤害自己 
                心态消极的人,无论如何都挑不起生活和重担,因为他们无法直面一个个人生挫折,成大事者则关于高速心态,即使在毫无希望时,也能看到一线成功的亮光。 
            7、立即行动——只说不做,徒劳无益 
                一次行动胜过百遍心想。有些人是“语言的巨人,行动的矮子”,所以看不到更为实际现实的事情在他身上发生;成大事者是每天都靠行动来落实自己的人生计划的。 
            8、善于交往——巧妙利用人力资源 
                一个人不懂得交往,必然会推动人际关系的力量。成大事者的特点之一是:善于靠借力、借热去营造成功的局势,从而能把一件件难以办成的事办成,实现自己人生的规划。 
            9、重新规划——站到更高的起点上 
                人生是一个过程,成功也是一个过程。你如果满足于小成功,就会推动大成功。成大事者懂得从小到大的艰辛过程,所以在实现了一个个小成功之后,能继续拆开下一个人生的“密封袋”。 
            
                可以讲成大事者总是关于选择最佳的时机,达到最完善的结果,这就是非一般人所能做到的。因此在成功之路上,你要想成大事,首先要解决的问题就是:你的选择的事业对你推动成功的计划是否立竿见影。 

javascript encoder

我现在需要一个消息摘要算法,但是网上提供的md5.js sha1.js都比较大,仔细看了一下,里面有我不需要的东西,精简了一下,就基本可以接受了,下面是两个精简后的js:

Encoder_sha1.js      源 码大小(含注释)4K   压缩后:1.5K
Encoder_md5.js        源码大小(含注释)7K    压缩后:3.9K

未精简的sha1.js    源码大小(含注释)7K  压缩后: 2.4k
未精简的md5.js    源码大小(含注释)8.8K  压缩后: 4.6k

管道与队列

相同点

1. 都是先进先出

不同点:

1. 管道可以以只读方式打开,但不能以只写方式打开;因为管道是不存储数据的



如何用Linux系统中的fifo来实现队列:

消费者a.php:
$fp = fopen("/dev/shm/fifo1","w+");
while(!
feof($fp)) {

        echo fgets($fp);
        sleep(4);

}

生产者b.php:
$fp = fopen("/dev/shm/fifo1","w+");
$pid = posix_getpid();
while(
1) {

$str = $pid."_".time()."n";
        fwrite($fp,$str);
        echo $str;
        sleep(2);

}

注意:
1. 不管是生产者还是消费者都要以读写的方式打开;否则:
生产者如果以只写方式打开,会因为没有消费者而在打开时阻塞;
消费者如果以只读方式打开,消费完就退出了,不会阻塞,达不到随时服务的效果。

2. 因为文件总是有4096字节的IO Block,所以管道里可以阻塞4096字节的数据;就是说,如果消费者进程仅仅是打开了fifo,但是没有读取,这时生产者可以写入最多4096字节的数据(这个4096和生产者进程的buffer无关,是文件本身的一个属性,不知道怎么修改),和写入进程的多少没有关系,一旦阻塞了4096字节的数据,任何欲写入(可能还没写一个字节呢)的进程都会被阻塞或直接返回失败。

3. 注意下面情况:
1) A进程打开某fifo1,开始循环读取
2) 删除fifo1, 这时A进程是不知道的,并且不会发生错误
3) B进程创建同样的fifo1,开始写fifo1, 这时A进程是读取不到B进程写入的数据的,必须重新打开
   解决办法: 还没有呢

4. 如果消费者进程没有启动,则生产者进程写入多少丢弃多少

5. 如果有一个消费者进程,多个生产者进程,则任何一个生产者进程退出,消费者进程都将读到一个文件结束符,所以这种情况不能在读取到文件结束符时退出,而是读到文件结束符时丢弃,继续读取(没有数据时会阻塞的)。

6. 如果不小心将fifo创建成了一般文件,则后果就难以预测了。

7. 如果想以非阻塞的方式来读取一个fifo中的数据,则需要:
   a. 以读写的方式打开(注意要有写权限才行哦)
   b. 对打开的流做nonblock的设置,php里面的语法为: stream_set_blocking($fp, 0);

我需要一个队列:
1. 没有网络开销和磁盘IO的开销,只需要内存就可以
2. 允许在数据处理太慢时丢失旧数据,因为对我来说,过期的数据是没有意义的
3.

location.replace在Firefox和IE下的小区别

写了一个脚本,内容为:
<script>
location.replace("");
</script>

该脚本在Firefox下死循环了,在IE下定向到网站的根目录了。
说明Firefox认为空就是自己,IE认为空就是根。

用302跳转试试,写脚本如下:
<?php
head("Location: ");
?>

Firefox下和没有该Location头一样,没有循环也没有跳转;
IE下还是跳转到网站的根目录了。

关于json编码解码的问题

其实json编码解码应该是一件很简单的事情,提供的类或库函数用起来也就是encode、decode,似乎不是一件很复杂的事情;但随着json的 使用的越来越多,还真就发现了一些不能不去注意的问题。

1.   含有自引用属性的类的encode和decode
       在js中, {"me":this} 是一个合法的对象,但是PHP对该对象做decode时,结果是: NULL
       在PHP中:
<?php
class test {
    public 
$a;
    
// 注意: 不能直接写为:
    // public $a = $this;
    
public function __construct() {
        
$this->$this;
    }
}
?>

test是一个合法的类,但是PHP对该对象做encode时,结果:
Warning: json_encode(): recursion detected in E:\home\desktop\test.php on line 26
{"a":{"a":null}}

2.  单引号的问题, key、value最好使用双引号来引
$obj json_decode('{"me":"this"}');  // 属性和值都是用双引号
var_dump($obj);

结果:
object(stdClass)#2 (1) {
  ["me"]=>
  string(4) "this"
}

$obj json_decode("{'a':'this'}");  // 属性和值都是用单引号
var_dump($obj);

结果: NULL

使用Services_JSON 倒是没有问题的
$json = new Services_JSON();
var_dump($json->decode("{'a':'this'}"));
exit;

输出:
object(stdClass)#2 (1) {
  ["a"]=>
  string(4) "this"
}

3.  特殊字符的转移问题
对于双引号、斜线、反斜线是需要转义的

今天重新了解了json这个东西,仔细解读了: http://json.org/  ,特别是里面的图的理解。

bat 脚本实例

1. for循环

循环数字:
@echo off
FOR /L %i IN (1,1,10) DO echo %i
#rem 输出 1 2 3 … 10

FOR %i IN (1,1,10) DO echo %i
#rem 输出 1 1 10


匹配当前目录下的所有文件(不包含子目录):
for %i in (*) do echo %i

匹配d:\ 目录下的js文件(遍历子目录):
for  /R d:\ %i in (*.js) do echo %i

循环目录(
不包含子目录),不包含文件:
for /D %i in (*) do echo %i

循环文件中的内容(按行分析):
for /F %i in (a.txt) do echo %i
#rem /F 说明set 是文件名

2.