Archive for the ‘默认分类’ Category

基于MongoDb的S3实现

Friday, May 7th, 2010

原理是利用MongoDb的GridFS,伸展性方面交由MongoDb的auto sharding去实现,这里用PHP给MongoDb绑了个S3出来,支持选择文件存储节点,支持文件分目录存储,这样的好处是对于一些受时间影响比较明显的文件,可以按照年月的形式存储,减轻历史包袱。 首先,配置MongoDb GridFS节点信息:

ColaPHP 0.5beta发布

Sunday, January 24th, 2010

ColaPHP的第一个beta版本,代号:Practice,已经实践的优化,可以适量应用在实际项目中,相比较0.4alpha,比较大的修改如下: 增加字符串加密助手,支持XOR、mcrypt加密,支持混淆 增加分页类 重构了HTTP请求类,可定制性更强 重构了Validate类,增加批量校验 其他代码重构以及bug fix 下载ColaPHP 0.5beta,阅读ColaPHP文档,访问ColaPHP项目。 下一个版本0.6beta开发代号:Easy,将在易用性方面进一步优化。

MongoDb In Action

Saturday, January 23rd, 2010

This slide will tell you how to use MongoDb as MySQL in your application.

Python处理MP3的歌词和图片

Thursday, January 21st, 2010

一些MP3播放器(包括iphone、ipod、itouch、blackberry等)可以在播放mp3的时候显示专辑图片、歌词等信息而不需要额外的图片文件和歌词文件,仅仅一个mp3文件就搞定,比较有意思。除了用专门的软件(比如itunes)来制作这样的mp3,我们还可以用程序来批量生成。 查阅mp3头信息ID3V2的技术文档,发现可以往ID3信息里面加入歌词和图片信息(可以在页面上查找Lyrics、Attached picture就能发现相应的内容)。有了官方格式上的支持,我们要做的就是把歌词和图片加入到MP3文件中去。 测试一些开源的软件包,发现一个比较可靠的:eyeD3,由python语言编写,直接上代码: #coding=utf-8 import eyeD3 import re # mp3文件 mp3_file = '/path/to/foobar.mp3' # lrc歌词文件 lrc_file = '/path/to/foobar.lrc' # 专辑图片 pic_file = '/path/to/foobar.jpg' # 实例化eyeD3 tag = eyeD3.Tag() # 绑定到mp3文件 tag.link(mp3_file) # 去掉原文件中可能存在的图片 tag.removeImage() # 去掉原文件中可能存在的歌词 tag.removeLyrics() # 设定编码,非常重要,否则不支持中文 tag.encoding = '\x01' # 添加图片 tag.addImage(3, pic_file, u'') # 添加歌词,注意要utf-8编码,去掉lrc中时间信息 tag.addLyrics(re.sub('(\[.*?\][\n]*)+', '', unicode(open(lrc_file, 'r')).read(), 'utf8'))) # 更新到文件 tag.update() 代码非常简单,需要注意的是设定编码,不然歌词就乱码了。有了eyeD3之后,可以写个爬虫,从网上抓下歌词和图片直接灌进MP3文件里面,剩下的就是享受了。

还在路上

Thursday, December 31st, 2009

又是一年算账的时候,去年的今天写了2009年的一些计划:网络(socket)/桌面(gui)编程;一个精巧的PHP框架;数据挖掘;多一些好朋友。socket/gui编程算是稍稍入门吧;PHP框架(ColaPHP)已经发了4个alpha版本,目前从实际项目中看表现还可以,可能下一个版本就进入beta阶段,beta意味着ColaPHP逐步趋于稳定;数据挖掘前半年做的比较多,进展不算太大;好朋友多了一些,此事甚为欣慰。 2009年技术上主要是代码方面的成长,重构的事情做的比较多,已不太相信过于花哨的玩意。脾气方面,"骄躁"二字少了些。回过头来看2009,不觉太多收获,亦不觉浮度。 2010年想要做的一些事情:学一门新语言;ColaPHP发一个GA版本;数据挖掘,做一个开源的推荐系统;更多的好朋友。 希望春天能在2010年到来。

ColaPHP-0.2-alpha发布

Tuesday, July 28th, 2009

相比较0.1alpha,比较大的修改如下: 增加了Cache处理模块,支持APC、eAccelerator、Memeched、File、Xcache、Dba缓存 增加日志处理模块,支持Echo、File、Null三种类型 去掉了Cola.php中404处理,建议用户在url规则最后的位置加上'/.*/'来处理其他任何没有匹配的请求 demo做了一点小的修改,有一个演示不需要定义url规则、跳过Router.php的方法(参见demo/norouter.php) 一些bug的修订 同时欢迎Python.Han, darkredz加入到项目中来,有你们ColaPHP会更精彩。 下载0.2alpha,不过建议随时跟进我们的SVN://colaphp.googlecode.com/svn/trunk/,ColaPHP一直在活跃开发。 继续招募PHP极客加入Cola,联系fuchaoqun#gmail.com。

解决Pidgin掉线、自动退出、假死、无响应

Tuesday, April 14th, 2009

最近几天,被pidgin折腾疯了,一会上线,一会自动退出,一会假死,看到好友发过来消息,可阅读不了具体内容,折腾的身心疲惫,升级到最新版本也无济于事。 由于在pidgin上登录了msn和gtalk帐号,初步怀疑是MSN插件的问题,貌似MSN之前升级了版本。禁用MSN帐号后,pidgin恢复稳定。 郁闷的不行了,找到一个第三方的MSN插件:http://code.google.com/p/msn-pecan/ wget http://msn-pecan.googlecode.com/files/msn-pecan-0.0.18.tar.bz2 tar xjf msn-pecan-0.0.18.tar.bz2 -C /usr/local/src cd /usr/local/src/msn-pecan-0.0.18/ make make install 安装之前记得安装libpurple-devel yum install libpurple-devel 安装好了之后,pidgin中会出现WLM协议,用这个做MSN登录,世界总算清静下来了。 我这边是CentOS 5.3,Pidgin 2.5.5-1.el5,其他版本安装说明,阅读http://code.google.com/p/msn-pecan/wiki/HowToInstall

一生所爱

Wednesday, March 4th, 2009

用自建的推荐系统给自己推荐歌曲,排在前面的居然有一首《一生所爱》,看大话西游的时候就特别喜欢这首歌,一直不知道叫什么名字,人生要是如算法那样简单该是多么的好。 一生所爱 曲:卢冠廷 词:唐书琛 编:卢冠廷 唱:卢冠廷 从前现在过去了再不来 红红落叶长埋尘土内 开始终结总是没变改 天边的你飘泊白云外 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 情人别后永远再不来(消散的情缘) 无言独坐放眼尘世外(愿来日再续) 鲜花虽会凋谢(只愿)但会再开(为你) 一生所爱隐约(守候)在白云外(期待) 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 苦海翻起爱浪 在世间难逃避命运 相亲竟不可接近 或我应该相信是缘份 自觉好像一条狗。

Key-Value型数据存储

Tuesday, January 20th, 2009

本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2009/01/key-value-stores/ 早上看到博客Anti-RDBMS: A list of distributed key-value stores(抵制关系型数据库:分布式key-value存储列表),最近的项目中也有用到类似Key-Value的存储。 memcached是最典型的key-value型存储,估计也是使用最广泛,但是由于memcached数据存放在内存中,服务重启或者系统down机之后就会丢失,只能用来缓存非关键数据(丟了没关系,重建就可以),或者考虑memcached的持久化方案:memcachedb,不过还是建议缓存次关键数据,比如文章点击数,写入失败或者丢了数据也不是太要命。 有时候我们的数据本身就是key-value型的,比如字典数据,就两列:单词->释义,这样的数据存mysql之类的关系型数据库就有点太"重"了,大可采用key-value型的存储方案,Berkeley DB就足够用了。 一直在关注CouchDB,已经是Apache的顶极项目了,系统稳定和版本更新自然有保障一些,居于Erlang语言开发,高并发也不是问题,relication也集成在里面,分布式也很容易做到,提供HTTP Restful接口,方便调用。个人觉得最适合股票类的网站,需要实时更新股票价格,用这个简直就是就像是定制的,不知道新浪财经的同事有没有关注。 Anti-RDBMS: A list of distributed key-value stores还提到HyperTable,百度居然赞助了这个项目,实在难得,说明项目确实不错,希望百度也分配一些工程师进去,完善开发HyperTable,到那个时候平民百姓也能用到BigTable了。 今年的也准备写个key-value的项目,计划中,关键字:Python,stackless,UDP,BDB ,memcached protocol,Low mem use.

正走在路上

Wednesday, December 31st, 2008

去年的这个时候我琢磨是不是要离职,事业单位,福利待遇都很好,离开了什么都要重新再来,思前想后,还是决定出来看看,毕竟在学校呆了18年了(小学5年+初中3年+高中3年+大学4年+学校出版社3年),在这个不大不小的年纪做这个决定是必要的,估计再过几年就不会动了,也动不了了。2008年2月27日,给出版社的同事写了一封致年轻人的信,然后3月份就到FH网去报到了,刚从学校出来的时候,可能那个经济环境还不错,拿到了些个offer,选择FH网是觉得是门户,公司大一些可能会正规一些,实际怎么样就不说了,一个项目下来,三个技术辞职,剩下的一个是测试,后来陆续在sina看到原来的同事来面试,想想出走还是明智的。6月份到sina报到,直至现在。 2008年成长最快的还是技术方面,PHP还算熟悉了,Javascript也凑合了,抽空做了做Python,已经离不开了,数据挖掘主要方向是推荐系统,也有些收获,过几天把netflix prize的分数晒晒。 与人交往方面还是没什么进步,基本上关系好的是我尊重的人和尊重我的人,所以你要成为我的好朋友,你需要有值得我尊重的东西,尤其是品质,或者尊重我,这样会友好很多。如果你不在二者之列,太对不起了,过去的一年我估计没少得罪你。 我出来之后有人问我出来感觉怎么样或者出来好不好,正好昨天看到一则小故事,人问佛:我不知道我现在的爱是真的还是假的,我该怎么办?佛说:有机会就去爱吧,不要管是劫还是缘,劫也是缘。所以有机会就试试吧,反正我的感觉很好。 2009年主要要做的事情:网络(socket)/桌面(gui)编程;一个精巧的PHP框架(雏形差不多了,和原生的PHP相比性能损耗大概在1.5ms左右);数据挖掘(推荐系统差不多了,试试其他的领域,有可能在XX预测的方向);多一些好朋友。 春天快要来了,因为人们都后知后觉,2009,大家都会是好样的。