<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    junctioner

    2007年3月28日

    序:給自己找點(diǎn)事做

    時(shí)間和日子在無(wú)知無(wú)覺(jué)中過(guò)去,問(wèn)自己收獲了什么?

    每天無(wú)所事事。


    列個(gè)標(biāo)題,挖個(gè)坑,希望每天能來(lái)挑一點(diǎn)土。

    《解讀eclipse_3.50_galileo 源碼》

    從第一次使用eclipse(大概是03年的事,那時(shí)比較好用的是2.1版還是1.4版已記不清了)就想看看這么巧妙的一個(gè)玩意兒是怎么實(shí)現(xiàn)的,一直懶散無(wú)度,從未下手。

    這段時(shí)間用SWT做個(gè)小工具,是邊找邊抄,為什么要那么寫(xiě),不知道--真是有違一慣的作風(fēng)。

    每天下班后,都不是為什么奔忙著,網(wǎng)頁(yè)?網(wǎng)游?都不知道自己看了些什么,玩了些什么。

    eclipse 的jar很多,核心的是core.runtime和osgi(早些版本里,是沒(méi)有osgi的),core.runtime比較小,就幾個(gè)類(lèi),先攻擊小的少的--毛主席真是偉大的軍事家呀。

    敬禮,睡覺(jué)去。

    posted @ 2009-09-16 22:17 junctioner 閱讀(235) | 評(píng)論 (0)編輯 收藏

    一窮二白學(xué)習(xí)C語(yǔ)言(1)

    前言
      一直想學(xué)習(xí)C,在剛知道有計(jì)算機(jī)的時(shí)候就想學(xué)習(xí)C,上學(xué)時(shí),偷上計(jì)算機(jī)專(zhuān)業(yè)的課,學(xué)了半年Turbo C,學(xué)到指針時(shí),暈了,也就沒(méi)有下文。工作之后,時(shí)有心血來(lái)潮之時(shí),但還是沒(méi)怎么學(xué)習(xí),Java還是比較簡(jiǎn)單,Java幾乎占據(jù)了工作全部,更少有學(xué)習(xí)C了。用Java,研究到Java的核心,發(fā)覺(jué)還是得學(xué)C,學(xué)呀,學(xué)吧。
      今天也是一時(shí)的心血來(lái)潮了,趁著有股勁,開(kāi)始動(dòng)手,記錄一下,以期待和方便下次來(lái)潮。

      寫(xiě)出的代碼,得編譯才可以運(yùn)行,這個(gè)編譯環(huán)境,得先搭起來(lái)。VC、Visual Studio,都微軟的東西,有點(diǎn)抵觸,也有些大,不安裝了,手工配一套環(huán)境吧。
      網(wǎng)上搜了一下,Windows系統(tǒng)配C的編譯環(huán)境,得要MinGW或者cygWin,以前都下載過(guò),但一直不知道它們本身是個(gè)什么東西,再查,知道大概:二者均基于GCC(GNU Compiler Collection -格努編譯套件),再加一些基本的類(lèi)庫(kù)。去各自的官網(wǎng)分別下載安裝,感受:cygWin更象是一個(gè)linux的模擬器,把linux環(huán)境下的GCC給模擬出來(lái),其它的就都一樣需要基本的編譯器、類(lèi)庫(kù),其它的如make工具。使用的時(shí)候,個(gè)人取向選擇minGW,在環(huán)境變量中指向{$minGW}\bin,gcc和make就可以在cmd中運(yùn)行了。
      寫(xiě)個(gè)簡(jiǎn)單的hello world源程序,gcc一把,生產(chǎn)可執(zhí)行文件,運(yùn)行,結(jié)果出來(lái),OK!

      注,下載minGW時(shí),我選擇了自動(dòng)安裝下載,一個(gè)個(gè)的下載,點(diǎn)來(lái)點(diǎn)去,累的慌。
    單獨(dú)下載minGW,要如下幾個(gè)包,再分別解開(kāi)放在同一目錄中。
    gcc-core
    C語(yǔ)言編譯器
    gcc-c++
    C++語(yǔ)言編譯器
    mingw-runtime
    MinGW的運(yùn)行時(shí)庫(kù)(這個(gè)必須安裝)

    win32api

    win32API函數(shù)頭文件和連接庫(kù)

    binutils

    MinGW的匯編器和連接器等基礎(chǔ)工具

    gdb

    MinGW中的調(diào)試工具
    mingw32-make
    Make工具,用以更好的管理你的項(xiàng)目
    make解后,沒(méi)有通常的make.exe,只有一個(gè)mingw32-make.exe文件,其實(shí),把這個(gè)文件改名為make.exe就行。

    posted @ 2008-12-22 15:53 junctioner 閱讀(1700) | 評(píng)論 (6)編輯 收藏

    年跡

    1978:第一個(gè)關(guān)鍵的年份
    1988:雖然是第一個(gè)十年,但十歲的生日沒(méi)多少印象了,更多的是開(kāi)始注意的第一個(gè)年份。
    1993:初中結(jié)束了,
    1997:高中結(jié)束了,
    2000/06/30:大學(xué)畢業(yè)了,世紀(jì)之交呀!
    2000/08/03:子身跑到汕頭的一個(gè)小鎮(zhèn)開(kāi)始第一份工作,真正的人生地不熟。到目的地時(shí),身上只有20塊錢(qián)了,還是年青的老板給我付的“摩的”費(fèi)。
    2001/11/03:混到一份跟自己所學(xué)專(zhuān)業(yè),所做的工作一點(diǎn)也不相關(guān)的工作,毅然一個(gè)人跑到北京。首都呀!當(dāng)時(shí)天很冷,比我想象的要冷,下車(chē)后把能穿的都穿上,不知象什么熊。打22塊錢(qián)的車(chē)找到公司,競(jìng)?cè)贿€沒(méi)到上班時(shí)間。
    2004/06/xx:一個(gè)傷感的月份,也注定要離開(kāi)這個(gè)做了好幾年有公司。
    2004/08/04:換了一個(gè)比較遠(yuǎn)的公司,在朝陽(yáng),自己租住在西直門(mén)。
    2005/02/28:一個(gè)沒(méi)有29日的月份,還沒(méi)開(kāi)始工作,就沒(méi)有選擇的離開(kāi)了。
    2005/07/03:
    2006/07/03:換了一份工作,不知什么感受。

    posted @ 2007-06-19 16:35 junctioner 閱讀(272) | 評(píng)論 (0)編輯 收藏

    Velocity之首次研究

        與Velocity的第一次見(jiàn)面,是03年,有個(gè)新同事推薦使用,因當(dāng)時(shí)我在做別的項(xiàng)目,也沒(méi)怎么仔細(xì)了解,簡(jiǎn)單的知曉類(lèi)似如模板一類(lèi)的東西。之后有過(guò)幾次接觸,但,都沒(méi)花時(shí)間仔細(xì)看,前段時(shí)間,幫朋友做一個(gè)小東西,覺(jué)得用個(gè)模板做,會(huì)省很多事,想到Velocity。東西很小,做完了都沒(méi)時(shí)間看Velocity,今天正好有時(shí)間,研究研究。
        Velocity是apache下的一個(gè)開(kāi)源項(xiàng)目,其網(wǎng)址:http://velocity.apache.org/;下載地址:http://velocity.apache.org/download.cgi,可直接下載源碼,也可通過(guò)SVN獲取源碼。
        在eclipse中創(chuàng)建一個(gè)web應(yīng)用工程,把Velocity的源碼拷到j(luò)ava資源目錄下,自動(dòng)編譯后,報(bào)幾個(gè)錯(cuò),拷貝下載的Velocity源碼lib目錄下的commons-collections-3.1.jar、oro-2.0.8.jar、commons-lang-2.1.jar這個(gè)三類(lèi)包到web應(yīng)用工程的lib目錄下即可。
        準(zhǔn)備就緒,就寫(xiě)個(gè)例子跑跑試試。寫(xiě)一個(gè)hello.vm的模板文件,創(chuàng)建一個(gè)對(duì)應(yīng)的Servlet,就可以運(yùn)行了。兩文件源碼貼出如下:
        hello.vm
    <html>
        
    <body>
        #set($greet = "你好哇!")
            Hello!$name, $greet
        
    </body>
    </html>
        HelloServlet.java
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Properties;

    import javax.servlet.ServletConfig;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.velocity.Template;
    import org.apache.velocity.app.Velocity;
    import org.apache.velocity.context.Context;
    import org.apache.velocity.servlet.VelocityServlet;

    public class HelloServlet extends VelocityServlet {

        
    protected Properties loadConfiguration(ServletConfig config)
                
    throws IOException, FileNotFoundException {

            Properties p 
    = new Properties();

            String path 
    = config.getServletContext().getRealPath("/");

            
    if (path == null) {
                path 
    = "/";
            }

            p.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, path);
            p.setProperty(
    "runtime.log", path + "velocity.log");
            p.setProperty(Velocity.INPUT_ENCODING, 
    "GBK");
            p.setProperty(Velocity.OUTPUT_ENCODING, 
    "GBK");
            
    return p;
        }

        
    public Template handleRequest(HttpServletRequest request,
                HttpServletResponse response, Context ctx) {
            Template template 
    = null;
            
    try {
                ctx.put(
    "name","Velocity");
                template 
    = Velocity.getTemplate("/hello.vm");
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
            
    return template;
        }
    }
        創(chuàng)建servelt要注意的幾個(gè)地方。
        1、新建的Servlet要擴(kuò)展Velocity的VelocityServlet
        2、在servlet中要實(shí)現(xiàn) public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx)
           A)把要返回到頁(yè)面上的數(shù)據(jù)放到context中對(duì)應(yīng)到指定鍵值(鍵值名為對(duì)應(yīng)模板中定義的變量名)
           B)引入指定模板文件
        3、導(dǎo)入配置文件的方法protected Properties loadConfiguration(ServletConfig config),是否實(shí)現(xiàn),是可選的 ,其作用在后面說(shuō)明。

    發(fā)布運(yùn)行后,訪問(wèn)http://localhost:8080/vt/HelloServelt,就可看到結(jié)果了。

    運(yùn)行起來(lái),看到結(jié)果,是覺(jué)得很簡(jiǎn)單,其運(yùn)行過(guò)程,就要跟蹤看源碼才能知道了。

        看源碼,先看的,肯定是VelocityServlet.java。發(fā)現(xiàn)源碼注釋中,這個(gè)類(lèi)已不推薦使用,推薦使用Velocity的一個(gè)子項(xiàng)目tool中的VelocityViewServlet.java,我沒(méi)有當(dāng)tool子項(xiàng)目,就先看這個(gè)“過(guò)時(shí)的”實(shí)現(xiàn)。
         VelocityServlet.java,擴(kuò)展了HttpServlet,實(shí)現(xiàn)了doGet、doPost、init基本方法,前兩個(gè)方法都直接調(diào)用新實(shí)現(xiàn)的doRequest方法,這些都是很常規(guī)的操作。
        doRequest方法做如下幾件事:創(chuàng)建上下文、設(shè)置響應(yīng)內(nèi)容文件類(lèi)型、獲取模板(調(diào)用每個(gè)請(qǐng)求中的具體實(shí)現(xiàn))、合并數(shù)據(jù)做出響應(yīng)、出錯(cuò)處理及資源清理。看到這兒,整個(gè)請(qǐng)求和響應(yīng)過(guò)程很清晰,并沒(méi)什么特別的處理。
        接下來(lái),看看它的初始化做了些什么事。就做了三件事,超類(lèi)初始化、自己的初始化、緩存內(nèi)容類(lèi)型數(shù)據(jù)。自己的初始化,也就是(i)導(dǎo)入配置信息,(ii)根據(jù)配置信息做初始化設(shè)置。導(dǎo)入配置信息,是根據(jù)指定的幾個(gè)地方,獲取配置數(shù)據(jù)(在提供的樣例中,重載了它的獲取配置數(shù)據(jù)的方法,自己靈活的寫(xiě)入一些配置信息);根據(jù)配置信息做初始化的工作,應(yīng)用單例設(shè)計(jì)模式,保證初始化工作的處理唯一。
        VelocityServlet自已的初始化,調(diào)用另一個(gè)類(lèi)org.apache.velocity.app.Velocity的init( Properties p )方法,就看看Velocity里做了些什么。Velocity里全是靜態(tài)方法。主要有如下幾個(gè)方法:
        1、初始化;2、預(yù)演傳入的數(shù)據(jù)(發(fā)現(xiàn)在應(yīng)用中沒(méi)有使用,只在單元測(cè)試代碼中引用到);3、合并數(shù)據(jù)和模板;4、設(shè)置/獲取屬性;5、操作信息提示(不過(guò),都不推薦使用了),整個(gè)的看下來(lái),有兩點(diǎn):1、主要的還是初始化和數(shù)據(jù)合并了;2、這個(gè)類(lèi)只是一個(gè)中轉(zhuǎn)類(lèi),所有的方法,最終都是調(diào)另一個(gè)類(lèi)org.apache.velocity.runtime.RuntimeSingleton的方法。
        打開(kāi)RuntimeSingleton的代碼,看一看,發(fā)現(xiàn)它同Velocity類(lèi)差不多,類(lèi)本身不做實(shí)際的處理操作。它與Velocity不同的是,它是申明一個(gè)靜態(tài)的實(shí)例,再調(diào)用這個(gè)實(shí)例,個(gè)別地方(init())加了同步控制。如此處理體現(xiàn)它這個(gè)類(lèi)的名字--單例,核心的還是這個(gè)靜態(tài)實(shí)例org.apache.velocity.runtime.RuntimeInstance。
        到RuntimeInstance,就開(kāi)始接觸到Velocity的處理核心了。

        寫(xiě)到這兒,突然沒(méi)有寫(xiě)下去的沖動(dòng)了,暫切休息一下。
       
        抽時(shí)間看了一下Velocity子項(xiàng)目tool下的VelocityViewServlet的源碼,比VelocityServlet要實(shí)現(xiàn)的好多了,與struct接合的比較好。
        Velocity,不僅僅適合于web應(yīng)用,還可以作生成SQL、XML的模板,內(nèi)容比較多,待一一挖掘。

    posted @ 2007-05-30 15:49 junctioner 閱讀(2911) | 評(píng)論 (3)編輯 收藏

    開(kāi)源需要一個(gè)良好的商業(yè)模式

    在網(wǎng)上看到“蓋茨北大演講遭開(kāi)源人士抗議”一事,對(duì)開(kāi)源兄的行為,我選擇不置可否,但對(duì)軟件而言,我選擇開(kāi)源。
    現(xiàn)在的局面是,商業(yè)化的軟件比開(kāi)源的軟件,要活地滋潤(rùn)、舒展多了,所以也會(huì)發(fā)生這次事件。

    為什么會(huì)出面這種局面?為什么需要開(kāi)源?在這里我不闡述自己的觀點(diǎn)--持有同感的人都有自己的想法。

    開(kāi)源如果想要活得不那么艱難,我想:需要一個(gè)良好的商業(yè)模式支持。
    開(kāi)源不是免費(fèi)!
    開(kāi)源要生存發(fā)展,也需要營(yíng)養(yǎng)供應(yīng),不能僅靠一部分懷開(kāi)源激情的人或者組織無(wú)償奉獻(xiàn)能支撐起來(lái)的。
    linux、jboss的生存模式算是比較成功的,但還不能夠同商業(yè)化軟件相比較,還需要更充足的營(yíng)養(yǎng)源。
    這二者的模式也是一定范圍內(nèi)有效,不能做到推而廣之。

    開(kāi)源軟件生存模式的探索之路還很廣,還很遠(yuǎn),需要有志之士共同努力。

    posted @ 2007-04-24 10:03 junctioner 閱讀(996) | 評(píng)論 (0)編輯 收藏

    在eclipse 3.3m6發(fā)布之際的感慨

         摘要:   閱讀全文

    posted @ 2007-03-28 13:20 junctioner 閱讀(2971) | 評(píng)論 (9)編輯 收藏

    <2007年3月>
    25262728123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(8)

    隨筆分類(lèi)

    隨筆檔案

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日本人护士免费xxxx视频| 和日本免费不卡在线v| 亚洲国产精华液2020| 亚洲精品国产成人中文| 国产∨亚洲V天堂无码久久久| 女人被弄到高潮的免费视频| 成全动漫视频在线观看免费高清版下载| 亚洲av一综合av一区| 国产一级淫片视频免费看| 热re99久久6国产精品免费| 国产精品高清视亚洲一区二区| 亚洲视频中文字幕在线| 国产AV无码专区亚洲AWWW| 青青青国产免费一夜七次郎| 日本xxxx色视频在线观看免费| 亚洲欧洲无码AV不卡在线| 亚洲天堂一区二区三区| 久久精品国产亚洲AV果冻传媒| 亚洲国产专区一区| 亚洲情a成黄在线观看| 成人免费a级毛片| 日本人的色道免费网站| 67194熟妇在线永久免费观看| 四虎在线成人免费网站| 午夜神器成在线人成在线人免费| 亚洲高清视频免费| 男人的好看免费观看在线视频 | 国产猛男猛女超爽免费视频| 免费无码AV一区二区| 在线观看免费无码视频| 99久久国产精品免费一区二区| 深夜特黄a级毛片免费播放| 又粗又长又爽又长黄免费视频 | 18成禁人视频免费网站| 国产在线jyzzjyzz免费麻豆| 久久精品免费一区二区喷潮| 日韩免费观看视频| 自拍偷自拍亚洲精品第1页| 久久亚洲国产精品五月天| 亚洲第一区视频在线观看| 黄色a三级免费看|