Archive for the ‘默认分类’ Category
Sunday, January 24th, 2010
ColaPHP的第一个beta版本,代号:Practice,已经实践的优化,可以适量应用在实际项目中,相比较0.4alpha,比较大的修改如下:
增加字符串加密助手,支持XOR、mcrypt加密,支持混淆
增加分页类
重构了HTTP请求类,可定制性更强
重构了Validate类,增加批量校验
其他代码重构以及bug fix
下载ColaPHP 0.5beta,阅读ColaPHP文档,访问ColaPHP项目。
下一个版本0.6beta开发代号:Easy,将在易用性方面进一步优化。
Posted in 默认分类 | 5 Comments »
Saturday, January 23rd, 2010
This slide will tell you how to use MongoDb as MySQL in your application.
Posted in 默认分类 | 1 Comment »
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文件里面,剩下的就是享受了。
Posted in 默认分类 | 2 Comments »
Thursday, December 31st, 2009
又是一年算账的时候,去年的今天写了2009年的一些计划:网络(socket)/桌面(gui)编程;一个精巧的PHP框架;数据挖掘;多一些好朋友。socket/gui编程算是稍稍入门吧;PHP框架(ColaPHP)已经发了4个alpha版本,目前从实际项目中看表现还可以,可能下一个版本就进入beta阶段,beta意味着ColaPHP逐步趋于稳定;数据挖掘前半年做的比较多,进展不算太大;好朋友多了一些,此事甚为欣慰。
2009年技术上主要是代码方面的成长,重构的事情做的比较多,已不太相信过于花哨的玩意。脾气方面,"骄躁"二字少了些。回过头来看2009,不觉太多收获,亦不觉浮度。
2010年想要做的一些事情:学一门新语言;ColaPHP发一个GA版本;数据挖掘,做一个开源的推荐系统;更多的好朋友。
希望春天能在2010年到来。
Posted in 默认分类 | 3 Comments »
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。
Posted in 默认分类 | 8 Comments »
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
Posted in 默认分类 | No Comments »
Wednesday, March 4th, 2009
用自建的推荐系统给自己推荐歌曲,排在前面的居然有一首《一生所爱》,看大话西游的时候就特别喜欢这首歌,一直不知道叫什么名字,人生要是如算法那样简单该是多么的好。
一生所爱
曲:卢冠廷
词:唐书琛
编:卢冠廷
唱:卢冠廷
从前现在过去了再不来
红红落叶长埋尘土内
开始终结总是没变改
天边的你飘泊白云外
苦海翻起爱浪
在世间难逃避命运
相亲竟不可接近
或我应该相信是缘份
情人别后永远再不来(消散的情缘)
无言独坐放眼尘世外(愿来日再续)
鲜花虽会凋谢(只愿)但会再开(为你)
一生所爱隐约(守候)在白云外(期待)
苦海翻起爱浪
在世间难逃避命运
相亲竟不可接近
或我应该相信是缘份
苦海翻起爱浪
在世间难逃避命运
相亲竟不可接近
或我应该相信是缘份
自觉好像一条狗。
Posted in 默认分类 | No Comments »
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.
Posted in 默认分类 | No Comments »
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,大家都会是好样的。
Posted in 默认分类 | 6 Comments »
Wednesday, November 26th, 2008
本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2008/11/sphinx-on-windows-xp/
前一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/Ruby/etc)方便调用的全文检索系统。网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在*nix环境下,作为学习测试,还是windows环境比较方便些。
本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索,配置部分在linux下通用。
一、关于Sphinx
Sphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如, 嵌入到其他程序中)需要联系作者(Sphinxsearch.com)以获得商业授权。
一般而言,Sphinx是一个独立的搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。
当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS的原生支持)。
搜索API支持PHP、Python、Perl、Rudy和Java,并且也可以用作MySQL存储引擎。搜索API非常简单,可以在若干个小时之内移植到新的语言上。
Sphinx特性:
高速的建立索引(在当代CPU上,峰值性能可达到10MB/秒);
高性能的搜索(在2–4GB的文本数据上,平均每次检索响应时间小于0.1秒);
可处理海量数据(目前已知可以处理超过100GB的文本数据,在单一CPU的系统上可处理100M文档);
提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;
支持分布式搜索;
提供文件的摘录生成;
可作为MySQL的存储引擎提供搜索服务;
支持布尔、短语、词语相似度等多种检索模式;
文档支持多个全文检索字段(最大不超过32个);
文档支持多个额外的属性信息(例如:分组信息,时间戳等);
停止词查询;
支持单一字节编码和UTF-8编码;
原生的MySQL支持(同时支持MyISAM和InnoDB);
原生的PostgreSQL支持.
中文手册可以在这里获得,感谢译者的辛勤工作。
二、Sphinx在windows上的安装
1.直接在http://www.sphinxsearch.com/downloads.html找到最新的windows版本,我这里下的是Win32 release binaries with MySQL support,下载后解压在D:\sphinx目录下;
2.在D:\sphinx\下新建一个data目录用来存放索引文件,一个log目录方日志文件,复制D:\sphinx\sphinx.conf.in到D:\sphinx\bin\sphinx.conf(注意修改文件名);
3.修改D:\sphinx\bin\sphinx.conf,我这里列出需要修改的几个:
type = mysql # 数据源,我这里是mysql
sql_host = localhost # 数据库服务器
sql_user = root # 数据库用户名
sql_pass = '' # 数据库密码
sql_db = test # 数据库
sql_port = 3306 # 数据库端口
sql_query_pre = SET NAMES utf8 # 去掉此行前面的注释,如果你的数据库是uft8编码的
index test1
{
# 放索引的目录
path = D:/sphinx/data/
# 编码
charset_type = utf-8
# 指定utf-8的编码表
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
# 简单分词,只支持0和1,如果要搜索中文,请指定为1
ngram_len = 1
# ...
Posted in Full Text Search, Open Source, 默认分类 | 10 Comments »