中庸之道的newsfeed的设计

作者:admin,2010年四月25日 3:57 上午, 分类:数据结构算法, 网站架构

follows大道至简,道道相同,其实世界本没有那么复杂,不过人们把它描写的多样化了,他就那么复杂了,抽象到一定程度发现互不相关的东西都有他的共性,无论在任何领域都少不了change,有change都有质变,质变点就有极值点,min,max,在数学中尤为常见。但有时需要结合最大和最小结合运用才能创造出合理,譬如在web2.0时代颇为流行的newsfeed。twitter,facebook,其实googlereader等都一样,一个生产者,一个消费者。设计往往经常是大家谈论的两种,一种是存储一份,消费者就登陆时候就pull过来,例如你登陆豆瓣,就会看到你好多好友的信息,都是pull过来的,如果你比较强大可以把生产者的内容给每一个消费者发一份。但是也会面临瞬间分发的压力,虽然在发的时候有一定的延时性。但用户读取的时候就很容易,读跟自己相关的就可以了。目前好多有这种应用的都是这种操作。以下是facebooke的。

facebook newsfeed

facebook newsfeed

在看看一篇有关校内的http://www.54chen.com/uncategorized/net-new-to-live-for-all-to-share.html

用的是一些key value的数据库。也是push的思想,即给所有的相关的好友dispatch一份。 但是想twitter这样的有些突发事件或者名人

follows过多的话会有多大的压力无论是写还是读。  后来躲到一篇follows的论文,好像一个普林斯顿大学大学的人写的,专门解决这种臭名昭著的棘手问题,没看的太明白,但是大概思想是把生产者和消费者分类,因为有些生成者是高产者,而有些消费者是高消费者,无论单一的产用pull的方式

或者是push的方式都不是太合适,他们会根据用户的生产效率和登录比率来判断到底给用pull的方式或者是push的方式,当然作者也说类似follows的应用时臭名昭著的应用

难于设计扩展等,作者也做了性能优化方面的分析,用了yahoo的开源的pnuts的key value的一个系统。把用户的好友关系抽象成一张图,然后利用一定的算法来优化这种follows的应用。而且作者通过调用twitter的api进行了一些测试,测试效果还不错。

仔细想想也是,以前总以为设计这种系统要么是是push给用户,要么是pull给用户,但是其实两者是可以结合的,相互弥补。

follows的pnuts应用

follows的pnuts应用

看来世事没有绝对性有时候需要结合两个极端来思考问题,中庸也许是一种更好的解决办法。就像老子的思想那样,物极必反。事不能要一个极端。我会附加上作者的论文,本身我也

不全明白,多读几篇follows pdf

1条评论 »

博客记忆

作者:admin,2010年四月23日 6:40 下午, 分类:c/c++, js/web, linux, mysql, php, 心情杂记, 数学

很长时间没有更新日志,大概有几个月了,疏于对知识的学习和管理,可能是跟工作有点忙有关系吧,经常顾着不顾那个,放弃了诸多的学习机会,
不过希望以后能恢复,时间是一种财富,能让你积淀更多的对知识的理解,同时也能验证更多的真理,譬如坚持才是硬道理,这两个月坚持的最好的一件事情还算是对自己花销的记录很分类,方法比较土,就是使用网易的邮箱里的一个小插件,有时候别人问你一个月能花多少钱?像我这种不扫一屋的人是一无所知的,统计了下发现对多的是花在了吃上和没周末的超市。
记得以前写博客都是从外面copy一堆东西,可能是自己的知识欠缺的太多,发现一篇技术文章就copy过来,沾沾自喜一番感觉很有成就感,后来发现好多牛人都是自己写博客,发现自己土了,而且写的都是超高技术含量,,而且现在基本上很多的知识获取都是从blog获得的,自己也曾在google reader里面follow了一堆,曾经每天早上9点到公司都花费10分钟时间,不过有点不好,开始没分类好,造成后来好多看的时候乱,杂乱无章的,挑出那种令你很满意的需要去甄选,所以有时候就懒的去看了。
不过一些东西一旦写下来还是能整理下自己的思维的。而且能做下备忘,所以以后需要把这个习惯坚持下去。今天写这个主要是想试试用vim写博客,用的是vimpress插件,下载地址在http://www.vim.org/scripts/script.php?script_id=1953,下来后直接解压到.vim下就可以了,修改blog.vim下的秘密用户还xmlrpc就可以了。ok,here,travel start。

Tags:
没有评论 »

愚人节的线上事故

作者:admin,2010年四月2日 3:49 上午, 分类:linux

线上出现一次线上事故,事故原因很明了,不像以往,下线一款产品失修改js 导致线上出错,被罚了款。当然虽然是昨天的故障,也不是愚人节我故意的,当然主要原因在于自己,我觉得理所当然不会出现问题了,但是事实不是这样。 意识疏忽。

做下警示:

1  晚上尽量不要上线,头昏脑胀的,就我和一位测试工程师。7,8点上线

2 维护别人写过的代码一定要完全理解看明白别人的代码意思。这点很重要。

3 函数命名,事故的原因主要是修改一个函数引起,函数名字叫f();,当时也没看明白,认为既然一本版本下线了,就对应的把这个版本的所有东西删除了就应该对了,既然不做abtest 了,要这个还有啥用,鬼知道函数啥意思,所以干净利落的删除了,也没让测试人员测试其它的页面功能。结果

。。。。。。。。。。

4 ,心理压力太大了 天天进程频繁切换,繁琐的事情太过,心理素质又不行,看来我这个也是搞风险作业啊

1条评论 »

debian上快速安装xcache

作者:admin,2010年一月5日 8:28 上午, 分类:linux, php

不用phpize安装了,debian上可以迅速安装上,需要保证你的/etc/apt/sources.list下面是新的。

然后直接 apt-get install php5-xcache

/etc/init.d/apache2 restart

很快就看到结果了。可以用phpinfo看下。

php -r “phpinfo();”|grep “xcache”

/etc/php5/cli/conf.d/xcache.ini,
xcache.admin.enable_auth => On => On
xcache.cacher => On => On
xcache.coredump_directory => no value => no value
xcache.count => 1 => 1
xcache.coveragedump_directory => no value => no value
xcache.coverager => Off => Off
xcache.gc_interval => 0 => 0
xcache.mmap_path => /dev/zero => /dev/zero
xcache.optimizer => On => On
xcache.readonly_protection => no value => no value
xcache.shm_scheme => mmap => mmap
xcache.size => 0 => 0
xcache.slots => 8K => 8K
xcache.stat => On => On
xcache.test => no value => no value
xcache.ttl => 0 => 0
xcache.var_count => 1 => 1
xcache.var_gc_interval => 300 => 300
xcache.var_maxttl => 0 => 0
xcache.var_size => 0M => 0M
xcache.var_slots => 8K => 8K
xcache.var_ttl => 0 => 0

上面的就是配置相关信息,如果xcache_size=0就是关闭xcache的使用

具体配置参数的意义可以参考http://xcache.lighttpd.net/wiki/XcacheIni#XCacheCacher

然后可以做下压力测试,看看结果。

ab -c5 -n3000 http://liufb.kuxun.cn  并发连接为5,3000次请求

具体我用的是sudo ab -n 1000  http://liufb.kuxun.cn/beijing
安装xcache后的
Server Software:        Apache/2.2.9
Server Hostname:        liufb.kuxun.cn
Server Port:            80

Document Path:          /beijing
Document Length:        98026 bytes

Concurrency Level:      1
Time taken for tests:   373.665 seconds
Complete requests:      1000
Failed requests:        974
(Connect: 0, Receive: 0, Length: 974, Exceptions: 0)
Write errors:           0
Total transferred:      97639210 bytes
HTML transferred:       97172210 bytes
Requests per second:    2.68 [#/sec] (mean)
Time per request:       373.665 [ms] (mean)
Time per request:       373.665 [ms] (mean, across all concurrent requests)
Transfer rate:          255.18 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   330  374 191.1    347    3689
Waiting:      139  188 190.8    162    3502
Total:        330  374 191.1    347    3689

Percentage of the requests served within a certain time (ms)
50%    347
66%    352
75%    355
80%    359
90%    374
95%    414
98%    753
99%   1298
100%   3689 (longest request)

Server Software:        Apache/2.2.9
Server Hostname:        liufb.kuxun.cn
Server Port:            80

Document Path:          /beijing
Document Length:        96315 bytes

Concurrency Level:      1
Time taken for tests:   401.374 seconds
Complete requests:      1000
Failed requests:        914
(Connect: 0, Receive: 0, Length: 914, Exceptions: 0)
Write errors:           0
Total transferred:      97633782 bytes
HTML transferred:       97166782 bytes
Requests per second:    2.49 [#/sec] (mean)
Time per request:       401.374 [ms] (mean)
Time per request:       401.374 [ms] (mean, across all concurrent requests)
Transfer rate:          237.55 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:   372  401  81.0    390    1504
Waiting:      185  213  80.5    202    1311
Total:        372  401  81.0    390    1504

Percentage of the requests served within a certain time (ms)
50%    390
66%    394
75%    398
80%    400
90%    413
95%    443
98%    561
99%    749
100%   1504 (longest request)

后用webbench测试结果可以看到:

没有安装xcache的测试。
liufb@kooxoo240:~/webbench/webbench-1.5$ webbench -c1000 -t 20 http://liufb.kuxun.cn/
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://liufb.kuxun.cn/
1000 clients, running 20 sec.

Speed=903 pages/min, 318838 bytes/sec.
Requests: 301 susceed, 0 failed.

xcache的测试 xcache.size  =               32M

liufb@kooxoo240:~/webbench/webbench-1.5$ webbench -c1000 -t 20 http://liufb.kuxun.cn/
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://liufb.kuxun.cn/
1000 clients, running 20 sec.

Speed=2388 pages/min, 430682 bytes/sec.
Requests: 796 susceed, 0 failed.

的安装不上可以看

http://www.howtoforge.com/xcache-php5-apache2-debian-etch

没有评论 »

做一个积极的思考反省者

作者:admin,2010年一月2日 9:12 下午, 分类:心情杂记

今天北京的雪真的下的不小,索性就坐着床上不出去,早上睡得还好,做了三个梦,起来拿起本书看了看,《影响力》,差不读读完了,算是社会心理学方面的书吧,做销售的应该看一看,坐着提炼的几个观点还是比较认同的,不过写的有些比较繁琐,其实可以精简一些,毕竟大家有些还是能理解的,举例多了也不好,有时候我喜欢看那些薄薄的书,特别是目录索引特别清楚的,就像《如何读一本书》里说的那样,先对书有一个大致的了解,掌握了一个大致的流程脉络就能顺着坐着的思路很快的看下去,繁琐的书有时候像鸡肋,不看吧,觉得还不错,看吧有些感觉是在浪费时间。也许是作者照顾到读者的层次不一样,总之,有些书把作者黑体字的提炼的 比较好的观点看一下觉得已经可以了。快速阅读后,坐下笔记,而有些书这不同。

今天已经是10年的第三天了,元旦那天像09年一样去了西单,整整一年后去西单,发现09元旦离的竟然是这么近,看来过的还真的是太快了。依然是中午没准备好,匆匆忙忙的去吃吉野家,依然是逛一些商场,感觉钱力不只,依然是看到一些抢购的人们,心想,真是疯了,其实想想我也疯了,因为我也加入了他们中的一列,这个也许是社会认同感在起作用吧。发现一年后我的各方面的提高还是比较微小的,但还好我意识到了一些。

09年的一些指标:

技术:

1 找工作的时候猛学了一把,有些东西还是能蒙混过关的,但是基础知识一定需要打捞,不然每次遇到瓶颈了还得需要回去看看基础。譬如学习c语言,学了一段时间然后由于工作比较忙,就奚落了,后来在想学的时候,又得拿起 那些书重新读,其实还是需要坚持不断的去练习,多写,上次写了一次出现了好多问题,特别是指针的。理论需要在实践中才能得到吸收

2 web方面也很少自己写些东西,除了工作方面的,倒是学了点python,shell之类的脚本语言。

3 数学方面,倒是读了不少书,当现在想想有个屁用?还不如老老实实看看mysql。不过有时候看看还是能锻炼我的思维的。

非技术方面:

1 沟通交流的能力:很明显很少对这方面有培养或者提高

2 高效能人方面:公司培训了几次,还是蛮受启发的,卓越的程序员看后也有些启发。起码对自己的思想有些触动。

3 优秀习惯方面: 养成了一些好习惯缺后来给丢掉了,基本上养成半年多的习惯,譬如坚持跑步,锻炼臂力。

4  解决问题的能力:感觉自己的思路还是比较狭窄,有时候不能跳出问题看问题,其实就是经验少。

5 其他一些知识的学习:例如历史,经济,稍稍看过一些不过没自己研究。

10年的一些感想:

首先如题:做一个积极思考的反省着,引用王国维的一句话:入乎其内,故有生气。出乎其外,故有高致。

技术方面:

1 实践并跟踪一些新的架构方面的知识。

2 web从后端到前端的优化积累一定的经验

3 python,c c++之类的要写至少一个项目吧。

4 算法,软件工程等方面,作为专业虽然工作中没有用到,但是作为计算机工程师还是需要了解的。

5 别的数学书不多看把《什么是数学》多看几篇,有机会看下概率论方面的知识。

非技术:

1 首要提高自己分析问题,解决问题的能力

2 交流沟通,演讲,方面的能力提高。

3 英语也是很重要的。口语确实很重要。

等有想到了再补充

没有评论 »

不抱怨的世界

作者:admin,2009年十二月31日 8:16 上午, 分类:心情杂记

也算是2009年最后一篇博客吧,09年感觉过的太快了,也许以后会越来越快吧,在没结婚之前还是需要好好珍惜这些时光,这些也是我们的成长期,今年最大的变化是突破自己换了一次工作,读到一些了好书,但总感觉自己还没有到质的变化,而且有时候还处于间歇段的迷茫,譬如一段时间以来都看些数学相关的书籍,图书馆的那一块都差不多看了不少,例如《西方文化中的数学》,《什么是数学》。很多,技术方面,基本少很少突破,理论上也是没什么进展,而是在遗忘自己学过的东西,有时候很难平衡技术和一些非技术的东西,人文,哲学的,思维方面的,说他不实用吧,当总觉得还是能提高自己的认识的,大道至简,自习思考下好多东西最后到上升到哲学层面。

2008年末,我像现在一样立下一些愿望,现在看来也很少实现啊。不抱怨的世界,不抱怨的人生。希望自己下一年中,提高自己解决问题的能力,扩宽自己的思维。掌握并实践互联网的一些新的有挑战性的技术。有思考时间的时候再写吧

没有评论 »

那个豁然晴朗的日子,我又长大了一岁

作者:admin,2009年十二月15日 9:32 上午, 分类:心情杂记

曾梦想仗剑走天涯,看一看世界的繁华,年少的心总有些轻狂,如今已四海为家。听着许巍的歌曲心中总有些洒脱,心灵感觉不再羁绊,每一次难过的时候,纵向看一看大海,很优美的歌词和旋律,整日忙碌的工作很少有释怀的时候,人待时间长了一个环境总是会被同化的,每周去图书馆我总能找到一种积极向上和对知识渴求的欲望。因为那里很安静,不经意总会让你会陷入沉思。思考改变一切。很欣赏一句话:行为是思考的花朵,而欢乐与痛苦是思考的果实,于是收获着自己的果实,有的甜蜜,有的苦涩。总之有时候我们确实很少来不及思考,更不用谈各种思考方式了。

有时候我们很容易陷入一种迷途,这些人为的东西很难控制的,意识的东西变量更多,只有我们学会自己管理自己的意识,行为,才能更健康的生活,即心智的成熟,就像我们写程序一样,需要对各种异常进行处理,记log,不然一旦陷入一种异常状态就会出现问题,也要学会使用断言,如果发现有些出现问题,要及时告诫自己进行处理。一个人的控制能力,抵御诱惑的能力也决定了一个人的伟大,《蜗居》中的宋思明不是说一个男人的伟大不是为社会做到少东西,而是能抵御诱惑的能力,我觉得伴随着我们心智的成熟,我们个人的会更健壮,及时能管理自己的各种,不止是自己的时间管理,目标管理,压力管理,情绪管理。重要的自己也要自己常常学会反思,学会换个思考方式看问题,恰巧今天看美剧《合伙人》时候说他们克格勃也都会换位思考方式,《积极思考的力量》 讲了很多思考的重要性,思考决定一切,其中提到,我们大多数人的思想好多都是在漫无目的的漂流。所以我们善用思考的力量。在解决问题的时候多思考问题的原因,找到一串串的因果链,也学在这些因果链的交集中,你就会发现问题的本质就在哪里,所谓的天才们,就是能有超强的想象力,总能从看似没有任何关系的事物中,找到他们的联系。也更需要我们的右脑思维,即非线性思维。

那个豁然开朗的日子,我刚刚进入大学,一位师哥背着吉他,忘我的演绎着许巍的《完美的生活》,青春的岁月,我们身不由己。。。。。。。。淡淡的忧伤,那些逝去的大学生活

那个豁然开朗的日子,那个我学校的工作室,一位师弟在恣意的放着许巍的蓝莲花,没有什么能够阻挡,我对自由的向往,穿过幽暗的岁月,多么亲切,当我们的身体不能任我放纵时,就让我们的心灵恣意的流淌,放纵吧。

那个豁然开朗的日子,我又长大了一岁。

没有评论 »

编译安装mysql 5.141源代码,常见两处错误解决

作者:admin,2009年十二月14日 9:37 上午, 分类:mysql

first u must add users for mysql account and group form mysqld

1 groupadd mysql

useradd -g mysql mysql
2 wget source code
http://dev.mysql.com/downloads/mysql/5.1.html 可以到此页面找到最下面
wget
如果是zip 文件 unzip mysql-1.41.zip
或者tar -xzvf mysql-5.1.41.tar.gz  cd mysql-5.1.41
编译安装可以优化许多参数,如静态编译,去掉自己不用字符集,如果不用innodb 也可以去掉。根据自己的环境及需要使用的option
量身打造mysql编译安装参数,据说有些选项可以调高mysql的性能。
./configure --prefix=/usr/local/mysql/ --with-comment=Source
 --with-server-suffix=liufb--without-debug --with-charset=utf8
--with-extra-charsets=latin1,gbk --enable-thread-safe-client
 --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
 --with-mysqld-libs=-all-static --enable-assembler
--without-innodb --with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
如果出现checking for termcap functions library… configure: error: No curses/termcap library found 错误,安装ncurses就可以解决
如果是在debian或者ubuntu下这可以直接:aptitude install libncurses5-dev
或者手工编译下载安装,方法可以google下
编译 安装
# make &&  install
 cd /usr/local/mysql
 scripts/mysql_install_db --user=mysql
如果出现错误:
FATAL ERROR: Could not find mysqld
The following directories were searched:
        /usr/libexec
        /usr/sbin
        /usr/bin
是因为原来装有/etc/mysql/my.cnf引起的。将/etc/mysql/my.cnf删除
 chown -R root  /usr/local/mysql;
 chown -R mysql /usr/local/mysql/var;
 chgrp -R mysql /usr/local/mysql
 cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
 /usr/local/mysql/bin/mysqladmin -u root password '123456'

直接启动:/usr/local/mysql/share/mysql/mysql.server start
/usr/local/mysql/share/mysql/mysql.server stop
或者:
把mysql/bin添加到$PATH变量中:
export PATH=/usr/local/mysql/bin/:$PATH
/etc/init.d/mysqld start
mysql -u root -p12346

没有评论 »

mysql replication 报告

作者:admin,2009年十二月8日 7:04 上午, 分类:mysql, 网站架构

整理的一份mysql replication的报告,主要包括基本原理,一些常见的架构和replication的历史,不能同步等问题
Mysql Replication
View more documents from liufabin 66688.

没有评论 »

我们真的需要全新思维

作者:admin,2009年十二月7日 9:22 上午, 分类:心情杂记, 读书

上周看了丹尼尔的《全新思维》,豆瓣的地址是http://www.douban.com/subject/1799241/,总体看来,还是一本比较有价值的书,适合很多人看。差不多在地铁路上就看完了,很多作者的思想还是比较有预见性的,总体的讲了右脑思维会在未来越来越凸现他的重要性。左脑思维擅长逻辑顺序推理,特点:次序的,字面的,功能性的,文本的,分析的,比较适合做律师,会计,工程师,现代的学校都很重视这种思维的培养,而有些人则适合做发明家,演艺人员,顾问,就是右脑思维,特征,同时的,比喻得,美学的,语境的,合成的,非线性的直觉思维。作者陈述的就是在这个概念时代,右脑思维越来越重要,主要讲了3个原因:
1 物质丰富,一个产品的 功能性已经都能满足,大家更多的是功能性外带来的美感。想象现在好多卫衣的帽子已经不是知识帽子了,而成为一个装饰品。比起芙蓉姐姐,我们更喜欢美女。
2 亚洲的崛起,这个原因作者说了美国的计算机产业的,越来越多的外包给印度,产业链结构在变化,其实一些有价值的设计,创新还是在美国,把越来越便宜的开发抛到了印度。
3 自动化的盛行,两个例子一个是深蓝战胜世界棋王,在逻辑的世界里,计算机的二进制不会逊于人脑在某些方面。人工智能的发展,越来越多的工作可以智能化进行。
然后坐着我们的社会是从农业社会(农民)———–》工业社会(工人)————–》信息时代(知识工作者)—-》概念时代(创造者和共情能力者)
最后作者陈述了引领未来世界的六种能力:
1 设计感
不仅要有功能性,还要有设计感。创造一个仅仅有使用价值的产品或者一种服务,一种体验或一种生活方式远远不够,现在创造一件即外形美观独特,又有内涵的东西不仅获得经济效益,还能满足个人成就感。
作者讲了个有关设计感的例子,2000年总统大选福罗里达州选票因为是折叠式选票的问题,打孔位置设计的不合理。

2 故事感
我们的生活充满了信息和数据,仅仅依靠收集资料准备有效的辩论以及不够了,随时会有人挑你说话的毛病。说服和交流和自我理解的基础是具备有触动性的叙事能力
现在可以看到很多优秀的 广告是以一则故事而留在了观众心中,光有数字不行,故事更令人容易记住,尽管一千个人中有一千个哈姆利特。
3 交响能力
整理事物的交响综合能力。不是分析而是综合能力,能够看到大局 ,跨越局限,能够把不同的个体整合成新的引人注目的事物。观察 各种事物的联系,善于比喻,纵观全局。听交响乐,学画画。可以培养。
4 公情能力
能理解身边人的行为的动机,能识别人的喜怒哀乐???像lie to me里面的?善于创造良好的人际关系,善于照顾别人的感受
5 娱乐感
保持轻松愉悦的心态,具有幽默感
6 探寻意义
追求新的更重要的东西,生活的目的,追求卓越精神的满足。要有信仰。
想想我也是左右脑都开发的人,吃饭,写字用右手,其余左手,可惜两个都不好使。惭愧。左撇子在历史上还是有一批牛人的牛顿?达芬奇?爱因斯坦??

没有评论 »