Tuesday, March 20, 2007

get the last day in a month in java

from http://forum.java.sun.com/thread.jspa?threadID=700253&messageID=4063642
it says:

// create calendar instance :: now
Calendar calendar = Calendar.getInstance();
int lastDateofThisMonth = calendar.getActualMaximum(Calendar.DATE);



Just check this one and understand how to expand

// create calendar instance :: now
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,2000);
// month 0 is january
calendar.set(Calendar.MONTH,1);
int lastDateofMonth = calendar.getActualMaximum(Calendar.DATE);
System.out.println(lastDateofMonth);

Monday, March 19, 2007

sound on gentoo

it seems i installed a generic kernel. at default, no device configed for the sound.
when i wanna use ALSA, but can't emerge alsa-driver cause couldn't download a patch for my kernel.
so i use "emerge alsa-utils", after that, run "alsaconf", after a reboot manually, everything with the sound are work well.
:)

Sunday, March 18, 2007

triangle_strip,triangle_fan,triangle_list

看了一下psp sdk里对sceGuDrawArray中prim这个参数的值的描述,始终对“3 vertices for the first primitive, 1 for every following”这句话的后半句理解不能!:worried:

void sceGuDrawArray ( int prim,
int vtype,
int count,
const void * indices,
const void * vertices
)

Draw array of vertices forming primitives.

Available primitive-types are:

* GU_POINTS - Single pixel points (1 vertex per primitive)
* GU_LINES - Single pixel lines (2 vertices per primitive)
* GU_LINE_STRIP - Single pixel line-strip (2 vertices for the first primitive, 1 for every following)
* GU_TRIANGLES - Filled triangles (3 vertices per primitive)
* GU_TRIANGLE_STRIP - Filled triangles-strip (3 vertices for the first primitive, 1 for every following)
* GU_TRIANGLE_FAN - Filled triangle-fan (3 vertices for the first primitive, 1 for every following)
* GU_SPRITES - Filled blocks (2 vertices per primitive)


在看了
http://hankfiles.pcvsconsole.com/answer.php?file=87
后才恍然大悟原来是这个意思,似乎的确是sdk文档上没说清楚。

triangle_strip:就是前3个点组成一个简单图形(这里不就是3角形嘛),第4个点和其之前2个点组成又一个简单图形,以此类推。
triangle_fan:就是前3个点组成一个简单图形,第4个点和其之前一个点以及第一个点组成又一个简单图形,以此类推。
triangle_list:哈哈,见图。。。。。

同步opera blog(http://my.opera.com/jojomclntosh)

install realplayer on gentoo

Friday, 16. March 2007, 02:51:16

realplayer, gentoo, Linux
1st step:
#emerge ca-certificates

2nd step:
#emerge realplayer

Monday, March 12, 2007

今天是植树节

回家路上才想起来今天是植树节,本来想用ps来植树的,可惜我太懒,没装ps,只能传统手工植了。:D

nullpx,一个困扰了半天的问题

使用spring的JasperReportsHtmlView和JasperReportsPdfView,产生报表,pdf格式完全正常,html格式却总是不能显示一个叫nullpx的image。昏倒!:frown:

在用ireport做报表模板后用html preview时完全正常,看了一下页面代码,发觉他使用的image不是nullpx,而是px,其实就是一个像素点的图片。看样子这个图片在显示html时是不能少的了。

没有办法之下只能把这个px文件copy到webroot下面改名为nullpx,到此这个问题算是解决了。晕~~~!

同步opera blog(http://my.opera.com/jojomclntosh)

JasperReports与spring的集成

, ,

spring 包含了5种JasperReports View classes,分别是JasperReportsCsvView,JasperReportsPdfView, JasperReportsHtmlView,JasperReportsXslView和JasperReportsMultiFormatView, 最后一个是在运行时选择前面四个之一用的。

在spring中要使用这5种View,就先要定义ViewResolver。一般情况下使用ResourceBundleViewResolver这个类。





其次是定义刚才"value"指定的views.properties(或者是xml文件)这个文件。以下名值对先定义了 simpleReport这个view的class,再定义了由iReport产生或者手工完成的jasperreport的报表定义文件(在 spring中使用jasper和jrxml文件都可以,因为spring会自动把jrxml编译成jasper文件)。随后是指定数据源,这里用到已经 配置好的一个数据源myDataSource所以ref一定要加上。
simpleReport.class=org.springframework.web.servlet.view.jasperreports.JasperReportsPdfView
simpleReport.url=/WEB-INF/reports/DataSourceReport.jasper
simpleReport.jdbcDataSource(ref)=myDataSource


到这里配置基本结束了,接下来就是在Controller里写代码了。最后一句return中的simpleReport就是我们定义的那个view,model是一个Map类。
return ModelAndView("simpleReport",model);


具体参考见http://www.springframework.org/docs/reference/view.html

Monday, March 5, 2007

向雷锋叔叔学习~~~!

在记得春节,圣诞节,劳动节,国庆节... ...的同时,请记一下3月5日,向雷锋叔叔学习~~~!

我们正在不知不觉得丢失着那些我们不该丢失的东西!

Saturday, March 3, 2007

3*3的puzzle游戏居然分有解和无解

Saturday, 3. March 2007, 16:09:35

,


:faint: 我昏过去,自己写了个psp上的puzzle游戏小试一下,使用的是rand()函数随机排列了一下8个小图片。昨天玩了一下,玩出来了,今天玩了两次,都绞尽脑汁,可怎么都没法玩出来,就是有2块怎么移都无法移到正确的位子,我倒~~~!:faint: 难道睡了一觉智商直线下滑了?:confused: :no:

拿出草稿纸,用广度算法比画了n多步,发现就是弄不出,晕~~~!:ko:

网上找了一下,才发觉原来随机摆放图片可能造成无解,我倒~~!今天运气还真是好的可以,两次都是无解!以前只是玩,现在是自己写,果然思考的方式和思考的广度深度不同了~~!:eyes:

大学高数不努力,游戏编程徒伤悲!:worried:

判断有无解的算法是这样的:
先把矩阵matrix[3][3]放到一维数组array[9]中,如:
123
456
78X
就成为12345678X。
然后只要把位置i的f(i)计算出来,然后sum(f(i)),即对f(i)求和,得到偶数则有解,得到奇数则无解。
注:f(i)求的是从array[0]到array中比array的值小的元素个数。

BMW能用钱买来,但很多东西钱是买不到的!

Friday, 2. March 2007, 21:49:02

,


今天下班经过沪闵路和七莘路、莘松路的那个十字路口时看到了如下情景——一辆BMW在近十字路口的自行车道上,刚好被前面的消防栓卡主了,此时是下班高峰,车后延绵了几十米的非机动车使BMW进退两难!

果然你有钱买BMW,但很多东西你用钱是买不到的,哈哈~~!:D往往有一部分开BMW的缺的就是那些他们用钱买不到的东西~~~! :rolleyes:

又一个好老师去了——陈毛狗

Wednesday, 28. February 2007, 15:18:27


陈毛狗老师听说是因为胃癌走了~~~!:frown: 还记得大学的时候上过他教的那几节屈指可数的人工智能课,虽然我上课几乎是不听的,但看得出他是个好老师~~!从以前选过他上的C++课的同学那里得知鞠躬尽瘁、为学生负责是他一向的态度!如今,又一个为人师表的好老师为了教育事业离我们远去了~~!可惜阿可惜!nervous

为什么?为什么那些好老师都操劳而去,而那些人渣老师却还活得那么逍遥?因为他们不为学生,只为金钱,没有负担... ...:mad:

突然想起以前课本上的一句话“有些人死了,但他还活着!有些人活着,却已经死了”。

春节吃喝最后一战——港丽

Sunday, 25. February 2007, 23:04:37

,


发觉从公司坐91路到北新泾再坐2号线到南京东路貌似比925b要快不少,果然我是最准时的一个(17:45到达宏伊广场的港丽,哈哈!):D

一进去发觉景色不错,窗外就是东方明珠和金茂,就期待着美味的食物了,哈哈。

今天simon应该不算放鸽子,因为原定是年初六,他已经跟同事换好班了,现在没法改,所以缺席(哎~~!损失一员大将!)!:worried: 对于邬昌琪,说他不放鸽子也没人相信(判定他放鸽子,哈哈哈,而且居然是主角放鸽子,接滚哦)!第2个到的是candice,然后是spytyty,最后是kathy。看来不管离聚会地点远近,kathy这家伙都是最后一个到的,呵呵~~!

总结一下菜,都很不错!哈哈,这个总结果然是高度概括!:yes:

照片既然有人弄好了,我就懒得弄了,直接链接:
部分照片

那个长肚脐眼的我挺喜欢吃的,哈哈~~!

Nice! jojo's 1st program on psp~~!

Saturday, 24. February 2007, 00:24:06

C, PSP, 随手记

it really works on my psp~~!:D


按照http://www.psp-programming.com上的tutorials手动完成了自己的第一个psp程序!

hello_psp.c

#include
#include

PSP_MODULE_INFO("hello psp",0,1,1);

#define printf pspDebugScreenPrintf

/* Exit callback */
int exit_callback(int arg1,int arg2,void *common){
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp){
int cbid;

cbid=sceKernelCreateCallback("Exit Callback",exit_callback,NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void){
int thid=0;

thid=sceKernelCreateThread("update_thread",CallbackThread,0x11,0xFA0,0,0);
if(thid>=0){
sceKernelStartThread(thid,0,0);
}

return thid;
}

int main(){
pspDebugScreenInit();
SetupCallbacks();

printf("hello psp!jojo's 1st psp program!");

sceKernelSleepThread();

return 0;
}





这个是Makefile

TARGET = hello_psp
OBJS = hello_psp.o

CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = hello psp

PSPSDK = $(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak



ok,之后运行#gmake kxploit,编译连接成功后就产生了包含能运行在psp1.5firmware上的程序的两个文件夹hello_psp和hello_psp%。nice~~!:beer: (对于1.0 firmware,只要gmake就能产生直接在psp上运行的程序了,我没试过,应该可以。)

psptoolchain on FreeBSD

Friday, 23. February 2007, 10:48:23

FreeBSD, PSP, 随手记

一开始费了九牛二虎之力也没把PSPTOOLCHAIN在FREEBSD上搭建好!:frown: 找了半天原因,AUTOMAKE是最新的,AUTOCONF是最新的,SVN也是最新的。。。。。。:wait: 但就是在安装NEWLIB和编译PSP-G++的时候出错,妖了~~!:confused:

最终SVN(#svn co svn://svn.ps2dev.org/psp/trunk/psptoolchain)了一个最新版本的PSPTOOLCHAIN,设置好环境变量之后运行脚本(#./psptoolchain.sh)。一觉醒来全部KO!

哈哈,可以为PSP写程序了~~~!:D

大年初五迎财神~~!

Thursday, 22. February 2007, 21:10:36

春节, 随手记

一大早就被窗外劈里啪啦的鞭炮声吵醒!(其实凌晨00:00的时候已经被吵过一次了)
今天我的胃终于是稍微调整了一下休息了一天,从小年夜奋战到大年初四,期间也就大年初一略有休息,其余几天胃里传出的都是这句话“兄弟们支援支援,今天的任务要完不成了,明天还有更艰巨的任务啊~~~!”。:worried: 的确,明天确实有更艰巨的任务在等着我的胃!:faint:

除了吃还是吃,年年过节都是吃,只是今年吃的东西还多了一样——中药!:cry: 吃了十多天的罗汉果和琵琶膏,咳嗽终于好转了,感谢中国人的智慧发明了中药,否则估计浑身的细胞都被西药给杀灭了~~!呵呵!

大年初五迎财神,恭喜发财~~~!

使用jtds的jdbc驱动代替ms官方的sql server jdbc驱动

Monday, 5. February 2007, 12:10:56

随手记, tomcat, java

用了才发现,在tomcat连接池中似乎用MS官方的JDBC驱动无法做到autoReconnect。这使得万一数据库连接暂时性的中断会导致数据库持久化框架中的数据库连接失败。现在用了jtds的sql server jdbc的驱动,果然比MS的强很多,而且可以自动重连了!:D
用法:
驱动程序名称:net.sourceforge.jtds.jdbc.Driver(即classforname)
数据库连接URL:jdbc:jtds:sqlserver://localhost:1433;DatabaseName=hbdt;autoReconnect=true(即url)
下载地址:
http://sourceforge.net/project/showfiles.php?group_id=33291

mac os x 10.4中使用vpn

Monday, 8. January 2007, 21:08:45

MAC, 随手记

发觉很简单,不需要额外的第三方vpn客户端,直接从Application文件夹中打开Internet Connect程序设置就可以了!:smile: