by agate - Published: 2010-06-25 [4:11 下午] - Category: 未分类
- Comments: View Comments
by agate - Published: 2008-11-09 [10:45 下午] - Category: 未分类

一直使用的是 ubuntu 的 linux 系统. 都说 linux 比 windows 快, 可是我就没有发现出来. 开了 firefox 感觉卡得要死了! 反正感觉都很慢... 无意间看到一个叫做 xfce 的东西, 就装了. 根据配置使用之后发现就是一个和 gnome/kde 一样的 X 环境. 不过我的机器从此"正常"的跑起来了. 内存占用及其小, 开什么都很顺畅, firefox 也没有过去卡了! 也许 firefox 针对 win 下真的做过很大的优化! 反正感觉就是好多了!
ubuntu 下使用 apt-get 安装 xubuntu 就完事了!
$sudo apt-get install xubuntu-desktop

Tags: [ , , ] - Comments: View Comments
by agate - Published: 2008-08-21 [4:38 下午] - Category: 开发环境, 未分类, 程序编码

FastRI 是一个类似 ri 的 Ruby 文档文档浏览器. 比 ri 快很多, 能对你所有的rdoc文档进行快速的全文搜索, 比ri更聪明,可以查找任意地方的类名而不用指定它的完整名称域, 比ri更好地支持RubyGems.

是不是遇到找一个方法却找不到对应的文档? 是不是即使输入 ActiveRecord::Base.find 这样详细的路径 ri 却告知有 n 个可选查询却无从下手? 是不是忍受不了 ri 那个蜗牛的速度? 是时候用 fastri 代替 ri 了!

安装/使用方法:
安装:
gem install fastri
建立索引:
fastri-server -b
使用:
qri String

传说: 如果你使用 gem 来安装 FastRI, 它会有一定的性能损失, 所以最好的使用办法是使用它的安装包来安装. 我没什么感觉...
FastRI 主页

Tags: [ , , ] - Comments: View Comments
by agate - Published: 2008-07-12 [10:29 下午] - Category: 未分类, 程序编码

在Ruby中symbol是Symbol类的实例。symbol的语法为一个冒号后面接一个标识符。

symbol就像一个字符串,它表示了一个字符序列。它不像字符串,每个symbol只有一个实例(和Fixnum一样)。因此,有一个内存或
性能问题需要弄清楚。例如,在下面的代码中,"foo"字符串以三个单独的对象存储在内存中,但是symbol :foo作为一个单独的对
象存储(被引用了多次):
array = ["foo", "foo", "foo", :foo, :foo, :foo]
有些人被symbol前面的冒号弄糊涂了。其实没有必要糊涂;这只是一个简单的语法形式。字符串,数组和哈希都有开始和结束界定
符;而symbol只有一个开始界定符。把它当成一个单界定符而不是二元界定符即可。开始时你可能认为这个语法很奇怪,但事实上
没有什么神秘的。
Read more...

Tags: [ , ] - Comments: View Comments
by agate - Published: 2008-07-09 [11:02 下午] - Category: 未分类

a google online game... maybe it's a game...

Tags: [ , ] - Comments: View Comments
by agate - Published: 2008-04-20 [11:06 上午] - Category: 未分类

做程序的没有个Linux情节也总会有一个苹果情节吧~一直独树一帜的麦金塔电脑,那些形形色色的优秀软件!Unix的强大shell编程能力!和Windows一样强大的UI介面!还有比这个跟牛的结合体吗?有?有比它更美丽的外形吗?

不单单是电脑,IPod | IPhone 都是Apple公司的强劲产品!喜爱他的工艺美学,就像喜欢sony一样!没有道理,就是喜欢!就爱屋及乌地喜欢上了他的Ad音乐~

1.Flathead 【The Fratellis】
2.Jerk it out 【Caesars Palace】
3.Feel good inc 【Gorillaz】
4.Technologic 【Daft Punk】
5.Love train 【Wolf Mother】
6.Cubicle 【Rinocerose】
7.Vertigo 【U2】
8.Hey Mama (老款iPod剪影人广告)
9.Rich Girl (2005百事iTunes广告)
10.I Fought The Law (2004百事iTunes广告)
11.Are You Gonna Be My Girl (老款iPod剪影人广告)
12.Saturday Night (老款iPod剪影人广告)
13.Technologic(iPod剪影人广告)【重复
14.Walkie-Talkie Man (最经典iPod广告歌曲)
15.Mi Swing Es Tropical(iPod剪影人广告)
16.RitmoTrop(iPod剪影人广告)
17.Inside Your Head
18.Wonderful Night 【Fatboy Slim】apple的广告歌曲
19.Dani California【RED HOT CHILLI PEPPERS】
20.are you gonna be my girl 【jet】
21.one two three four【feist】ipod nano 07最新广告歌曲
22.New Soul【Yael Naim】苹果新款超薄笔记本电脑MacBook Air的广告曲

Updating...

Tags: [ , ] - Comments: View Comments
by agate - Published: 2008-03-27 [7:20 下午] - Category: 未分类

使用hibernate开发的朋友都知道,想在使用hibernate进行持久层操作的时候显示对应的sql语句,可以设置hibernate配置文件中的show_sql属性为true来实现这个需求。可是这个功能比较让人失望……他的语句是没错,但是参数值全是?这个带传入的参数符号,每个调试带来什么方便。

在这里,我介绍两个工具包来解决这个问题:[p6spy]和[sql_profiler],具体主页地址在下列给出
p6spy: http://www.p6spy.com
SQL Profile: http://www.jahia.net/jahia/page597.html

我们先来说说p6spy这个工具。在我理解上,他其实就是一个中间驱动,在数据库调用端和实际数据库驱动间做一个代理人的角色,进而加入了一些特有的辅助功能。在这里我们使用的调用端就是hibernate这个数据持久层框架,而数据库驱动我们用的是mysql的默认驱动(一般就是com.mysql.jdbc.Driver)。好,解释完理论开始实际试验:
* 将p6syp.zip(可能是tar文件包)下载好
* 将包中的p6syp.jar包放入你工程的classpath下(web项目就丢到WEB-INF/lib中)
* 将包中的spy.properties放入src目录中
* 修改hibernate配置文件中的数据库驱动为com.p6spy.engine.spy.P6SpyDriver这个中间驱动
* 修改刚才拷贝进src中的spy.properties文件,将realdriver的值设置成原来hibernate中的真正驱动(这里我是com.mysql.jdbc.Driver)

OK搞定!重新编译项目,以保证p6syp.jar和spy.properties编译进入目标地址。

接着就运行你的程序吧,看看控制台……(不要打我啊,我又没说控制台会有变化=.=)。但是看看你的工程根目录下是不是出现了spy.log,这里面就是你要的数据库操作历史,包括了真正传入的参数的具体值。

如果需要改变spy.log日志的生成地址,可以对应设置spy.properties文件的logfile属性给出绝对地址。(logfile默认是spy.log可以加上路径比如logfile = c:\xxx\xxx.log)

好了,似乎hibernate的?参数问题解决了,但是我的好多朋友都抱怨:“怎么这个log格式这么难懂啊!看着好不爽啊!”的确!p6syp的日志格式让人确实分外头大,于是乎介绍个SQL Profile来帮帮痛苦的大众。

照惯例,介绍介绍理论知识。SQL Profiler是一个基于p6syp的一个辅助包,可以实现很多功能,比如根据你的query来帮你生成合适的索引功能。在这里我们使用它的GUI控制介面,说白了就是一个监听器,在你通过p6spy进行数据库操作时,他就会很清晰地跟踪并列出你的操作,比单单查看那个恶心的spy.log来得舒服!既然基于p6syp当然也要用到p6syp.jar这个包咯,只是必须使用我们下载到的sqlprofiler.zip中的spy.properties来替换原来的项目中的那个文件,因为这个文件是定制过的,所谓的监听器也是靠这个文件才起作用的。好,废话说多了毕竟会烦,来说说具体步骤:
* 将下载好的sqlprofiler.zip包中的 sqlprofiler.jar 和spy.properties两个文件解压出来
* 使用新的spy.properties文件替换工程中原来的那个文件
* 根据刚才添加p6syp的过程,修改 spy.properties 文件的参数
* 使用 java -jar sqlprofiler.jar 命令启动sqlprofiler的GUI介面
* 再次启动你的应用吧,看看是不是在进行数据持久层操作的时候sqlprofiler的GUI介面中便出现了对应的操作记录,很清晰的列了出来:

Tags: [ , , , , ] - Comments: View Comments