记点东西
2010年06月5日收藏

没有评论
174 views

5.2 – 6.5收藏

5公里,这段时间下雨,聚会,玩三国杀,跑的比较懈怠,85.5KG

1,EasyUI for jQuery

2,Persona——Web人物角色介绍

3,Web服务器压力测试工具http_load、webbench、ab、Siege使用教程

4,wxpython in action 非常详细的wxpython讲解,对我这种没有做GUI编程的人用处很大。刚看完到11章,准备写一个简单的使用SQLite的报表。

2010年05月8日读书

没有评论
132 views

看完《孤独六讲》

这本书断断续续看了快了一个月,今天把最后几页看完。我打了四颗星,总体上来说还是不错,但是感觉太零碎,作者像是随手拾来,看不到严密的逻辑,感觉天马行空,这种书一般都不讨我喜。

很少人能坦然面对负面情绪,一出现就会想办法消除或者转移走,就像这个时代每个人都在强调自信,强调勇气,每个都在害怕自卑,害怕懦弱一样。人有七情六欲,交替博弈,是一个正反合的过程,一个再自信的人也有自卑的时候,一个再勇敢的人也有懦弱的时候,只要是个人它就无法摆脱这些情绪。不能坦然面对这些负面的情绪,就不能认识自我,更无法获得真正的自信,勇气。

这是一本很诚恳的书,很喜欢刚开始的一句:孤独没有什么不好,使孤独变得不好的,是害怕孤独。

这么晚了还不睡,主要是因为今天很点背,晚上取钱的时候,银行卡忘记拿出来了,一个杯具。

2010年05月6日webgame

没有评论
163 views

WebGame 开发过程与备忘(一)前端基础框架的封装

这个webgame虽然还有bug,有一些功能要完善,界面也要重新更换,但基本上告一段落,我会一般修bug,一边做总结,这是这篇总结的第一章,算是一个备忘。

做这个项目之前,我有2年左右的PHP开发经验,对python有一些了解,javascript一般般,但用起来倒也得心应手。之前对webgame有一些了解,自己也玩过,也debug其中一些认为做的比较好的,这样也就不算陌生。

我的技术背景决定整个webgame是基于PHP+javascript来完成,为了更好的用户体验,我决定采用OPOA的形式。javascript项目有一个问题,就是连接保持,现在流行的comet方式,我都试了一遍,如果没有一个支持这一特性的web server配合的话,都不理想,最后还是使用了flash的socket,后面我会用专门一章节来讲。

其次,在做的过程中也走过一些弯路,比如刚开始,我过于强调所谓的性能,而把很多计算放到客户端来做,为了保证客户端时间正确,又把服务器的时间同步过来等等,做了一些无用功。javascript虽然功能很强大,但过于依赖javascript,限于个人的水平,会导致前端不可控,错误不可重现,bug无法排查,最后会被活活急死。

另一个重要的问题,就是整个后端返回的是数据还是html,我曾经debug一个知名的webgame,发现它整个后端都返回html,当时我不以为然,认为完全没有必要,所以我采用的就是返回json。现在看来其实两个都各有好处,返回html可以避免前端再进行处理(譬如非常烦人的数据组装),只要一个dom就可搞定。返回数据则可以减少数据量,加快响应速度,我现在采用的是数据+javascript模板的方式,javascript模板很少发现有网站在用,模板对于普通网站来说,可能弊大于利,但对于OPOA类的程序,好处显而易见的,配合延迟加载也可以减少一些弊端。

一般应用的过程是:前端 -> 调用后端 -> 处理结束 -> 返回前端,这个过程webgame也有,但webgame有时候会回调前端,即:
前端 ->  调用后端 -> 处理结束 -> 返回前端 -> 再回调前端。

/*
一个例子:购买一个道具,就更新银两的显示。把JRun.loadBack看成是一个ajax的封装。
一般情况下代码会像下面这样写,但这样有一个弊端,不止买道具,其它很多地方(比如卖)也可能要更新银两显示,
难道每一次更新都要这样写吗?
*/
JRun.loadBack('/goods/buy', {goods_id: 1, num: 5}, function(data) {
    var status = data.status;
    if (status == 1) {
        $('#role_tael').html(data.tael);
    }
});
 
/*
下面的代码换了一种写法,所有更新银两的显示都调用了JRole.updateTael。
但是又有一个新的问题,买道具不一定非要银两,有可能是声望,购买成功以后也更新声望的显示,
这时候就需要扩展status,来告诉前端如何处理。
*/
JRun.loadBack('/goods/buy', {goods_id: 1, num: 5}, function(data) {
    var status = data.status;
    if (status == 1) {
        JRole.updateTael(data.tael);
    } else if (status == 2) {
	JRole.updateRepute(data.repute);
    }
});
var JRole = {
    updateTael: function(tael) {
        $('#role_tael').html(tael);
    },
    updateRepute: function(repute) {
	$('#role_repute').html(repute);
    }
};

随着要处理的类型的增多,status会越来越多,整个前端会很臃肿,而且会越来越不可控。如何让后端更自由的调用前端?有一些webgame返回的是html,里面内嵌javascript,这种方式并不推荐。可以采用格式化的返回数据来解决这个问题。

// 前端调用
JRun.loadBack('/goods/buy', {goods_id: 1, num: 5});
// goods/buy返回数据格式
{status: 1, data: {tael: 5}, callBack: "JRole.updateTael(data.tael);"}

这样就清晰简单多了,前端只需一行代码。服务器处理完成以后,自定义callBack作为返回内容,前端会自动调用并将数据传入。只要对JRun.loadBack进行简单的封闭,让它识别callBack的内容。后端对前端的可控性会降低前端的代码量,同时也可应对复杂的交互。

这样的前端设计基本上能满足我目前的应用。另外如果我能在开发早期注意到问题,完全可以在实现控制(JRun.loadBack),模型(后端PHP),模板(javascript渲染)的分离。

2010年05月3日点滴

没有评论
161 views

旭日东升,照我窗台

早上躺在床上,初升的太阳顺着后楼的空隙,穿过窗台,照在我喝完水的杯子上。看着光线中微尘翻滚,心就像宽阔的湖面,无限平静。

我经常搬家,住过很多房子,屋子里的东西往往还没堆满的就要搬,碰到那些认为有用的东西,也会留下来了,但搬家的时候却全被扔掉了,仿佛是一个杯子,不停的接水倒掉。回家的时候也一样,我会打包衣服,思量什么东西要用到,却很少带全。其实我知道,任何时候我能孤身一人,很多东西都能丢,不能丢的都带在身上。

孤身一人的时候我会迟疑,也能说服自己,继续前行,知道当下即是过往,期待明日有所收获。往往事与愿违,可能等待了很长时间,走了许多的路,到结束却连个痕迹也没有留下。回望的时候,才发现当初的迟疑徘徊即是全部,明日只是一个结束。有人说,希望是至善,我却认为希望是可有可无的,身陷囹圄的人才会觉得无比重要。有勇气面对自己,有勇气正视环境,听从内心,做自己能做的事,知道自己不能做的事,明白通过练习可以做到的事,就已足够。更多时候,希望是一些人用来证明自己生命的意义,而我的生命没有意义,我的时光就是用来感受时光的消逝,我的生命就是用来感受生命的终结。当然,这只是一种理想的状态,看着九零后前仆后继,身为八零后,身为唐家岭的蚁族,我感到压力很大。

漫步时,许多的背影在身边穿行,我仿佛赤着脚,行走于路间,感受赤热冰凉,喜怒哀乐,我知道你也一样,却不知道你是否如我一样。我常怀疑自己,也常贪图片刻的安宁,我能正视自己,也能感受内心的坚定。我活在当下,不期许虚妄的未来,不纠缠无谓的过往。知盈虚有数,不奢望恒久的快乐,不排斥安静的孤独。我喜欢平静,知道平静才能长久,我想做真正的自己,虽然这话听起来是在蛋逼,却不知道你是怎么想?

2010年05月2日点滴

2条评论
551 views

三国杀忠臣,内奸,反贼的识别

玩三国杀我比较喜欢5人局,1主公1忠臣2反贼1内奸,这种人数搭配进度快,也能看出忠臣的无奈,反贼的徘徊,内奸的摇摆不定。做为一个英明的主公,如何能识别出这些面具背后的身份?

首先,第一局如果有牌就要出手,逻辑上来说,蒙的概率还是很高的,有3/4的机会杀到反贼和内奸。先手之后,就很容易根据大家的表现猜出大致的身份。

1,忠臣,因为无所顾忌,在战斗中会表现出一往无前的气势,逮谁踹谁,一踹到底,不死不休,而且还喜欢杀体力少的,容易杀的。

2,内奸,我遇过两种风格,一种很低调很安静,走反贼路线,这种我一般是放到最后才收拾。另一种则是表现出很强大的气场,走忠臣路线,到了后期就很难分辨谁是忠臣谁是内奸。做为一个英明的主公,在这个时候应该低调,忠臣死可以,但不能死在你手里。让他们自相残杀,如果有什么【南蛮入侵】,【万箭齐发】之类的,可以统统放出来通杀。至于装备,那是一定要拆的。等他们分出胜负,伤痕累累的面对一个武装到牙齿的你,胜利是一定的。

3,反贼,识别这个没有什么难度,同伙身份未明,下手就会顾忌,怕错杀自己人。我也遇过两种风格,一种是上次来就跳,攻击主公,向同伙表明反贼身份。我经常这么干,尤其是用许禇的时候,配合连弩 ,再裸衣,绝对是猛将中的猛将,无敌。另一种就是继续扮演,这就有难度了,只要反贼不傻,就不会像忠臣那样猛干,他可能会左打一下,右打一下,谁都不打死,直到忠臣的身份明朗后才会跳出来猛杀。

做为一个刚入门的菜鸟,在选择主公的时候,还是推荐使用曹操,至少可以保障手中有能进攻的牌。武将推荐夏候墩(刚烈),赵子龙(龙胆),大乔(国色,流离),甄姬(洛神,倾国),技能都偏向于防御,比较好用。

2010年04月18日收藏

没有评论
149 views

4.12 – 4.19收藏

      这是第一篇用 live writer写的blog,住的地方网速很不理想,用这种方法免得丢失。我用rss阅读,但大部都是看了过,过了忘,忘了就一片空白,这样囫囵吞枣也没有什么收获。新加了一个收藏的分类备忘一下,一来让自己零碎的阅读有点记录,二来也是分享一下我感觉有用处的文章。

      1,微博之战  微博方便了作者,却麻烦了读者。大量的消息虽然及时却凌乱,分享还可以,发表观点却不够。

      2,我从11楼跳下去……才知道……

      3,给你一个真实的芙蓉姐姐  可以从8分钟演讲的时候看,我看到一个自信,从容,淡定的女人。

      4,多服务器同步:rsync使用小结  金山逍遥网 sersync 服务器实时镜像、自动同步程序开源

      5,30岁MAN 6年尴尬的IT人生

      6,当我们的想法与别人不同时

      7,当我们开始反思得时候,就开始成长了

      8,互联网常见Open API文档资源

      9,网站内容决定网站的前途

      10,适用于 PHP 开发人员的 Python 基础知识

      11,囚徒困境

      12,戈森定律

      13,斯坦福监狱实验

2010年02月11日platform

没有评论
218 views

在vps主机配置awstats日志数据分析软件

盘今的主机,是我用过最烂的,虽然客服很尽责,但是速度已经不能用慢来形容,ping可以ping,网页只是偶尔能打开。买了一下E动VPS,界面很方便,速度还不错,稳定性有待观察。

我是按装这个【文档】来进行awstats日志的配置。有一些写的不详细:

1. 第(2)步我改成了虚拟主机

<VirtualHost *:80>
  Alias /awstats/icon/ /var/www/awstats/icon/
  Alias /awstats/ /var/www/awstats/
 
  <Directory /var/www/awstats/>
    DirectoryIndex index.html
    Options ExecCGI
    order deny,allow
    allow from all
  </Directory>
</VirtualHost>

打开浏览器,如果看到是pl的源代码,在apache的配置文件中增加

AddHandler cgi-script .cgi .pl

2. 如果显示的界面是英文,则在第(4)部中,将LANG=“auto” 改成 LANG=”cn”

2010年01月12日点滴

没有评论
206 views

回首2009,展望2010

2009年底,空间商抱着机器从上海跑到重庆再跑到北京,也没让我赶在年末写上一份总结。也能理解,都不容易,现在正常了,也顺道展望一下2010。

回首2009,是有些收获:
1,学习了python。虽然是刚刚入门,总算是写了一个在线聊天的服务器。php虽然好使,但语言特性还是很难遇上诸如内存释放,线程,管道之类的问题,不遇到问题就没有机会搞懂。
2,封装了一个PHP框架。虽然我很鄙视我在做重复的工作,但是thinkphp,zf真的让我感觉很不方便。我有自已习惯,也知道程序部署的环境,所以就很简单,借鉴了部门老大对zf的修改,使用autoload自动加载,用xdebug测试的时候,基本上效率没有什么影响。
3,从09年4月份开始,中间虽然有断层,但基本上我全部精力都放在一个网页游戏上,遇到了很多问题,有的解决有的绕过。一个深刻的教训是,我以后绝不对没有做过的东西说“好做”。为了给用户更自然的体现,应用只用了一个html页面,前端js写了有5000多行,比5w行php都难写。更别提遇到的一些js内存泄漏,莫名其妙的卡,浏览器关闭。在firefox下还好,总有工具可以用。ie下那些debug工具都是不靠谱的,我只能一行一行的删除,alert调试。总算在年终的时候内测,虽然还有很多问题。

展望2010:
1,我知道js做ria的不足,所以今年的一个重要的任务就是学习flex。
2,有武侠情结,想写一个武侠类的网页游戏。因为对实时要求比较高,架构采用我熟悉的js和我不熟悉的python。一直在关注一个框架eurasia,准备尝试一下,主要还是想深入一下python,手熟一下python。
3,存xx的钱,08年09年我原地踏步走,积累了两年应该再上个台阶了。

还有一些我不想说出来的计划,我在心中也默默的说一遍。事情总有反复,事情总有后退,事情总有一日不如一日,事情总在一个漫长的周期上一直向上。
2009是很好的一年,希望2010也是很好的一年。

2009年11月16日点滴

没有评论
275 views

今天跑完一个环线

一直绕操场跑圈圈,今天和志远跑了一次环线。遥想07年初我和鸭子也是跑这条线,一直跑到我吐,那滋味真不好受。今天速度控制的还可以,跑的比较轻松。

run

返回顶部