自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fuliangliang的Blog

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

原创 信息论

基本概念熵如果X是一个离散随机变量,取值空间为RR, 其概率分布为p(x)=p(X=x),x∈Rp(x)=p(X=x), x \in R,那么X的熵H(x)H(x)定义为 H(x)=−∑p(x)log2p(x)H(x) = -\sum{p(x)log_2p(x)} 其中约定0log0=00log0 = 0,对数以2为底的熵的单位为二进制位比特。

2015-03-28 22:01:05 1990

原创 Programming Collective Intelligence 推荐系统 读书笔记二

 这章主要讲了如何做推荐,现在推荐最常用的几种算法:Collaborative Filtering、Cluster Models、Search-Based Methods、Item-to-Item Collaborative Filtering.前两种是通过找相似的Customer,后两种通过找相似的Item.论文Amazon.com Recommendations Item-to-Item Co

2008-12-28 12:49:00 2827

原创 《Programming Collective Intelligence》review

 最近javaeye上“书托”应该算比较流行的词汇了,我也赶把时髦当把“书托”,推荐一本浅显易懂的机器学习方面的入门书籍,最近读了OReilly出版社的>,开始看了电子版的,后来徐师兄送我一本,这本书非常浅显易懂,并且结合真实可运行代码,介绍了机器学习最常用的算法,并结合实例使用python代码,使用许多OPen API来构建可用的系统。书中的算法相对简单,但对于理解机器学习方面的算法应该说是很好

2008-12-28 12:47:00 2781

原创 小脚本搞定CVS服务器更换后checkout下来的工程迁移

 CVS换了新的服务器,原来的工程需要更改Server配置,这个东东手工做起来 可是个体力活,写了一个脚本分发下来。 Ruby代码 def changeCVS(path)      Dir.foreach(path) do |dir|          if dir != "." && dir != ".."              absdir = path + "/" + dir      

2008-12-28 12:46:00 2616

原创 Ruby的魔法 学习笔记之一

 Ruby的许多动态特性,让Ruby具有很多魔法,这个魔法足以让你来定制你自己的语言DSL, Rails就是Ruby在Web的DSL. 一、向对象显示的发送消息 我们可以向对象直接发送消息: Ruby代码 class HelloWorld      def say(name)          print "Hello, ", name      end  end  hw = HelloWorld

2008-12-28 12:45:00 2734

原创 Ruby self在不同环境的含义

 Ruby的self在不同的环境中有不同的含义,这点和java的this不同,原因是java实际上只有一种环境--在class的实例方法定义中使用,代表访问这个方法参数自动传进的那个对象。而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象...,所以self就会有很多环境,区分不同环境的self含义才能更好的理解程序的含义一、Top Level ContextR

2008-12-28 12:44:00 3200

原创 你能用Wapper来做什么?

从简单的说起:一、在只有值传递的语言中,通过Wapper把实参Wapper之后,实现副作用:在工具箱里写上我们要用的Wrapper:Java代码 public class Wrapperextends Object> {      public T object;        public Wrapper() {          object = null;      };        pu

2008-12-28 12:40:00 3499 1

原创 AJAX 异步传输数据的问题

要异步传输的数据:Xml代码 ....       action xsi:type="basic:JavaScript"  script="index += 1;"/>  ....   Ajax异步传输代码:Js代码 var postData = "input="+ escape(inputJSON) +"&script="+escape(xml)+                     "&f

2008-12-28 12:38:00 3210

原创 解决nsIWebProgress addProgressListener失败的问题

  给nsWebProgress addProgressListener每次都失败,Error: Component returned failure code: 0x80070057(NS_ERROR_ILLEGAL_VALUE) [nsIWebProgress.addProgressListener]在google 一下发现很多人都遇到这个问题,在addProgressListener函数

2008-07-31 19:09:00 3357

原创 Eclipse3.4 Plug-in Spy

 在Eclipse插件开发中,我们经常"Monkey See Monkey Do",Eclipse3.4提供了和VC++ spy++一样强大的功能的:Plug-in Spy,现在你想模仿Eclipse已有的一个界面可以使用这个spy来探测它的实现类了,这样就省着我们每次都先猜半天,然后在Search了。可以使用快捷键Shit+Option+F1 (Alt+Shift+F1 on Win

2008-07-31 19:07:00 2419

原创 用ruby写了一个生成xpcom组件模板的小工具

写xpcom组件我们经常copy paste,因为xpcom组件的与业务无关的注册、QueryInterface代码都是基本固定的,写了一个自动生成xpcom组件的template,这样就可以只关心核心业务,避免书写样板式的代码。Ruby代码 =begin  NOTICE:   Before use the code:   You should use comman

2008-07-31 18:56:00 2462

原创 XPCOM数组作为参数注意的问题

 XPCOM组件,数组作为传出和传入的参数,c++这种支持引用传参的语言与idl接口的声明是一致的,但在javascript语言中,参数传递都是值传递,所以参数是不能直接作为返回值的。这样用javascript写xpcom传入和传出参数时,就会有一些特殊的要求。我们举一个简单的例子,在idl中,我们的有getArray,setArray接口,用它来说明如何使用javascript编写含有数组参

2008-07-31 18:52:00 2446

原创 Mozilla XPCOM组件开发常见错误解决方法

最近做Firefox的开发,一直在用javascript写XPCOM组件,javascript这个东东来写XPCOM非常痛苦,有一点错误都无法注册成功,许多时候基本靠肉眼一个单词一个单词的找,当然也有一些技巧。Firefox开发最常用的工具有firebug和XPCOMViewer,使用XPCOMViewer来查看已注册的组件。常见的错误:一、死活注册不上:注释掉其他方法和成员变量,

2008-07-31 18:43:00 2702

原创 Eclipse恢复删除的文件

经常有人误删掉Eclise下的代码文件,Eclipse提供了即时保存的功能,本地有一个Local hository,通过它不仅可以恢复到前某天的版本上,还可以恢复误删掉得文件。在你的工程任意处点击右键就会有Restore from local hository...菜单,然后选择要恢复的文件就可以恢复了。当然误删的文件可能没有本地的的副本,这样的话,就只能使用Easy recovery来恢复文件。

2008-07-09 12:59:00 4717

原创 解决Ubuntu下scim输入法光标同步

打开/etc/X11/xinit/xinput.d/scim文件 把 GTK_IM_MODULE=xim QT_IM_MODULE=xim 改成 GTK_IM_MODULE=scim QT_IM_MODULE=scim 即可。注销一下或者是重启XWindow。

2008-07-09 12:47:00 2622

原创 基于Eclipse的开发初识(一)

  最近做基于Eclipse的开发,写写对基于Eclipse的开发一些体会。以前一直在用Eclipse,感觉到插件机制的强大和灵活性,但一直没有接触到Eclipse的开发。现在写代码基本上模仿+现学现卖,Eclipse Plugin开发首先就应该学会模仿(我老大常说的一句Monkey see monkey do,《Contributing to Eclipse》的一条rule),因为Eclipse

2008-06-03 09:09:00 2427

原创 由于网速问题,本blog暂停,搬迁至JavaEye

由于网速问题,本blog暂停,搬迁至JavaEye:http://fuliang.javaeye.com

2008-01-13 18:19:00 2449

原创 Open Session in View

我们在使用Hibernate的lazy load来优化性能的时候,只要Session关闭后再试图访问未被载入的对象时,就会出现异常。通常使用在事务之内来访问数据是适合的,但是有时候我们需要强制载入这些数据,例如在Web视图中访问这些模型对象。  在业务层强制载入这些数据,通常不是很好的解决方案,因为不同的视图在使用业务方法的时候,需要的数据通常不一样,这样业务方法可能绑定到特定的控制器中。   在

2007-12-08 23:02:00 2630

原创 Spring先进思想与实用主义的集大成者

      Spring一个开源的Java EE轻量级框架,它的目的是提供更好的编程模型,从而使J2EE开发更容易。Spring的许多理念一直引领着J2EE的轻量级开发的潮流。通过对Spring的学习,切实地感觉到了Spring领先的理念以及实用主义框架与规范驱动的EJB之间的差别。  Spring它不重复发明轮子,而是对现有的优秀的J2EE框架进行更好的抽象,提供贯穿应用各个层的更一致的编程模型

2007-12-02 11:46:00 2691

原创 cvs服务器安装与Eclipse配置

现在虽然SVN可能是更好的版本管理系统,Eclipse也有相应的插件,但以前一直用CVS,用起来比较熟,不需要任何插件.以前没有搭建过CVS服务器,只是使用。今天自己搭建了一个,我使用的是CVSNT,中间还是遇到了一些问题,开始时没有勾选Compatiablity Options中的Respond as cvs 1.11.2 to version r,从而可能导致与Eclipse兼容性的问题,

2007-11-30 17:35:00 9992 1

原创 使用Struts2+Spring+Hibernate+sitemesh做的一个在线音乐站点

 可以到我的javaeye上的blog(http://fuliang.javaeye.com/)上下载到源代码.

2007-11-03 16:26:00 1382

原创 米莱语录

1. 不许你跟别的女照相,我才是你的女朋友! (这是米莱在剧中的第一句话,那一刻开始喜欢这个女孩)2. 甭看了,剩下的都菜瓜,本校校花就在你怀里。3. 记住,在这个世界上,男人女人各有分工,男人主要用来对女人使坏,女人主要用来对男人好,以前我对这种混蛋分工特不满意。可是现在,我认命了。 4. 现在的社会风气实在太坏了。5. 你好傻啊,你一点也不理解我,我刚才说的一切,所有的一切,那

2007-10-19 20:06:00 1710

原创 struts2 OGNL实例化数组的问题.

我在Action中使用了:private SingerDto[] singerDtos; 定义了getter和setter方法:public void setSingerDtos(SingerDto[] singerDtos) {  this.singerDtos = singerDtos; }     public  SingerDto[]  getSingerDtos(

2007-10-15 23:17:00 5146 1

转载 程序员的素养

1、“一切从名字开始”。无论是开发大的项目、写学习代码或打Patch,都要注意给项目、变量、函数起一个好的名字。2、“不要Copy第二次”,当一个常量要用到第二次的时候,就立刻给他做预定义。比如起一个常量名,或用一个变量赋值。3、“不以误小而为之”。“这点儿小错无所谓”的态度对自己百害无一利。4、“不以善小而不为”。 你有下面的情况吗?“修个小BUG没意思”,“随便起个名字无所谓”,“懒得提炼函数

2007-10-14 23:51:00 796

原创 Struts2文件上传在配置fileUpload拦截器中设置文件大小无效的问题

action的配置如下:action name="uploadSong" class="uploadSongAction">      interceptor-ref name="fileUpload">                 param name="maximumSize">209715200param>        interceptor-ref>       interc

2007-10-10 23:40:00 4390 2

转载 Java SE 6 新特性系列之五 Java DB 和 JDBC 4.0

长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何使用 Java 语言高效、可靠、简洁地访问数据库一直是程序员们津津乐道的话题。新发布的 Java SE 6 也在这方面更上层楼,为编程人员提供了许多好用的新特性。其中最显著的,莫过于 Java SE 6 拥有了一个内嵌的 100% 用 Java 语言编写的数据库系统。并且,Java 6 开始支持 JDBC 4.0 的一系列新功

2007-10-09 14:50:00 823

转载 Java SE 6 新特性系列之四 编译器 API

新 API 功能简介JDK 6 提供了在运行时调用编译器的 API,后面我们将假设把此 API 应用在 JSP 技术中。在传统的 JSP 技术中,服务器处理 JSP 通常需要进行下面 6 个步骤: 分析 JSP 代码; 生成 Java 代码; 将 Java 代码写入存储器; 启动另外一个进程并运行编译器编译 Java 代码; 将类文

2007-10-09 14:48:00 670

转载 Java SE 6 新特性系列之三 JMX 与系统管理

前言在 Java 程序的运行过程中,对 JVM 和系统的监测一直是 Java 开发人员在开发过程所需要的。一直以来,Java 开发人员必须通过一些底层的 JVM API,比如 JVMPI 和 JVMTI 等,才能监测 Java 程序运行过程中的 JVM 和系统的一系列情况,这种方式一直以来被人所诟病,因为这需要大量的 C 程序和 JNI 调用,开发效率十分低下。于是出现了各种不同的专门做资源管

2007-10-09 14:45:00 785

转载 Java SE 6 新特性系列之二 HTTP 增强

概述Java 语言从诞生的那天起,就非常注重网络编程方面的应用。随着互联网应用的飞速发展,Java 的基础类库也不断地对网络相关的 API 进行加强和扩展。在 Java SE 6 当中,围绕着 HTTP 协议出现了很多实用的新特性:NTLM 认证提供了一种 Window 平台下较为安全的认证机制;JDK 当中提供了一个轻量级的 HTTP 服务器;提供了较为完善的 HTTP Cookie 管理功

2007-10-09 14:42:00 969

转载 Java SE 6 新特性系列之一 Instrumentation 新功能

 级别: 中级胡 睿 (ruihu@cn.ibm.com), 软件工程师, IBM吕 晶 (purefire@126.com), 软件工程师, IBM2007 年 5 月 16 日2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马)。跟 Tiger(Java SE 5)相比,Musta

2007-10-09 14:39:00 1033

原创 Template method vs Callback模式

Template method vs Callback以前曾在《也谈谈Spring中的Template和Callback模式》中谈过这两个模式的实用场合,那时候没有给出代码。最近遇到一个问题,可以很好的说明这两种模式的使用场合。需求:我暑假实习公司做的一个产品,我们Server组主要事情是:一、把页面的信息组装成DTO,使用JAXB技术将定义的消息格式(xml schema)自动生成对应的Obje

2007-10-03 00:09:00 1339

原创 JAXB+Socket的一个Bug(或者算一个Feature吧)

把Socket和JAXB结合起来用的时候会有问题: 当我们让JAXB 去 unmarshal  InputStream或者marshal outputStream的时候,它会自动close掉InputStream,这样Socket就会处于半关闭状态,而Socket处于这种状态会自动关闭,这样用Socket只能单向通讯一次就结束了。一般的原则是,谁打开了stream,谁就应该关闭它,但是JAXB底层

2007-09-29 15:41:00 1511

原创 Ajax+Struts2+Spring+Hibernate整合

 我们沿用Spring+Hibernate+DWR的例子,做一个Ajax+Struts2.0+Spring+Hibernate整合,许多步骤大体相似,我就直接搬过来了:首先,建一个web project,然后添加对hibernate和spring的支持,我们使用的是hibernate3.2和spring2.0,然后导入xwork-2.0.3.jar struts2-core-2.0.8.jar s

2007-09-26 10:45:00 26585 20

原创 Spring+hibernate+DWR整合

首先,建一个web project,然后添加对hibernate和spring的支持,我们使用的是hibernate3.1和spring2.0,然后导入dwr.jar和commons-pool-1.3.jar(不知道myeclipse怎么搞的,添加Spring功能支持的时候就有了commons-dbcp.jar,居然没有其依赖的commons-pool-x.jar,只好单独添加了,另外,需要将

2007-09-24 09:54:00 6881 4

原创 尝试了一下JAXB2.0

JAXB2.0使用以前实习的时候用过JAXB1.x,据说JAXB2.0使用了Java 5.0的新特性,例如注解、泛型,使得JAXB更容易使用,于是从网上下来试了一下:从https://jaxb.dev.java.net/servlets/ProjectDocumentList?folderID=6344&expandFolder=6344&folderID=0下载到JAXB2_20061115

2007-09-21 23:42:00 3385 1

原创 毕业设计有望提前完成

  呵呵,经过半个多月的奋战,毕业设计差不多快做好了。使用Ruby on Rails开发就是不一样,能获得良好的结构的同时开发速度快的惊人。使用Rails做web开发就像在做桌面开发那么爽,一天工作3个多小时就能完成一个小模块,如果使用J2EE的struts+spring+hiberate来做,估计的满天的工作才能做好一个小模块。本来打算使用SSH来做的,由于考研复试之类的到四月份才开始考虑毕业设

2007-05-02 13:17:00 1208 2

原创 比较Template method、Strategy和Builder模式随想

Template method和Strategy模式经常在框架设计中被使用,并且二者很相似,都是父类定义功能接口,将具体的实现留个子类,有时二者可以相互替换。Template method主要是父类将一个功能的实现分成几个小的步骤,并且在模版方法中规定了这些步骤的执行顺序,同时定义了这些子步骤的protected类型的方法留给子类实现,声明为protected主要是以防止用户不恰当的使用这些方

2007-04-18 14:05:00 1314

原创 也谈谈Spring中的Template和Callback模式

  前几天在javaeye论坛,看有人谈论Spring中的Callback模式和Template模式,我以前也提到过Spring中JdbcTemplate中使用的Callback , 自己回来想了想,总结一下自己的想法。Spring中的Callback模式与Template模式合用,随处可见。Template method被广泛的使用,像Servlet就是使用这个模式。Template mo

2007-04-18 11:02:00 2389

原创 考研录取名单居然还没有出来!

      复试都过去将近20天,结果居然还没有出来,实在是郁闷,从等初试成绩到现在的复试成绩,自己真的没有什么耐心了,虽然自己考得还算不错,从初试来看公费肯定没有问题,但一件事老惦记在心里,实在是一种折磨,何况这么长的时间谁知有没有什么变故,本来公费名单就不多,唉~,真有想找工作的冲动了. 

2007-04-18 10:09:00 807

原创 参加Java版聚

应Java版的版主的邀请, 让我做一个Ruby on Rails的一个报告,我还15分钟演示做一个包括撰写文章、回复和统计帖子数量等功能的blog,我也只是学了几个月,有那么点经验,由于是Java版聚,也不能喧宾夺主,做了一个ppt , 主要比较了Rails和J2EE(structs+hiberate)框架,自己事先也做了一个blog试了一下,大约十五分钟差不多。那天由于一边做一边解释,还出了一点

2007-04-17 23:20:00 801

提示
确定要删除当前文章?
取消 删除