|
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=215582,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是一个使用简单的网络状况监视工具。
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
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);
}
1, 某人设计的中文分词算法2, Lucene中文分词组件 JE-Analysis 1.5.13, 转一篇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
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 2, Add_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/
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
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组合方案。
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没有被修改
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/191788function 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
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
|