ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          #

          熟悉Oracle9i的人應(yīng)該都知道,Oracle9i中有2種日志,一種稱(chēng)為Redo Log(重做日志),另一種叫做Archive Log(歸檔日志),但是這兩種日志在Oracle9i數(shù)據(jù)庫(kù)中所起到的作用相信很難有人說(shuō)清楚,下面我就結(jié)合自己對(duì)Oracle9i的認(rèn)識(shí)來(lái)進(jìn)行一下說(shuō)明

          重做日志redo log file是LGWR進(jìn)程從Oracle實(shí)例中的redo log buffer寫(xiě)入的,是循環(huán)利用的。就是說(shuō)一個(gè)redo log file(group) 寫(xiě)滿(mǎn)后,才寫(xiě)下一個(gè)。
          歸檔日志archive log是當(dāng)數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下時(shí),一個(gè)redo log file(group)寫(xiě)滿(mǎn)后,由ARCn進(jìn)程將重做日志的內(nèi)容備份到歸檔日志文件下,然后這個(gè)redo log file(group)才能被下一次使用。

          不管數(shù)據(jù)庫(kù)是否是歸檔模式,重做日志是肯定要寫(xiě)的。而只有數(shù)據(jù)庫(kù)在歸檔模式下,重做日志才會(huì)備份,形成歸檔日志。

          歸檔日志結(jié)合全備份,用于數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題后的恢復(fù)使用。

          posted @ 2010-10-19 15:00 ivaneeo 閱讀(514) | 評(píng)論 (0)編輯 收藏

          分布式計(jì)算開(kāi)源框架Hadoop介紹

           作者 岑文初 發(fā)布于 2008年8月4日 上午2時(shí)15分

          社區(qū)

          Java

          主題

          網(wǎng)格計(jì)算,

          集群與緩存

          標(biāo)簽

          Hadoop

          ── 分布式計(jì)算開(kāi)源框架Hadoop入門(mén)實(shí)踐(一)

          相關(guān)廠(chǎng)商內(nèi)容

            迷你書(shū)免費(fèi)下載:開(kāi)源選型、Struts 2、Scrum和XP、GRails

            SOY Framework:Java富客戶(hù)端快速開(kāi)發(fā)框架

          在SIP項(xiàng)目設(shè)計(jì)的過(guò)程中,對(duì)于它龐大的日志在開(kāi)始時(shí)就考慮使用任務(wù)分解的多線(xiàn)程處理模式來(lái)分析統(tǒng)計(jì),在我從前寫(xiě)的文章《Tiger Concurrent Practice --日志分析并行分解設(shè)計(jì)與實(shí)現(xiàn)》中有所提到。但是由于統(tǒng)計(jì)的內(nèi)容暫時(shí)還是十分簡(jiǎn)單,所以就采用Memcache作為計(jì)數(shù)器,結(jié)合MySQL就完成了訪(fǎng)問(wèn) 控制以及統(tǒng)計(jì)的工作。然而未來(lái),對(duì)于海量日志分析的工作,還是需要有所準(zhǔn)備。現(xiàn)在最火的技術(shù)詞匯莫過(guò)于“云計(jì)算”,在Open API日益盛行的今天,互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)將會(huì)越來(lái)越有價(jià)值,如何去分析這些數(shù)據(jù),挖掘其內(nèi)在價(jià)值,就需要分布式計(jì)算來(lái)支撐海量數(shù)據(jù)的分析工作。

          回過(guò)頭來(lái)看,早先那種多線(xiàn)程,多任務(wù)分解的日志分析設(shè)計(jì),其實(shí)是分布式計(jì)算的一個(gè)單機(jī)版縮略,如何將這種單機(jī)的工作進(jìn)行分拆,變成協(xié)同工作的集群, 其實(shí)就是分布式計(jì)算框架設(shè)計(jì)所涉及的。在去年參加BEA大會(huì)的時(shí)候,BEA和VMWare合作采用虛擬機(jī)來(lái)構(gòu)建集群,無(wú)非就是希望使得計(jì)算機(jī)硬件能夠類(lèi)似 于應(yīng)用程序中資源池的資源,使用者無(wú)需關(guān)心資源的分配情況,從而最大化了硬件資源的使用價(jià)值。分布式計(jì)算也是如此,具體的計(jì)算任務(wù)交由哪一臺(tái)機(jī)器執(zhí)行,執(zhí) 行后由誰(shuí)來(lái)匯總,這都由分布式框架的Master來(lái)抉擇,而使用者只需簡(jiǎn)單地將待分析內(nèi)容提供給分布式計(jì)算系統(tǒng)作為輸入,就可以得到分布式計(jì)算后的結(jié)果。

          Hadoop是Apache開(kāi)源組織的一個(gè)分布式計(jì)算開(kāi)源框架,在很多大型網(wǎng)站上都已經(jīng)得到了應(yīng)用,如亞馬遜、Facebook和Yahoo等等。 對(duì)于我來(lái)說(shuō),最近的一個(gè)使用點(diǎn)就是服務(wù)集成平臺(tái)的日志分析。服務(wù)集成平臺(tái)的日志量將會(huì)很大,而這也正好符合了分布式計(jì)算的適用場(chǎng)景(日志分析和索引建立就 是兩大應(yīng)用場(chǎng)景)。

          當(dāng)前沒(méi)有正式確定使用,所以也是自己業(yè)余摸索,后續(xù)所寫(xiě)的相關(guān)內(nèi)容,都是一個(gè)新手的學(xué)習(xí)過(guò)程,難免會(huì)有一些錯(cuò)誤,只是希望記錄下來(lái)可以分享給更多志同道合的朋友。

          什么是Hadoop?

          搞什么東西之前,第一步是要知道What(是什么),然后是Why(為什么),最后才是How(怎么做)。但很多開(kāi)發(fā)的朋友在做了多年項(xiàng)目以后,都習(xí)慣是先How,然后What,最后才是Why,這樣只會(huì)讓自己變得浮躁,同時(shí)往往會(huì)將技術(shù)誤用于不適合的場(chǎng)景。

          Hadoop框架中最核心的設(shè)計(jì)就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的, 簡(jiǎn)單的一句話(huà)解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫(xiě),為分布式計(jì)算存儲(chǔ)提供了底層支持。

          MapReduce從它名字上來(lái)看就大致可以看出個(gè)緣由,兩個(gè)動(dòng)詞Map和Reduce,“Map(展開(kāi))”就是將一個(gè)任務(wù)分解成為多個(gè)任務(wù), “Reduce”就是將分解后多任務(wù)處理的結(jié)果匯總起來(lái),得出最后的分析結(jié)果。這不是什么新思想,其實(shí)在前面提到的多線(xiàn)程,多任務(wù)的設(shè)計(jì)就可以找到這種思 想的影子。不論是現(xiàn)實(shí)社會(huì),還是在程序設(shè)計(jì)中,一項(xiàng)工作往往可以被拆分成為多個(gè)任務(wù),任務(wù)之間的關(guān)系可以分為兩種:一種是不相關(guān)的任務(wù),可以并行執(zhí)行;另 一種是任務(wù)之間有相互的依賴(lài),先后順序不能夠顛倒,這類(lèi)任務(wù)是無(wú)法并行處理的。回到大學(xué)時(shí)期,教授上課時(shí)讓大家去分析關(guān)鍵路徑,無(wú)非就是找最省時(shí)的任務(wù)分 解執(zhí)行方式。在分布式系統(tǒng)中,機(jī)器集群就可以看作硬件資源池,將并行的任務(wù)拆分,然后交由每一個(gè)空閑機(jī)器資源去處理,能夠極大地提高計(jì)算效率,同時(shí)這種資 源無(wú)關(guān)性,對(duì)于計(jì)算集群的擴(kuò)展無(wú)疑提供了最好的設(shè)計(jì)保證。(其實(shí)我一直認(rèn)為Hadoop的卡通圖標(biāo)不應(yīng)該是一個(gè)小象,應(yīng)該是螞蟻,分布式計(jì)算就好比螞蟻吃 大象,廉價(jià)的機(jī)器群可以匹敵任何高性能的計(jì)算機(jī),縱向擴(kuò)展的曲線(xiàn)始終敵不過(guò)橫向擴(kuò)展的斜線(xiàn))。任務(wù)分解處理以后,那就需要將處理以后的結(jié)果再匯總起來(lái),這 就是Reduce要做的工作。

          圖1:MapReduce結(jié)構(gòu)示意圖

          上圖就是MapReduce大致的結(jié)構(gòu)圖,在Map前還可能會(huì)對(duì)輸入的數(shù)據(jù)有Split(分割)的過(guò)程,保證任務(wù)并行效率,在Map之后還會(huì)有Shuffle(混合)的過(guò)程,對(duì)于提高Reduce的效率以及減小數(shù)據(jù)傳輸?shù)膲毫τ泻艽蟮膸椭:竺鏁?huì)具體提及這些部分的細(xì)節(jié)。

          HDFS是分布式計(jì)算的存儲(chǔ)基石,Hadoop的分布式文件系統(tǒng)和其他分布式文件系統(tǒng)有很多類(lèi)似的特質(zhì)。分布式文件系統(tǒng)基本的幾個(gè)特點(diǎn):

          1. 對(duì)于整個(gè)集群有單一的命名空間。
          2. 數(shù)據(jù)一致性。適合一次寫(xiě)入多次讀取的模型,客戶(hù)端在文件沒(méi)有被成功創(chuàng)建之前無(wú)法看到文件存在。
          3. 文件會(huì)被分割成多個(gè)文件塊,每個(gè)文件塊被分配存儲(chǔ)到數(shù)據(jù)節(jié)點(diǎn)上,而且根據(jù)配置會(huì)由復(fù)制文件塊來(lái)保證數(shù)據(jù)的安全性。

          圖2:HDFS結(jié)構(gòu)示意圖

          上圖中展現(xiàn)了整個(gè)HDFS三個(gè)重要角色:NameNode、DataNode和Client。NameNode可以看作是分布式文件系統(tǒng)中的管理 者,主要負(fù)責(zé)管理文件系統(tǒng)的命名空間、集群配置信息和存儲(chǔ)塊的復(fù)制等。NameNode會(huì)將文件系統(tǒng)的Meta-data存儲(chǔ)在內(nèi)存中,這些信息主要包括 了文件信息、每一個(gè)文件對(duì)應(yīng)的文件塊的信息和每一個(gè)文件塊在DataNode的信息等。DataNode是文件存儲(chǔ)的基本單元,它將Block存儲(chǔ)在本地 文件系統(tǒng)中,保存了Block的Meta-data,同時(shí)周期性地將所有存在的Block信息發(fā)送給NameNode。Client就是需要獲取分布式文 件系統(tǒng)文件的應(yīng)用程序。這里通過(guò)三個(gè)操作來(lái)說(shuō)明他們之間的交互關(guān)系。

          文件寫(xiě)入:

          1. Client向NameNode發(fā)起文件寫(xiě)入的請(qǐng)求。
          2. NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
          3. Client將文件劃分為多個(gè)Block,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€(gè)DataNode塊中。

          文件讀取:

          1. Client向NameNode發(fā)起文件讀取的請(qǐng)求。
          2. NameNode返回文件存儲(chǔ)的DataNode的信息。
          3. Client讀取文件信息。

          文件Block復(fù)制:

          1. NameNode發(fā)現(xiàn)部分文件的Block不符合最小復(fù)制數(shù)或者部分DataNode失效。
          2. 通知DataNode相互復(fù)制Block。
          3. DataNode開(kāi)始直接相互復(fù)制。

          最后再說(shuō)一下HDFS的幾個(gè)設(shè)計(jì)特點(diǎn)(對(duì)于框架設(shè)計(jì)值得借鑒):

          1. Block的放置:默認(rèn)不配置。一個(gè)Block會(huì)有三份備份,一份放在NameNode指定的DataNode,另一份放在 與指定DataNode非同一Rack上的DataNode,最后一份放在與指定DataNode同一Rack上的DataNode上。備份無(wú)非就是為了 數(shù)據(jù)安全,考慮同一Rack的失敗情況以及不同Rack之間數(shù)據(jù)拷貝性能問(wèn)題就采用這種配置方式。
          2. 心跳檢測(cè)DataNode的健康狀況,如果發(fā)現(xiàn)問(wèn)題就采取數(shù)據(jù)備份的方式來(lái)保證數(shù)據(jù)的安全性。
          3. 數(shù) 據(jù)復(fù)制(場(chǎng)景為DataNode失敗、需要平衡DataNode的存儲(chǔ)利用率和需要平衡DataNode數(shù)據(jù)交互壓力等情況):這里先說(shuō)一下,使用 HDFS的balancer命令,可以配置一個(gè)Threshold來(lái)平衡每一個(gè)DataNode磁盤(pán)利用率。例如設(shè)置了Threshold為10%,那么 執(zhí)行balancer命令的時(shí)候,首先統(tǒng)計(jì)所有DataNode的磁盤(pán)利用率的均值,然后判斷如果某一個(gè)DataNode的磁盤(pán)利用率超過(guò)這個(gè)均值 Threshold以上,那么將會(huì)把這個(gè)DataNode的block轉(zhuǎn)移到磁盤(pán)利用率低的DataNode,這對(duì)于新節(jié)點(diǎn)的加入來(lái)說(shuō)十分有用。
          4. 數(shù)據(jù)交驗(yàn):采用CRC32作數(shù)據(jù)交驗(yàn)。在文件Block寫(xiě)入的時(shí)候除了寫(xiě)入數(shù)據(jù)還會(huì)寫(xiě)入交驗(yàn)信息,在讀取的時(shí)候需要交驗(yàn)后再讀入。
          5. NameNode是單點(diǎn):如果失敗的話(huà),任務(wù)處理信息將會(huì)紀(jì)錄在本地文件系統(tǒng)和遠(yuǎn)端的文件系統(tǒng)中。
          6. 數(shù) 據(jù)管道性的寫(xiě)入:當(dāng)客戶(hù)端要寫(xiě)入文件到DataNode上,首先客戶(hù)端讀取一個(gè)Block然后寫(xiě)到第一個(gè)DataNode上,然后由第一個(gè) DataNode傳遞到備份的DataNode上,一直到所有需要寫(xiě)入這個(gè)Block的NataNode都成功寫(xiě)入,客戶(hù)端才會(huì)繼續(xù)開(kāi)始寫(xiě)下一個(gè) Block。
          7. 安全模式:在分布式文件系統(tǒng)啟動(dòng)的時(shí)候,開(kāi)始的時(shí)候會(huì)有安全模式,當(dāng)分布式文件系統(tǒng)處于安全模式的情況下,文 件系統(tǒng)中的內(nèi)容不允許修改也不允許刪除,直到安全模式結(jié)束。安全模式主要是為了系統(tǒng)啟動(dòng)的時(shí)候檢查各個(gè)DataNode上數(shù)據(jù)塊的有效性,同時(shí)根據(jù)策略必 要的復(fù)制或者刪除部分?jǐn)?shù)據(jù)塊。運(yùn)行期通過(guò)命令也可以進(jìn)入安全模式。在實(shí)踐過(guò)程中,系統(tǒng)啟動(dòng)的時(shí)候去修改和刪除文件也會(huì)有安全模式不允許修改的出錯(cuò)提示,只 需要等待一會(huì)兒即可。

          下面綜合MapReduce和HDFS來(lái)看Hadoop的結(jié)構(gòu):

           

          圖3:Hadoop結(jié)構(gòu)示意圖

          在Hadoop的系統(tǒng)中,會(huì)有一臺(tái)Master,主要負(fù)責(zé)NameNode的工作以及JobTracker的工作。JobTracker的主要職責(zé) 就是啟動(dòng)、跟蹤和調(diào)度各個(gè)Slave的任務(wù)執(zhí)行。還會(huì)有多臺(tái)Slave,每一臺(tái)Slave通常具有DataNode的功能并負(fù)責(zé)TaskTracker的 工作。TaskTracker根據(jù)應(yīng)用要求來(lái)結(jié)合本地?cái)?shù)據(jù)執(zhí)行Map任務(wù)以及Reduce任務(wù)。

          說(shuō)到這里,就要提到分布式計(jì)算最重要的一個(gè)設(shè)計(jì)點(diǎn):Moving Computation is Cheaper than Moving Data。就是在分布式處理中,移動(dòng)數(shù)據(jù)的代價(jià)總是高于轉(zhuǎn)移計(jì)算的代價(jià)。簡(jiǎn)單來(lái)說(shuō)就是分而治之的工作,需要將數(shù)據(jù)也分而存儲(chǔ),本地任務(wù)處理本地?cái)?shù)據(jù)然后歸 總,這樣才會(huì)保證分布式計(jì)算的高效性。

          為什么要選擇Hadoop?

          說(shuō)完了What,簡(jiǎn)單地說(shuō)一下Why。官方網(wǎng)站已經(jīng)給了很多的說(shuō)明,這里就大致說(shuō)一下其優(yōu)點(diǎn)及使用的場(chǎng)景(沒(méi)有不好的工具,只用不適用的工具,因此選擇好場(chǎng)景才能夠真正發(fā)揮分布式計(jì)算的作用):

          1. 可擴(kuò)展:不論是存儲(chǔ)的可擴(kuò)展還是計(jì)算的可擴(kuò)展都是Hadoop的設(shè)計(jì)根本。
          2. 經(jīng)濟(jì):框架可以運(yùn)行在任何普通的PC上。
          3. 可靠:分布式文件系統(tǒng)的備份恢復(fù)機(jī)制以及MapReduce的任務(wù)監(jiān)控保證了分布式處理的可靠性。
          4. 高效:分布式文件系統(tǒng)的高效數(shù)據(jù)交互實(shí)現(xiàn)以及MapReduce結(jié)合Local Data處理的模式,為高效處理海量的信息作了基礎(chǔ)準(zhǔn)備。

          使用場(chǎng)景:個(gè)人覺(jué)得最適合的就是海量數(shù)據(jù)的分析,其實(shí)Google最早提出MapReduce也就是為了海量數(shù) 據(jù)分析。同時(shí)HDFS最早是為了搜索引擎實(shí)現(xiàn)而開(kāi)發(fā)的,后來(lái)才被用于分布式計(jì)算框架中。海量數(shù)據(jù)被分割于多個(gè)節(jié)點(diǎn),然后由每一個(gè)節(jié)點(diǎn)并行計(jì)算,將得出的結(jié) 果歸并到輸出。同時(shí)第一階段的輸出又可以作為下一階段計(jì)算的輸入,因此可以想象到一個(gè)樹(shù)狀結(jié)構(gòu)的分布式計(jì)算圖,在不同階段都有不同產(chǎn)出,同時(shí)并行和串行結(jié) 合的計(jì)算也可以很好地在分布式集群的資源下得以高效的處理。

          posted @ 2010-10-14 19:37 ivaneeo 閱讀(211) | 評(píng)論 (0)編輯 收藏

          1.Android團(tuán)隊(duì)提供的示例項(xiàng)目 

          如果不是從學(xué)習(xí)Android SDK中提供的那些樣例代碼開(kāi)始,可能沒(méi)有更好的方法來(lái)掌握在Android這個(gè)框架上開(kāi)發(fā)。由Android的核心開(kāi)發(fā)團(tuán)隊(duì)提供了15個(gè)優(yōu)秀的示例項(xiàng) 目,包含了游戲、圖像處理、時(shí)間顯示、開(kāi)始菜單快捷方式等。 

          地址:http://code.google.com/p/apps-for-android/ 

          附件Amazed2_1-300x200.jpg 

          Amazed 2 Android App

           

          2.Remote Droid 

          RemoteDroid是一個(gè)Android應(yīng)用,能夠讓用戶(hù)使用自己的無(wú)線(xiàn)網(wǎng)絡(luò)使用無(wú)線(xiàn)鍵盤(pán)、觸摸屏操作手機(jī)。這個(gè)項(xiàng)目為開(kāi)發(fā)者提供了如網(wǎng)絡(luò)連接、觸 摸屏手指運(yùn)動(dòng)等很好的樣例。 

          地址:http://code.google.com/p/remotedroid/ 

          附件remotedroid.jpg 

          Remote Droid

           

          3.TorProxyShadow 

          TorProxy應(yīng)用實(shí)現(xiàn)了Android手機(jī)無(wú)線(xiàn)電電傳通訊(TOR),和Shadow應(yīng)用一起使用,可以使用手機(jī)匿名上網(wǎng)。從該項(xiàng)目源代碼中,可以 掌握socket連接、管理cookie等方法。 

          地址:http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/ 

          附件img02.png 

          Android TorProxy

           

          4 Android SMSPopup 

          SMSPopup可以截獲短信內(nèi)容顯示在一個(gè)泡泡形狀的窗口中。從這個(gè)項(xiàng)目中可以掌握到如何使用內(nèi)置的短信SMS接口。 

          地址:http://code.google.com/p/android-smspopup/ 

          附件screenshot1.png 

          Android SMSPopup 

           

          5 Standup Timer 

          Standup Timer應(yīng)用用于控制站立會(huì)議時(shí)間,類(lèi)似秒表倒計(jì)時(shí),可以提醒每個(gè)人的講話(huà)時(shí)間已到,從而保證每個(gè)與會(huì)者使用時(shí)間一樣。從該項(xiàng)目的代碼中,可以學(xué)會(huì)如何 使用時(shí)間函數(shù)。另外,這個(gè)項(xiàng)目的代碼是采用視圖view、模型model嚴(yán)格分離的設(shè)計(jì)思路。 

          地址:http://github.com/jwood/standup-timer 

          附件stats.png 

          Android App – Standup Timer

           

          6 Foursquare 

          Foursquare.com的一個(gè)客戶(hù)端應(yīng)用,該應(yīng)用主要分為兩個(gè)模塊:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)兩部分。從該項(xiàng)目代碼中,可以學(xué)會(huì)如何同步、多線(xiàn)程、HTTP連接等技術(shù)。 

          地址:http://code.google.com/p/foursquared/ 

          附件screen_1.png 

          Foursquare for Android

           

          7 Pedometer 

          Pedometer應(yīng)用用于記錄你每天走路步[]數(shù)的。盡管記錄不一定精準(zhǔn),但是從這個(gè)項(xiàng)目中,可以學(xué)習(xí)幾個(gè)不同的技術(shù):加速器交互、語(yǔ)音更新、后臺(tái)運(yùn)行服 務(wù)等。 

          地址:http://code.google.com/p/pedometer/ 

          附件Pedometer-Android_1.png 

          Android pedometer

           

          8 OpenSudoku-android 

          OpenSudoku是一個(gè)簡(jiǎn)單的九宮格數(shù)獨(dú)游戲。從代碼中可以學(xué)習(xí)到如何在視圖中顯示表格數(shù)據(jù),以及如何和一個(gè)網(wǎng)站交互等技術(shù)。 

          地址:http://code.google.com/p/opensudoku-android 

          附件gameplay_sn.png 

          Android OpenSudoku

           

          9 ConnectBot 

          ConnectBotAndroid平臺(tái)的一個(gè)客戶(hù)端安全殼應(yīng)用。從該項(xiàng)目代碼中,可以學(xué)習(xí)到很多Android安全方面的內(nèi)容,這些是你在開(kāi)發(fā)應(yīng)用 時(shí)經(jīng)常需要考慮的安全問(wèn)題。 

          地址:http://code.google.com/p/connectbot/ 

          附件connectbot-top.png 

          附件connectbot-list.png 

          Android Connectbot

           

          10 WordPressAndroid應(yīng)用 

          當(dāng)然在最后不能不提WordpressAndroid應(yīng)用了,這是Wordpress官方開(kāi)發(fā)團(tuán)隊(duì)提供的一個(gè)項(xiàng)目。從代碼中可以學(xué)習(xí)到XMLRPC調(diào) 用(當(dāng)然還有更多的優(yōu)秀內(nèi)容)。 

          地址:http://android.svn.wordpress.org/trunk/

          附件wordpress-android-apps-develpors.jpg 

          Android Wordpress

           

          源文檔 <http://www.pin5i.com/showtopic-top-10-android-open-source-project.html

          posted @ 2010-10-14 19:32 ivaneeo 閱讀(864) | 評(píng)論 (0)編輯 收藏

               摘要: 我從java1.3開(kāi)始學(xué)習(xí)java,后來(lái)主要用1.4,再后來(lái)1.5和1.6中的很多新特性,都停留在“知道”的狀態(tài),比如nio,雖然據(jù)說(shuō)可以提升性能,但并沒(méi)有真正深入使用和測(cè)試過(guò),工作操作文件的情況不多,所以關(guān)注也不多,即便用到,也還是習(xí)慣性的用java.io。今天看到的這篇文章,雖然測(cè)試手段非常簡(jiǎn)單,所得結(jié)論也難免有些片面 ,但依然說(shuō)明,在順序訪(fǎng)問(wèn)的時(shí)候,NIO的性能相對(duì)j...  閱讀全文
          posted @ 2010-10-14 19:29 ivaneeo 閱讀(1013) | 評(píng)論 (0)編輯 收藏

               摘要: 勤奮的 litaocheng 同學(xué),在每日超負(fù)荷的加班工作之余,仍然刻苦學(xué)習(xí)筆耕不輟,為我們不斷帶來(lái)勁爆文章,這一篇《Erlang的Unicode支持》為我們介紹了 R13 的最新特性,也是最被大家期望的特性——內(nèi)置的 Unicode 支持。廢話(huà)少說(shuō),直接上正文。 在R13A中, Erlang加入了對(duì)Unicode的支持。本文涉及到的數(shù)據(jù)類(lèi)型包括:list, binary, ...  閱讀全文
          posted @ 2009-10-28 15:19 ivaneeo 閱讀(1413) | 評(píng)論 (1)編輯 收藏

               摘要: 前些天給echo_server寫(xiě)了個(gè)非常簡(jiǎn)單的連接壓力測(cè)試程序, 下載: stress_test.erl -module(stress_test).    -export([start/0, tests/1]).    start() ->  ...  閱讀全文
          posted @ 2009-10-27 15:49 ivaneeo 閱讀(371) | 評(píng)論 (0)編輯 收藏

               摘要: Erlang被稱(chēng)作是“工業(yè)級(jí)的語(yǔ)言”,在測(cè)試領(lǐng)域,理應(yīng)是有相當(dāng)成熟度的。而,Joe老先生本人,也是崇尚“拿測(cè)試結(jié)果說(shuō)話(huà)”的人(在《Programming Erlang》書(shū)中,上來(lái)就搞測(cè)試,然后再開(kāi)講的例子比比皆是)。就連 Erlang/OTP 本身的代碼質(zhì)量也是有嚴(yán)密的測(cè)試作為保障的。所以,如果在Erlang領(lǐng)域,你見(jiàn)到遠(yuǎn)比其他語(yǔ)言為多的測(cè)試相關(guān)工具...  閱讀全文
          posted @ 2009-10-27 15:48 ivaneeo 閱讀(309) | 評(píng)論 (0)編輯 收藏

               摘要: 試了一下傳說(shuō)中的 JInterface ,使用 OtpErlang.jar 的整個(gè)過(guò)程其實(shí)非常簡(jiǎn)單,似乎比 JMS 的程序都簡(jiǎn)單。 首先,我們要用 java 實(shí)現(xiàn)的原始 erlang 程序如下,沒(méi)錯(cuò),就是巨簡(jiǎn)單的 echo ,我們的目標(biāo)是要把它用 java 來(lái)改寫(xiě),不僅寫(xiě)服務(wù)端,也要寫(xiě)客戶(hù)端。 下載: echo_client.erl -module(echo_c...  閱讀全文
          posted @ 2009-10-27 15:46 ivaneeo 閱讀(356) | 評(píng)論 (0)編輯 收藏

          require 'java'
          import 'oracle.jdbc.driver.OracleDriver'

          module JavaLang
            include_package "java.lang"
          end

          module JavaSql
            include_package "java.sql"
          end

          #JavaLang::Class.forName("oracle.jdbc.driver.OracleDriver").newInstance
          ##發(fā)現(xiàn)如果直接用Class.forName話(huà)根本找不到類(lèi)。看來(lái)jruby是預(yù)先導(dǎo)入的直接用import CLASS即可
          con =
            JavaSql::DriverManager.getConnection( \
              "jdbc:oracle:thin:@132.228.129.104:1521:ods","ods","ods")
            sql = con.createStatement()

            result = sql.executeQuery("select * from dual")

            while result.next
              puts result.getString(1)
            end

          posted @ 2009-04-22 14:50 ivaneeo 閱讀(1677) | 評(píng)論 (0)編輯 收藏

          oracle guid類(lèi)型其實(shí)是raw(16)類(lèi)型
          生成: SELECT SYS_GUID ()
          INTO v_guid
          FROM DUAL;
          posted @ 2008-12-01 15:08 ivaneeo 閱讀(602) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共67頁(yè): First 上一頁(yè) 18 19 20 21 22 23 24 25 26 下一頁(yè) Last 
          主站蜘蛛池模板: 郓城县| 阳信县| 黄大仙区| 宁武县| 新营市| 福安市| 红桥区| 龙门县| 繁峙县| 葫芦岛市| 二连浩特市| 澎湖县| 凉城县| 濮阳市| 营山县| 东兰县| 民勤县| 策勒县| 佛学| 子洲县| 芒康县| 洛南县| 平南县| 连平县| 建昌县| 嘉义县| 平乐县| 东港市| 名山县| 高邮市| 米脂县| 海宁市| 合作市| 广德县| 西畴县| 杨浦区| 四会市| 贵德县| 诸暨市| 万年县| 遂川县|