离弦之Ray

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks

2007年12月28日 #

RT
posted @ 2010-02-10 16:02 离弦之ray的技术天空 阅读(212) | 评论 (0)编辑 收藏

安装前需要先联上线,并且您需要取得root权限。

perl -MCPAN -e shell

初次运行CPAN 时需要做一些设置,如果您的机器是直接与internet相联(拨号上网、专线,etc.),那么一路回车就行了,只需要在最后选一个离您最近的CPAN 镜像站点。例如我选的是位于国内的中国自由软件库ftp://freesoft.cgi.gov.cn/pub/languages/perl/CPAN 。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。

获得帮助

cpan>h

列出CPAN上所有模块的列表

cpan>m

安装模块

cpan>install DBI

自动完成DBI模块从下载到安装的全过程。

退出

cpan>q
posted @ 2010-01-25 21:09 离弦之ray的技术天空 阅读(319) | 评论 (0)编辑 收藏

今天Google的mp3搜索上线了,与百度不同的是,全是正版……

玩了一下泡泡选歌,非常有趣。

从Gmail开始,然后是Gtalk,在线的Office,加上Task,calendar

Google把大家的桌面搬上Web的愿景,正在一步步实现。

posted @ 2009-03-30 18:54 离弦之ray的技术天空 阅读(179) | 评论 (0)编辑 收藏

比较有趣
posted @ 2008-10-07 20:08 离弦之ray的技术天空 阅读(186) | 评论 (0)编辑 收藏

http://labs.mozilla.com/2008/08/introducing-ubiquity/
posted @ 2008-10-07 10:19 离弦之ray的技术天空 阅读(302) | 评论 (1)编辑 收藏

最近需要使用Perl,就随便总结一下。

首先当然是环境的建立了,linux下不用管,都是自带了,直接就可以编写Perl脚本去了。

在Windows下需要去下载并且安装一个Active Perl,可以到这个网站http://www.activestate.com/Products/activeperl/index.mhtml去下载。

关于开发工具,已经存在一个Eclipse的插件,里面还带有正则表达式测试等功能,但是不是很成熟。其实只用带有代码着色的文本工具即可,然后在命令行调用Perl yourPerl.PL就可以了。

Perl最具特点是它有很多包含各种功能的Module可以被使用,你可以到http://www.cpan.org/去Search,downlads它们。
这些模块下载下来以后是一个压缩文件,将其解压缩以后,里面一般会有Makefile.PL,用perl命令去运行这个脚本即
perl Makefile.PL
接下来如果是在linux下,依次打入命令:
make
make test
make install
注意make test会提示你这个模块所依赖的模块是否已经被安装,最好把它依赖的模块也一起安装了,否则后面可能会出问题。
不知道有没有ANT里面 fetch-depends类似的功能,暂时没有找到。
如果你在windows下,make就要换成nmake了。

有少数的模块里面并没有Makefile.PL而是一个Build.PL,需要特殊的模块来安装,这个模块叫什么记不清了,可以去上面那个网站去搜索一下。

好了,环境工具都搞定了,找本书吧,O'Relly 的Learning Perl是很好的入门读物,甚者那个骆驼标志已经成为事实上Perl的代言人了。

然后就开始你的Perl旅程吧。


posted @ 2008-07-13 14:29 离弦之ray的技术天空 阅读(250) | 评论 (0)编辑 收藏

问:如何对私有方法进行单元测试?

答:重点在于,你不应该有任何方法是从一开始设计出来就是private的,因为你的每段程序都应该在单元测试的驱动之下产生,而测试是不可能驱动出 来一个private方法的。那么private方法从哪里来?只能从重构而来。所以答案是:private方法是不需要测试的,因为它是重构的产物,而 重构是不改变程序可观察之行为的。既然行为不改变,测试自然也不需要有任何改变,所以不需要针对private方法建立任何新的测试。

问:但是,如果private方法确实出现问题了怎么办?如果确实希望用测试来弄清一个private方法里面到底发生了什么,该怎么办?

答:如果一个private方法复杂到你不能一眼看清它,那它就太复杂了,你应该把它重构成为一个独立的class,然后针对这个class来建立单元测试。

 

 

 

posted @ 2008-04-16 20:54 离弦之ray的技术天空 阅读(1998) | 评论 (3)编辑 收藏

浏览器彻底换成了FireFox
编程用的是IDE是Eclipse
Server用的是Jboss
Office用的是Open Office


等待…………梦想中的Gphone

posted @ 2008-04-08 19:27 离弦之ray的技术天空 阅读(145) | 评论 (0)编辑 收藏

mysql的procedure不支持数组参数,在网上找了个强人的代码,与大家分享。
http://www.phpx.com/happy/thread-111759-1-1.html


DELIMITER ;
DROP DATABASE IF EXISTS PRO;
USE MYSQL
CREATE DATABASE PRO;
USE PRO
DROP TABLE IF EXISTS TEMP;
CREATE TABLE TEMP (
  ID                        INT(8)                NOT NULL AUTO_INCREMENT,
  FOREIGN_KEY               INT(8)                NOT NULL,
  PRIMARY KEY (ID)
) TYPE=MyISAM AUTO_INCREMENT=1 COMMENT='测试';

DELIMITER ;
DELIMITER //
DROP PROCEDURE IF EXISTS DNA  //
CREATE PROCEDURE DNA (IN THE_CNT INT(8), IN THE_STR VARCHAR(10000))
BEGIN
  DECLARE i INT(8) DEFAULT 0;
  REPEAT SET i = i + 1;
  INSERT INTO TEMP VALUES (NULL, SUBSTRING_INDEX(SUBSTRING_INDEX(THE_STR, ',', i), ',', -1));
  UNTIL i >= THE_CNT END REPEAT;
END
//
DELIMITER ;

CALL DNA(7, '231,24,1114,151,7831241,9134,989');
SELECT * FROM TEMP;
+----+-------------+
| ID | FOREIGN_KEY |
+----+-------------+
|  1 |         231 |
|  2 |          24 |
|  3 |        1114 |
|  4 |         151 |
|  5 |     7831241 |
|  6 |        9134 |
|  7 |         989 |
+----+-------------+
posted @ 2008-03-06 19:44 离弦之ray的技术天空 阅读(2195) | 评论 (0)编辑 收藏

刚才试图搞mysql的存储过程,被郁闷了一回,最简单的存储过程,只要加上begin 和end就有莫名其妙的错误。

比如
CREATE PROCEDURE p()
BEGIN
  SELECT * FROM T;
END;
够简单了吧?就是报错,其实是分号的问题,说的正规点叫分隔符。

应该这样
1.    delimiter //
2.    CREATE PROCEDURE p()
3.    BEGIN
4.      SELECT * FROM T;
5.    END//
6.
7.    delimiter ;

第一行把分隔符改成双杠,这样到中间 FROM T的时候mysql不会认为SQL命令已经结束了;
第七行把分隔符再改回来,不然以后不习惯。
posted @ 2008-03-06 19:35 离弦之ray的技术天空 阅读(661) | 评论 (0)编辑 收藏


    粗粗看完一遍设计模式的时候,觉得Builder Pattern和Factory Method Pattern有点混淆,好像这两者都是将复杂的构造过程屏蔽掉,最终返回一个Client满意的对象,但他们的本质是不一样的
    Builder Pattern只针对一个类,这个类的特点是构造起来过程特别复杂,所以将构造的部分独立出来,专门用一个BuilderClass来负责生成对象。
    Factory Method更多的是针对生成实现同一接口的一组类中的某个。有点拗口,就是在运行时生成正确的对象。
    总结下来,就是Builder针对一个Class,Factory Method针对从一组Class中挑选一个
posted @ 2008-02-26 20:25 离弦之ray的技术天空 阅读(288) | 评论 (0)编辑 收藏

看设计模式看到Prototype Pattern,老实说觉得这个模式并不是特别重要,但其中提到的Java中的clone()方法,却值得仔细看一看,其中涉及到浅拷贝和深拷贝(shallow copy & deep copy),Sun的一篇技术文档已经写的很清楚了,推荐。

http://java.sun.com/developer/JDCTechTips/2001/tt0410.html#making

posted @ 2008-02-22 16:44 离弦之ray的技术天空 阅读(594) | 评论 (0)编辑 收藏

Meaning

A means of estimation made according to a rough and ready practical rule, not based on science or exact measurement.

Origin

This has been said to derive from the belief that English law allowed a man to beat his wife with a stick so long as it is was no thicker than his thumb.

Meaning里面已经写得很清楚,表示一个粗略的原则,毕竟打老婆的时候不会仔细丈量自己用的棍子的粗细到底有没有超过自己的拇指。

在书中它是这么用的:
The rule of thumb is that...
我想应该翻译成:大体的原则是...




posted @ 2008-02-20 16:41 离弦之ray的技术天空 阅读(310) | 评论 (0)编辑 收藏

    Java中一共有四个类加载器,之所以叫类加载器,是程序要用到某个类的时候,要用类加载器载入内存。
    这四个类加载器分别为:Bootstrap ClassLoaderExtension ClassLoaderAppClassLoader
URLClassLoader,他们的作用其实从名字就可以大概推测出来了。其中AppClassLoader在很多地方被叫做System ClassLoader

Bootstrap ClassLoader是在JVM开始运行的时候加载java的核心类,是用C++编写的,它用来加载核心类库,在JVM源代码中这样写道:
static const char classpathFormat[] =
"%/lib/rt.jar:"
"%/lib/i18n.jar:"
"%/lib/sunrsasign.jar:"
"%/lib/jsse.jar:"
"%/lib/jce.jar:"
"%/lib/charsets.jar:"
"%/classes";
Extension ClassLoader是用来加载扩展类,即/lib/ext中的类。
AppClassLoader用来加载Classpath的类,是和我们关系最密切的类。
URLClassLoader用来加载网络上远程的类,暂且不讨论。

它们之间的关系:

1.Parent-Child,按顺序从大到小。不是简单的继承关系。

2.ClassLoader有个getParent的方法,但是Ext ClassLoader调用后得到的是null,bootstrap是JVM自己的,用户看不到。

3.classloader的委托机制:当等级比较低的ClassLoader要加载某个类的时候,它首先会请求Parent加载器来加载,Parent再请求它的Parent
比如现在Ext要加载了,它往上请求。如果最大的Bootstrap找不到,那么Boot会叫Ext自己找找,Ext找不到,是不会让下一级的App去找的,此时就报出ClassNotFoundException

4.类A调用类B,B会要求调用它的类的类加载器来加载它,也就是B会要求加载A的加载器来加载B。这就会有个问题,如果他们在一起,那没关系,肯定某个classloader会把它们俩都加载好。但是如果A在/lib/ext文件夹中,而B在Classpath中呢?过程是这样的首先加载A,那么一层层上到Bootstrap Classloader,boot没找到所以ext自己找,找到了,没问题;加载B,因为A调用了B,所以也从bootstrap来找,没找到,然后A的ext classloader来找还是没找到,但是再也不会往下调用了,于是报出ClassNotFoundException。
但是现实生活中有很多应用,比如JDBC核心方法在核心库而驱动在扩展库,是必定在两个地方的,那怎么办呢?要用到Context ClassLoader我们在建立一个线程Thread的时候,可以为这个线程通过setContextClassLoader方法来指定一个合适的classloader作为这个线程的context classloader,当此线程运行的时候,我们可以通过getContextClassLoader方法来获得此context classloader,就可以用它来载入我们所需要的Class。默认的是system classloader。利用这个特性,我们可以“打破”classloader委托机制了,父classloader可以获得当前线程的context classloader,而这个context classloader可以是它的子classloader或者其他的classloader,那么父classloader就可以从其获得所需的 Class,这就打破了只能向父classloader请求的限制了。这个机制可以满足当我们的classpath是在运行时才确定,并由定制的 classloader加载的时候,由system classloader(即在jvm classpath中)加载的class可以通过context classloader获得定制的classloader并加载入特定的class(通常是抽象类和接口,定制的classloader中是其实现),例如web应用中的servlet就是用这种机制加载的.
posted @ 2008-02-20 15:16 离弦之ray的技术天空 阅读(4812) | 评论 (4)编辑 收藏

i before e except after c就是说在英文单词中,i一般都在e前面,除非是在c后面。

Seeing is believing 眼见为实

Halloween 万圣节前夕 October 31st

Tuberculosis 肺结核 cholera 霍乱

Auction 拍卖

Periodical == magazine

Blind date 相亲 Speed dating 很多人在一起的那种相亲,每对交谈的时间很短

Gold diggers 钓金龟婿的那种人(不是专指女的,指的就是只看重对方钱财的人)

Basis foundation 指的是结婚前必须的基础 Maldives 马尔代夫(蜜月圣地)

Concubine 小妾

Uygur 维吾尔族 Dual citizenship 双重国籍

Cupid 丘比特

Patriot 爱国者 Nationalism 爱国主义

Wacko 很疯狂的人,不正常的人

Domestic violence 家庭暴力

Go Dutch  AA

中国古代四大发明: Paper, moveable printing, compass, gun powder

Peak 顶峰比如一个抛物线的最高点

Pass the family name on 在谈到为什么会重男轻女时

Spoil the children 溺爱孩子 Brat 小皇帝

Infanticide -icide结尾都表示杀害,这个词就是杀婴者

Calligraphy 书法


一些词根的意义
Patr – father
matr – mother

fili – child
fratr – brother
soror – sister

Step-father 继父 Step-child 继子

Bribe 贿赂(红包)

Anchor baby 就是那些在美国降生,属于美国人的那种孩子(父母并不是美国人)

Xenophobic 恐惧外国人的

Supreme Court 最高法院

Classic Chinese

Dim Sum 老美从在美国人那里听出来的,其实就是广东话的“点心”

Gung-ho 词源是“工合”(工业合作社),现在的意思是quick quick 用来鼓励士气等等

Catch sb. red handed 你如果刚好逮到一个小偷把手伸到你的口袋里,那么你就catch him red handed

Peking Opera 京剧

Acting up (仪器、设备)坏了

Vegetarian 素食主义者

Pipe down ==be quiet

Stewardess = = fight attendant 空姐

Bulging 凸出,比如眼球凸出

Pluck 拔(鸡毛、鸟毛),也指秃鹫啄食尸体的肉

Sissy 娘娘腔

Pony-tail 马尾辫 pig-tail 扎两个辫子

Poodle 贵妇犬

Hound 警犬 Hound Dog 花花公子

Psychedelic 迷幻的(形容嗑药后的感觉)

Splinter 小裂片,老师解释的时候,比如中国战国时代的时候,整个中国分裂成很多碎小的国家

Sesame 芝麻 sesame street……

Puppets 戴在手上的那种木偶

Cocaine 可卡因

Flaunt it it炫出来,炫耀

Watchwords 流行的词

Binge buying 短时间内消费很多,如超市购物

Carpool 就是“拼”,拼车、拼……

Torn-jeans 有毛边的,有洞的牛仔裤

Fishnet 渔网状的(可以用来形容那种丝袜)

Smurf 蓝精灵

Stretch my gams (运动前)活动一下肌肉, gamsmuscle 的另一种说法

Moonwalk 迈克杰克逊的太空步

What a feeling

Snap out of it    snap指手指打响,整句是“别做梦了”的意思

Bow 作为动词是鞠躬的意思,作为名词是弓的意思。作动词和名词时读音不同。

Flushblush 都是脸红的意思,但flush是因为热而脸红,blush是因为害羞而脸红

Noisy 可以被用来某人问了太多的问题,就可以说他太noisy

Landlord 房东

Toothpick 牙签

Clothespin 常用的那种夹衣服的夹子

Shoelace 鞋带

Dental 牙线

Left-handed左撇子

Amusement 娱乐消遣

Rubber 橡皮但是也表示condom

Charity 慈善团体

Pavilion 亭子

Yacht 游艇

Donation 捐款,贡献

Jack pot头奖

Slot machine老虎机

Acrobatics 杂技

Martial arts

Mime哑剧

Stuntman 特技演员

Kung fu 功夫

Breakthrough – a sudden success

Royal Family

Vocational/trade school 技校

Self-starter有主动精神的人

Sheltered 受保护的,指的是那些被宠坏的孩子

To hit the books---- to study a lot

Carpentry 木工

Incense薰香

Shooting star 流星

Twitch 眼皮跳

Dove 鸽子

Knuckle指关节

Turtle 海龟

Magpie喜鹊

Turkey火鸡

Eyelash 睫毛

Priority boarding 老人小孩等先上

Direct 需要转机 Non-stop直达

Low-cost Airline经济航空

Railroad crossing

Crosswalk 人行横道

Pedestrian 行人

Toll booth 收费站

Highway Expressway都表示高速公路

Skyway表示天桥

Elevated road高架

posted @ 2008-02-10 21:04 离弦之ray的技术天空 阅读(884) | 评论 (1)编辑 收藏

RT
posted @ 2008-02-07 00:33 离弦之ray的技术天空 阅读(96) | 评论 (0)编辑 收藏

   声明

如今这个博客已不是我一个人的。

是我和我女朋友的。

这里将作为我们的学习记录。

希望光临的各位多提意见,共同进步!

posted @ 2008-01-07 13:23 离弦之ray的技术天空 阅读(142) | 评论 (0)编辑 收藏

     摘要: Chapter 6 DOM 基础        书的这章主要是围绕document这个对象的使用来讲的。Document对象既是BOM的一部分, 也是Html DOM的HTMLDocument对象的一种表现形式,它也是XML DOM Document对象。JavaScript中的大部分处理DOM的过程都是用到了document对象。 ...  阅读全文
posted @ 2008-01-04 20:29 离弦之ray的技术天空 阅读(413) | 评论 (2)编辑 收藏

     摘要: Chapter 7  正则表达式 1:定义RegExp对象:        1: var reCat = new RegExp(“cat”,”gi”);         2: var reCar = /C...  阅读全文
posted @ 2008-01-03 14:13 离弦之ray的技术天空 阅读(229) | 评论 (0)编辑 收藏