zhrb的空間

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            20 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

          #

               摘要: 實現(xiàn)Linux應(yīng)用二進制兼容的意義


          隨著操作系統(tǒng)技術(shù)的發(fā)展從注重性能到注重服務(wù),操作系統(tǒng)所配套的服務(wù)軟件多少以及開發(fā)環(huán)境是否易用就成為決定一個操作系統(tǒng)生命力的關(guān)鍵因素。微軟今日壟斷地位的形成,就得益于微軟完整的應(yīng)用軟件體系。而以前國產(chǎn)操作系統(tǒng)未能形成良性發(fā)展的局面,也是受阻于沒有完整的軟件體系的配套。所以,注重配套服務(wù)軟件開發(fā),提高系統(tǒng)適用面就成為Kylin操作系統(tǒng)在設(shè)計和開發(fā)只初就統(tǒng)籌考慮的問題。


          通過自己的力量,從頭為Kylin操作系統(tǒng)開發(fā)來所有應(yīng)用軟件時間不允許,人力、物力上不可行。它山之石可以攻玉,我們必須借助目前現(xiàn)有成熟的應(yīng)用軟件體系才能在較短時間內(nèi)構(gòu)成較完整的應(yīng)用軟件體系,滿足用戶的基本需求。  閱讀全文
          posted @ 2008-03-06 22:27 zhrb 閱讀(659) | 評論 (0)編輯 收藏

          原帖地址:
          http://www.runpc.com.tw/content/168/168E18_1.aspx
          2008年必須知道的新技術(shù)——軟體開發(fā)篇 [zz]
          2008年必須知道的新技術(shù)─軟件開發(fā)篇
          文/蔡學(xué)鏞.匯整/編輯部
          ________________________________________
          新 技術(shù)不斷出現(xiàn),其中某些技術(shù)很可能會成為我們不可避免的挑戰(zhàn),因此每隔幾年,我們
          都應(yīng)該審視我們未來應(yīng)該注意的技術(shù)有哪些。透過本文章,和大家分享我的技 術(shù)觀察與建
          議。 當(dāng)然對大多數(shù)的開發(fā)者來說,Visual Studio 2008是今年的重頭戲,這也是Windows
          Vista推出之后的第一個全新的Visual Studio版本,不容我們輕忽。但依照慣例,微軟還是
          會用大量的技術(shù)資料、研討會、資源…等,把我們喂得飽飽的。我就不用在此多介紹了。
          另外RIA也是今年的重點,最值得注意的RIA技術(shù)當(dāng)然是WPF/Sliverlight和AIR/Flash。關(guān)于
          RIA,許多文章都已經(jīng)有提及,我也 不在此贅述。我想在這篇文章中帶領(lǐng)大家認識的,是比
          較不一樣的新挑戰(zhàn)。

          多核心與網(wǎng)絡(luò)運算
          穆爾定律觀察到,每隔兩年,在單一芯片上能做的事會加倍。但是穆爾定律繞道而行,不是
          產(chǎn)生越來越快的處理器(這幾年CPU頻率的增加已經(jīng)趨緩), Intel與AMD等公司的作法是產(chǎn)
          生多核心的裝置:單一芯片內(nèi)包含兩個、四個、甚至更多個處理器。如果你的程序沒有共時
          (concurrent),則一 次只會在單一個處理器上執(zhí)行,使用者會認為你的程序很慢。對于
          編程員來說,如何充分運用多核心的運算威力,變成一個重要的課題。 而網(wǎng)絡(luò)的連結(jié),造
          成分布式的環(huán)境;如何用更有效的方式進行分布式編程,也會越來越重要。 結(jié)合了上面了
          兩點因素,Erlang正開始獲得大家的重視。

          Erlang解決了現(xiàn)今開發(fā)者面對的最迫切問題之一:如何寫出可靠、共時(concurrent)、高
          效能的系統(tǒng)。Erlang已經(jīng)在世界各地被許多公司 廣泛地采用,這些公司用它來產(chǎn)生可靠、
          有效率、具規(guī)模彈性的應(yīng)用。 Erlang是一個編程語言,它的設(shè)計目的,正是為了幫助我們
          建立極度平行、分散、容錯(fault-tolerant)的系統(tǒng)。它已經(jīng)被商業(yè)采用運行多 年,建
          立出許多容錯系統(tǒng)。多年來,這些Erlang所建立的系統(tǒng)出錯率極低。 Erlang程序在多核心
          的計算機上執(zhí)行時,會充分運用系統(tǒng):這意味透過本文章,和大家分享我的技 術(shù)觀察與建
          議。 當(dāng)然對大多數(shù)的開發(fā)者來說,Visual Studio 2008是今年的重頭戲,這也是Windows
          Vista推出之后的第一個全新的Visual Studio版本,不容我們輕忽。但依照慣例,微軟還是
          會用大量的技術(shù)資料、研討會、資源…等,把我們喂得飽飽的。我就不用在此多介紹了。
          另外RIA也是今年的重點,最值得注意的RIA技術(shù)當(dāng)然是WPF/Sliverlight和AIR/Flash。關(guān)于
          RIA,許多文章都已經(jīng)有提及,我也 不在此贅述。我想在這篇文章中帶領(lǐng)大家認識的,是比
          較不一樣的新挑戰(zhàn)。

           多核心與網(wǎng)絡(luò)運算
          穆爾定律觀察到,每隔兩年,在單一芯片上能做的事會加倍。但是穆爾定律繞道而行,不是
          產(chǎn)生越來越快的處理器(這幾年CPU頻率的增加已經(jīng)趨緩), Intel與AMD等公司的作法是產(chǎn)
          生多核心的裝置:單一芯片內(nèi)包含兩個、四個、甚至更多個處理器。如果你的程序沒有共時
          (concurrent),則一 次只會在單一個處理器上執(zhí)行,使用者會認為你的程序很慢。對于
          編程員來說,如何充分運用多核心的運算威力,變成一個重要的課題。 而網(wǎng)絡(luò)的連結(jié),造
          成分布式的環(huán)境;如何用更有效的方式進行分布式編程,也會越來越重要。 結(jié)合了上面了
          兩點因素,Erlang正開始獲得大家的重視。

          Erlang解決了現(xiàn)今開發(fā)者面對的最迫切問題之一:如何寫出可靠、共時(concurrent)、高
          效能的系統(tǒng)。Erlang已經(jīng)在世界各地被許多公司 廣泛地采用,這些公司用它來產(chǎn)生可靠、
          有效率、具規(guī)模彈性的應(yīng)用。 Erlang是一個編程語言,它的設(shè)計目的,正是為了幫助我們
          建立極度平行、分散、容錯(fault-tolerant)的系統(tǒng)。它已經(jīng)被商業(yè)采用運行多 年,建
          立出許多容錯系統(tǒng)。多年來,這些Erlang所建立的系統(tǒng)出錯率極低。 Erlang程序在多核心
          的計算機上執(zhí)行時,會充分運用系統(tǒng):這意味著你的Erlang程序在四核心的計算機上會比單
          核心的計算機上快,而最棒的是,你完全不需 要更動程序,就有如此顯著的效果。當(dāng)然,
          你可以用別的語言做到和Erlang一樣的事,但是只會事倍功半。
           GUI
          在Windows 3.x時代,Charles Petzold的Windows程序設(shè)計著作是大家必讀的經(jīng)典。有人要
          他為Windows NT也寫一本這樣的書,他卻說:等NT賣千萬套再說吧!這顯示出Charles
          Petzold一直都是屬于「大眾技術(shù)類」的作家,當(dāng)他在2007年也寫出一本3D程序書籍時,或
          許代表我們3D程序設(shè)計的時代已經(jīng)揭開序幕。 Vista與MacOS都早已經(jīng)進入3D的時代。如何
          運用3D的API,開發(fā)出更炫目的設(shè)計,會是未來GUI吸引使用者的重點。

           Java
          除了Sun官方的Java,Google剛推出的手機平臺Android也是一種Java平臺。更不用提AIR也
          可以算是廣義的Java平臺(太多地方都 類似Java,連Bytecode檔案格式都很類似)。由于
          Android和AIR都不是弱勢的平臺,所以可能會造成Java的分歧。 但是雖然彼此分歧,也算
          各有其所。Java用在Web后端,Android用在手機,AIR用在Web前端。

           Shell
          30多年來,沿襲自Unix的Shell用法,再怎么改變,終究是換湯不換藥。在微軟推出
          PowerShell之后,Shell終于有了截然不同的面貌和 更強大的威力。運用.NET,整合各種對
          象模型(WMI、COM…),PowerShell名稱中有出現(xiàn)Power(威力)絕非浪得虛名。相當(dāng)值得
          系統(tǒng)管 理員與編程員學(xué)習(xí)。 但是提醒你,PowerShell或許不難上手,但是有太多陷阱。一
          開始不熟悉這些陷阱時,會吃不少苦頭。

           語言
          從Tiobe的編程語言需求排名,可以看到Ruby與D語言快速進入主流;Perl消退,被Python超
          越;C# 慢慢上漲、Java與C維持平盤、C++ 漸漸低落;Delphi持續(xù)探底,Lua往上猛竄。 估
          計未來幾年,OO語言還是主流,函數(shù)語言漸漸流行。目前主要是學(xué)術(shù)圈在使用函數(shù)語言(
          Functional Language),但確實有相當(dāng)多跡象顯示,函數(shù)編程有可能會漸漸走入業(yè)界。

          自己寫parser。除非你用像REBOL這樣的語言,否則寫parser應(yīng)該會是很痛苦的事,幸好你
          可以利用 ANTLR幫你產(chǎn)生parser。目前ANTLR已經(jīng)支持相當(dāng)多主流語言,ANTLR相當(dāng)值得學(xué)習(xí)

           Security
          網(wǎng)絡(luò)的時代,危機四伏。許多系統(tǒng)的保全都是事后加上的,這樣子很危險。事先良好的規(guī)劃
          是建立保全環(huán)境的關(guān)鍵,而規(guī)劃的最佳工具是模型塑造 (modeling)。用形式上的作法,
          尋找威脅與弱點,以破除攻擊。 STRIDE是相當(dāng)知名的威脅分類模型。STRIDE可以用來為系
          統(tǒng)的重大威脅進行分類。威脅正是攻擊者希望發(fā)生的事,也就是我們不希望發(fā)生的事。如果
          我 們塑模所有的STRIDE威脅分類,我們就有很高的機會可以涵蓋大多數(shù)重要的領(lǐng)域。

          STRIDE是Spoofing(偽造)、Tampering(竄改)、Repudiation(否認)、Information
          Disclosure(信息揭露)、Denial of Service(服務(wù)阻斷)、與Elevation of Privilege
          (特權(quán)提升)的縮寫。 建立保全模型,有三個部分:威脅、資產(chǎn)、與緩解(mitigation)
          。透過塑模了解你的系統(tǒng)可能面臨的威脅,并緩解問題,保護資產(chǎn)。不要讓你的程序, 布
          滿弱點,危害大眾,程序員必須及早補充Security相關(guān)的知識,將STRIDE應(yīng)用在開發(fā)過程中

           整體而言
          簡單才是王道。PHP、RoR、REST會流行正是因為簡單才是王道。復(fù)雜的技術(shù)固然有許多美好
          的愿景(彈性、效率、跨平臺…),但是大多數(shù)的 developer尚未看到愿景,就已經(jīng)半途陣
          亡。復(fù)雜的技術(shù),學(xué)習(xí)門坎太高,開發(fā)過程太長,成本太高,所以只適合用在極少數(shù)的項目
          中。 多語言的時代來臨。以往只要用C/C++,就可以包辦各種應(yīng)用的開發(fā),不管是系統(tǒng)程序
          、桌面應(yīng)用、網(wǎng)絡(luò)應(yīng)用。現(xiàn)在卻是多語言的時代。多會幾個語言比較保 險,尤其是學(xué)會兩
          、三個Script語言絕對不嫌多。 今天的資產(chǎn)是明天的包袱。不甘心丟棄手中的技術(shù)(畢竟
          是多年學(xué)習(xí)的結(jié)果),改用(改學(xué))新技術(shù)者,會漸漸被時代拋棄。Paradigm Shift是常態(tài)
          ,所以我們應(yīng)該積極地接受這些新挑戰(zhàn),畢竟IT產(chǎn)業(yè)就是這樣。

          posted @ 2008-02-28 18:07 zhrb 閱讀(403) | 評論 (0)編輯 收藏

                  接口主要是用來描述這個系統(tǒng)有些什么功能,應(yīng)該怎么調(diào)用這些功能,是更高的一
          層抽象。主要是用來表現(xiàn)給外界看。同時接口比較穩(wěn)定,不能隨便變來變?nèi)ァR驗槟阋?br /> 變,對于外界來說你的表現(xiàn)就變了。接口對于系統(tǒng)來說,相當(dāng)于一個規(guī)范的描述,感覺
          有點像虛擬機規(guī)范之于虛擬機。接口對于編程人員來說,相當(dāng)于幫你隱藏了一些東西,
          這寫隱藏(如何實現(xiàn))的東西,你不需要去關(guān)注。

              抽象類,在語法上的區(qū)別,你也說了。實際上抽象類也可以部分的實現(xiàn)接口的功能
          ,即描述一些東西給外界看。抽象類更像一個系統(tǒng)的骨架,里面有一些基本的需要共享
          的代碼。和一些已經(jīng)實現(xiàn)好的方法。想想,如果全都用接口代替抽象類的話,那么我們
          底下子類的編寫就需要編寫大量的代碼。而這些子類,本可以實現(xiàn)代碼和屬性的共享的
          。所以抽象類,更多的是一個對內(nèi)的東西。

              可以說接口是比抽象類更抽象的一個東西。接口和抽象類關(guān)注的地方不一樣。當(dāng)然
          從邏輯上來看,他們的區(qū)別不是那么的明顯。但是從用法上來看,他們還是有比較大的
          區(qū)別。

              寫的有點亂...

          posted @ 2008-02-28 15:43 zhrb 閱讀(1456) | 評論 (3)編輯 收藏

          從某處獲得如下代碼:

           1// WelcomeApplet.java: Applet for displaying a message
           2import javax.swing.*;
           3
           4public class WelcomeApplet extends JApplet {
           5  /** Construct the applet */
           6  public WelcomeApplet() {
           7    getContentPane().add(
           8      new JLabel("Welcome to Java", JLabel.CENTER));
           9  }

          10}
          然后編輯好相應(yīng)的html文件
          <html>
          <head>
          <title>Welcome Java Applet</title>
          </head>
          <body>
          <applet
            
          code = "WelcomeApplet.class"
            width 
          = 200
            
          height = 70>
          </applet>
          </body>
          </html>

          結(jié)果使用IE7和Maxthon2均無法正常運行,就是顯示一個叉。(機器已經(jīng)正確安裝了sun公司的虛擬機)
          但是使用appletviewer卻可以正常運行,換用opera瀏覽器也可以正常打開。
          看來IE7的設(shè)計還是有問題啊。希望微軟和Sun這對冤家早日和解....
          posted @ 2008-02-24 11:12 zhrb 閱讀(2055) | 評論 (4)編輯 收藏

          java類庫中java.util.Arrays 類的toString方法的源代碼。如下:
           1   public static String toString(long[] a) {
           2        if (a == null)
           3            return "null";
           4    int iMax = a.length - 1;
           5    if (iMax == -1)
           6            return "[]";
           7
           8        StringBuilder b = new StringBuilder();
           9        b.append('[');
          10        for (int i = 0; ; i++{
          11            b.append(a[i]);
          12        if (i == iMax)
          13        return b.append(']').toString();
          14            b.append("");
          15        }

          16    }
          for循環(huán)有點奇怪,中間的那個表達式是空的。其實即使加上了條件,for (int i = 0; i<=iMax ; i++) 和源程序是一個效果的,純粹是多余的,但是多余地加上了這條,結(jié)果編譯出錯了!提示沒有返回語句
          上面的文字摘自下面的文章:
          http://www.aygfsteel.com/raylong1982/archive/2007/11/01/157542.html
          我的理解是:
          如果return語句唯一存在于for循環(huán)里面,for中間語句加入任何判斷條件,除非這個判斷條件絕對為真(如空語句、ture、3>2),否則判斷條件就有可能為假導(dǎo)致無法執(zhí)行到這個循環(huán)中的return語句,編譯器顯然不允許這種情況發(fā)生,所以當(dāng)return語句只在for循環(huán)體內(nèi)出現(xiàn),就不允許for循環(huán)中間的那個語句出現(xiàn)類似i<=iMax這樣的充滿不確定性的判斷,語法上。簡單一句話,包含return的那個句子,至少要讓編譯器覺得,這個return是可以執(zhí)行到的,以減少程序運行后出錯的可能。
          不過即使編譯器如此努力,還是架不住人們可能出現(xiàn)的語義上的錯誤,看下面這段代碼: 
          1    public static int max(int a, int b){
          2        for(;;)
          3            if (falsereturn a>b?a:b;
          4    }

          從語義上分析,return是無論如何也執(zhí)行不到的,但是編譯器認為for循環(huán)內(nèi)的語句肯定可以執(zhí)行到,并且里面還有return語句,所以就想當(dāng)然的認為應(yīng)該可以執(zhí)行到return語句,所以沒有報錯。至于到底有沒有錯,想想看、試一下就知道了。呵呵


          posted @ 2007-11-01 22:05 zhrb 閱讀(837) | 評論 (0)編輯 收藏

               摘要: Java中接口與抽象類的區(qū)別(一些學(xué)習(xí)體會,不知正確與否,請指正)  閱讀全文
          posted @ 2007-10-18 12:10 zhrb 閱讀(1504) | 評論 (2)編輯 收藏

               摘要: 判斷字符串是否為數(shù)的幾種方法   閱讀全文
          posted @ 2007-10-15 22:37 zhrb 閱讀(1994) | 評論 (4)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 新宾| 会泽县| 景东| 炉霍县| 大厂| 姜堰市| 南江县| 和田县| 永州市| 商丘市| 阜新市| 股票| 咸阳市| 叙永县| 柘荣县| 桓仁| 临武县| 江城| 洛阳市| 阿坝县| 中阳县| 南阳市| 大港区| 平湖市| 石阡县| 芮城县| 无锡市| 石屏县| 永济市| 金阳县| 左贡县| 延边| 哈巴河县| 沁阳市| 九江县| 松原市| 乌鲁木齐县| 怀远县| 威宁| 射洪县| 宁明县|