20100508

Publish: 2010-5-8 15:34:28 Author: Anylei Category: My Diary 7 Comment(s)

昨晚全班吃了散伙饭,用“折腾”这个词貌似更准确一点。除了父母以外,辅导员与部分同学似乎对我挺有期待,或许这些只是应酬,但是我本应该努力去做,不是么?那么我希望让自己变得年轻点,变得单纯点。

生活还是要继续,接下来无论如何也要开始找工作了。所以分别在51job.com和zhaopin.com上完善/填写了简历,得知需要经常“刷新”简历才能“排名靠前”后,还拿Python写了个小玩意放到GAE上来定时“刷新”简历。经过观察,简历“被浏览”的次数相对于N久不去管简历时明显的多了,但是仅仅是相对而言。看来还是要投简历,投简历还是自己人工来好了。

其实我对工作的要求真不高,最主要的是工作环境与学习氛围要好。因为,虽然希望让自己变得更年轻,但是我毕竟还很年轻 :)

阅读剩余部分...

20100405

Publish: 2010-4-5 14:50:16 Author: Anylei Category: My Diary 2 Comment(s)

最近对这个博客的关注又少了,上一篇日志距今整整两个月了,真感慨时间过的真快。

这段时间班上基本没人来上课了,大都找工作去了,我还是一如既往的“沉着”。并非很麻木很颓废,仅仅是暂时不想去找工作。

当然学习还是始终没有放下,恩,经常跑图书馆。To do list大部分已经完成,还剩下的短时间是没法搞定了,预计毕业前可以OK。

总之是很享受这种自娱自乐的学习过程,我希望能一直持续下去,做自己所想。很天真?呵呵。

接下来还是继续充实To do list,继续完成。

阅读剩余部分...

十分之一的中国

Publish: 2010-2-5 16:11:59 Author: Anylei Category: Collection 0 Comment(s)

网易新闻2010春运策划《十分之一的中国》,很赞,很感动,有股分享的冲动。感觉网易相比于其他门户,有一些不一样的地方,很难言喻。

地址:http://news.163.com/special/000137OF/chunyun2010.html(via  @ecvip

我看之前有9条跟帖,看完刷新后,0条跟帖,很诡异,莫非是错过了什么有意思的跟帖?

阅读剩余部分...

选择Chrome作为自己的主力浏览器

Publish: 2010-2-2 20:19:07 Author: Anylei Category: My Diary 2 Comment(s)

用Firefox已经很多年了,也用的很习惯。虽然以前也安装过Chrome,但也没经常使用,主要是因为Firefox下的一些扩展在Chrome上找不到替代品,最后Chrome还是逃不了被卸载的命运。

近段时间我的Firefox 3.6总是莫名其妙的假死,持续时间虽然很短,但是很让人郁闷。也不想重新安装,因为重新安装对我来说意义不大,替换用户配置后该是什么样还是什么样。除非扩展也重新安装,重新配置,我实在是没这个勇气。不得已只能重新试试Chrome了,试的过程也就是找扩展的过程,让Chrome能尽量满足我以前养成的习惯,最终结果还是挺满意的。

这是我的Chrome扩展。Chrome下有些扩展并不是很完善,对一个完美主义者来说,宁可不用,也不愿将就。所以这10个扩展就是在官方扩展中心挑挑拣拣最终留下来的,对我来说基本够用了,另外我也不想让资源管理器太过壮观(每个扩展在Chrome中就是一个独立进程)。扩展虽然少,但占内存真不少,不过本本不算太次,稳定性也可以,也就释然了。

比较遗憾的是官方扩展中心里的Firebug,Roboform(我现在用的是Lastpass)比较抽风,根本用不起来,也没有类似Firefox下Tab mix之类的扩展。另外,重要的是,Chrome简洁的界面能够保持,不像Firefox下很多无良扩展乱加东西,虽然也能改掉。

阅读剩余部分...

Roclog博客系统源码浅析(2):业务逻辑

Publish: 2010-1-31 21:08:58 Author: Anylei Category: Technology 1 Comment(s)

Roclog 博客系统源码浅析(1):综述中,我们已经了解到从一个请求开始到浏览器展示出页面系统内部做了什么,当然只是大致流程。其他步骤都很简单,可以忽略。但是对于查询数据库返回实体,到将生成的字符串输出给浏览器这个过程中具体发生了什么,我们还不知详情,这一篇就来浅析。

Logic类库包含了Roclog的大部分业务逻辑,流程都差不多,所以我们还是以前台请求Page页面为例来窥见。

首先是Logic.Web.WebPage.OutWrite方法先中获得Page实体(Setting实体略,这里有点疑惑,系统设置一般没人经常改,为什么不缓存?),如图。

然后会将实体中键的值进行XML格式化,并拼接字符串,结果如图。

至此,Page页面的XML化数据已经OK,当然现在还不能直接转换,因为还少很多XML数据,比如最新文章,最新评论,好文章,热门文章,随机文章,分类,统计信息等等。接下来调用Logic.Web._WebBaseXml.OutBaseXml方法来获取以及处理这些数据,这里首先判断是否缓存然后再获取,其他的过程与上述Page实体中键的值进行XML格式化并拼接大同小异。只是这里有N个+=操作符,- -,换成StringBuilder.AppendForma方法是不是效率方面会好很多?

经此,最终字符串如下图。

其实这里实在没有什么好说的,大量的查询数据库、拼接而已。不过,获取“所有”XML化数据通通返回,这一点让我觉得很诡异,因为不管是不是在XSLT文件中调用(比如是否调用随机文章等)都会这样。下面来看看最终XML是如何通过XSLT生成XHTML(或者直接返回XML数据,比如RSS)发送给浏览器的,这也是Template.XsltTemplate类的职能。直接抓图吧。

其中_argList为XsltArgumentList类的实例,并AddExtensionObject("roclog:function", new _ALFun()),所以_ALFun类中共有方法可以直接在XSLT文件中调用。一个比较有趣的现象,在Template.XsltTemplate类构造函数中有Stopwatch.Start方法,在输出给浏览器之前有Stopwatch.Elapsed属性,这告诉我们页面底部的Processed Time只是内存中XML文件转换所用的时间,并不包括查询数据库以及拼接字符串的时间。

好吧,这一篇又完了,果真是浅析啊。

阅读剩余部分...