- 浏览: 1654556 次
- 性别:
- 来自: 北京
最新评论
-
532870393:
请问下,这本书是基于Hadoop1还是Hadoop2?
Hadoop in Action简单笔记(一) -
dongbiying:
不懂呀。。
十大常用数据结构 -
bing_it:
...
使用Spring MVC HandlerExceptionResolver处理异常 -
一别梦心:
按照上面的执行,文件确实是更新了,但是还是找不到kernel, ...
virtualbox 4.08安装虚机Ubuntu11.04增强功能失败解决方法 -
dsjt:
楼主spring 什么版本,我的3.1 ,xml中配置 < ...
使用Spring MVC HandlerExceptionResolver处理异常
文章列表
今天我们看看Nutch网页抓取,所用的几种数据结构:
主要涉及到了这几个类:FetchListEntry,Page,
首先我们看看FetchListEntry类:
public final class FetchListEntry implements Writable, Cloneable
实现了Writable, Cloneable接口,Nutch许多类实现了Writable, Cloneable。
自己负责自己的读写操作其实是个很合理的设计方法,分离出来反倒有很琐碎
的感觉。
看看里面的成员变量:
public static final String DIR_NAME = " ...
- 2007-12-15 16:39
- 浏览 4589
- 评论(3)
今天我们来看看Nutch的源代码中的protocol-http插件,是如何抓取和下载web页面的。protocol-http就两个类HttpRespose和Http类,其中HttpRespose主要是向web服务器发请求来获取响应,从而下载页面。Http类则非常简单,其实可以说是HttpResponse的一个Facade,设置配置信息,然后创建HttpRespose。用户似乎只需要和Http类打交道就行了(我也没看全,所以只是猜测)。
我们来看看HttpResponse类:
看这个类的源码需要从构造函数
public HttpResponse(HttpBase http, URL url, ...
- 2007-12-15 00:36
- 浏览 5570
- 评论(3)
搜索引擎Nutch源代码研究之一 网页抓取:
Nutch的爬虫代码部分主要集中在:package org.apache.nutch.fetcher和插件protocol-file
Protocol-ftp protocol-http protocol-httpclient以及相应的Parser插件中:
下面我们先从org.apache.nutch.fetcher开始:
最主要的类是Fetcher类,我们从它入手一步步跟踪整个代码:
我们从run函数入手:
首先:
for (int i = 0; i < threadCount; i++) { // spawn threads ...
- 2007-12-14 20:18
- 浏览 9818
- 评论(4)
今天使用SVN去check out Nutch的源代码,以前没有用过SVN,遇到了一些问题:
开始,安装Eclipse的插件subclipse,update Eclipse后,安装subclipse1.2.x,装完之后怎么也不好使,
找不到透视图,Import也没有那个选项.就以为是版本不对,到官方网站上找,发现subclipse1.2.x是eclipse3.2
以上都可以的,版本没有什么问题.后来试着装subclipse1.0.x,装完之后居然好使了.
然后自己在另外的一个Eclipse3.3里面装subclipse1.2.x插件,装的时候发现有个X号,原来需要subclipse1.2.x
...
- 2007-12-14 17:23
- 浏览 2334
- 评论(0)
本学期读的书,总结一下 :
书名<o:p></o:p>
概述<o:p></o:p>
阅读情况<o:p></o:p>
推荐指数<o:p></o:p>
...
我们在使用Hibernate的lazy load来优化性能的时候,只要Session关闭后再试图访问未被载入的对象时,就会出现异常。通常使用在事务之内来访问数据是适合的,但是有时候我们需要强制载入这些数据,例如在Web视图中访问这些模型对象。
在业务层强制载入这些数据,通常不是很好的解决方案,因为不同的视图在使用业务方法的时候,需要的数据通常不一样,这样业务方法可能绑定到特定的控制器中。
在业务层上面增加一个Facade层来解决这个问题,同样也会增加一层不太必要的封装,增加了复杂性,POJO in Action一书中的例子就是这么设计的(POJO in Action感觉是 ...
- 2007-12-08 23:57
- 浏览 3840
- 评论(3)
昨天看了几年前写贪吃蛇程序,代码实在不敢恭维,怎么样容易就怎么写了,
各个类的职责完全不清.当时,作为第一个写的比较大的程序,可以说是以后我大规模程
序设计的一个开端吧,这么有意义的一个程序,不能就这么任他烂下去了.况且这个小游戏难度比较小,对刚从课堂的程序设计到实际开发的来说是一个很好的例子.花了一个晚上重写了一个,注释今天上午也加上了.希望对想开始写比较大的程序的同学们有所帮助.
注:最近感冒了,没有怎么测试,自己玩了一把,看到正常,没怎么找bug...
问题:Consider an arbitrary sequence of integers. One can place + or - operators between integers in the sequence, thus deriving different arithmetical expressions that evaluate to different values. Let us, for example, take the sequence: 17, 5, -21, 15. There are eight possible expressions:
17 + ...
- 2007-11-24 00:34
- 浏览 1900
- 评论(0)
1、今天去看mm的日志,一个for循环,n多篇,看完后我的cpu对我发出怒吼:Y的,这两天分治法白学了,上来就一个for循环,你不知道我最怕死循环,这次你知道给我的心里压力有多大么,以后把分治用上,让我一次处理n>=2到n<=10个,否则,我就在你看得尽兴的时候break掉,呵呵,我的地盘我做主...
2、今天看了贪心法,忽然想起了和mm吃饭时候的花心大萝卜,突然大彻大悟:每次mm和其他mm站在一起的时候,面对那么多的可行解,不用看别的mm了,我直接就知道这个局部最优解,就会是最优的(有时会花眼,需要先排个序,呵呵),没有什么重复的子问题,所以我用不着在脑子里开个表记录一下,直接记着 ...
在Java世界摸爬滚打了三年多了,J2EE也用了两年了,从jsp的scritlet,标签,javaBean,隐含对象,到servlet,从Model1模型到MVC的Model2模型,从JDBC的使用到使用DAO封装出数据访问层来访问数据,从二层的设计到三层的分层架构,从jsp到JSF,Spring MVC,struts2,从javascript代码的前端验证到DWR的Ajax表现层开发,从在简单的在控制器中写业务代码,到使用Service层来实现业务代码,从数据库驱动到领域驱动,从编码规范到重构与模式,从在main函数中测试代码,到使用JUnit,从在代码中使用System.out.printl ...
前段时间用用Struts2+Spring+Hibernate+sitemesh做的一个在线音乐站点写的一个在线音乐
的站点.功能实现的相对比较粗糙(如歌曲列表没考虑分页什么的),另外只能使用IE(使用了ActiveX
控件播放音乐的).刚学的struts2,主要是想练一下.
我在Action中使用了:
private SingerDto[] singerDtos;
也定义了getter和setter方法:
public void setSingerDtos(SingerDto[] singerDtos) {
this.singerDtos = singerDtos;
}
public SingerDto[] getSingerDtos() {
return singerDtos;
}
歌手姓名:<input type="text" name="singerDtos[0].name&qu ...
我使用Rails中的Ajax来实现发帖子自动追加到table中,从而不必刷新真个页面的功能,在自己的机子上好
用,在别的机子上试了,需要手工刷新才能看到追加的那行。不知道是为什么?
<table id="posts" class="around">
//other codes...
<%= render(:partial => 'post',:collection => @posts )%>
</table>
//other codes...
<% form_rem ...
我做一个在线考试系统。
我先作了题库,我希望能够从题库中随机选择一定数目的题,并生成一份试卷。
在随机选择一定数目的题的地方没有找到比较好的方式:
Rails好像没有提供存储过程的操作接口。
试题由于删除等原因,id是不连续的。
我现在想到的方式有两种:
1)将所有题目的id查询出来放在一个数组中,然后产生若干个随机数并去掉
重复元素作为数组,从而选定题目,然后拼接sql语句进行查询,这样的缺点是查询所有数目
的试题id放在数组中,如果数目过多,这样做很耗内存.(当然可以通过limit来
限制数量,但数据库默认会建立索引,查询的时候会按照某种顺序列出,后面的题
就没有被选的机会了)
2)先查出题 ...
下面是添加student的代码
def add
@student = Student.new(params[:student])
@klass = Klass.find(:first, :conditions => [ "klass_num = ?" , params[:klass][:klass_num] ])
if @klass.students.create(@student.attributes)
flash[:notice] = "Student was successfully created" ...