MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

1,FileZilla
FileZilla is a fast FTP and SFTP client for Windows with a lot of features. FileZilla Server is a reliable FTP server.
http://sourceforge.net/project/showfiles.php?group_id=21558

2,Xmanager
使用Xmanager 远程连接Solaris的方法
怎样通过Xmanager连接到(RedHat)Linux系统


3,WINE
刚刚步入Linux,难免要有时利用一下Windows的程序资源,Wine提供了一个用来运行Windows程序的平台。
Wine (Wine Is Not an Emulator)[即Wine不仅仅是一个模拟器]是一个在X和UNIX之上的,Windows 3.x 和 Windows APIs的实现.它是一个Windows兼容层,用通俗的话说,就是一个Windows模拟器,这个层即提供了一个用来从Windows源进出到UNIX 的开发工具包(Winelib),也提供了一个程序加载器,该加载器允许不用任何修改Windows 3.1/95/NT的二进制文件,就可以运行在Intel Unix及其衍生版本下.Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris. Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的,可以选择的实现

4,Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的
telnet类工具。用它来远程管理Linux十分好用。
从windows访问linux,除了samba之外,日常操作用得最多的大概就是PuTTY和SecureCRT
Putty是免费的,SecureCRT是收费的(当然,有破解版)。
Putty缺省配置就很好看很好用,SecureCRT的缺省配置不是为linux准备的而且很难看。
Putty拿来就可以立刻使用,SecureCRT需要经过复杂的配置之后才好用
putty使用方法,中文教程

5,rsync
  可用来同步代码到多个服务器上或作镜像备份

htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。
IPTraf是一个使用简单的网络状况监视工具。

posted @ 2008-02-22 21:46 leekiang 阅读(269) | 评论 (0)编辑 收藏

    import  org.cyberneko.html.parsers.DOMFragmentParser;
     import org.apache.html.dom.HTMLDocumentImpl;
    
import  org.w3c.dom.DocumentFragment;
    
import  org.w3c.dom.Node;
    
import  org.w3c.dom.NodeList;
    
import  org.xml.sax.InputSource;
    
import  org.xml.sax.SAXException;

    
/**
     * 从html中抽取纯文本
     * 
     * 
@param  content
     * 
@return
     * 
@throws  UnsupportedEncodingException
     
*/
    
public  String extractTextFromHTML(String content)
            
throws  UnsupportedEncodingException {
        DOMFragmentParser parser 
=   new  DOMFragmentParser();
        DocumentFragment node 
=   new  HTMLDocumentImpl().createDocumentFragment();
        InputStream is 
=   new  ByteArrayInputStream(content.getBytes());
        
try  {
            parser.parse(
new  InputSource(is), node);
        } 
catch  (IOException e) {
            e.printStackTrace();
        } 
catch  (SAXException se) {
            se.printStackTrace();
        }

        StringBuffer newContent 
=   new  StringBuffer();
        
this .getText(newContent, node);

        String str 
=  ( new  String(
                newContent.toString().getBytes(
" Windows-1252 " ),  " GBK " ));
        
return  str;
    }

    
private   void  getText(StringBuffer sb, Node node) {
        
if  (node.getNodeType()  ==  Node.TEXT_NODE) {
            sb.append(node.getNodeValue());
        }
        NodeList children 
=  node.getChildNodes();
        
if  (children  !=   null ) {
            
int  len  =  children.getLength();
            
for  ( int  i  =   0 ; i  <  len; i ++ ) {
                getText(sb, children.item(i));
            }
        }
    }

1,nekohtml1.9.6.1版本用到了jdk5的Arrays.hashCode等方法,为兼容jdk1.4,
  故采用nekohtml1.9.6版本
2,需要xerces.jar支持
3,
   http://hi.baidu.com/walkandsing/blog/item/f5743634c6ba2e3a5bb5f5e5.html
   http://blog.csdn.net/zhou2002/archive/2008/01/19/2053911.aspx
   http://playfish.javaeye.com/blog/150184

4,
python解析html
http://lenciel.cn/docs/python-parser-of-xml/
http://hi.baidu.com/javalang/blog/item/84bac4bf731fb80f18d81fe1.html
ruby用hpricot

posted @ 2008-02-21 18:29 leekiang 阅读(2886) | 评论 (0)编辑 收藏

1,删索引时如果解锁,会不会有问题?
    IndexReader reader = IndexReader.open(directory);
            if (IndexReader.isLocked(directory)) {
                IndexReader.unlock(directory);
            }
            reader.deleteDocuments(term);
            reader.close();
2,到底是reader.deleteDocuments(term)还是writer.deleteDocuments(term)

3,writer.setUseCompoundFile(true)
创建索引库时,会合并多个 Segments 文件到一个 .cfs 中。此方式有助于减少索引文件数量,减少同时打开的文件数量。
可以使用 CompoundFileReader 查看 .cfs 文件内容。
CompoundFileReader reader = new CompoundFileReader(FSDirectory.GetDirectory("y:\\index", false), "_1oa.cfs");
foreach (string filename in reader.List())
{
Console.WriteLine(filename);
}

posted @ 2008-02-21 15:20 leekiang 阅读(405) | 评论 (0)编辑 收藏

1,某人设计的中文分词算法
2,Lucene中文分词组件 JE-Analysis 1.5.1
3,转一篇lucene的使用的文章,写的比较全
   lucene使用与优化
4,基于字符串匹配的中文分词
5,计算所开源的FirteX介绍
6, 庖丁分词
   http://www.javaeye.com/topic/49441?page=1
   http://qieqie.javaeye.com/blog/126943
   http://code.google.com/p/paoding/
   http://groups.google.com/group/paoding/topics
7,http://www.chedong.com/tech/lucene.html(车东)
8,http://blog.donews.com/withshare/archive/2007/06/10/1173923.aspx

posted @ 2008-02-20 15:16 leekiang 阅读(486) | 评论 (0)编辑 收藏

1,求一段时间内共跨越了多少天(例如求平均日访问量时要用到)
select to_date(to_char(max(t.logdate), 'yyyy-MM-dd'), 'yyyy-MM-dd') -
                              to_date(to_char(min(t.logdate), 'yyyy-MM-dd'),'yyyy-MM-dd') + 1
                         from tb_log t
2Add_months(d,n) 当前日期d后推n个月(n可以为负数)
   当找不到某月的匹配日时取该月最后一天。例如3-31后推1个月为4-30
3
last_day(d)  某日期d所在月份的最后一天
4,转换某日期为'yyyy-m-d'格式
    select to_char(sysdate, 'yyyy') || '-' || to_number(to_char(sysdate, 'mm')) || '-' ||
       to_number(to_char(sysdate, 'dd')) from dual
5,查询
系统时间戳的毫秒值
SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 +
       TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS MILLIONS
  FROM DUAL
见http://yangtingkun.itpub.net/post/468/244564

6,oracle函数处理字符串时,下标是从1开始的。

7,
INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)  (注:起始位置是从1开始,不能从0开始)
例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。
默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。
所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是
Instring
——————
14

注:
INSTR('test','a')得到的是0,而不是-1
参考:
http://df41.spaces.live.com/blog/cns!D064C4537B2605A6!317.entry
http://hi.baidu.com/fgfd0/blog/item/7a48d5f9155a0059252df2dc.html

8,to_date时报"格式代码出现两次"
   原因是"
You are using MM twice"

9,substr( string, start_position, [length])  下标从1开始
substr('This is a test', 6, 2)   would return 'is'
substr('This is a test', 6)      would return 'is a test'
substr('TechOnTheNet', 1, 4)     would return 'Tech'
substr('TechOnTheNet', -3, 3)    would return 'Net'
substr('TechOnTheNet', -6, 3)    would return 'The'
substr('TechOnTheNet', -8, 2)    would return 'On'

10,select to_date(2008-03-14 14:49:37,'yyyy-MM-dd hh24:mi')  from dual
报错:ora-01830错误:日期格式图片在转换整个输入字符串之前结束
原因是格式化的字符窜长度大于格式化标准(yyyy-MM-dd hh24:mi)的长度
注意:月份的mm大小写不一样,hh24和hh不一样,分钟用mi而不是mm

11,lengthb查看字节数

12,case的用法
select case when t.classtype = 1 then
          '名称一'
         when t.classtype = 2 then
          '名城二'
       end name from tb_test t

13,
where   t.fsdate <= to_date('2007-12-15','yyyy-mm-dd')
 where   to_char(t.fsdate,'yyyy-mm-dd')<='2007-12-15'

14,decode
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)

15,跨多少月
select to_char(add_months(to_date('1999-2', 'yyyy-mm'), (rownum - 1)), 'YYYY-MM') as TEMPMONTH from dual connect by rownum < months_between(to_date('2009-9', 'yyyy-mm'), to_date('1999-2', 'yyyy-mm')) + 2

16,统计字符串中某个字符出现的次数
SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL;
http://windows9834.blog.163.com/blog/static/2734500420103154920954/

posted @ 2008-02-18 23:04 leekiang 阅读(460) | 评论 (0)编辑 收藏

http://blog.csdn.net/buglu/archive/2006/07/21/953890.aspx
http://blog.tom.com/monkeylikebanana/article/458.html
http://blog.sina.com.cn/s/blog_5377fe0f010004eb.html
http://www.blogjava.net/amigoxie/archive/2007/09/30/149765.html
http://ltc603.javaeye.com/blog/30207

posted @ 2008-02-18 22:46 leekiang 阅读(538) | 评论 (0)编辑 收藏

http://www.blogjava.net/sunjavaee/archive/2006/05/31/49373.html
http://www.blogjava.net/xfcy2003/archive/2008/02/17/180361.html
http://ibm-websphere.group.javaeye.com/group/topic/2498

ActiveMQ+Jenck是一个withdout Application Server,但效能一样不减的Message 
Drivern POJO的JMS组合方案。

posted @ 2008-02-18 22:44 leekiang 阅读(605) | 评论 (0)编辑 收藏

1,after(html) after(elem)  after(elems)
  将指定的元素插入到某元素后。
  before(html) before(elem)  before(elems)与之相反

2,append(html) append(elem)  append(elems)
  将指定的元素插入到某元素内部的末尾位置
  appendTo与之相反,但似乎只能使用appendTo(elem)

3,prepend (html)  prepend (elem)  prepend (elems)  
  将指定的元素插入到某元素内部的开始位置,注意与append的区别

4,wrap(htm)
  将匹配对象包含在给出的html代码内

5,next
<script type="text/javascript">
$(document).ready(function() {
    $('#t').find('dd').end().find('dt').click(function() {
         $(this).next().css("background","#f00");
        
     });
});
</script>
    <dl id="t">
        <dt>点这里测试1?</dt>
        <dd>1111111111111111</dd>

        <dt>点这里测试2?</dt>
        <dd>2222222222222222</dd>
       
    </dl>
  http://tzangms.com/blog/programming/984

http://www.blogjava.net/wangxinsh55/archive/2007/06/25/126166.html

6,深度,递归式的 .extend()
新的extend()允许你更深度的合并镶套对象。下面的例子是一个很好的证明。
    // 以前的 .extend()  
   jQuery.extend(  
     { name: “John”, location: { city: “Boston” } },  
     { last: “Resig”, location: { state: “MA” } }  
   );  
    // 结果:  
    // => { name: “John”, last: “Resig”, location: { state: “MA” } }
  // 新的更深入的 .extend()  
   jQuery.extend( true,  
   { name: “John”, location: { city: “Boston” } },  
     { last: “Resig”, location: { state: “MA” } }  
  );  
  // 结果  
   // => { name: “John”, last: “Resig”,  
  //      location: { city: “Boston”, state: “MA” } } 

7,1.2.3版本和1.2.1版本的remove方法的区别
1.2.1版本
remove: function(a){
if ( !a || jQuery.filter( a, [this] ).r.length ) {
 jQuery.removeData( this );
 this.parentNode.removeChild( this );
}
},
1.2.3版本
remove: function( selector ) {
  if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
   // Prevent memory leaks
   jQuery( "*", this ).add(this).each(function(){
    jQuery.event.remove(this);
    jQuery.removeData(this);
   });
   if (this.parentNode)
    this.parentNode.removeChild( this );
  }
 }
http://www.blog.edu.cn/user2/50271/archives/2007/1963499.shtml
http://pyrolupus.com/demo/jqremovebug.php
http://dev.jquery.com/changeset/3790

8,  extend()使用详解(不考虑深度的extend)

$.extend(target, prop1, propN)
用一个或多个其他对象来扩展一个对象(即第一个参数),返回这个最初的、并且被修改过的对象。这是简单的实现继承的一大方法.
  • target (Object): 要扩展的对象
  • prop1 (Object): 要与第一个对象合并的对象
  • propN (Object): (可选) 更多要与第一个对象合并的对象

合并defaults和options, 但不修改defaults,返回合并后的对象
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend({}, defaults, options);
结果 :settings == { validate: true, limit: 5, name: "bar" },defaults没有被修改

posted @ 2008-02-16 07:11 leekiang 阅读(1536) | 评论 (0)编辑 收藏

1,JQuery对象和DOM对象如何转换
  JQuery对象才能使用JQuery定义的方法;DOM对象才能使用DOM对象的方法;二者不可以混淆。
  DOM对象通过$操作则可以转成JQuery对象。例如:
  $(document.getElementById("msg"))
  JQuery对象转成DOM对象则较复杂一些。由于JQuery对象本身也是集合,所以必须通过索引的方式来转成DOM对象。例如:
  $("#msg")[0]
$(
"div").eq(1)[0]
$(
"div").get(0)
$(
"td")[5]

2,JQuery的get方法和eq方法的区别
  eq返回的是jquery对象;
  get(n)和索引返回的是dom元素对象。
  $("div").eq(2).html();                //调用jquery对象的方法
 
$("div").get(2).innerHTML;    //调用dom方法

3,在事件处理程序中如何得到事件的发出者
在事件处理程序中可以申明一个event对象的方式来抓取事件的发出者。
$(document).ready(function(){
       $(
"a.week").click(function(event){
          var uri 
= "cWtc.do?";
          var params 
= "action=blankWtc&wd=" + $(event.target).text();
          window.location.href
=uri + params;          
       });      
}); 

4,JavaScript只拥有单一的、全局的名称空间(即window对象),而很多程序员(以及一些库)恣意地为之添加各种东西。
要知道全局变量是魔鬼!聪明的开发人员,会使用类似组件模式的技术,来尽力减少全局对象的数量。
jQuery仅向全局名称空间引入一个标记:jQuery函数/对象。其余的要么是jQuery的直接属性,要么就是调用jQuery函数所返回的对象的方法。
5,两个select ,都是多选的,要求一个按钮,点击时将list1中所有选中的项复制到list2中,而且在list2中已经存在的项就不再添加
http://www.javaeye.com/topic/191788

function copy_onclick(){  
 $("#list1 option:selected").each(function () {  
  $(document.createElement("option"))  
.attr("value",$(this).val())  
 .text($(this).val())  
 .appendTo('#list2:not(:has(option[value=\''+$(this).val()+'\']))');  
  });   }  


6,
http://space.flash8.net/space/?18713/action_viewspace_itemid_328089.html
http://hi.baidu.com/yandavid/blog/item/9f64c033dc623b40ac4b5fda.html
http://www.cssrain.cn/article.asp?id=235
http://www.shineblog.com/user6/mprogram/archives/2008/937200.shtml 框处理

John Resig 的主页http://ejohn.org/
Mike Hostetler的http://amountaintop.com/blog/mike

posted @ 2008-02-16 05:33 leekiang 阅读(572) | 评论 (0)编辑 收藏

1,hibernate在进行复杂查询的情况下一样可以直接得到一个Map的list:
select new Map(a.id as id,a.name as name,b.type as type) from A a,B b where
a.id=b.aId;
...
List mapList=query.list();
....

在jsp页面可以和使用普通的JavaBean一样的方式输出
<c:forEach items="${mapList}" var="m">
<tr> <td>
<c:out value="${m.id}"/> </td> <td>
<c:out value="${m.name}"/> </td>
<td> <c:out value="${m.type}"/> </td> </tr>
</c:forEach>
这样的处理也是很简洁的

select new MyObj(id,name,deptid,deptName) from tb_usr,tb_dept where .....
这种方式要求MyObj类有对应的构造方法

2.HQL supports subqueries in the where clause. We can’t think of many good uses
for subqueries in the from clause, although select clause subqueries might be a
nice future extension.
不支持from后的子查询,支持where子查询
http://blog.zol.com.cn/655/article_654256.html

3, String sql="select {fi.*} from FuncInfo fi " +
   "left join RoleSubFunc rsf on fi.FuncId=rsf.FuncId "+
       "left join RoleInfo ri on rsf.RoleId=ri.RoleId "+
       "left join UserRole ur on ri.RoleId=ur.RoleId "+
       "where ur.UserId='"+userId+"'";//可以无限向上找父级
 List list =session.createSQLQuery(sql).addEntity("fi", FuncInfo.class).list();

4,为什么Hibernate 3中的HQL无法查询汉字
使用同样的代码和配置文件,在Hibernate 2上完全没有问题,在Hibernate 3中,使用如下HQL查询,无法得到正确的结果集:
String hql = "from story where title like '%汉字%'";
Query q = session.createQuery(hql);
但用下面的HQL查询,却可以得到正确结果集:
String hql = " from story where title like '%english%'";
Query q = session.createQuery(hql);
答:如果采用的是拼接HQL的方式,从Hibernate 2升级到Hibernate 3确实会出现汉字乱码问题。在控制台中可以看到,SQL的汉字部分变成了乱码:
[DEBUG] 2005-08-14 14:33:58 org.hibernate.SQL - "select story0_.content from story as story0_ where story0_.title like '%&–°é—&&Š¨&€'
在Hibernate中,查询时应尽量使用占位符的写法(如下),这样既可以避免乱码问题,又可以避免潜在的SQL注入攻击:
getHibernate().find("from story where title like ? ", "%汉字%")
注:用"update TbTest set name='张三' "也会有类似的问题,要改为占位符的写法
http://xqfy1983.blog.sohu.com/61054398.html

5,使用Hibernate.DATE时,得到的时间不带分秒。
  可以考虑使用Hibernate.CALENDAR,实际类型是java.util.GregorianCalendar,然后再getTime()
6,
报表查询  select new Table(t1.a,t2.b ...)  from .....
  select new Object(vo.id,vo.name) from VO vo
  这种写法需事先写好构造方法
7,List cats = sess.createSQLQuery("select {cat.*} from cats cat")
        .addEntity("cat", Cat.class);
        .setMaxResults(50);
        .list();
8,貌似hibernate添加或修改对象,如果字符串类型的属性的值为空字符串(大小为0),则自动当null处理
9,如果在hbm中某属性设为not null,然后如果po中的该属性为null,则hibernate会抛异常
  但如果在hbm中设置属性的长度,而实际的长度超过了,hibernate不会抛异常
10,如果要使生成得sql不是每次都包括所有的列,可配置参数实现:
<class name="onlyfun.caterpillar.User" table="T_USER"
dynamic-insert="true"
dynamic-update="true">
来源:http://caterpillar.onlyfun.net/Gossip/HibernateGossip/DynamicSQL.html
但并不是设置了dynamic-update=true就会有效果,要生效是有条件的.
(1)同一session内,对已经persisit的对象进行update。
但有一奇怪现象,例如memo字段原来为空,o.setMemo(null),生成的update的sql还是会有set memo=null的语句,不知道为什么
(2)不同session之间,update传入的对象是另一个session中的persist对象,然后merge
http://qbar.qq.com/u2011541/19.htm
http://xuliangyong.javaeye.com/blog/74696
11,
http://yuonch.javaeye.com/blog/89859
http://yuonch.javaeye.com/blog/90727

12,

session.createQuery("delete from Company where id=1").executeUpdate();
这种写法必须配置org.hibernate.hql.ast.ASTQueryTranslatorFactory,否则会报

HibernateQueryException: query must begin with SELECT or FROM
http://czg185960.spaces.live.com/blog/cns!32A09070624FB42C!208.entry

posted @ 2008-02-16 05:04 leekiang 阅读(758) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 40 41 42 43 44 45 46 47 48 下一页 Last