Good good study, day day up

aleung的学习笔记, aleung的idea

Robocode的每个机器人都是一个线程,线程调度为非强占式,由战斗管理线程依次调度运行。每个线程执行到一个阻塞函数的时候,交出cpu占用权。对于AdvancedRobot,阻塞函数是excute()。

从这个角度而言,可以把robocode看作是回合制的游戏,每个回合各个robot设定要做些什么操作,即调用setXXX(),调用excute()完成本回合的操作设定。各个robot都设定完后,战斗模拟模块模拟执行各个robot的动作,并且在屏幕显示结果。下个回合,robot线程在excute()下面继续执行,直到再次调用excute()为止。

不过,setXXX()设定的操作,往往是在一个回合中执行不完的。在robocode中,一个回合是游戏中的一个时间单位,各个元素的运动都有一定的速度,需要一定单位的时间才能完成。如果上回合中设置的动作还没有完成,本回合又重新设定了,就会把新动作覆盖旧动作。

事件处理函数onXXX(),看起来是在事件发生的时候立即执行的,其实不然,还是要在回合中轮到这个robot的时候才能执行。而且若在队列中有多个事件,而某个事件处理函数调用了excute()结束了本回合的动作,那么剩下的事件就要等到下个回合才能处理了。因此,onXXX()改变的只是某个线程内部的执行次序,并不改变robot线程之间的执行次序。

阅读全文 »

寻找一个PHP代码的格式化工具, chedong的主页上介绍了phpCodeBeautify, 下载试用一下, 还是开发版, 效果不是很满意.

以前我用过astyle,并且自己改成phpstyle, 但它毕竟只是为C++/Java设计, 对PHP处理不是很全面.
在google上搜索, 有些是要付钱买的, 不感兴趣.
BeautifyPHP(http://www.bierkandt.org/beautify/)有个online demo, 感觉还不错. 而且它直接就是php写的!
另一个是PHPIndent(http://www.palfrader.org/phpindent/), 用perl写的, 没有试, 因为BeautifyPHP感觉可以了.

顺便还发现了一个工具GNU Source-highlight http://www.gnu.org/software/src-highlite/, 能够将多种源程序生成HTML文件,并且语法加亮.

阅读全文 »

什么是FXP?以前就听说FlashFXP这个软件可以在两台ftp之间直接传输文件,不需要中转。

在网上查了一下资料,好像fxp并不是一种新的协议,而是对ftp中的proxy命令的巧妙运用。

阅读全文 »

cyrus imapd的邮件目录修复:/usr/cyrus/bin/reconstruct, 邮箱quota查看与修复:/usr/cyrus/bin/quota,修复时要加 -f 参数。注意:该命令必须以cyrus用户身份才能运行
且此quota不同于/usr/bin/quota命令

/var/imap/quota/[a-z]/user.* 文件是用户的quota信息,第一行是当前占用的quota,第二行是quota limit。

当用户有d权限时,才会在quota达到特定值时发送warrning信件。不过,正常使用的用户都是有d权限的。

http://asg.web.cmu.edu/cyrus/cyrus-overview.html

阅读全文 »

现在广州某些线路的公交车已经开始使用GPS跟踪调度,并且在站牌上实时显示车辆位置、预计到站时间。不知道什么时候能够推广到所有线路。

根据网上的资料,城市公交GPS定位调度系统由车载终端分系统,信息传输分系统,中心及线路调度管理分系统,信息发布分系统及电子站牌分系统五大部分组成。车载系统与中心的数据传输是通过电台或者手机短信进行。

不过,公交车的定位一定要靠GPS吗?我也有另外一个idea。

公交车是沿着固定路线行驶的,在路线上分布着大量站点,站点的距离都不太远,如果能够确定某车辆在哪个站点区间,一般来说这样的定位信息也足够了。

可以在各个车站设立无线电通讯基站,基站与中心有通讯链路(目前的GPS系统在车站有电子站牌,与中心也需要通讯链路);车载系统为一个无线应答机。使用小功率通讯,通讯范围在数百米之内,即车站周边区域。这样,车辆行驶到一个车站附近,就能与此车站的基站联络上,基站根据车载系统发送的身份信息可以知道那些车辆进入了本站点范围,将信息传送给控制中心;电子站牌能将当前车辆位置显示出来(相比GPS系统,就不能给出预计到站时间,不过候车者知道车辆目前在哪个站也基本能估计出时间来);车辆也能得到当前的车站信息,报站系统能自动报站。

阅读全文 »

chinaxp上看到一段话

到目前为止,个人觉得 XP 还是中小公司开发的最好模式。实现起来的确还是有难度,特别是 PP,不过总比 RUP 便于实施。RUP、CMM 比较容易得到 MBA 的青睐。主要原因就在于_事先规范好的重量级流程,给人一种“一切尽在掌握”的错觉_,哈哈,的确是错觉。英雄的时代已经过去,矫枉过正,现在软件开发中,人的因素重视不够啊。

说得有道理,领导层总是喜欢严谨的纪律的,因此他们喜欢这些严谨的方法,轻量级方法太“自由主义”了,不好管:)

不过, 在我们这儿, 可是过于自由主义了, 缺乏的是规范.

阅读全文 »

同事写的java程序执行很慢,但又找不出原因。我想起C程序可以通过profiler来检查时间耗在什么函数里面,java应该也有类似的工具。Google一把,找到以下几个软件:

在JAVA developer’s journal的best java profiler/test tool投票中,JProfiler和JProbe名列第一和第三。

阅读全文 »

网上找到一些版本控制的软件。

一个是TortoiseCVS(http://www.tortoisecvs.org),是CVS client as windows shell extension,能够直接在explorer里面用右键菜单来操作。它是基于WinCVS代码开发的,与WinCVS各有千秋吧,WinCVS的功能更全面些。

另外一个是TortoiseSVN(http://tortoisesvn.tigris.org/),是for subversion的。这个更另我感兴趣,因为我看好subversion,它比CVS更有技术优势。安装试用了,使用local repository时不需要安装subversion server,看来可以用它来管理自己的代码、网页等等了。

另一个是我也很关心的SVN-UP(http://svnup.tigris.org/): Java client gui for subversion and plugin for idea ide. 因为我喜欢用IDEA,不过这个软件还很不完善,要等以后的版本了。

阅读全文 »

看了 Trees in SQL 这篇文章, 提出了一个巧妙的方法来在关系数据库中保存树状结构. 在记录中不是保存父子关系, 而是记录着树的遍历的编号, 通过利用编号可以在单个SQL语句中获取某个节点的所有子节点等操作.
据介绍, 著名论坛jive在2.5版本起增加了catalog, 就是用这种方法实现树状关系帖子的保存.

http://searchdatabase.techtarget.com/tip/1,289483,sid13_gci537290,00.html

需要注册一个帐号才能进入上面的连接. 本来想直接帖出来, 可是转贴后格式会乱

阅读全文 »