<< 八月 2009 | 首页 | 十月 2009 >>

我收藏的链接(43)

我收藏的链接(43)
Web开发工具大集合——每个浏览器都有份的![转] - 隔叶黄莺 The Blog of Unmi - BlogJava
调试Javascript、编辑和调试网页代码的好工具
InfoQ: 应用jBPM4解决中国特色的流程需求
jBPM是JBoss众多开源项目中的一个工作流开源项目,也是目前应用最广泛的工作流项目。在今年的7月10号,JBoss jBPM团队正式发布了jBPM4的正式版。jBPM4完全基于流程虚拟机(PVM)的机制,对核心引擎进行了重新设计,而PVM的引入也使得jBPM4可以支持多流程语言了。
Alex的个人Blog » 使用Birt制作Dashboard 和Mashup
使用Birt制作Dashboard 和Mashup
设计模式-行为模式(Observer) - sandyen的专栏 - CSDN博客
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
对设计模式—Observer模式的认识 - Vniu.Studio - JavaEye技术网站
自己实现“观察者”设计模式
Maven - Json-lib::Welcome
JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans. It is based on the work by Douglas Crockford in http://www.json.org/java.
Survey Results: The Java EE Container Redeploy & Restart Report – measuring Turnaround Time | ZeroTurnaround.com
A couple of months ago we ran a survey asking a few questions about Java EE development, containers and redeploy times. Now that over 1100 people have responded it’s time to update the results. Since we’ve had more time to analyze them we also hope to provide a few insights into the data including a more detailed container breakdown
高手教大家如何配置JVM参数 - 51CTO.COM
年轻代大小选择 响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)。在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。 吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度。因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用
4.5.2 JVM垃圾回收的相关知识 - 51CTO.COM
将Java对象分为"年轻"对象和"年老"对象,JVM将内存堆(Heap)分为两个区域,一个是"年轻"区,另一个是"老"区,Java将这两个区域分别称作是"新生代"和"老生代"
http://java.sun.com/docs/hotspot/gc1.4.2/example.html
This appendix contain examples of garbage collection verbosegc output that indicate an problem with garbage collection. The default collector is being used unless otherwise specified. Unless otherwise specified the verbosegc output is generated with -verbosegc -XX:+PrintGCDetails
MaintainJ 2.8发布 :维护Java应用的Eclipse插件 - Java - JavaEye新闻
MaintainJ是一个Java应用程序维护工具。MaintainJ在运行时能生成UML序列和类图。这有助于跟踪运行时对象的调用过程。可以只显示调用过程中使用到的类。该图简单易懂,并没有涉及到应用程序代码。
JVM性能参数调优实践,不会执行Full GC,网站无停滞
JVM参数调优是个很头痛的问题,设置的不好,JVM不断执行Full GC,导致整个系统变得很慢,网站停滞时间能达10秒以上,这种情况如果没隔几分钟就来一次,自己都受不了。这种停滞在测试的时候看不出来,只有网站pv达到数十万/天的时候问题就暴露出来了
jmesa - Project Hosting on Google Code
JMesa is a dynamic HTML table that allows you to filter, sort, paginate, export and edit your data however you need to. What you will find here is a carefully thought out API that is very easy to use and can be modified for your own needs. Note: JMesa requires JDK 1.5 or above. As of version 2.3.4 you can use the JBoss Retro project to run JMesa under JDK 1.4.
代码生成工具在企业级Java应用开发中所起的作用
近来,随着各种代码生成工具的不断涌现(如SpringSource的Spring Roo、Skyway Builder Community Edition 6.3及Blu Age的M2Spring等),人们又将注意力转移到了这些代码生成工具在企业级Java应用开发中所起的作用。
jxls - Welcome to jXLS
jXLS is small and easy-to-use Java library for generating Excel files using XLS templates. Also jXLS can be used to read XLS files and populate Java beans with spreadsheet data according to XML configuration file
几种支持REST的Java框架 - java060515的专栏 - CSDN博客
几种支持REST的Java框架
Source of myadvancedmodestmap
支持WMS标准的Flex Flash地图展示技术
Oracle数据库中分区表的操作方法-开发频道-Oracle-天极网
Oracle数据库中分区表的操作方法
浅谈Spring事务隔离级别 - 51CTO.COM
浅谈Spring事务隔离级别
将 Flex 集成到 Java EE 应用程序的最佳实践
将 Flex 集成到 Java EE 应用程序的最佳实践
InfoQ: 速览:软件开发中的7大浪费
* 已完成但尚未签入的代码 * 没有相关说明文档的代码 * 未测试的代码 * 没人使用的代码 * 被注释掉的代码
用osworkflow写一个请假例子(提供代码下载) - 庄周梦蝶 - JavaEye技术网站
用osworkflow写一个请假例子(提供代码下载)
Free File Hosting - File Dropper: File Host for Mp3, Videos, Music, Documents.
Free File Hosting - File Dropper: File Host for Mp3, Videos, Music, Documents.
使用XFire开发Web Service客户端完整入门教程 - Robin's Java World - BlogJava
使用XFire开发Web Service客户端完整入门教程
Chapter 23. Scheduling and Thread Pooling
使用TaskExecutor接口 Spring的TaskExecutor实现作为一个简单的JavaBeans使用。在下面的示例中,我们定义一个bean,使用 ThreadPoolTaskExecutor来异步打印出一系列字符串
关于spring启动的优化的问题 - somebody - JavaEye技术网站
default-lazy-init ="true" ;延迟初始化Bean,不在启动时初始化Bean
蹒跚而行的博客(Blog) - org.hibernate.hql.ast.HqlToken 错误weblogic异常
org.hibernate.hql.ast.HqlToken 错误weblogic异常:antlr冲突
weblogic加载hibernate3时,ClassNotFoundException的解决方法 - Hibernate - New - JavaEye论坛
weblogic加载hibernate3时,ClassNotFoundException的解决方法: 在hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误
[#QUARTZ-687] Cluster fails to recognize ORACLE BLOB instance when using jndi datasource - OpenSymphony JIRA
org.quartz.JobPersistenceException: Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB
Oracle 10g手工创建数据库_数据库子站_Oracle10g_IT专家网
Oracle 10g手工创建数据库
rikrikrik.com - jQuery shortKeys plug-in
网页shortkey快捷键, F1快捷键: <script language="javascript"> document.onhelp = function() { alert("help"); // instead of an alert you can define custom content return false; // necessary for cancel original F1 event } </script>

阅读全文……

标签 :

我收藏的链接(42)

我收藏的链接(42)
Chapter 19. JMS
Spring提供了一个用于简化JMS API使用的抽象框架,并且对用户屏蔽了JMS API中1.0.2和1.1版本的差异。 JMS的功能大致上分为两块,叫做消息制造和消息消耗。JmsTemplate用于制造消息和同步消息接收。和Java EE的事件驱动bean风格类似,对于异步接收消息,Spring提供了一些消息侦听容器来创建消息驱动的POJO(MDP)。
Spring 配置 ActiveMQ - Alger - JavaEye技术网站
Spring 配置 ActiveMQ
Message Driven POJOs! | SpringSource Team Blog
Of all the new Spring 2.0 features and improvements, I must admit that Message-Driven POJOs are one of my personal favorites. I have a feeling that a lot of other Spring users will feel the same way.
Dev Notes » 在Spring中使用ActiveMQ发送邮件
在Spring中使用ActiveMQ发送邮件
结合Spring2.0和ActiveMQ进行异步消息调用 - 若水汪洋的java学习博客 - JavaEye技术网站
在Spring 2.0之前,Spring的JMS的作用局限于产生消息。这个功能(封装在 JmsTemplate 类中)当然是很好的,但是,它没有描述完整的JMS堆栈,比如像消息的 异步 产生和消耗。JMS堆栈缺少的这一部分已经被添加,Spring 2.0现在提供对消息异步消耗的完整支持
JSON Serialization Usage
JavaScript Object Notation (aka JSON) is a very popular alternative to XML for transmitting data to the web browser. Flexjson is a lightweight library for serializing Java objects into JSON. What's different about Flexjson is it's control over what gets serialized allowing both deep and shallow copies of objects. Most JSON serializers mimic object serialization libraries and try to serialize the entire object graph from the object being turned into JSON. This causes problems when you want a connected object model in your server, but you can't send that object model to the client because the serialization library will try to send the entire object graph. This makes it very hard to create object oriented models and serialize pieces of that model to the client without sending everything.
jqGrid JSON Java Model - Gregg Bolinger
I've been using the JQuery plugin jqGrid for several months now. I've been really pleased with it. Up to this point, due to laziness, I've been building my JSON string manually using StringBuilder. Tonight I decided it was time to make this easier.
/civx/widgets/jqgrid/static - CIVX - Trac
jqgrid demo
jQgrid的文档(一)_代码人生
jQgrid的文档
玩转jquery插件之flexgrid | 雨润心灵,哲思天下
玩转jquery插件之flexigrid(一)如何获取并使用flexigrid?
Flexigrid - Web 2.0 Javscript Grid for jQuery
Features * Resizable columns * Resizable height and width * Sortable column headers * Cool theme * Can convert an ordinary table * Ability to connect to an ajax data source (XML and JSON[new]) * Paging * Show/hide columns * Toolbar (new) * Search (new) * Accessible API * Many more
Flexigrid for jQuery | Google Groups
What is Flexigrid? Lightweight but rich data grid with resizable columns and a scrolling data to match the headers, plus an ability to connect to an xml based data source using Ajax to load the content.
Tungsten Replicator
The Tungsten Replicator provides open source database-neutral master/slave replication. Master/slave replication is a highly flexible technology that can solve a wide variety of problems including the following:
Open Source Replication and Synchronization Tools Written in Java - 毛毛的小窝 — 关注技术交流、让我们一起成长 - 博客园
Open Source Replication and Synchronization Tools Written in Java 数据同步/复制工具
Ignite Realtime: SparkWeb IM Client
SparkWeb is an Open Source, web-based IM client optimized for businesses and organizations. It features built-in support for group chat and strong security. It also offers a great end-user experience with features like group chat room bookmarks, and tabbed conversations.

阅读全文……

标签 :

我收藏的链接(41)

我收藏的链接(41)
这才是真正的JQuery.ajax传递中文参数的解决方法 - paskaa的博客 - JavaEye技术网站
修改JQuery.js的ajaxSettings:contentType:application/x-www-form-urlencoded; charset=UTF-8
jQuery Form Plugin
The jQuery Form Plugin allows you to easily and unobtrusively upgrade HTML forms to use AJAX.
css和Ajax制作的表格
css和Ajax制作的表格
Open Source Flash Projects Open Source Flash
This aims to be a comprehensive list of links to Open Source Flash projects, both those hosted on OSFlash and elsewhere. Note: This list does not include tools that are not open source. See Closed-Source Flash Tools for a list of such tools where an open-source alternative does not exist. The primary focus of this site and community is open source, not free or commercial Flash tools and projects that are not open source. We only list free (and commercial) tools when an open-source alternative does not exist or the tool is nonetheless necessary for a common workflow, possibly involving other open-source tools.
JQuery Tree 树形控件介绍 - Mecin.cn Blog - 博客园
JQuery Tree 树形控件介绍
客户端验证的极品--jQuery.validator - JQuery - web - JavaEye论坛
客户端验证的极品--jQuery.validator
InfoQ: Spring Batch:简化批处理和离线处理的开发
Spring Batch项目是一个轻量级的全面的基于Spring的批处理框架,最近发布了1.0版。InfoQ采访了其项目领导人David Syer,以了解该版本的相关信息以及它为Spring社区提供了些什么。
Spring Batch - Spring Batch
Many applications within the enterprise domain require bulk processing to perform business operations in mission critical environments. These business operations include automated, complex processing of large volumes of information that is most efficiently processed without user interaction. These operations typically include time based events (e.g. month-end calculations, notices or correspondence), periodic application of complex business rules processed repetitively across very large data sets (e.g. insurance benefit determination or rate adjustments), or the integration of information that is received from internal and external systems that typically requires formatting, validation and processing in a transactional manner into the system of record. Batch processing is used to process billions of transactions every day for enterprises.
Using the BIRT Report Viewer
This Viewer is an AJAX based J2EE application that illustrates using the BIRT engine to generate and render report content.
YUI Library Examples: DataTable Control: Inline Cell Editing
yui edit grid table 可编辑表格js
Editor Grid Example
Extjs edit grid table 可编辑表格js
SitePen Blog » Dojo 1.2 Grid
Dojo edit grid table 可编辑表格js

阅读全文……

标签 :

高手教大家如何配置JVM参数

高手教大家如何配置JVM参数
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Xloggc:log/gc.log

阅读全文……

标签 : ,

应对Scrum项目带来的变化

应对Scrum项目带来的变化

摘要

在软件开发中采用敏捷方法需要很多组织级的改变,例如企业文化、个人角色、过程等。作为一个组织,想要进行敏捷转变,就必须学着妥善处理这些变化。


文中,我参考了敏捷、Scrum和精益理论。所以谨慎起见,我在文章之初先明确一下我这个“敏捷”的定义。我认为,敏捷是众多新兴的、围绕迭代递增软件开发的项目管理理论的总称。其中比较流行的几个是:精益理论、水晶方法、Scrum、动态系统开发方法以及极限编程。

Scrum和极限编程,尤其是这两者的组合,是迄今为止被运用最多的敏捷方法。尽管Scrum的定义中不包含任何关于工程规范的内容,我们仍然不可能把两者分而置之。那么如果你问我敏捷代表什么,我会这么定义:

Agile = Scrum + XP

最近也有很多思想领袖成功地把精益思想引入到了软件项目管理当中,这么看来,要是我在文中不提及这部分内容就太蠢了。

本文就是基于此来写的。

本文概述了在敏捷组织中不同角色可能发生的变化,并为能更好地从瀑布模型转变到敏捷方法提供了一些建议。文中论及的角色如下:客户/利益关系人,产 品管理,综合管理,项目管理,开发人员和质量保证人员。关于技术类角色,我说得更加具体一些,这主要是由于我个人的经验更偏向技术一点。

敏捷方法着眼于短期项目目标的实现效率。例如,与瀑布模型不同,敏捷方法通常以2到4周为时间间隔来开发一些软件功能。此体系通过频繁的“检视和适 应”周期,来同时确保团队动力和客户满意度。敏捷有能力彻底颠覆职位和背景对个人的局限,从而实现效率、个人潜能发挥和产出的最大化。这一能力引出了一个 软件开发策略,而由此衍生的各种改变都是合理的:一个经济的、结果导向的软件开发方法。

阅读全文……

标签 :

使用NekoHTML和XPath获取网页特定标签

  如果需要在HTML页面中提取数据,那么NekoHTML 是个不错的工具。因为HTML跟XML不一样,可能存在一些格式不完整的元素,譬如没有end tag的table等,这个时候,NekoHTML是个很尽责的清道夫和修理工,可以帮助我们整理这些缺陷数据,最终生成一个DOM Tree。  得到DOM Tree话,使用XPath就可以轻松获取所需数据了:-)

  下面是几个需要注意的问题:

1、如何使用NekoHTML?

     必须在 Java Build Path里加入 nekohtml.jar , xercesImpl.jar 以及xalan.jar。下载的NekoHTML目录中并没有xercesImpl.jar和xalan.jar,需要自己下载。

 

2、如何获取XPath?

    当然大家可以把网页的代码下下来,然后使用“人工智能”的方式获取,但是过程确实让人眼花缭乱、心力交瘁。使用FireBug吧,可以自动生成XPath。

    updated:

    Firebug生成的XPath中如果含有TBODY标签,需要把TBODY去掉,否则不能正确获取网页的内容。如Firebug生成的XPath为/html/body/table/tbody/tr,那么则需要修改为/html/body/table/tr。

 

4、如何正确结合NekoHTML和XPath?

    XPath的Tag必须大写。如

    String divXpath = "//DIV";//正确

    String divXpath = "//div";//错误

 

 下面举个例子,提取当当网图书的ISBN信息:

Java代码
  1. DOMParser parser = new DOMParser();  
  2.     try {  
  3.            //设置网页的默认编码  
  4.            parser.setProperty("http://cyberneko.org/html/properties/default-encoding","gb2312");  
  5.            /*The Xerces HTML DOM implementation does not support namespaces  
  6.            and cannot represent XHTML documents with namespace information.  
  7.            Therefore, in order to use the default HTML DOM implementation with NekoHTML's  
  8.            DOMParser to parse XHTML documents, you must turn off namespace processing.*/  
  9.            parser.setFeature("http://xml.org/sax/features/namespaces"false);  
  10.   
  11.            String strURL = "http://product.dangdang.com/product.aspx?product_id=9317290";  
  12.            BufferedReader in = new BufferedReader(  
  13.                    new InputStreamReader(  
  14.                            new URL(strURL).openStream()));  
  15.            parser.parse(new InputSource(in));  
  16.            in.close();  
  17.           } catch (Exception e) {  
  18.            e.printStackTrace();  
  19.           }  
  20.           Document doc = parser.getDocument();  
  21.           // tags should be in upper case  
  22.           String productsXpath = "/HTML/BODY/DIV[2]/DIV[4]/DIV[2]/DIV/DIV[3]/UL[@class]/LI[9]";  
  23.           NodeList products;  
  24.           try {  
  25.               products = XPathAPI.selectNodeList(doc, productsXpath);  
  26.               System.out.println("found: " + products.getLength());  
  27.               Node node = null;  
  28.               for(int i=0; i< products.getLength();i++)  
  29.               {  
  30.                   node = products.item(i);  
  31.                   System.out.println( i + ":\n" + node.getTextContent());  
  32.               }  
  33.           }catch (TransformerException e) {  
  34.               e.printStackTrace();  
  35.           }   

 

一些有用的链接:

1、Java HTML Parser 比较

2、java XPATH

3、XPath定位

标签 : , ,