Loading...

Tag Archive for 'babel'

    AD: 猛买 | 快递查询 | Jobsdigg | 很棒的男装店

如何安装Babel v0.6

今天试试装了一个新的Babel。虽然V2EX已经远去了但是Babel这套优秀而Geeky的论坛系统还一直被人关注。这里说的是在Dreamhost安装Babel v0.6的过程。感觉和0.5有一些变化,正好晚上熬夜,所以记下来备用。 Babel不是给傻瓜级的新手用的。如果你对Linux没有些了解的话,配置起来会比较复杂。 首先需要从这里下载babel的压缩包。我是用wget直接下载到服务器的,因为所有配置都可以在服务上进行。顺便说,下载的速度平均达到了3.9M/s,DH的服务器,带宽真不是吹的。 然后把得到的压缩包解压开——在shell中可以用unzip命令。比如解压到babel目录,目录下会有很多文件夹,其中htdocs就是网站的根目录。这时去DreamHost的控制面板里,增加一个网站,把根目录指向/home/username/babel/htdocs。同时,别忘了把配套的mysql数据库也创建一个。 下一步就可以在shell中打开/htdocs/core/Settings.sample.php进行编辑了,我用的vim。 修改 define(’BABEL_PREFIX’, ‘/www/babel’); 为 define(’BABEL_PREFIX’, ‘/home/blogkid/babel’); define(’BABEL_DB_HOSTNAME’, ‘127.0.0.1′); 你的数据库地址 define(’BABEL_DB_PORT’, 3306); 不用动 define(’BABEL_DB_USERNAME’, ‘XXXXXX’); 你的数据库用户名 define(’BABEL_DB_PASSWORD’, ‘XXXXXX’); 你的数据库密码 define(’BABEL_DB_SCHEMATA’, ‘XXXXXXl’); 你用来跑babel的数据库名称 修改 define(’BABEL_DNS_NAME’, ‘www.v2ex.com’); define(’BABEL_DNS_DOMAIN’, ‘v2ex.com’); define(’BABEL_DNS_FEED’, ‘feed.v2ex.com’); define(’BABEL_FEED_URL’, ‘http://www.v2ex.com/feed/v2ex.rss’); 为 define(’BABEL_DNS_NAME’, ‘www.yourdomain.com’); 换成你的域名 define(’BABEL_DNS_DOMAIN’, ‘www.yourdomain.com’); define(’BABEL_DNS_FEED’, ‘www.yourdomain.com’); define(’BABEL_FEED_URL’, ‘http://www.yourdomain.com/feed/v2ex.rss’); 编辑好之后,保存为Settings.php,系统的设置就可以用了。 别忘了,还没建数据库表呢。用mysql连接到数据库,命令为: mysql -u xxxx -pxxxx -h mysqlhost tablename [...]

Project Camel Explained

最近在忙着做一个叫Camel的项目,用上GTD之后,我也把项目的进程放到了里面,这样可以被监督着。Camel是用来做一个提供建站服务的东西,可以让用户轻易地搭建一个功能齐全的网站。同时我也想对现有的一些同类的程序做些改进,看看他们的数据库和页面,做的实在不让人满意。 从技术上,我觉得我可以从中学到很多。开始在web程序中试用面向对象,是从牛扑开始的(Project ZLLP)。但独立地大规模地使用对象,是在期末软件实习里面做的在线购物车(Project OLBK),老师看完我做的东西之后,说可以拿来当毕业设计了,顺理成章地拿了优──实际上我只做了7、8天的样子。而现在我正在做的Camel 里面,一切都是对象。 当接到一个HTTP请求,服务器上会用.htaccess文件将所有的都请求重定向(不是301或302,而是Rewrite)到一个叫做page.php的文件,当然,带着不同的GET参数。page.php中会初始化一个Site对象,这个对象里除了一些必要的内部变量,还包含了缓存对象、数据库对象、smarttemplate对象,以及我自己写的字典对象、语言包对象、分页对象、校验对象等等。所有的任务都在Site内部完成,然后通过smarttemplate显示出来。现在,这样的一个骨架已经完成了。 后台管理我也打算采用类似的方式,不过还没有进行设计,相对来说可能要花更多的精力。 很久以前读了Babel的程序,感叹Livid的才华。用完全的面向对象写一个社区程序,之前的人们也许想都没有想过。最大的那个文件有几百K──想像一下,全部手写的程序,几百K实在是庞然大物了。而Babel的设计思想至少影响了我的3个项目,虽然,和babel的差距还很远。 2005年我刚上大学时17岁,85年出生的Livid20岁。明年即将满20的我,不知道能学到Livid的几分。而Livid更打动我的是那种轻松闲适的生活态度,同样是85年,有的人让我顶礼膜拜,有的人在我心里还是小女孩。

Cache

最近在研究PHP中的缓存,在牛扑上一个简单的图书信息页面(比如这个)都要进行至少9次数据库查询,而其中大部分东西都是在相当长一段时间不会变的,所以把这些内容缓存出来是很必要的。其实现在的牛扑一部分内容是有缓存的,当然效果很好,但缓存没有大规模使用,会限制整站的速度。于是我开始找一种通用的缓存机制,果然被我找到了,那就是ZF中的Zend_Cache。 其实缓存的概念在很多地方都有,CPU中有一级缓存二级缓存,缓存的存在大大提高了信息交换的速度(当然,和命中率有关),其实是一种空间换时间的办法。空间换时间的思路在编程中也有,特别是在做ACM时,对解法要求的效率很高,这些时候“空间换时间”的思想往往会对解题有很大帮助。 Zend_Cache是包含在ZendFramework中的,我查看了一下官方文档,发现介绍的比较简单。后来找到了Babel的程序,才看到了实例。V2EXCore.php中有这样一段: if ($o = $this->cs->get(‘babel_top_wealth’) && $cached) { echo $o; } else { ob_start(); /*output sth.*/ $o = ob_get_contents(); ob_end_clean(); $this->cs->save($o, ‘babel_top_wealth’); echo $o; } 其中$this->cs是一个初始化好的缓存类。在这里,思路是这样,如果缓存”babel_top_wealth”命中,就输出,如果没有命中,就通过ob_start()/ob_get_contents()获得输出的内容,然后保存到缓存。坦白说,这个比我以前自己写的缓存类好使多了。 现在唯一的问题是,缓存很多的话查找也是一个问题。牛扑上的50W本书假如有10W本进入缓存,估计需要的空间在1G左右。这个时候,到底是数据库的速度快呢,还是利用程序的逻辑从磁盘上读的速度快呢?

Babel和SEO

用babel的时间加起来其实只有3天,但是它真的太好用了我忍不住就要写它。 很早的时候我用Google搜索blogkid,发现我的blog排在第一,紧跟在后面的就是V2EX上我的主页。坦白说,我在V2EX并没有什么大的响动,主页上内容也不多,但不知道为什么,就是能排到前面。 前天装好了InHDU,昨天就发现百度收录已经有145条了——这么快。牛扑在放上去一周之后百度收录只有25条,当然,我自己没有什么SEO的经验。如果能有牛扑的数据量+babel的SEO,那就所向披靡了,哈哈哈哈。 所以下一步我挺想把牛扑的用户界面改装一下做成Babel的样子,初步的研究表明,babel程序生成的页面虽然有很多链接,但是分布相当合理;不同的目录安排不同的内容(这个牛扑也做到了啊) ;还有一点,在V2EX Lab也谈到了:“尽可能地符合 W3C 标准是我们的目标之一”——符合标准的网页更受引擎喜欢。 慢慢来,慢慢来,暑假里好好改进一下牛扑。

终于搞定了Babel

一直想装一个Babel耍一下,可是我在自己的Linux上都没有成功过。昨天既然买了服务器,就想再试试。其他都容易做,就是到了.htaccess上出了问题。(我自己认为最头疼的两大问题是编码和Rewrite,呵呵,经常让我一搞就是一天)。 一直觉得设置.htaccess文件会很麻烦,于是自作聪明地想了很多办法。没想到后来在V2EX看到一篇指导安装的文章,照着那个很简单地就搞定了。可是装好Babel做什么呢?我还没想好。Babel是个很好的论坛系统,但是对系统的依赖太高,安装不方便,是个不小的缺陷。现在在V2EX有一批网友正在致力于改善V2EX的安装过程。 今天在服务器上下载Babel压缩包的时候,10.96M的文件只用了1秒。DH的网就是快阿。今天我们寝室的兄弟们Blog都已经到了新的服务器上: Alone: http://www.yu1986.cn POPO:http://blog.paopub.cn 小优:http://blog.town26.cn 他们用的都是新的WordPress2.1,看得我心里痒。

About further coding with PHP

http://www.livid.cn/doc_view.php?doc_id=5479 In this article Livid talked about the main develop idea of project BaBel. A lot of classes were used in Babel. In ECshop, an open source web system, there’re over fifty classes, too. Although I’ve only finished several projects, there is a lot of code to be repeated in different projects. Simply copy and [...]

babel

我是真的很喜欢那个叫做babel的论坛系统,太美妙了,让人们不必再面对千篇一律的pw或者dvbbs。但今天下载下来才发现,似乎只能用在linux上。没办法,再整个linux吧。我已经为ubuntu linux浪费过3张CD了。 今天下午一时兴起,试了一下手机写blog的功能,心里想如果可以,我就在火车上也能写blog了。开始很顺利,但最后发表的时候出了问题,功亏一篑。让我对exblog的失望更大了……在手机上写blog的想法也打消了——不过后来想起馒头最近似乎在研究wap,说不定可以一起交流交流呢,再自己动手把他搞定(反正也不是一次两次了,exblog很让人失望)。 到了论坛水区才知道银子前一段病了,确实很心疼她,我都不知道为什么,虽然她在msn上从来不理我。今天我们选课开始,可是学校的服务器顶不住人多,挂了。正说着,虚拟机已经装好,这次我学乖了,不再刻盘了……