2006年12月17日
#
???一直在為自己找借口,找理由,卻始終不能專心一意下來,一直在為自己辯護: 找個機會重新開始! ???一直在為自己的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
2006年12月15日
#
??????前些天,也就是6號辭職了,這些天只在中博和網信聯動面試了下,投了很多簡歷,而且簡歷也被閱覽了很多次,但很少接到電話,呆在家里不上班的日子,真是特快,心里沒什么底,有點后悔辭職的沖動,不會也沒什么,機會還是有的,況且自己還是相信自己的實力,畢竟有一年的工作經驗,不過這些天還是在努力地學習,把基礎打牢再說. ??????華為一般是周五面試,其實我幾乎沒去華為面試,有幾次華為打電話過來,我恰好有其他的面試,所以去不了,這次反正閑著也是閑著,所以,在上午接到電話后,下午坐公車去了. ??????我住的地方去華為基地比較遠,坐公車都要5元RMB,下了車,打了電話,經過電話指點,終于找到了面試地點,外面好冷,進去就不怎么冷了,沒說別的,拿起試卷就開始做題. ??????題目的難度在我預料之中,依我的水平也就拿個70分左右的樣子(一般的公司我可以拿80以上,^_^), 令我意外的是,筆試完后,面試技術的考官并沒怎么看我的答案,而是直接和我聊起技術方面的東西,問的很詳細,特別是問到具體做過的項目時,問的比較仔細,要不是我真的做過,非穿幫不可,呵呵,問了項目,就開始問技術,只要我簡歷上寫的技術,他都會問的很仔細,有幾個地方,我記得不是很清楚,也就打哈哈過去,他也沒說什么,就這樣問了大概一個多鐘頭,他才說,好了,你在這等下,就走了,我好不容易許了一口氣,心里也沒什么底,等了10分鐘的樣子,來了一個領導模樣的人物,拿了本筆記本,就坐在我旁邊,和我聊起了一些看似瑣碎的東西,其實在暗里考察的問題,總體感覺還過的去,完了,他說,我考慮下,就走了,出去的時候我和面試我技術的考官一起出去,他問我感覺怎么樣,我說還行,他說過幾天會電話通知我,呵呵,當時應該問下他機會大不,可惜了,現在也只好在家等結果了,不過中博那邊如果要我馬上上班的話,我還真不好抉擇,因為中博那邊是做外包,而且要出差,雖然薪資有點誘人,但畢竟感覺沒進華為好. ??????失業的日子的確比較枯燥,閑著沒事就隨便寫寫 了,呵呵,很晚了,要睡了....
2006年12月13日
#
摘要: 通過分析SQL語句的執行計劃優化SQL(總結)
做DBA快7年了,中間感悟很多。在DBA的日常工作中,調整個別性能較差的SQL語句時一項富有挑戰性的工作。其中的關鍵在于如何得到SQL語句的執行計劃和如何從SQL語句的執行計劃中發現問題。總是想將日常經驗的點點滴滴總結一下,但是直到最近才下定決心,總共花了3個周末時間,才將其整理成冊,便于自己日常工作。不好意思獨享,所以將其貼出... 閱讀全文
2006年12月9日
#
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( "http://foo/bar" );
Node node = document.selectSingleNode( "http://foo/bar/author" );
String name = node.valueOf( "@name" ); }
如果你想得到一個XHTML文檔中的所有超文本鏈接(hypertext links)你可以使用下面的代碼:
public void findLinks(Document document) throws DocumentException {
List list = document.selectNodes( "http://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下載地址
2006年12月6日
#
2006年12月5日
#
2006年11月10日
#
摘要: JS正則表達式詳解[收藏]
... 閱讀全文
2006年11月7日
#
2006年10月31日
#
摘要: 雖然考慮到讀取文件會影響性能,最終沒有采用這種方式,而是取數據庫,但總結出來以后說不定用的著,呵呵.1,下載dom4j2,寫xml的代碼public?class?AddPictureAction?extends?BaseAction?{????public?ActionForward?execute(ActionMapping?mapping,?ActionForm?form,?HttpServl... 閱讀全文
2006年10月13日
#
摘要: 這是一個小東東,有的時候用的著,呵呵。<script?language="javascript"?>????function?leftToRight(aa,bb,cc){????????var?selected;????????var?b?=?false;????????var?bLength?=?bb.length;????????for(var?i=0;?i?<?aa.len... 閱讀全文
|