2009年7月30日

     摘要: 网站转让,javaei  阅读全文

posted @ 2011-04-23 22:41 summeryhrb 阅读(1969) | 评论 (5)编辑 收藏

 

我的网站是http://www.javaei.com,定位于收录java开发领域最精华的博克,讨论最热烈的话题。Javaei中的ei取自美国工程索引的EI。网站于200956开通,空间只购买了一年的时限,马上就要到期了。

去年这时候,突然萌生了做一个自己的网站的想法。有了创意,很快就行动起来了,从设计到开发到域名构思到购买空间,大约两周的时间,网站的雏形就上线了。后来逐步完善,融入了更多的想法。其实当时并没有很多空余时间来做这个网站,只因一时兴起,把所有其它的事情全放到一边了。当时我除了工作外,正在准备两个重要的考试,一个是系统分析师考试,一个是报考哈工大的博士招生考试。

Javaei网站核心功能是收集java开发领域最精华的博克、讨论最热烈的话题,其内容还包括数据库开发、web前端开发等内容,每周更新一次,后来还加入了各大网站的一些优秀的序列连载博客;跟学生交流过程中,发现hta很有意思,又把网站每周的内容做成hta文件,供访问者下载;再后来,我觉得把博克内容转换成pdf很有必要,就提出了H2P,设计了H2P文件的xml格式、写了一个简单编辑H2P文件的工具,并且根据H2P文件,把网站每周的内容生成一个有目录的pdf电子书,这种方式比某些网站推出的电子书生成功能先进的多,同时,还设计了xslH2P文件解析成树形结构的形式,使网站可以以左边树形目录右边显示正文的形式浏览。后来接受网友的建议,为网站增加了RSS订阅功能。

网站的推广工作也做了一些,主要是做了一些简单的SEO、写一些文章、和其它网站交换链接。在这里,向和我交换链接的网站表示衷心的感谢。也曾经想以邮件的方式推广,从各学生那里要来了他们所在公司员工的email,但是这种大批量的群发邮件必须购买专门的邮件服务才可以,所以邮件推广的方式就放弃了。为了推广我的H2P,向各大网站发起过倡议,希望有更多的网站支持H2P,但回复者寥寥。我把H2P做了简单的整理,向各开源网站提交,希望有更多的人来一起完善H2P,但是由于我自己精力有限,没有时间作后续跟进。

在系统分析师考试的前一周,网站的更新暂停了下来,必须为考试做准备了。幸运的是,后来系统分析师通过了,但这个证书对我已经没有意义了。网站最后一次更新是2009912,博士招生考试的时间已经临近,我必须全力以赴的复习了,还是很幸运,我现在已经在上博了,网站依然没有时间更新,而且现在正在忙着准备参加今年的blog track评测,网站的更新完全停下了。

网站域名和空间使用期限马上就到了,写这篇短文纪念我的网站,并希望有人能接手这个网站,把我前段时间的工作延续下去。

关于网站的介绍请参考我的序列文章——建站手记。
 

我的联系方式qq38295305emalyangjinfeng2010@gmail.com

posted @ 2010-05-03 21:11 summeryhrb 阅读(2122) | 评论 (3)编辑 收藏

javaei网站推出的h2p被开源中国收录为开源项目,urlhttp://www.open-open.com/open252825.htm。希望借助这个平台,能有更多的人了解h2p

H2p是一种根据批量URL生成一个有书签的pdf文档的解决方案。H2p主要包括两部分:h2p-fileh2p-toolh2p-file是一个xml文件,该xml文件主要描述url的信息和url的层次结构,h2p-tool根据h2p-file生成有书签的pdf文档。还可以通过xsl直接展示url的层次结构,而且合作网站对h2p的支持也将变得简单。

H2p详细介绍

H2P倡议——一种新的互联网应用模式 

H2p完善——h2p文件合并和用xsl解析h2p文件

posted @ 2009-09-21 12:57 summeryhrb 阅读(1061) | 评论 (0)编辑 收藏

昨天,javaei网站推出的h2p被开源中国收录为开源项目,urlhttp://www.oschina.net/p/h2p。希望借助这个平台,能有更多的人了解h2p

H2p是一种根据批量URL生成一个有书签的pdf文档的解决方案。H2p主要包括两部分:h2p-fileh2p-toolh2p-file是一个xml文件,该xml文件主要描述url的信息和url的层次结构,h2p-tool根据h2p-file生成有书签的pdf文档。还可以通过xsl直接展示url的层次结构,而且合作网站对h2p的支持也将变得简单。

H2p详细介绍

H2P倡议——一种新的互联网应用模式 

H2p完善——h2p文件合并和用xsl解析h2p文件

posted @ 2009-09-17 13:50 summeryhrb 阅读(196) | 评论 (0)编辑 收藏

 

JavaEI网站从建站到现在已经初具规模,具有稳定的访问量,也产生了一定的影响力,尤其是h2p推出后,收到很多朋友的褒扬和鼓励。

但由于站长自身的技术局限性,而且站长本人精力有限,所以希望有对javaei感兴趣的同仁能加盟。

在软件开发技术蓬勃发展的今天,JavaEI不局限于Java,希望向其他技术领域(C++rubypythonscala等等)发展,

为了JavaEI的进一步发展和壮大,诚邀对此目标感兴趣的同仁,一起来发展JavaEI。对h2p感兴趣的同仁,也欢迎与我们联系,

我们的联系方式是:

QQ

1027816029

Email

javaei@163.com

posted @ 2009-09-16 13:13 summeryhrb 阅读(1558) | 评论 (4)编辑 收藏

     摘要: 自从javaei网站推出h2p以来,得到了很多人的支持和鼓励,也给出了很多宝贵意见,再次深表谢意。
这些意见主要是三个方面的问题。第一:为什么要生成pdf;第二:h2p文件分成两个,比较繁琐,为什么不合成一个;第三:h2p-tool由c#和java实现,用起来不够简单,需要进一步完善。这三方面的意见提得非常好,在设计h2p之前,我其实是深思熟虑过的。
  阅读全文

posted @ 2009-08-31 13:20 summeryhrb 阅读(1215) | 评论 (1)编辑 收藏

From: "javaei" <javaei@163.com>
To: "webmaster" <webmaster@javaeye.com>; "admin" <admin@csdn.net>; "contact" <contact@cnblogs.com>; "banq" <banq@163.com>; "jackliu.aws" <jackliu.aws@gmai.com>; "oschina.net" <oschina.net@gmail.com>; "jrwebmaster" <jrwebmaster@javaresearch.org>; "support" <support@cjsdn.net>; "chris" <chris@matrix.org.cn>; "admin2" <admin2@staff.chinaunix.net>; "admin" <admin@oracle.com.cn>; "sangernten" <sangernten@gmail.com>; "software" <software@it168.com>; "admin" <admin@chinajavaworld.com>; "service" <service@360doc.com>; "sinamedia" <sinamedia@vip.sina.com>; "thomastang" <thomastang@tencent.com>; "ir" <ir@service.netease.com>; "webmaster" <webmaster@java-cn.com>; "webmaster" <webmaster@pfan.cn>; "yaoz" <yaoz@163.com>; "Webmaster" <Webmaster@contact.sohu.com>; "java2000_net" <java2000_net@hotmail.com>; "webmaster" <webmaster@staff.ccidnet.com>; "justin" <justin@chinaitlab.com>; "david" <david@kingofcoders.com>; "yanger1997" <yanger1997@yahoo.com.cn>; "admin" <admin@javatx.cn>; "eatfishlin" <eatfishlin@hotmail.com>; "eygle" <eygle@hotmail.com>; "fondofbeyond" <fondofbeyond@163.com>
Sent: Friday, August 07, 2009 10:44 AM
Subject: H2P倡议——一种新的互联网应用模式(带附件和示例图片)


各网站管理员:

       我是javaei网站的管理员,近段时间,我站提出h2p概念,并推出h2p应用。h2phtml to pdf的意思,具体地说是根据批量URL生成一个有书签的pdf文档的解决方案,该方案是一个完整的解决方案。我觉得h2p是互联网应用的一种创新,值得推广,经过调查,得到不少人的认可。但是javaei网站的影响力有限,推广力度不够,为了能让h2p被大家认可并得到推广,特向各位发起倡议,一起来完善并推广这种应用,当然首先要得到各位的认可。H2p在技术上微不足道,重要意义体现在应用模式上。就像Rss一样,rss本身技术上没什么可说的,但应用模式上意义重大,rss从提出到被接受,也是经过了曲折的历程。我私下里希望,h2p也能像rss那样,被广为接受,最终成为一种大家接受的应用模式而确立下来,更重要的是,这是中国的程序员发起并推广的,这绝对是零的突破。

       下面从三个方面来展开:h2p具体介绍,为什么要推广h2ph2p完善和推广

 

一、H2P具体介绍

       H2Pjavaei网站发展的结果。H2P包括两个部分:h2p-fileh2p-toolh2p-file其实是xml文件,用来描述批量的URL,主要描述两个信息,url的先后顺序和层次结构(用于处理书签)。h2p-tool是一个客户端工具,用途目前主要有三个,根据dtd校验h2p-file的合法性、编辑h2p-file和根据h2p-file生成有书签的pdf文档。

1h2p-file

在目前的方案中h2p-file包括两个xml文件,href.h2p.xmloutline.h2p.xml

href.h2p.xml示例如下






 1 <href-info>
 2     <href id="KxgYaRxG">
 3         <value><![CDATA[http;//www.163.com]]></value>
 4     </href>
 5     <href id="53Bw5A32">
 6         <value><![CDATA[http://www.sohu.com]]></value>
 7     </href>
 8     <href id="eyEis6ra">
 9         <value><![CDATA[http;//news.163.com]]></value>
10     </href>
11     <href id="DMQoSN2t">
12         <value><![CDATA[http;//sports.163.com]]></value>
13     </href>
14     <href id="5vaf3LN7">
15         <value><![CDATA[http://news.sohu.com]]></value>
16     </href>
17 </href-info>
18 

这个xml很简单,之所以这样描述,是因为URL通常会有&而这个符号不能出现在xml里,而且作为属性的值,还不能用<![CDATA[]]>,所以就作为一个节点了。

h2p-tool根据这个xml生成的每个pdf文件,pdf文件的名字取id的值,后缀为pdf

outline.h2p.xml示例如下

 1 <book name="我的PDF书">
 2     <chapter name="163" href="KxgYaRxG">
 3         <chapter name="163新闻" href="eyEis6ra" />
 4         <chapter name="163体育" href="DMQoSN2t" />
 5     </chapter>
 6     <chapter name="sohu" href="53Bw5A32">
 7         <chapter name="sohu新闻" href="5vaf3LN7" />
 8     </chapter>
 9 </book>
10 

这个xml描述了每个pdf合并的顺序,href的值和上一个xmlid值对应,chapter标签嵌套的层次就是书签的层次,name的值就是书签的名称。H2p-tool根据这个xml把每个pdf合并成一个pdf,并生成书签。

考虑到h2p的发展,完全有理由把这两个xml文件合并成一个xml文件,可以定义成如下格式:

 1 <book name="我的PDF书">
 2     <chapter name="163">
 3         <href><![CDATA[http://www.163.com]]></href>
 4         <chapter name="163新闻">
 5             <href><![CDATA[http://news.163.com]]></href>
 6         </chapter>
 7         <chapter name="163体育">
 8             <href><![CDATA[http://sports.163.com]]></href>
 9         </chapter>
10     </chapter>
11     <chapter name="sohu">
12         <href><![CDATA[http://www.sohu.com]]></href>
13         <chapter name="sohu新闻">
14             <href><![CDATA[http://news.sohu.com]]></href>
15         </chapter>
16     </chapter>
17 </book>
18 
 

对应的dtd可以定义如下

1 <!ELEMENT book (chapter+)>
2 <!ATTLIST book      name   CDATA #REQUIRED>
3 <!ELEMENT chapter (chapter*)>
4 <!ATTLIST chapter      name  CDATA  #REQUIRED>
5 <!ATTLIST chapter      href  CDATA  #IMPLIED>
6 
 

在这个方案当中,h2p-file具有十分重要的意义,它作为一种资源被提供下载,也可以在线使用,h2p-file的格式作为一种协议,可以被各大网站支持,

2h2p-tool

h2p-tool是处理h2p-file的客户端工具,目前h2p-tool的功能主要有以下三个方面

根据dtd校验h2p-file的合法性,

编辑h2p-file编辑功能包括新建、修改、保存,

根据h2p-file生成有书签的pdf文档,先根据。

目前h2p-tool一部分是用C#开发的,一部分是用Java开发的。不管h2p-tool用什么开发,通过什么方式使用(在线或离线的),只要能处理h2p-file即可。

h2p-tool的功能还可以有如下扩充:

合并h2p-file,解析h2p-file在线阅读(这一点类似于google reader),也可以不需要h2p-tool,直接用xsl展示h2p-file

下图是h2p生成pdf的一个示例。


 

二、为什么要推广H2P

其实就是要回答h2p有什么价值。自从有了h2p构想以来,我一直在思考这个问题。

从以下几个方面说明我的思考:

(1)各大网站已经积累了丰富的资料,随着pdf的风行,导出pdf是很多用户的需求,提供pdf导出功能的网站还不多,实际上技术已很成熟,原因在于没有很好的模式。导出pdf是个性需求,网站无法知道用户需要把哪些导出成pdf,而且在服务器端生成pdf,不仅会增加服务器端压力。而且会增加管理员工作量。而如果网站只是提供h2p-file下载,由用户利用第三方工具(也即h2p-tool)自行编辑h2p-file,自行生成pdf,上面的问题就解决了,服务器端压力没有了,只需生成h2p-file,用户可以根据自己的需要对h2p-file进行编辑,生成pdf既满足了个性需求,同时把生成pdf的压力转移了用户,这点小压力对单个用户是可以接受的。

2如果网站想支持pdf导出的话,那么只需提供h2p-file,就像rss一样,网站要提供订阅功能,只需提供rss就行

3)网站可以根据用户的请求动态的生成h2p-file,从而间接的实现根据请求动态生成pdf的功能,这一点意义非凡。

4)网站提供h2p-file,会导致对网站内容的整理和挖掘,从而促进站内智能搜索的应用。

5)满足了用户的便捷,就是赢利的开始。关于盈利,在网站广告投放这方面一点都不会受影响,pdf超强的表现力足可以完美的表现广告效果,在h2p-file里可以适当放一些广告链接,同时,h2p-tool上也可以投放广告,h2p-tool在生成pdf的时候也能再适当位置加入广告。把广告固化到pdf文件里,这种方式比在浏览器里显示的广告生命周期要长得多,因为pdf是只读的。

6)最后一点,是意义上的而非价值上的,那就是如果h2p推广开了,被人们接受了,那么这将是第一个由中国的程序员发起并推广的一个协议,一个互联网应用模式Bbsblogwikitwitterrss等等,耳熟能详的东西,有技术含量吗?真正有价值的是这些应用模式,正是这些应用模式推动着互联网的飞速发展。而搜索引擎却集优秀的应用模式和先进的理论思想与技术于一身。

7)有可能带来其他方面的影响,比如网站内容的提炼和聚合。

三、H2P完善和推广

H2P刚刚产生,是个雏儿,尽管核心思想已经体现出来了,但在形式上和应用上还有需要大幅度的完善。可从以下几个方面展开:

1)齐心协力共同制定和完善h2p-file的格式,使h2p应用更加便捷和丰富。h2p-file可以分成两个文件独立描述,也可以合为一个,前面已经阐述了。

2)确定了h2p-file的格式,进一步完善和重新开发h2p-toolh2p-tool可以有三个方向,一个方向就是目前的方向,开发一个客户端工具,并且使用浏览器的内核,把浏览器的功能集成进来,在java开发方面已经有了JDIC这么一个框架了;第二个方向就是类似google reader的方向,在线解析h2p-file,以树形结构显示连接,提供在线的便捷阅读;第三个方向采取最简单的方式,直接用xsl显示h2p-file

3)博克文章、论坛帖子一般至少有三分之一的内容是广告或图片,直接根据URL生成的pdf就显得很臃肿,这是这个方案的缺陷,解决这个问题最简单的思路就是网站针对h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,之所以说它简单,是因为现在的界面的输出大多采用的模板技术,在模板上稍作变动,就可以输出没有太多广告和图片的内容。但考虑到网站需要投放广告,可以允许有少量广告,从而就产生了h2p-file质量这个概念,图片越少广告越少,那么生成的pdf就越干净体积就越小,h2p-file质量就越高;反之,生成的pdf就像现在的报纸一样,实质内容淹没在广告里而且体积还很大,h2p-file质量就越低。

4)如果上面的思路得到了采纳,那么根据一条URL生成单个pdf 的技术就能很好的解决。目前的h2p-tool在这一部分的开发用的是一个C#组件(生成的pdf有水印,我估计这个组件是调用了IE浏览器的功能)。之所以采用这个组件,是因为要保证生成的pdf展现效果和浏览器里的效果完全相同,这无异于做一个浏览器,难度可想而知。如果专门为h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,没有复杂的标签和样式,这种情况下,使用iText等框架生成pdf是可行的。Javaeye网站提供的pdf下载和电字书制作得到的pdf就是这种情况,提取博克文章的主体内容生成pdf

5)各网站对h2p的支持很简单,只需发布网站内容的h2p-file即可,h2p-file从此就以协议或资源的身份出现在互联网中。

以上三方面的内容分别阐述了h2p应用模式、h2p的意义和价值和h2p完善和发展的方向,回答了为什么要发起这个h2p倡议。敬请各网站管理员考虑我的意见,推动这个新的h2p应用,不仅会各网站带来新的赢利,而且这将是我们这些中国程序员的集体荣耀。

                             2009-8-7

                             Javaei网站

相关介绍:

投票——你认为h2p实用吗

H2P介绍

根据批量URL生成有书签的PDF文档的解决方案

pdf生成的解决方案(H2p)之H2P技术细节

pdf生成的解决方案(H2p)之H2P展望



posted @ 2009-08-12 09:31 summeryhrb 阅读(1759) | 评论 (5)编辑 收藏

 

H2P在很多人看来是个令人激动的方案,而且javaei网站提供h2p文件资源又是相当自然的一件事情,一想到h2p,我都很高兴,因为这个方案是我提出来的,尽管实现h2p的技术很成熟。在这篇文章里,说一下实现h2p所涉及到的技术吧,既有核心的j2se应用,又有开源框架的使用。

1dtd的应用,为了规范使用者正确的编辑h2p文件,我定义了h2p文件的dtd,当然我还有一个奢望,希望能成为一种规范。

2)使用根据dtd校验xmlh2p文件),h2p-tool需要解析xmlh2p文件)提取url生成pdf并合并,不合法的xml文件肯定不能正确的生成pdf,所以必须对xml文件进行校验。

3xml解析,编辑h2p,用JTree展示xml的树形结构,这一部分用的是dom解析(具体的是JDom),获取书签的目录结构并构建书签的数据结构,这一部分用的是SAX解析,并借助于Stack。保存xml文件用的是dom

         4swing的应用,h2p-tool编辑功能用的是swing,展示并编辑树形结构用的是JTree

         5C#组件,根据url生成单个的pdf,用的是c#组件,并在vs.net开发平台上进行了简单的开发。Javaei提供的h2p文件通常包含几十条url,单就每条url生成pdf也需要一点时间,何况是几十条,所以运用多线程是必须的方式,研究了一下c#的多线程(c#的多线程方式也很有意思,感觉比java的简单),可是别人的组件在多线程下表现欠佳,无赖之下,只好还是采用单线程。本想用jnic#的调用封装起来,但经过研究,据说比较麻烦,就放弃了,所以采用简单的办法,用批处理来调用。

6iText的应用,生成单个pdf页面以及合并pdf生成书签用的是iText。在合并的时候,也研究过另一个框架就是pdfboxIText确实强悍,理论上,应用iText可以实现任意效果的输出,应该可以实现浏览器的效果,但比较麻烦。iText在生成书签这一块,做得相当漂亮,书签可以指向任意一个页面的任意部分,还可以设置书签对应页面的打开效果,对书签的开发也很便利,直接构造书签的树形数据结构我认为是最简单的,iText还支持用xml描述书签的结构。

         7Classloader的应用,h2p-tool的运行依赖于很多的jar包,通常我们开发的时候,都是把jar包放在指定的目录,应用服务器会去加载依赖的jar包。在h2p-tool中,需要自己处理jar包。因为这是提供给用户使用的工具,不应要求使用者去配置除了jdk环境变量以外的变量。所以解决jar包加载的问题通常的办法是在主类(带有main方法的类)所在jar包里的Manifest.mf文件里写上jar包的相对路径。这种办法不太灵活,所以在h2p-tool中,对类加载进行了改写,使其自动加载指定目录下的jar包。

8jvm参数的应用,因为要合并的pdf很多,再合并的时候会占用大量内存,很容易out of memery,所以在批处理文件里,需要配置适当的jvm参数,主要是两个:-Xmx512m -Xms512m,这两个参数的意义这里不再赘述,网上有很多的。

     总结一下,实现h2p-tool的技术细节貌似很多,实则很少,除了JDOmiText,再就是j2se核心的东西了,出列上面列到的,还包括流、字符集的处理等。H2p-tool及源代码下载。

posted @ 2009-07-30 14:44 summeryhrb 阅读(1645) | 评论 (5)编辑 收藏


posts - 10, comments - 28, trackbacks - 0, articles - 0

Copyright © summeryhrb