vista

回顾※展望                     潜心技术&&不再搁浅

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  12 Posts :: 1 Stories :: 13 Comments :: 0 Trackbacks

2006年12月9日 #

   一直在为自己找借口,找理由,却始终不能专心一意下来,一直在为自己辩护: 找个机会重新开始!
   一直在为自己的QQ找个新名字,想从头再来; 一直想为自己的游戏帐号换个新名字,想从头再来;
   一直在为自己找一份满意的工作,想从头再来; 一直想为自己的懒惰找个理由- - 过段时间,一切从头开始.
   现在,我发现,那些全部是借口;
   现在,我发现: 时间不能再浪费,我也没有更多的时间去等待,去寻找一个所谓的新的机会,.
   all i  have is now and all i can hold is now, tomorrow is not held by myself.
   从现在开始, 两个字: 专心一意!



   自打辞掉第一份程序员的工作, 我始终不能专心下来,认真的工作,我承认,当时是冲动,辞职那么久以来,
一直为这件事情反省,我也尽力了,只是我没找到明确的方向,再加上自己的性格,容易受外界影响,不够有耐心,做事不够坚决,导致现在的困难状况,今天再次和以前同事的聊天,我开始认识到,有些事情,过去了,用不着再挂念,人总是在失败和挫折中长大的,有经历,才有沉淀,才有收获,前世不忘,后事之师.
   今天暂且主要回顾下自己的弱点:
   1,缺乏计划性: 不管是为人处世,还是工作学习, 都缺乏一定的计划性和针对性,由此增长的是懒惰和懈怠,这是当前最大的忧患.
   2,缺乏系统性: 主要表现在工作和学习中,缺乏一条循序渐进的路线,特别在学习的时候,一时学这个,一时学那个, 基础没打牢,就开始学人家研究高级技术,到头来脚跟不稳,难免跌倒.
   3,缺乏警惕性: 条件一稳定,就表现出懈怠的情绪, 完全忘记了"生于安乐,死于忧患"的历史名句, 没有贯彻不断学习和提高的思想,路线,

   以上三点是总结的比较深刻的三点, 这段时间一定多花时间, 看怎么设计一条路子,才可以逐渐的扭转这种状况, 同时慢慢转入正轨, 重新找回当初的自己.
   一直在想, 我不能流于世俗, 流于肤浅, 我应该担当的是不同凡人的责任感和紧迫感, 今天我跌到最低谷,不要紧,没关系, 我还年轻, 我还有很多机会, 我要紧握这种紧迫感和责任感以及这份压力, 更精彩的活下去.
   打点好行装, 该上路了.


                                                                                                                                                2006.12.27凌晨 
                                                                                                                                                                  diego.liu

posted @ 2006-12-17 00:18 Vista 阅读(612) | 评论 (1)编辑 收藏

      前些天,也就是6号辞职了,这些天只在中博和网信联动面试了下,投了很多简历,而且简历也被阅览了很多次,但很少接到电话,呆在家里不上班的日子,真是特快,心里没什么底,有点后悔辞职的冲动,不会也没什么,机会还是有的,况且自己还是相信自己的实力,毕竟有一年的工作经验,不过这些天还是在努力地学习,把基础打牢再说.
      华为一般是周五面试,其实我几乎没去华为面试,有几次华为打电话过来,我恰好有其他的面试,所以去不了,这次反正闲着也是闲着,所以,在上午接到电话后,下午坐公车去了.
      我住的地方去华为基地比较远,坐公车都要5元RMB,下了车,打了电话,经过电话指点,终于找到了面试地点,外面好冷,进去就不怎么冷了,没说别的,拿起试卷就开始做题.
      题目的难度在我预料之中,依我的水平也就拿个70分左右的样子(一般的公司我可以拿80以上,^_^),
令我意外的是,笔试完后,面试技术的考官并没怎么看我的答案,而是直接和我聊起技术方面的东西,问的很详细,特别是问到具体做过的项目时,问的比较仔细,要不是我真的做过,非穿帮不可,呵呵,问了项目,就开始问技术,只要我简历上写的技术,他都会问的很仔细,有几个地方,我记得不是很清楚,也就打哈哈过去,他也没说什么,就这样问了大概一个多钟头,他才说,好了,你在这等下,就走了,我好不容易许了一口气,心里也没什么底,等了10分钟的样子,来了一个领导模样的人物,拿了本笔记本,就坐在我旁边,和我聊起了一些看似琐碎的东西,其实在暗里考察的问题,总体感觉还过的去,完了,他说,我考虑下,就走了,出去的时候我和面试我技术的考官一起出去,他问我感觉怎么样,我说还行,他说过几天会电话通知我,呵呵,当时应该问下他机会大不,可惜了,现在也只好在家等结果了,不过中博那边如果要我马上上班的话,我还真不好抉择,因为中博那边是做外包,而且要出差,虽然薪资有点诱人,但毕竟感觉没进华为好.
      失业的日子的确比较枯燥,闲着没事就随便写写 了,呵呵,很晚了,要睡了....

posted @ 2006-12-15 01:19 Vista 阅读(2518) | 评论 (2)编辑 收藏

     摘要: 通过分析SQL语句的执行计划优化SQL(总结) 做DBA快7年了,中间感悟很多。在DBA的日常工作中,调整个别性能较差的SQL语句时一项富有挑战性的工作。其中的关键在于如何得到SQL语句的执行计划和如何从SQL语句的执行计划中发现问题。总是想将日常经验的点点滴滴总结一下,但是直到最近才下定决心,总共花了3个周末时间,才将其整理成册,便于自己日常工作。不好意思独享,所以将其贴出...  阅读全文
posted @ 2006-12-13 19:32 Vista 阅读(3435) | 评论 (0)编辑 收藏

dom4j(Version 1.6.1)快速入门

Parsing XML

或许你想要做的第一件事情就是解析一个某种类型的XML文档,用dom4j很容易做到。请看下面的示范代码:

import java.net.URL;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;

public class Foo {

public Document parse(URL url) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
}

使用迭代器(Iterators)

我们可以通过多种方法来操作XML文档,这些方法返回java里标准的迭代器(Iterators)。例如:

public void bar(Document document) throws DocumentException {
Element root = document.getRootElement();
//迭代根元素下面的所有子元素
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
//处理代码
}

//迭代根元素下面名称为"foo"的子元素
for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
Element foo = (Element) i.next();
//处理代码
}

// 迭代根元素的属性attributes)元素
for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}
}

强大的XPath导航

在dom4j中XPath可以表示出在XML树状结构中的Document或者任意的节点(Node)(例如:Attribute,Element 或者 ProcessingInstruction等)。它可以使在文档中复杂的操作仅通过一行代码就可以完成。例如:

public void bar(Document document) {
List list = document.selectNodes( "//foo/bar" );

Node node = document.selectSingleNode( "//foo/bar/author" );

String name = node.valueOf( "@name" );
}

如果你想得到一个XHTML文档中的所有超文本链接(hypertext links)你可以使用下面的代码:

public void findLinks(Document document) throws DocumentException {

List list = document.selectNodes( "//a/@href" );

for (Iterator iter = list.iterator(); iter.hasNext(); ) {
Attribute attribute = (Attribute) iter.next();
String url = attribute.getValue();
}
}

如果你需要关于XPath语言的任何帮助,我们强烈推荐这个站点Zvon tutorial他会通过一个一个的例子引导你学习。

快速遍历(Fast Looping)


如果你不得不遍历一个非常大的XML文档,然后才去执行,我们建议你使用快速遍历方法(fast looping method),它可以避免为每一个循环的节点创建一个迭代器对象,如下所示:

public void treeWalk(Document document) {
treeWalk( document.getRootElement() );
}

public void treeWalk(Element element) {
for ( int i = 0, size = element.nodeCount(); i < size; i++ ) {
Node node = element.node(i);
if ( node instanceof Element ) {
treeWalk( (Element) node );
}
else {
// do something....
}
}
}

生成一个新的XML文档对象

在dom4j中你可能常常希望用程序生成一个XML文档对象,下面的程序为你进行了示范:

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Foo {

public Document createDocument() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );

Element author1 = root.addElement( "author" )
.addAttribute( "name", "James" )
.addAttribute( "location", "UK" )
.addText( "James Strachan" );

Element author2 = root.addElement( "author" )
.addAttribute( "name", "Bob" )
.addAttribute( "location", "US" )
.addText( "Bob McWhirter" );

return document;
}
}

将一个文档对象写入文件中

将一个文档对象写入Writer对象的一个简单快速的途径是通过write()方法。

FileWriter out = new FileWriter( "foo.xml" );
document.write( out );

如果你想改变输出文件的排版格式,比如你想要一个漂亮的格式或者是一个紧凑的格式,或者你想用Writer 对象或者OutputStream 对象来操作,那么你可以使用XMLWriter 类。

import org.dom4j.Document;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Foo {

public void write(Document document) throws IOException {

// 写入文件
XMLWriter writer = new XMLWriter(
new FileWriter( "output.xml" )
);
writer.write( document );
writer.close();


// 以一种优雅的格式写入System.out对象
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter( System.out, format );
writer.write( document );

// 以一种紧凑的格式写入System.out对象
format = OutputFormat.createCompactFormat();
writer = new XMLWriter( System.out, format );
writer.write( document );
}
}

转化为字符串,或者从字符串转化

如果你有一个文档(Document)对象或者任何一个节点(Node)对象的引用(reference),象属性(Attribute)或者元素(Element),你可以通过asXML()方法把它转化为一个默认的XML字符串:

Document document = ...;
String text = document.asXML();

如果你有一些XML内容的字符串表示,你可以通过DocumentHelper.parseText()方法将它重新转化为文档(Document)对象:

String text = "James";
Document document = DocumentHelper.parseText(text);

通过XSLT样式化文档(Document)


使用Sun公司提供的JAXP API将XSLT 应用到文档(Document)上是很简单的。它允许你使用任何的XSLT引擎(例如:Xalan或SAXON等)来开发。下面是一个使用JAXP创建一个转化器(transformer),然后将它应用到文档(Document)上的例子:

import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;

import org.dom4j.Document;
import org.dom4j.io.DocumentResult;
import org.dom4j.io.DocumentSource;

public class Foo {

public Document styleDocument(
Document document,
String stylesheet
) throws Exception {

// 使用 JAXP 加载转化器
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(
new StreamSource( stylesheet )
);

// 现在来样式化一个文档(Document)
DocumentSource source = new DocumentSource( document );
DocumentResult result = new DocumentResult();
transformer.transform( source, result );

// 返回经过样式化的文档(Document)
Document transformedDoc = result.getDocument();
return transformedDoc;
}
}

原文地址
dom4j下载地址

posted @ 2006-12-09 22:41 Vista 阅读(385) | 评论 (0)编辑 收藏