我的宠物网站情结 (一)

我的宠物网站情节起源于2007年4月的一个偶然事件,一个朋友的朋友转让给我一条2个月大的哈士奇,原名猪猪,后被我改名为烟头。

于是在上网溜达时会注意一些宠物相关的网站,那时国内互联网web2.0正火,不过国内小众的宠物网站构架还停留在传统的论坛为主,最多为用户加个blog功能差不多的空间上。和刚刚流行起来的facebook myspace比起来,太不fashion了。

这个时候我适时的发现了一个叫做dogster.com的宠物网站很fashion。从域名上来看,dogster就很web2.0,继承自friendster,网站一个有趣的功能在于注册帐户代表的是一个家庭,家庭内可以添加多个宠物,用户在网站内部各种行为(发博客,留言评论,朋友圈,知识问答)都是以家中宠物的身份来进行。尤其是sns中常见的向陌生人打个招呼的功能,在dogster成为向对方的宠物狗丢个骨头。搭讪的方式被演绎的如此正大光明,温馨不会让人拒绝,真是太有爱了。

于是我发挥中国互联网最常规的me too想法,自己动手开始研发一个类似dogster的网站程序petsfile,这个程序在08年初大概完成了7成左右,完成了用户模块,博客+论坛模块,以及相册模块的基本功能,但是前端页面有很多繁琐的细节没有完善,当时忙于工作因而persfile的研发搁置了大概半年时间。当我再次有精力从svn同步下来许久没更新的petsfile代码时,觉得petsfile的功能太过复杂了,除了那个用宠物作为用户虚拟形象外,没有太多亮点,于是开始了petsfile产品层重构的工作。

文笔不好,写博效率很低,先写到这儿吧,:)

ubuntu10.04下无线网卡无法使用的问题

最近把家中电脑的系统从ubuntu9.10升级到10.04. 之前工作的好好的Accton WN4201无线网卡罢工了。

iwconfig找不到网卡,应该是驱动的问题,之前使用的驱动为prism54,但在ubuntu 10.04中prism54为p54pci所代替,修改文件(/etc/modprobe.d/blacklist.conf)把驱动切换回prism54后,一顿更新还是不行。

最后抱着试试看的心态把驱动切换回p54pci,dmesg显示信息为Cannot find firmware (isl3886pci)。从http://lekernel.net/prism54/firmware/2.7.0.0.arm处下载prism54最新pci固件,然后重命名复制(sudo cp 2.7.0.0.arm /lib/firmware/isl3886pci)该固件到/lib/fireware/isl3886pci。重启后无线网卡复工,本次折腾就此结束。

总结,如果一开始仔细看dmesg的信息就不会在prism54上浪费那么多时间了。:(

很不科学的开心网个人首页好友动态统计报告

简单统计一下我个人的开心网帐户好友在2009-12-10的好友动态

首页好友动态共30条记录:
好友状态或记录11条,其中好友转帖8条,投票8条,更新头像1条,成为好友2条

注:好友状态或记录的状态有一定的重复,因为好友更新状态或发布记录为一条记录,有好友评论为另一条记录
注2: 同一个用户的不同转帖会合并为一条状态更新,而同一个用户的投票不会合并
注3: 样本空间太小,存在较大的偶然性
注4: 我个人已经不大玩儿开心上的种菜大亨这样的社交小游戏了

简单总结一下:具有微博特征的动态记录(好友状态或记录 + 好友转帖)占了好友状态的尽2/3  对于我个人来说,开心网已经越来越微博化了,不知道这个微博化是否有一定的普遍性。

苹果下swing程序(netbeans)的中文输入法

我在苹果下一直用netbeans来开发,之前为了因为没有在代码中输入中文的需求,所以在IMKQIM中设置netbeans为silence application,就是说在netbeans中自动关闭中文输入法,最近开发一个网站,在前端html中需要输入中文,就又把这个设置取消了,但取消后发现一个很诡异的现象,在netbeans中时而可以输入中文时而不行。这个问题郁闷了我好几天,google了许久,只有一两片文章提到在mac下的netbeans可以通过IMKQIM输入中文,但没有和我这个情况类似的情况。今天才偶然发现输入法不能使用的规律: 如果在启动netbeans时,系统输入法为英文,则在启动netbeans后,切换为中文输入法可以正常输入中文,反之如果启动netbeans时系统输入法为IMKQIM则不能输入中文。有点儿意思,也不想深究原因了,能用就好了,对于java的swing程序不能要求太多了 呵呵。

要么鼠标,要么键盘,没得妥协

一点体会,存在被忘录里。

一个电脑用户右手的签名档:我不在键盘上,就在鼠标上,如果我既不在鼠标上也不在键盘上,那我就在去往键盘或鼠标的路上,可我真的很讨厌赶路。

关于电脑软件的操作过程,个人有一个稍极端的观点就是尽量采用一种方式即可完成操作,要么全部采用鼠标操作完成,要么完全用键盘输入,最让人反感的是在大量采用鼠标操作的流程中突然必须用键盘输入一些信息,或者反之。迫使用户把右手从键盘移动至鼠标或者从鼠标移动至键盘,都是对用户不尊重的行为,一定要避免! 这里我用了很少用到的感叹号,因为我本人就很烦这样的操作界面,呵呵。

相对来说,纯鼠标操作界面更加适合大部分人,只有那些电脑的深度用户才会更加喜欢键盘操作,键盘操作的入门门槛高于鼠标,但效率高于鼠标操作。一个例子,windows的图形操作界面和*nix的shell操作界面,两种风格,两种哲学,但都是被用户所接受。

我上网这11年 (2)

大概是99年前后,有个叫chinaren的网站突然火起来,里面有同学录,主页大巴还有一个形象化的聊天室,chinaren在当时的大学生里面很流行,也在那个时候开始学习html的技术,以及flash的制作,写过几个半成品的个人主页,大二的时候正是互联网泡沫最丰富的时候,暑假去了一家互联网公司打工,一个月收入3k,感觉自己的领子都白了。

这个阶段互联网的应用慢慢的从以前的新闻门户,聊天室,QQ,论坛屈指可数的应用类型中慢慢丰富起来,互联网从一些学生或者IT人士慢慢渗透到各个领域,互联网的泡沫在99年破裂后,终于不在疯狂,转为务实。一些技术与思想的革新在缓慢进行,终于在一个叫Tim O’Reilly的人在其博客中把若干新思想旧技术包装成个叫Web2.0的东西,再辅以六度分割、长尾效应等名词,一时之间大热,俨然就是互联网的未来,若干web2.0代表性网站的成功myspace,digg,delicious等,让一些混IT圈的毛头小子(我也有幸算一个)头脑发热,纷纷创业去了,做着各种模仿的,似是而非的,有新意但无模式的web 2.0应用,可惜活下来的不多。

网络棋牌引擎研究 服务器端开发笔记

在多次调整开发目标和数次重构后,基本完成了服务器端代码的开发,客户端代码需要调整任务还比较大。服务器端完全摒弃了smartfox框架,自己用netty写了一个socket server以及网络棋牌的相关底层模块。一些经验总结如下:

  1. 系统功能和具体棋牌玩法的功能分割开来,具体的棋牌游戏玩法以插件的形式存在。
  2. 不同棋牌玩法中公共的功能抽离出来,组成功能模块,再今后增加游戏玩法时,仅需要关注具体游戏逻辑。
  3. 对于客户端过来的数据包采用事件监听机制来分发到系统模块或者具体游戏实体处理
  4. 在具体游戏实体模块中,针对棋牌游戏特点,倾向于采用状态模式来处理客户端的数据。
  5. 服务器是唯一保持一个游戏过程中所有状态的,当服务器同客户端发成冲突时,以服务器状态为准。
  6. 服务器需要保存一个游戏的全过程,采用备忘录模式,存储状态。

我的Eclipse配色方案

最近一直用textmate,偶尔回到eclipse还真不适应,在网上找了一些解决方案,最终搞成如下,还是比较满意 呵呵

screenshot

这里是我的eclipse关于配色的配置文件, 通过Eclipse->Files->Import->Generals->Preferences导入即可。还有,我用到了Monaco的字体,windows用户需要自行下载。另外,你可以在网上找其他的配置方案,然后用附件中script来清理无关信息,再进行导入。

友情提示:搞这个前,备份自己的配置信息

棋牌游戏研究开发笔记 简述篇

简单介绍:之前很少涉及游戏的开发,最近工作有这方面的需要,以学习和研究为目的准备开发了一个网络棋牌游戏系统的原型,并将过程中一些经验体会记录下来。

系统描述:网络棋牌系统向用户提供在线互动棋牌游戏服务的游戏平台,内有各种规则的棋牌游戏,玩家选择相应的游戏,通过网络与同游戏的其他玩家通信,游戏的体验同实际进行同样棋牌游戏的体验类似。这次我以研究为目的开发的系统目前仅专注于棋牌游戏通用的逻辑与技术实现,以积累棋牌游戏开发经验。

技术描述:本原型采用flash作为前端展现技术,服务器暂时采用smartfox server作为服务器基础实现,用actionscript语言编写smartfox扩展的方式来实现自有逻辑。服务器与客户端采用相同的语言来编写,一些代码可以实现复用。研究了smartfox服务器端插件的代码后发现,smartfox是基于java的,对于actionscript和python的支持比较有限,是分别通过mozilla的javascript parser和jpython来实现对于actionscript-like和python-like的代码解析,并不是真实的actionscript和python执行环境,最后决定用java来编写smartfox的服务器端扩展,当初想偷懒服务器端和客户端代码复用的想法落空了:(。在后续的研究中,考虑用python的twisted库编写服务器端底层功能以代替smartfox server。

update:  因为采用java来写服务器端部分,过程中发现smartfox并不是很适合当前的应用,代码写到现在只是用smartfox作为socket数据的转发了