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

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

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

    隨筆 - 170  文章 - 536  trackbacks - 0
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    我參與的團(tuán)隊(duì)

    隨筆分類(103)

    搜索

    •  

    積分與排名

    • 積分 - 413983
    • 排名 - 135

    最新評(píng)論

    閱讀排行榜

    IntelliJ IDEA 10.0 發(fā)布了,放出 IntelliJ IDEA 10.0 的注冊(cè)機(jī)下載。點(diǎn)擊下載
    posted @ 2010-12-18 09:56 steady 閱讀(5916) | 評(píng)論 (4)編輯 收藏
         摘要:   閱讀全文
    posted @ 2009-12-14 20:06 steady 閱讀(10617) | 評(píng)論 (26)編輯 收藏

      開始并沒有關(guān)注這么一個(gè)購(gòu)物搜索的東西,以為只是上網(wǎng)按關(guān)鍵詞查查東西,昨天無意中看了說明,發(fā)現(xiàn)它遠(yuǎn)遠(yuǎn)不是這么簡(jiǎn)單的東西。它有著一般購(gòu)物搜索無法相提并論的強(qiáng)大功能,那就是——條形碼搜索。

      攝像頭對(duì)于強(qiáng)大的 Nokia S60 系列手機(jī)來說,早已成了標(biāo)配,掃描條形碼等功能,也早就成為手機(jī)很容易完成的功能了,但是卻很少有人把條形碼和網(wǎng)絡(luò)進(jìn)一步結(jié)合。有道購(gòu)物搜索是我看到的第一個(gè)完成這樣功能的軟件。其實(shí)用起來很簡(jiǎn)單,手機(jī)有個(gè)能自動(dòng)對(duì)焦的攝像頭和能上網(wǎng)就行了,拿攝像頭對(duì)準(zhǔn)商品條形碼處掃描一下,然后會(huì)自動(dòng)上網(wǎng)搜索相關(guān)產(chǎn)品,甚至連拍照鍵都不用按了,一切都是自動(dòng)完成的。產(chǎn)品數(shù)據(jù)庫(kù)也比較豐富,拿身邊的小東西隨便掃了下,水溶C100,益達(dá)木糖醇,各種書籍(書籍的數(shù)據(jù)庫(kù)應(yīng)該是最全的,手邊的書全部都能找到)。

      這是一個(gè)相當(dāng)有創(chuàng)意的產(chǎn)品,當(dāng)然,這個(gè)條形碼數(shù)據(jù)庫(kù)也不是容易得到的,但是這個(gè)數(shù)據(jù)庫(kù)和后臺(tái)有道搜索結(jié)合,就形成了一個(gè)非常完美的應(yīng)用方式,這應(yīng)該是我看到的讓我眼前一亮的手機(jī)軟件之一了。

    posted @ 2009-08-17 17:26 steady 閱讀(2095) | 評(píng)論 (0)編輯 收藏

       為了在家里唱K,去拷了個(gè)24000首的歌庫(kù),然后配置隨盤送的后羿禮光卡拉OK軟件。或許這個(gè)軟件太專業(yè)了吧,以至于想隨便配配就能玩不是件容易的事情。用我機(jī)子里裝的 KMPlayer 是根本都放不出來的,音樂視頻都是沒有的,然后拿各種播放器一個(gè)個(gè)試。用了暴風(fēng)影音(老版本的,新版是垃圾),完美解碼,默認(rèn)安裝的情況下都是可以出視頻的,聲音是完全沒有的。無奈,只得逐一試下各個(gè)選項(xiàng)了,最后發(fā)現(xiàn)只有 MPEG2 音頻編碼器設(shè)置成 SPDIF 的時(shí)候,才會(huì)有聲音。之前在網(wǎng)上找的各種解決方案都要注冊(cè),注冊(cè)后還沒給你個(gè)有效的解決方案,要你重裝系統(tǒng)什么的,還是靠自己吧。估計(jì)是做這套軟件的人比較菜,初始化聲音只用了默認(rèn)的一種音頻解碼方案,而且你還得恰好裝了這個(gè)解碼器才行,否則,一個(gè)個(gè)試吧。

      用了軟件以后,就和歌廳的選歌界面很像了,不然這么多歌曲,用手工選也是很痛苦的事了。

      另外,我用創(chuàng)新 Audigy ZS 聲卡 + 得勝 TS-6310 無線麥克風(fēng) + 黑鉆雙子星XP 音箱 + 軟件歌庫(kù),基本能做一個(gè)小小的家庭卡拉OK 中心來玩了。

    posted @ 2009-08-17 17:23 steady 閱讀(4313) | 評(píng)論 (0)編輯 收藏

      為了編譯方便我把 servlet-api.jar 和 jsp-api.jar 和其他 jar 包都放在一起,在 ant build 的時(shí)候就會(huì)一并被拷到 Web 項(xiàng)目的 WEB-INF/lib 下,不過這次因此出現(xiàn)了一個(gè) jsp 頁面的編譯錯(cuò)誤,所有的 jsp 頁面打開都會(huì)在頁面上報(bào)編譯錯(cuò)誤,后臺(tái)無任何信息。考慮到 jsp 頁面的編譯可能和 jsp-api.jar 有關(guān),于是將 WEB-INF/lib 下的 servlet-api.jar 和 jsp-api.jar 移走,問題解決。

      后來發(fā)現(xiàn)放在里面的這兩個(gè)包是 tomcat5.5 的,是 JSP 2.0 規(guī)范的,而部署的服務(wù)器是 tomcat 6.0 是 JSP 2.1 規(guī)范的,兩者可能有一定的沖突,才導(dǎo)致這樣的錯(cuò)誤。

    posted @ 2009-08-17 17:22 steady 閱讀(2586) | 評(píng)論 (0)編輯 收藏

      在用 SVN 的時(shí)候出現(xiàn)了這樣一個(gè)小問題,害得我折騰了半天,一個(gè)小小的 s 卻是罪魁禍?zhǔn)住?/span>

      因?yàn)轫?xiàng)目路徑切換,需要從 https://server/trunk 切換到 https://server/tag/1, 不過在文檔中后者寫成了 http://server/tag/1,恰好 SVN server 用 HTTP 和 HTTPS 都是可以訪問的,所以沒覺得這個(gè)東西有什么錯(cuò)誤。不過使用 SVN 做 switch 操作的時(shí)候卻總是出現(xiàn) https://server/trunk is not the same repository as http://server/tag/1,感覺很奇怪,問了一下相關(guān)負(fù)責(zé)人,當(dāng)時(shí)也沒有發(fā)現(xiàn)什么問題,不過還是沒法操作,最后無意中把 http://server/tag/1 換成了 https://server/tag/1,一切 ok。

      被這個(gè)問題折磨的比較郁悶了,可能是 SVN repository 不能在 HTTPS 和 HTTP 之間切換吧。

    posted @ 2009-08-17 17:21 steady 閱讀(3036) | 評(píng)論 (0)編輯 收藏

      其實(shí)嘛,瀏覽器對(duì)大多數(shù)人來說,都是每天必用的軟件了,不過在國(guó)內(nèi)來說,其實(shí)也沒啥懸念,IE 占據(jù)了絕大多數(shù)的份額,在加上個(gè)挑戰(zhàn)者 Firefox 在占據(jù)著國(guó)內(nèi)微不足道的份額,在加上 Google Chrome 以及其他份額更少的諸如 Opera 之類的,估計(jì)一百個(gè)人也找不到一個(gè)在用吧。

      不過嘛,國(guó)內(nèi)倒是有個(gè)不大一樣的地方,我們國(guó)人比較善于做殼,于是我們有很多“國(guó)產(chǎn)瀏覽器”可以用,最著名的或許要算 Maxthon 遨游了,當(dāng)然這也是我最喜歡的瀏覽器,也是我上網(wǎng)閑逛必用的瀏覽器,當(dāng)然了,Maxthon 這個(gè)東西嘛不是太穩(wěn)定,有時(shí)候會(huì)出現(xiàn)一些莫名其妙的問題,于是換標(biāo)準(zhǔn)的 IE 來用。當(dāng)然用 Maxthon 也有用 Maxthon 的道理,一個(gè)是同步收藏夾,一個(gè)是手勢(shì)功能,當(dāng)然還有若干細(xì)微的功能也挺不錯(cuò),彌補(bǔ)了 IE 的不足吧。不過 Maxthon 不能用 IE 的 Toolbar 和 Plugin 之類的,而獨(dú)創(chuàng)了直接的一套插件體系可謂是一大敗筆,于是很多時(shí)候?yàn)榱艘恍┕δ埽坏貌挥没?IE,Maxthon 只能成為我瞎逛的首選了。

      說到后起之秀 Firefox 嘛,其實(shí)說實(shí)話,我對(duì)它并不感冒,因?yàn)樗乃俣葘?shí)在不敢讓人恭維,或許 Firefox 讓我唯一感冒的東西是 Tor 和 Firebug 吧。更多時(shí)候我選擇用 Chrome 來替代 Firefox,因?yàn)?Chrome 夠快,不得不承認(rèn),Chrome 是最快的瀏覽器,特別是在對(duì) JS 的處理上,大大優(yōu)于前兩者。而且啟動(dòng)還有個(gè)訪問頁面列表的大縮略圖,對(duì)于我這種懶得輸網(wǎng)址的人來說,可謂是大大的方便,于是 Chrome 成了我逛技術(shù)類網(wǎng)站的首選了。

    posted @ 2009-07-07 11:19 steady 閱讀(1968) | 評(píng)論 (0)編輯 收藏
    上午看完變形金剛,這樣的娛樂大片看了感覺就是很爽,不用為復(fù)雜的情節(jié)去思考,緊張刺激的情節(jié)中不乏幽默,最有意思是看到我們公司(Cisco Webex)在變形金剛2里做的遠(yuǎn)程戀愛系統(tǒng)的廣告。

    Cisco Webex Transformers2

    Cisco Webex Transformers2

    posted @ 2009-07-06 14:13 steady 閱讀(1959) | 評(píng)論 (0)編輯 收藏

      在Java世界里打拼也好幾年了,也看到了各種不同技術(shù)的浮浮沉沉,倒是發(fā)現(xiàn)了一個(gè)簡(jiǎn)單的規(guī)律,最簡(jiǎn)單的東西往往是最有用的,簡(jiǎn)單的軟件也是種美。

      在 Java Web 領(lǐng)域,曾經(jīng)有無數(shù)各種各樣的框架,Struts1/2,JSF,Echo1/2,Tapestry,Wicket,等等等等了,這么多不同的框架代表了兩個(gè)不同的方向,除了 Struts 這個(gè)是基于請(qǐng)求的,其他幾個(gè)都是算是事件驅(qū)動(dòng)的,但是后面幾個(gè)在整個(gè)市場(chǎng)上所占的份額也趕不上 Struts 一家。HTTP 請(qǐng)求本來是很簡(jiǎn)單的,而 Struts 就是基于這樣簡(jiǎn)單的概念,但是卻有無數(shù)人希望重現(xiàn) VB 時(shí)代的那種拖拖拉拉的編程方式,希望用事件驅(qū)動(dòng)一切,但是大部分人都失敗了。失敗的原因也其實(shí)不那么復(fù)雜,有的是不夠成熟,像 JSF 這樣被 Sun 官方大力推崇的框架,但 Ajax 出現(xiàn)的時(shí)候,JSF 中想靈活的用 Ajax 都成了一種奢望,有的是資料太少了。像 Echo2 這樣的框架資料,少的跟珍惜保護(hù)動(dòng)物似的。

      當(dāng)然也不是沒有成功的,微軟憑借其強(qiáng)大的開發(fā)實(shí)力,和開發(fā)工具的配合,加上沒有給 ASP.net 用戶更多選擇余地,取得了無人匹敵的成功。但是這個(gè)成功在 Java 世界是不會(huì)擁有的,Java 世界沒有微軟這樣的巨頭,Java 世界中拿得出手的幾個(gè)開發(fā)工具,Eclipse,Netbeans,IDEA,在所見即所得的開發(fā)上遠(yuǎn)遠(yuǎn)的落后于 Visual Studio。相比微軟帝國(guó),Java 世界多的是中小型的,開源的工具產(chǎn)品。規(guī)模上都遠(yuǎn)遠(yuǎn)落后于微軟,Java 世界唯一可走的路便是簡(jiǎn)單了。對(duì) Java 世界來說,簡(jiǎn)單不僅僅是種美,更是生存之道。

      起初作為 Java 世界 PK 微軟產(chǎn)品的重頭戲,EJB 在學(xué)院派的力捧下誕生了,EJB 似乎從來都不打算讓人活的輕松,一個(gè)簡(jiǎn)單的東西非得搞的復(fù)雜無比才行。而且其持久層 Entity Bean,似乎連基本功能都沒能實(shí)現(xiàn),更別談大規(guī)模使用了。EJB 1/2 的時(shí)代是開發(fā)人員永遠(yuǎn)無法忘卻的噩夢(mèng)。

      Java 世界也從來不缺活躍分子,Rod Johnson 這個(gè)有種音樂家氣質(zhì)的牛人憑借自己多年的積累,推出了 Springframework,這樣一個(gè)基于 IoC 和 AOP 兩個(gè)概念的簡(jiǎn)單易用的框架,完成了很多起初只有 EJB 才能完成的工作,Spring 也一夜成名,成為 Java 世界使用最為廣泛的輕量級(jí)應(yīng)用框架。

      幾乎是同時(shí),來自澳洲的小帥哥 Gavin King 也在用一種與眾不同的方案去替代現(xiàn)有比較復(fù)雜的 Java 持久化方案,最后他的 Hibernate 也成為替代原有 EJB 持久化方案的選擇。相對(duì)簡(jiǎn)單的 Hibernate 也取得了巨大的成功。

      其實(shí)這樣的例子在 Java 世界也非常多,以至于后來來自于 Ruby 開發(fā)社區(qū)的 Ruby on Rails 的出現(xiàn),給了 Java 開發(fā)者當(dāng)頭一棒,原來還有更簡(jiǎn)單的做法哦。于是 Java 世界慢慢的開始對(duì)多種腳本語言進(jìn)行支持,包括 Ruby,以及后來自創(chuàng)的 Groovy。以此去打造類似 RoR 那樣簡(jiǎn)單的開放方式。

      生活其實(shí)是很簡(jiǎn)單的,軟件開發(fā)其實(shí)也是一樣,用簡(jiǎn)單的方式,去打造簡(jiǎn)單的軟件,Java 世界用無數(shù)失敗的教訓(xùn)證明了這一點(diǎn)。像我呢,也喜歡用這樣簡(jiǎn)單的方式去工作,最喜歡 IDEA 去寫代碼,最喜歡 Struts2 + Spring2 + Hibernate3 這套組合,最最喜歡的是簡(jiǎn)單,因?yàn)楹?jiǎn)單是最美的工作方式。

    posted @ 2009-06-23 16:08 steady 閱讀(3255) | 評(píng)論 (6)編輯 收藏

      為了實(shí)現(xiàn)工作流中對(duì)腳本的支持,簡(jiǎn)單的玩了一下 BeanShell,這個(gè)小小的嵌入式 Java 代碼解釋器可以將  Java 語言像動(dòng)態(tài)腳本一樣執(zhí)行,幾行命令,它就能把一段 Java 代碼給玩轉(zhuǎn)。

      工作流中有個(gè)這樣的簡(jiǎn)單案例,當(dāng)一筆單子金額大于 50萬時(shí),應(yīng)該將任務(wù)分配給 Senior Agent 處理,否則交給 Junior Agent 處理,我們用 BeanShell 簡(jiǎn)單模擬這段腳本。

        public static void main(String[] args) throws Exception {
            Interpreter i = new Interpreter();
            i.set(”price”, 1000000);
            i.set(”user”, “”);
            i.eval(”if(price > 500000)\n” +
                    “user = \”SeniorAgent\”;\n” +
                    “else \n” +
                    “user = \”JuniorAgent\”;”);
            System.out.println(i.get(”user”));
        } 

      運(yùn)行結(jié)果是打印出了:SeniorAgent

      可以看出,BeanShell 用非常動(dòng)態(tài)化的方式,完成了我們一個(gè)簡(jiǎn)單的案例的處理,這里,我們只需要將需要解析的 Java 語言的腳本交給 BeanShell 的 Interceptor,并把腳本中用到的參數(shù)值傳入,就可以了,最后,我們把運(yùn)算結(jié)果賦給一個(gè)變量,然后獲取變量結(jié)果,就可以了。

      看到 Developer Works 網(wǎng)站上有一篇 BeanShell 實(shí)現(xiàn)公式管理的文章:http://www.ibm.com/developerworks/cn/java/l-formula/index.html,可以參考一下。

    From:
    http://www.steadyxp.com/archives/851.html

    posted @ 2009-02-26 09:56 steady 閱讀(3286) | 評(píng)論 (1)編輯 收藏

      服務(wù)器上用 HttpClient 遠(yuǎn)程調(diào)用另一臺(tái)服務(wù)器的一些資源,但是用 netstat 查看經(jīng)常出現(xiàn)了很多的 CLOSE_WAIT 的連接,最后追查原因,是因?yàn)?HttpClient 的 method.releaseConnection() 并不是強(qiáng)制釋放連接,為了減小連接數(shù),使用了如下解決方案。在 HttpClient 完成請(qǐng)求后的 finally 塊里面這么寫。

        } finally {

               if (method != null) {

                  try {

                      method.releaseConnection();

                  } catch (Exception e) {

                      logger.error("-------> Release HTTP connection exception:", e);

                  }

               }

               if (client != null) {

                  try {

                      ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown();

                  } catch (Exception e) {

                      logger.error("-------> Close HTTP connection exception:", e);

                  }

                  client = null;

               }

           }


    原文:http://www.steadyxp.com/archives/832.html
    posted @ 2009-02-23 13:49 steady 閱讀(4398) | 評(píng)論 (0)編輯 收藏

    前兩天 IntelliJ IDEA 8.0 發(fā)布了,在第一時(shí)間放出 IntelliJ IDEA 8.0 的注冊(cè)機(jī)下載。點(diǎn)擊進(jìn)入下載頁面 原版下載

    posted @ 2008-11-10 16:54 steady 閱讀(15453) | 評(píng)論 (12)編輯 收藏

      從淘寶第一個(gè)開始屏蔽百度以來,國(guó)內(nèi)很多主流的 SNS 網(wǎng)站和大型的內(nèi)容性質(zhì)的網(wǎng)站都開始或即將開始屏蔽百度了,這些網(wǎng)站包括校內(nèi)網(wǎng)、海內(nèi)網(wǎng)等國(guó)內(nèi)主要SNS網(wǎng)站,以及搜狐博客、51.com等網(wǎng)站。從SNS社區(qū)的說法,他們屏蔽搜索引擎是為了保護(hù)用戶的隱私,但更多的是在保護(hù)自己的利益,比如說淘寶是在保護(hù)其極為客觀的商品信息,而SNS是在保護(hù)對(duì)其最有價(jià)值的用戶信息,特別從搜狐博客來看,更多的是希望提高其搜狗搜索的內(nèi)容價(jià)值,總的來說,東西絕非單純,純粹是一種商業(yè)上的運(yùn)作了,淘寶網(wǎng)敢第一個(gè)站出來跟百度斗,其他預(yù)謀已久的各大SNS網(wǎng)站跟著后頭就跟著殺出來了。

      這段時(shí)間百度又跟三鹿奶粉事件牽扯上了一些不清不楚的關(guān)系,搞的百度最近也疲于解釋這些事,當(dāng)然大家也不會(huì)真的相信這種解釋了,因?yàn)榘俣仍谒阉鹘Y(jié)果人工干預(yù)上已經(jīng)受到非常多的人的抱怨,我們也完全相信百度能干得出這樣的事情,具體是因?yàn)檫@次風(fēng)險(xiǎn)大還是嫌錢少了沒有去做,我們就不得而知了。

      附一些主要網(wǎng)站的 robots.txt 文件,證明一下百度是如何被屏蔽的。

    http://www.xiaonei.com/robots.txt
    # Robots.txt file from http://www.xiaonei.com
    # All robots will spider the domain

    User-agent:BaiduSpider
    Disallow:/

    http://blog.sohu.com/robots.txt
    User-agent: Googlebot
    Disallow:

    User-agent: baiduspider
    Disallow: /

    User-agent: Nutch
    Disallow:

    User-agent: *
    Disallow: /

    http://www.taobao.com/robots.txt
    User-agent: Baiduspider
    Disallow: /

    User-agent: baiduspider
    Disallow: /

    From: Steady Blog 國(guó)內(nèi)主流SNS開始屏蔽百度

    posted @ 2008-09-17 17:15 steady 閱讀(3687) | 評(píng)論 (0)編輯 收藏
         摘要:   閱讀全文
    posted @ 2008-09-15 22:24 steady 閱讀(2643) | 評(píng)論 (0)編輯 收藏

      看到在 DBA Notes 的文章(支付寶 + Firefox)說支付寶已經(jīng)開始支持 Firefox 了。

      目前支付寶對(duì) Firefox 支持的說明:
      1. 支持 Windows 平臺(tái)的 Firefox ,支持版本:Firefox 1.5、2.0、3.x;屆時(shí)還將提供自動(dòng)安裝功能,現(xiàn)在準(zhǔn)備嘗試的用戶可以到 Mozilla 站點(diǎn)上
    下載支付寶安全控件(AliPay Security Control)(也歡迎廣大 Firefox 愛好者在留言中給我們提一些反饋意見);
      2. 目前在 Windows 平臺(tái)下的 Firefox 下暫時(shí)還不提供對(duì)安全證書的支持,但是對(duì)安全證書的支持已經(jīng)提上日程;
      3. 對(duì) Linux 平臺(tái)下 Firefox 的支持已經(jīng)在內(nèi)部測(cè)試中,預(yù)期近期內(nèi)即可發(fā)布;

      可以說,這個(gè)是網(wǎng)銀及電子支付業(yè)務(wù)的一大進(jìn)步,支付寶可以說是第一個(gè)支持 Firefox 瀏覽器的支付解決方案,是第一個(gè)沒有使用 ActiveX 實(shí)現(xiàn)的解決方案,同時(shí),據(jù)支付寶方面的說法“我們目前所開發(fā)的 Firefox 插件,未做任何修改,就可以較正常運(yùn)行在蘋果的 Safari,和 Google 的 Chrome 瀏覽器上。經(jīng)過分析發(fā)現(xiàn),除了接口方案稍有區(qū)別,其大體的結(jié)構(gòu),還有頁面的Embed 標(biāo)簽等都是兼容的,相信經(jīng)過后續(xù)的改進(jìn),為 Firefox 所開發(fā)的安全控件和所修改的頁面,只花很小的代價(jià)就可以運(yùn)行在蘋果和谷歌的瀏覽器上”,對(duì)于這方面技術(shù)的研究,不光是實(shí)現(xiàn)了一個(gè)功能,更重要的是,證明了在于非 IE 瀏覽器下同樣可以實(shí)現(xiàn)類似 ActiveX 的功能,這樣為 Firefox 和 Chrome 瀏覽器的后續(xù)發(fā)展提供了有力支持,雖然我用的最多的是 IE,但是 Firefox 和 Chrome 都有令我舍棄不得的好用功能,我想在多家瀏覽器競(jìng)爭(zhēng)中,我們會(huì)得到更多更好的東西。阿里巴巴是一個(gè)重視技術(shù),重視創(chuàng)新,有遠(yuǎn)見的好企業(yè),贊一個(gè),相反,在相同的電子支付領(lǐng)域,國(guó)內(nèi)多數(shù)主流銀行的網(wǎng)銀服務(wù)在這方面幾乎不做任何技術(shù)創(chuàng)新,改進(jìn)現(xiàn)有蹩腳的產(chǎn)品,讓用戶長(zhǎng)期忍著去用他們讓人作嘔的產(chǎn)品,相比較而言,阿里系的主要產(chǎn)品后面都有 UED 的工作,因?yàn)橛脩舨攀撬麄冏钪匾摹?/span>

    From: Steady Blog - 支付寶終于支持Firefox了
    posted @ 2008-09-14 22:03 steady 閱讀(3545) | 評(píng)論 (4)編輯 收藏

      在 Web 2.0 的概念被極度熱炒,Ajax 這樣舊瓶裝新酒的技術(shù)的應(yīng)用場(chǎng)景被極度放大,因?yàn)?Google 做 Ajax 大家都跟著做,但是這樣大家往往忽略了另外一個(gè)更為簡(jiǎn)單有效的 Web 端應(yīng)用平臺(tái) Flash,其實(shí),很多應(yīng)用場(chǎng)景下,我們可以用 Flash 輕松構(gòu)建出非常漂亮的互聯(lián)網(wǎng)應(yīng)用。通過最近的一些爬網(wǎng)的使用,找到了一些國(guó)內(nèi)外的一些優(yōu)秀的 Flash 應(yīng)用平臺(tái),來和大家做一些分享。

      首先要介紹的是Buzzword,它的前身是 buzzword.com,前幾個(gè)月已經(jīng)被 Adobe 收購(gòu),這是一個(gè)很炫很好用的在線版 Word,這個(gè)來自于 Flash 東家的東西還是相當(dāng)?shù)膴Z人眼球的。直接打開了他的 demo,我們可以看到下面這樣的編輯效果。

      第一次使用 Buzzword 就被其幾乎和 Word 相似的流暢的編輯操作,強(qiáng)大的表現(xiàn)效果所震驚,無論是文字編輯功能,還是非常靈活的圖片自由布局,以及簡(jiǎn)單好用的表格編輯功能,包括批注等,用起來都是非常的順手,絲毫感覺不出這是在 Web 上使用,在線編輯的文件可以自由的保存在網(wǎng)上或是共享給好友,甚至能方便的導(dǎo)出成 Word,PDF 等格式的文檔,同樣他還能導(dǎo)入我們?cè)诒镜鼐庉嫷?Word 文件,繼續(xù)在 Web 上編輯使用。

      當(dāng)然美中不足的是,Buzzword 暫時(shí)還不支持中文,我們只能編輯英文的文檔,另外它的編輯功能和 Google Doc 這樣的前輩比起來,也是有一定差距的,它的在線協(xié)作功能,和 Google Doc 這樣的強(qiáng)手比起來還是遜色不少。

      總體來說,buzzword 給我們一個(gè)全新的體驗(yàn),原來我們?cè)跒g覽器里也是可以如此流暢的使用和 Word 這樣的應(yīng)用,不得不說,在此方面,F(xiàn)lash 相對(duì) JavaScript 是技高一籌。

      下面我們?cè)賮砜纯匆粋€(gè) Flash 版的在線視頻系統(tǒng),來自于 Webex,這個(gè)當(dāng)今世界上最大的網(wǎng)絡(luò)會(huì)議系統(tǒng)提供商,同樣也是頂級(jí)的 SaaS 服務(wù)提供商,最近也在嘗試著推出了幾款基于 Flash 的網(wǎng)絡(luò)會(huì)議系統(tǒng),我介紹其中一個(gè)比較酷的,Video Room,是一個(gè)在線的多人視頻聊天室。因?yàn)槭?Flash 的,也就不需要下載客戶端,也不要裝 ActiveX 控件了。

      在 QQ 或者其他聊天工具上,我們也會(huì)看到同樣的效果,但是,想想看我們其實(shí)是很幸福的,因?yàn)槲覀冇?QQ,老外可就沒這么爽了,MSN 或者 Skype 還沒有這么強(qiáng)的多人在線視頻呢,在網(wǎng)頁上就能玩轉(zhuǎn)視頻聊天,還是個(gè)很酷的,特別是當(dāng)你能即時(shí)接收到新的視頻聊天請(qǐng)求時(shí)實(shí)時(shí)彈出的仿 MSN 的對(duì)話框,讓你感覺不到這其實(shí)是一個(gè)網(wǎng)頁。不過這個(gè) Video Room 只提供給我們最基本的視頻音頻功能,不過拉一幫久未謀面的兄弟進(jìn)來吵吵鬧鬧還是很適合的哦。

      看完了一些國(guó)外大公司做的 Flash 應(yīng)用,我們?cè)侔岩暰€集中到國(guó)內(nèi),讓我們看看聯(lián)想實(shí)驗(yàn)室給我們帶來的一些有意思的東西,其中我們可以看到一個(gè)叫做 Best4c 的在線版繪圖工具,可以說這就是一個(gè)在線版的 Visio。

      我們可以用像操作 Visio 一樣拖一些組件到編輯區(qū)域,然后用線把他們連起來,拼成我們需要的圖,如果這不是在瀏覽器里面進(jìn)行的操作,我們或許真的會(huì)把他當(dāng)成本地運(yùn)行的軟件呢。Best4c 另外還提供給我們一套在線版的 PowerPoint 工具,讓我們可以在線的制作自己的 PPT。雖然總的來說,best4c 提供的東西不是很產(chǎn)品化,使用起來不是太人性化,但是他也向我們證明了,國(guó)內(nèi)在這方面的開發(fā)也在進(jìn)行中,我們也在努力的和世界一同進(jìn)步。

      從以上一些應(yīng)用我們可以看到,其實(shí)我們一直以來幾乎可以說是賴以為生的 Office 系列軟件,在線通訊軟件,通過 Flash 強(qiáng)大的圖形功能,讓傳統(tǒng)的單機(jī)應(yīng)用變成了網(wǎng)絡(luò)應(yīng)用,無論是在效果上,還是開發(fā)成本,和純的 HTML + JS + CSS 的傳統(tǒng) Web 應(yīng)用架構(gòu)相比,有了較大的改進(jìn)。從 Flash 成為 Adobe 的一個(gè)重要成員,F(xiàn)lash 就開始一步步的蠶食互聯(lián)網(wǎng),前幾年 Flash 攜 FLV 幾乎是將微軟的 WMV 和 ReadNetworks 的 RMVB 兩大流媒體從在線視頻上徹底的趕了出去,而這幾年,F(xiàn)lex 的推出,讓企業(yè)應(yīng)用的前端開發(fā)變得簡(jiǎn)單,去年推出的 AIR 則是更加深化了 Flash 平臺(tái)在個(gè)人電腦中的影響。這一切我們可以看到,F(xiàn)lash 正以前所未有的速度改變著互聯(lián)網(wǎng)。如果你現(xiàn)在在為企業(yè)應(yīng)用的前端界面而頭疼,F(xiàn)lex 可以幫你找回當(dāng)年 VB 時(shí)代的感覺,如果你在做工作流平臺(tái)的在線流程編輯器,或許你可以考慮一下 Flash,它或許能讓你更簡(jiǎn)單的開發(fā)這樣的圖形應(yīng)用。

    posted @ 2008-09-08 15:44 steady 閱讀(1901) | 評(píng)論 (1)編輯 收藏

      2008年8月29日,W3C 的Web IDL 工作草案正式發(fā)布,令人驚奇的是在規(guī)范說明中竟然出現(xiàn)了“周杰倫”的名字。

      Web IDL(Interface Definition Language,接口定義語言)該規(guī)范定義了一個(gè)OMG IDL 3.0的語法子集,用來規(guī)范定義的接口。Web IDL 是一個(gè)具有多種功能的IDL 變量,便于規(guī)范Web平臺(tái)中的常用腳本對(duì)象的操作。其中包括了大量的擴(kuò)展功能,以及捆綁了針對(duì)ECMAScript 3rd Edition 和Java的語言工具。

      令人驚奇的是,在規(guī)范說明書的3.8.9. Stringifies小節(jié),“周杰倫”的名字赫然出現(xiàn)在示例代碼中,堪稱為以中文名出現(xiàn)在W3C規(guī)范里的第一人。(使用 UTF-8 編碼查看)

    截圖:

    介紹:http://www.w3.org/TR/WebIDL/
    來源:CSDN

    posted @ 2008-09-06 08:18 steady 閱讀(1913) | 評(píng)論 (7)編輯 收藏

      jBPM 是一個(gè)非常優(yōu)秀的開源工作流引擎,雖然他不是一個(gè)一站式的工作流平臺(tái),不過它已經(jīng)為我們提供了比較豐富的底層操作,為了滿足特定的項(xiàng)目需求,我們一般需要對(duì)其進(jìn)行二次開發(fā),才能適用于具體的業(yè)務(wù)需求。

      其中一個(gè)主要的擴(kuò)展點(diǎn)是針對(duì) TaskNode 進(jìn)行的用戶的分配。TaskNode 是 jBPM 中一個(gè)非常重要的概念,一個(gè)任務(wù)節(jié)點(diǎn)可以包含若干個(gè)任務(wù),不同的任務(wù)可以由不同的人來完成,任務(wù)實(shí)例被分配給 actorId 來完成,其中指定到人的分配工作就是 Assignment 要處理的,這也是我們需要定制的功能,為了實(shí)現(xiàn)用戶的分配,我們需要實(shí)現(xiàn) AssignmentHandler 接口,接口原型如下。

    public interface AssignmentHandler extends Serializable {    
        void assign(Assignable assignable, ExecutionContext executionContext) throws Exception;
    }

      通常用代碼實(shí)現(xiàn)的話,我們可以讓一個(gè)類實(shí)現(xiàn)這個(gè)接口,并在 swimlane 或者 tasknode 中的 assignment 指定該類。但是,這樣的靈活性是顯然不夠的,在系統(tǒng)的使用過程中,分配策略會(huì)不斷的進(jìn)行調(diào)整,因此我們需要更為靈活的解決方案,jBPM 本身可以使用基于 Bean Shell 的腳本來寫分配策略,但是 Bean Shell 不是那么強(qiáng)大,我們需要更為強(qiáng)大的解決方案,因此,我們選用了已經(jīng)被 JBoss 收為旗下的 JBoss Drools 4.0 規(guī)則引擎 (在 3.0 的時(shí)候曾經(jīng)改名為 JBoss Rules,4.0 又改回來了)

      完整版本請(qǐng)查看:http://www.steadyxp.com/archives/120.html

    posted @ 2008-09-05 15:29 steady 閱讀(2312) | 評(píng)論 (0)編輯 收藏

      一年來您可能聽說 Google 在做新能源,在做手機(jī)平臺(tái),這下 Google 又要發(fā)射自己的衛(wèi)星了。

      Google和GeoEye簽署一項(xiàng)排外性協(xié)議,Google購(gòu)買GeoEye即將發(fā)射的GeoEye-1號(hào)衛(wèi)星圖像的在線獨(dú)家使用權(quán),之前Google已經(jīng)與另一家主要的衛(wèi)星影像提供商DigitalGlobe達(dá)成排他性協(xié)議。

      GeoEye-1號(hào)衛(wèi)星是目前最先進(jìn)的高分辨率民用遙感衛(wèi)星,將在本周發(fā)射,火箭的外殼將打上Google的logo。GeoEye-1重4,300磅,將在423公里軌道運(yùn)行,能分辨地面41厘米大小的物體,但鑒于GeoEye與美國(guó)政府之間的許可協(xié)議,Google只能使用50厘米精度的衛(wèi)星圖片。"

      我們過去看到過各式各樣上面有 Google Logo 的東西,像筆啊,茶杯啦,我也有一個(gè) Google 送的紙袋,這下連火箭上也有了 Google 的 Logo,這下 Google 的 Logo 走出了地球,飛上了太空。相信不久,Google Earth 也將走向高清時(shí)代。

    posted @ 2008-09-05 15:28 steady 閱讀(1280) | 評(píng)論 (2)編輯 收藏

      番茄花園美化修改版Windows XP的作者、軟件下載網(wǎng)站番茄花園(tomatolei.com)站長(zhǎng)洪磊的父親19日晚22:50獨(dú)家向新浪科技證實(shí),洪磊已經(jīng)于15日(上周五)被警方拘留審查,網(wǎng)站被關(guān)閉,服務(wù)器及洪磊的筆記本被警方帶走,為洪磊提供的技術(shù)開發(fā)支持的成都紅果科技有限公司也被查封。

      據(jù)知情人士透露,由于此案是直接由上級(jí)機(jī)關(guān)指派給蘇州公安局虎丘區(qū)派出所要求查處,并且負(fù)責(zé)破案的不僅僅是蘇州方面,因此很早就有人猜測(cè)這是微軟方面直接參與促成的事件。

      8月20日中午,微軟中國(guó)也向媒體正式作出了回應(yīng)稱,“番茄花園從事的軟件盜版活動(dòng)在相當(dāng)長(zhǎng)的一段時(shí)間以來十分猖獗,包括微軟在內(nèi)的眾多國(guó)內(nèi)外軟件公司的權(quán)益均受到了嚴(yán)重?fù)p害,鑒于此,微軟日前和其它軟件公司就番茄花園網(wǎng)站的侵權(quán)犯罪活動(dòng),向國(guó)家版權(quán)局和公安部進(jìn)行了投訴,并得到了高度重視。”

      上個(gè)月可能最受大家關(guān)注的新聞就是這條了,或許大家會(huì)簡(jiǎn)單的認(rèn)為這次事件純屬微軟的反盜版行為,但是這次事件絕不僅僅是簡(jiǎn)單的反盜版,微軟之意在于一箭雙雕,一方面嚴(yán)重的打擊了最大的盜版源,另一方面為其在中國(guó)面臨的反壟斷調(diào)查提供籌碼,更深層次的意義在于消滅 Windows XP 在市面上的流行。

      讓我們來看看和微軟反壟斷相關(guān)的一些相關(guān)動(dòng)作的時(shí)間吧:

      7月31日,董正偉向商務(wù)部、國(guó)家工商總局、國(guó)家發(fā)改委發(fā)出《請(qǐng)求保護(hù)公民財(cái)產(chǎn)權(quán)益的建議申請(qǐng)書》,建議對(duì)微軟開展反壟斷調(diào)查,罰款10億美元,并責(zé)令其公開程序源代碼,并建立微軟產(chǎn)品的價(jià)格聽證制度。

      微軟做出的回應(yīng)是:

      “由于微軟大部分以非正版方式存在,正版產(chǎn)品市場(chǎng)份額很小,因此微軟在中國(guó)構(gòu)成壟斷的前提不存在。”微軟公司資深副總裁、微軟(中國(guó))有限公司董事長(zhǎng)張亞勤稱。這是微軟高管自中國(guó)《反壟斷法》8月1日實(shí)施后第一次正面回應(yīng)微軟在中國(guó)的壟斷問題。

      從時(shí)間上來看,我們可以認(rèn)為打擊番茄花園是微軟為了上面這個(gè)回應(yīng)的提供一個(gè)有效證據(jù),增加其在反壟斷調(diào)查方面的籌碼。

      最后大家可能忽略了另外一個(gè)不是那么重要的信息:

      據(jù)國(guó)外媒體報(bào)道,微軟此前表示,將于2008年6月30終止Windows XP操作系統(tǒng)OEM(原始設(shè)備制造商)版和簡(jiǎn)裝版的銷售(系統(tǒng)集成商的相應(yīng)終止日期向后延遲到2008年12月31日)

      也就是說,我們現(xiàn)在已經(jīng)無法買到正版的 WindowsXP 了,而面對(duì)兼容性的問題,對(duì)硬件要求過高的問題,也是 Vista 普及的重大瓶頸,特別是在國(guó)內(nèi) WindowsXP 改版如此流行的情況下,Vista 推廣受阻,微軟一定會(huì)想辦法去給盜版 WindowsXP 市場(chǎng)來一次釜底抽薪,讓 Vista 在正版和盜版市場(chǎng)的占有率同步提高。

      可以說,這次微軟打擊番茄花園在各個(gè)方面都給微軟帶來了不少的好處,可謂是一個(gè)妙招,而番茄花園站長(zhǎng)洪磊也就成為了繼珊瑚蟲以后的有一個(gè)商業(yè)利益的犧牲品了。

    posted @ 2008-09-05 10:02 steady 閱讀(1638) | 評(píng)論 (2)編輯 收藏

    大家可以去 Google Chrome 的官方網(wǎng)站去下載:
    http://www.google.com/chrome

    Google chrome特性是:

    • 從界面來看,我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單而高效的瀏覽器窗口。對(duì)大多數(shù)人來說,瀏覽器本身并不重要,它只是一個(gè)能夠運(yùn)行互聯(lián)網(wǎng)網(wǎng)頁、網(wǎng)站和網(wǎng)絡(luò)應(yīng)用等重要程序的工具。正如谷歌的經(jīng)典主頁,谷歌瀏覽器延續(xù)了簡(jiǎn)潔、快速的設(shè)計(jì)理念,幫助用戶快速準(zhǔn)確地到達(dá)目的地。
    • 從根本上講,我們提供了一個(gè)能更好地支持各種復(fù)雜網(wǎng)絡(luò)應(yīng)用的瀏覽器基礎(chǔ)平臺(tái)。通過讓每一個(gè)標(biāo)簽相互獨(dú)立開來,從而避免了兩個(gè)標(biāo)簽頁產(chǎn)生沖突的可能,同時(shí)面對(duì)來自惡意網(wǎng)站的攻擊,谷歌瀏覽器提供了更好的保護(hù)。我們提高了瀏覽器整體上的速度和響應(yīng)度。我們還建立了一個(gè)更強(qiáng)大的 JavaScript 引擎 V8,以便為下一代網(wǎng)絡(luò)應(yīng)用技術(shù)提供支持,這些網(wǎng)絡(luò)應(yīng)用在目前的瀏覽器上幾乎不可能實(shí)現(xiàn)。
    • —–來自Google黑板報(bào)“瀏覽器的新視角

    Chrome并非基于Firefox,而是基于蘋果的WebKit引擎。盡管Safari并沒有獲得巨大成功,但WebKit卻向它提供了一大優(yōu)勢(shì):速度。WebKit和谷歌開發(fā)的V8 java腳本渲染引擎聯(lián)手,理論上將使Chrome在速度上“百尺竿頭,更進(jìn)一步”。即使Chrome的功能達(dá)不到出色的水平,也將成為Firefox的強(qiáng)大競(jìng)爭(zhēng)對(duì)手。

    Google chrome,中文名叫什么好呢?叫“Google 合金”?或者來個(gè)跟通俗乃至庸俗的名字“Google 瀏覽器”?呵呵,不管來什么,這個(gè)都是一個(gè)好事情。我們都充滿著期待,也許過10幾分鐘,也許還有幾個(gè)小時(shí),我們都能看到廬山真面目了。不過我突然感覺到自己被來自Google的服務(wù)全面包圍:Gmail、Gtalk、Google 輸入法、Google Analytics、Google  Reader  、 Google notebook,當(dāng)然還有Google search。有點(diǎn)害怕,如果有天,Google告訴我你的Google 信用卡這個(gè)月消費(fèi)是“1000RMB”,賬單如下:…..。我還有什么Google所不知道的?:-(

    再看看老外的Blog,幾乎全球的技術(shù)Blog都在寫有關(guān)Google Chrome的事情。真佩服Google 如此良好的口碑效應(yīng)和強(qiáng)大的Marketing能力。有這樣好的宣傳,何愁沒有用戶?

    posted @ 2008-09-03 08:57 steady 閱讀(2028) | 評(píng)論 (5)編輯 收藏

    城市風(fēng)景小區(qū)目前物業(yè)名為安徽合居美尚物業(yè),該物業(yè)是剛于本月才成立的物業(yè)公司,只有暫定為三級(jí)的資質(zhì),無論從管理水平,管理資質(zhì)上都不能達(dá)到一級(jí)服務(wù)標(biāo)準(zhǔn),物業(yè)收費(fèi)卻按一級(jí)收費(fèi)收費(fèi),有違《合肥市住宅小區(qū)物業(yè)綜合服務(wù)收費(fèi)指導(dǎo)價(jià)標(biāo)準(zhǔn)》的相關(guān)規(guī)定,但是在眾多業(yè)主再三要求以及多次提意見之下,仍然沒有得到任何答復(fù)和解決。

    讓我們來看看這個(gè)物業(yè)的所作所為吧
    無組織無紀(jì)律,解決不了任何問題,遇到投訴一概推托,遇到問題一概無能為力,袖手旁觀甚至說風(fēng)涼話,晚上物業(yè)無人值班,出現(xiàn)任何問題沒人可聯(lián)系,更不可能幫忙解決;反而人多勢(shì)眾,一副欺軟怕硬的樣子,仿佛欺負(fù)業(yè)主才是正道;物業(yè)形同虛設(shè),尤其是保安無所事事,近日來我們小區(qū)接連發(fā)生2起入戶盜竊事件,被盜住戶已有6家(5號(hào)樓4家,6號(hào)樓2家,第一時(shí)間,高新區(qū)公安局均有記錄)。而且盜竊案件是在8.8號(hào)連盜四家5天之后又盜2家!!我們的物業(yè)“無所畏懼”毫無作為,簡(jiǎn)直拿業(yè)主的生命財(cái)產(chǎn)安全不當(dāng)回事!!

    相關(guān)惡劣表現(xiàn)不勝枚舉!!請(qǐng)問,這樣的物業(yè),你們能夠忍受嗎?請(qǐng)問KFS, 這樣的物業(yè)你們是怎么熟視無睹的?那么我們這些業(yè)主呢?是該行動(dòng)起來還是繼續(xù)沉默下去呢?

    讓大家都來了解一下,城市風(fēng)景給了我們?cè)鯓拥姆孔樱纸o了我們?cè)趺礃拥奈飿I(yè)?讓一切慘不忍睹的行徑曝光在眾目睽睽之下,讓更多的人來了解這個(gè)小區(qū)!!

    posted @ 2008-08-13 14:06 steady 閱讀(979) | 評(píng)論 (4)編輯 收藏

      淘寶網(wǎng),國(guó)內(nèi)最大個(gè)人網(wǎng)上交易社區(qū)正式推出了開放平臺(tái)(Taobao Open Platform,TOP),用戶可通過淘寶開放的API,創(chuàng)建各種不同的電子商務(wù)應(yīng)用。

      淘寶開放平臺(tái)項(xiàng)目是淘寶軟件公司面向3rd App開發(fā)者,提供API接口和相關(guān)開發(fā)環(huán)境的開放平臺(tái)。軟件開發(fā)者可通過淘寶API來獲取淘寶用戶信息 (賣方和賣方用戶信息,私有信息需要授權(quán))、淘寶商品信息 (全淘寶超過1億個(gè)商品的名稱、類目、型號(hào)、介紹等信息)、淘寶商品類目信息(全淘寶商品索引及分類明細(xì))、淘寶店鋪信息(全淘寶店鋪信息)、淘寶交易明細(xì)信息(在取得用戶授權(quán)的情況下,查詢每筆交易的詳細(xì)情況)、淘寶商品管理(淘寶商品的上傳、編輯、修改等接口)等信息,并建立相應(yīng)的電子商務(wù)應(yīng)用。同時(shí),作為淘寶開放平臺(tái)TOP項(xiàng)目的唯一合作平臺(tái)——阿里軟件平臺(tái)在其中也扮演著重要的角色,它將為開發(fā)者提供整套的淘寶API的附加服務(wù):測(cè)試環(huán)境、技術(shù)咨詢、產(chǎn)品上架、版本管理、收費(fèi)策略、市場(chǎng)銷售、產(chǎn)品評(píng)估等等。

     

      很多人會(huì)聯(lián)想到之前 Facebook, Google 等互聯(lián)網(wǎng)巨鱷推出的 OpenAPI,這些主要都是社交類的 API,提供 SNS 相關(guān)的服務(wù),從而擴(kuò)大自己的用戶群。但是很多人都認(rèn)為,淘寶這樣的大型個(gè)人交易類的網(wǎng)站,用戶數(shù)據(jù)是非常私密的資料,那么淘寶為何要提供開放 API 呢。

      大家不妨將視野放寬,擴(kuò)大到淘寶以外,聚焦到阿里巴巴旗下的另一個(gè)子公司——阿里軟件,就能看到淘寶開放平臺(tái)的目的所在,和 Facebook 不同,Taobao Open API 的目標(biāo)不僅僅是擴(kuò)大自己的用戶規(guī)模,重要的是,阿里巴巴要用這個(gè)平臺(tái)為自己賺錢。或許看到這里,大家都很納悶,既然是開放平臺(tái),都是開放的,如何去賺錢,盈利呢?這個(gè)重任被壓在了阿里軟件身上,這個(gè)搖錢樹就是近幾年一個(gè)很熱的名詞 SaaS。一年前,我們看不出來阿里軟件有什么不同的地方,提供了諸如阿里旺旺等工具,而且都是免費(fèi)的。從今年年初開始,大家就開始感覺到阿里軟件的變化,它提供的軟件不再是純粹自己開發(fā)的了,更多的是將一些重要的數(shù)據(jù)接口提供給第三方開發(fā)者,第三方開發(fā)者利用 Taobao Open API 完成自己產(chǎn)品的開發(fā)整合工作后,將自己的軟件發(fā)布到阿里軟件平臺(tái)上,有客戶購(gòu)買了第三方的服務(wù)后,阿里軟件就順理成章的從中抽取傭金。這是一個(gè)新穎的模式,也秉承了阿里巴巴一貫的風(fēng)格,首先讓別人賺錢,再自己賺錢。阿里巴巴希望通過淘寶這樣一個(gè)巨大的商業(yè)用戶平臺(tái),發(fā)展出一個(gè) SaaS 的中小軟件產(chǎn)業(yè)圈。

      淘寶是免費(fèi)的,淘寶開放平臺(tái)也是免費(fèi)的,但是淘寶卻慢慢的開始賺錢,并不是提供免費(fèi)的東西就不能賺錢,人多了,總是有辦法賺錢的。

    posted @ 2008-08-08 09:31 steady 閱讀(4656) | 評(píng)論 (5)編輯 收藏
         摘要:   閱讀全文
    posted @ 2008-08-04 21:38 steady 閱讀(2347) | 評(píng)論 (5)編輯 收藏

    Linux 的安全防護(hù),用 fail2ban 自動(dòng)封IP

      總以為 Linux 比較安全,被攻擊的概率較低,不過我用了非常簡(jiǎn)單的 root 賬戶密碼 (password),家里的機(jī)子兩次剛掛上網(wǎng)沒半天就被人給改了密碼,很是郁悶,不過兩次的原因都很簡(jiǎn)單,掛上網(wǎng)后就開始遭遇不斷的試密碼,因?yàn)槊艽a過于簡(jiǎn)單,很快就被攻破了,想想看,這也不是個(gè)事,密碼就算比較復(fù)雜,天天也還是會(huì)被人試密碼,心里總是不爽,找找看有沒有什么輸錯(cuò)幾次密碼就自動(dòng)禁止 IP 的工具。這不,還真找到了個(gè)叫 fail2ban 的小工具,通過分析日志來自動(dòng) ban 入侵者的 IP,話不多說,裝上去用用。

      下載地址在:http://fail2ban.sourceforge.net/rpms/

      找到最新版本的  rpm 包來安裝,裝好后,稍微根據(jù)自己的情況改一下配置就可以使用了。

    vi /etc/fail2ban.conf

    #以 daemon 方式啟動(dòng) fail2ban
    background = true

    #允許嘗試次數(shù)
    maxfailures = 3

    #觸發(fā) maxfailures 之後的封鎖時(shí)間(秒); 設(shè)為 -1 表示永遠(yuǎn)封鎖
    bantime = 3600

    #以 findtime (秒) 時(shí)間內(nèi)的錯(cuò)誤記錄作為 maxfailures 的計(jì)數(shù)基準(zhǔn)
    findtime = 600

    #排除 IP 范圍, 以空白隔開
    ignoreip = 127.0.0.1 192.168.0.0/24

    #不啟用 mail 通知
    [MAIL]

    enabled = false

    #修改自 VSFTPD, 未提及的部份保持原設(shè)定
    [PROFTPD]

    enabled = true
    logfile = /var/log/proftpd/proftpd.log
    failregex = no such user|Incorrect password

    #未提及的部份保持原設(shè)定
    [SSH]

    enabled = true
    logfile = /var/log/secure

    service fail2ban start

    這個(gè)服務(wù)啟動(dòng)以后,每天都能在 /var/log/fail2ban.log 中看到有攻擊的肉雞被 ban 了。

    2008-08-01 09:13:33,532 WARNING: SSH: Ban (3600 s) 205.189.197.66
    2008-08-01 12:24:41,943 WARNING: SSH: Ban (3600 s) 121.52.209.5

    posted @ 2008-08-02 22:08 steady 閱讀(602) | 評(píng)論 (0)編輯 收藏
    經(jīng)兩次與開發(fā)商交涉,未達(dá)到預(yù)期效果,目前開發(fā)商安徽盛通置業(yè)對(duì)《業(yè)主意見書》所反映的種種現(xiàn)象予以否認(rèn),并采取不理不采的消極態(tài)度對(duì)待業(yè)主代表的交涉。
    盛通置業(yè)總經(jīng)理王文利用其與徽商集團(tuán)的某種及其特殊的關(guān)系,積極壓制業(yè)主對(duì)其的種種投訴,對(duì)于這樣的情況,小區(qū)業(yè)主聯(lián)合起來,積極展開維權(quán)活動(dòng)。
    posted @ 2008-07-12 20:39 steady 閱讀(549) | 評(píng)論 (1)編輯 收藏

    業(yè)主意見書

    致:安徽省徽商集團(tuán)發(fā)展有限公司

    由安徽徽商集團(tuán)發(fā)展有限公司(以下簡(jiǎn)稱“你方”)開發(fā)的徽商·城市庭院三期·城市風(fēng)景現(xiàn)已按照《商品房買賣合同》約定的時(shí)間通知三期業(yè)主(以下簡(jiǎn)稱“我方”)驗(yàn)房,但我方在驗(yàn)房過程中發(fā)現(xiàn)諸多有違《商品房買賣合同》中的條款的現(xiàn)象,以及有礙正常使用和存在安全隱患的多處質(zhì)量問題,并就有關(guān)物業(yè)的收費(fèi)有諸多疑議。特向你方提出書面說明,并就賠償和整改提出我方意見,希望你方慎重對(duì)待。

    第一條:你方有違《商品房買賣合同》的條款:

    1.違反合同第十四條出賣人關(guān)于基礎(chǔ)設(shè)施,公共配套建筑正常運(yùn)行的承諾,驗(yàn)房當(dāng)日,上下水不通,供電設(shè)施不能正常使用

    2.違反合同補(bǔ)充條款中以下物品的規(guī)定:

    (1)    防盜門:所有進(jìn)戶門都是防火門,而非防盜門

    (2)    單元電子對(duì)講保安門:室內(nèi)未安裝

    (3)    信報(bào)箱:未安裝

    第二條:有礙正常使用和存在安全隱患的質(zhì)量問題:

    1.消防、智能化設(shè)施不完善

    2.室內(nèi)門、窗未按照《建筑安全玻璃管理規(guī)定》使用有雙面3c認(rèn)證標(biāo)志的安全玻璃,陽臺(tái)欄桿玻璃厚度不符合規(guī)范,且與可踏面的間隙過大

    3.房屋墻體、樓面多處存在空鼓現(xiàn)象

    4.墻面的垂直偏差大

    5.配套設(shè)施不完善:小區(qū)道路、綠化、景觀、車庫(kù)等都未竣工,未達(dá)到一個(gè)小區(qū)正常交付使用的基本標(biāo)準(zhǔn)。

    第三條:有關(guān)物業(yè)方面的疑議:

    1.樓書上承諾是信譽(yù)較好的深圳長(zhǎng)城物業(yè)管理有限公司,在我方尚未入住便已撤換,存在虛假承諾嫌疑

    2.安徽合居美物業(yè)是剛于本月才成立的物業(yè)公司,只有暫定為三級(jí)的資質(zhì),無論從管理水平,管理資質(zhì)上都不能達(dá)到一級(jí)服務(wù)標(biāo)準(zhǔn),物業(yè)收費(fèi)卻按一級(jí)收費(fèi)收費(fèi),有違《合肥市住宅小區(qū)物業(yè)綜合服務(wù)收費(fèi)指導(dǎo)價(jià)標(biāo)準(zhǔn)》的相關(guān)規(guī)定

    就以上問題,我方業(yè)主經(jīng)過集體協(xié)商,希望你方按以下方式進(jìn)行解決:

    對(duì)于第一條已構(gòu)成違約,按照《商品房買賣合同》第九條的規(guī)定進(jìn)行違約責(zé)任和由此造成的經(jīng)濟(jì)責(zé)任的賠償,并就未按合同約定的安裝、開通在5日內(nèi)予以符合約定和規(guī)范的安裝和開通。

    對(duì)于第二條1、2、3、4項(xiàng)進(jìn)行維修和更換,并根據(jù)每戶具體情況進(jìn)行相關(guān)規(guī)定的經(jīng)濟(jì)賠償,第5項(xiàng)在10內(nèi)整改完善完畢,并確保正常存活和使用。

    對(duì)于第三條在給出合理解釋的同時(shí),重新核定收費(fèi)標(biāo)準(zhǔn),否則我方將集體不交物業(yè)管理費(fèi)。

    此《業(yè)主意見書》將委托業(yè)主代表親自送達(dá)及掛號(hào)信兩種方式送達(dá)你方。我方要求你方就以上三條涉及的內(nèi)容,按照我方要求在最先送達(dá)之日起3日內(nèi)就解決辦法和期限做出書面回復(fù)。

    我方將保留媒體曝光、政府部門投訴以及追究你方法律責(zé)任的權(quán)利,希望你方予以重視,積極解決。

    本《業(yè)主意見書》尚未涉及事宜,我方將提出另外要求。

    業(yè)主簽字:

    posted @ 2008-07-10 21:12 steady 閱讀(638) | 評(píng)論 (1)編輯 收藏

    轉(zhuǎn)自:http://www.hfhouse.com/Forum/dispbbs.asp?boardID=141&ID=313451&page=1

    現(xiàn)在已近午夜,卻毫無倦意,不是不想睡(都是打工一族,明早還得早起辛辛苦苦賺生活費(fèi)),而是睡不著。因?yàn)槲乙呀?jīng)出離憤怒了!

    上班十年,節(jié)衣縮食,精打細(xì)算,只想能攢下一點(diǎn)錢,買套房子,好把遠(yuǎn)在老家辛苦了一輩子的年邁雙親接來安享晚年,盡一點(diǎn)赤子之心!

    于是,07年,思量再三,相信了徽商集團(tuán)和盛通置業(yè)的宣傳,走近了城市風(fēng)景的售樓部;

    于是,本人十年積蓄 + 父母一輩子的積蓄 + 賣掉老家小城的房產(chǎn),終于從KFS和售樓小姐的口中換回了一句承諾——08年6月底交房!

    于是,我和我的親人充滿了希望,似乎美好的生活已經(jīng)開始向我招手!

    于是,我選擇了信守承諾,安心等待!

    于是,08年7月初,當(dāng)謎底終于揭開的時(shí)候,我發(fā)現(xiàn)自己————很傻很天真!

    墻面彎曲(有凸有凹),頗有流線型美感;

    地面傾斜(高低不平),彰顯不對(duì)稱之美;

    主衛(wèi)客衛(wèi)、墻頂墻體、水管自身,無處不漏;

    從衛(wèi)生間地面到過道墻壁,從主臥墻面到客廳四周,到處空鼓;

    從廚房到衛(wèi)生間,所有需要外接籠頭之處均被深埋在墻體中等待我們業(yè)主將來挖掘;

    至于防盜門關(guān)不上,窗戶/門把手沒裝,插頭面板沒有、S彎管缺少、小區(qū)綠化。。。。。。我已學(xué)會(huì)視而不見!

    這樣的“房子”就是當(dāng)初承諾的城市“風(fēng)景”嗎?

    這樣的“房子”符合交房條件嗎?

    這樣的“房子”能夠通過竣工驗(yàn)收嗎?

    換言之,一件大家可能花了畢生積蓄購(gòu)買的昂貴商品,在質(zhì)量明顯嚴(yán)重不合格的情況下,能夠做到強(qiáng)迫大家接受,并且大家不能拒絕否則就要罰款嗎?

    于是,事實(shí)再一次告訴我們,KFS能夠做到!并且,它已經(jīng)開始在這樣做了!!

    作為風(fēng)景的業(yè)主,當(dāng)下的我們,需要的不僅僅是生氣、憤怒和失望,最重要的是,現(xiàn)在我們應(yīng)該怎么辦?!

    posted @ 2008-07-10 21:02 steady 閱讀(556) | 評(píng)論 (1)編輯 收藏
    本帖轉(zhuǎn)自:http://bbs.hefei.cc/viewthread.php?tid=2180695&extra=page%3D1

    以前看到不平的事情,即使跟自己沒一點(diǎn)關(guān)系的,只要我覺得有必要的,我都會(huì)發(fā)帖罵下。這次,請(qǐng)大家讓我為自己自私一回,罵一罵欺負(fù)到我頭上的開發(fā)商。
           去年,我家里人拿出了三代人的積蓄,在城市風(fēng)景(長(zhǎng)江西路888號(hào))買了個(gè)小窩,從那時(shí)起啊我就日日盼,夜夜盼,希望早日能住進(jìn)去,以至于每個(gè)月都要去工地上看看。(合同上約定是2008年6月30日交房
           我在2008年3月份就看出了問題,因?yàn)槲宜诘?font color="red">那棟樓根本就沒人干活,一連好幾個(gè)月都是如此,后來售樓部又接連幾次通知要我去買停車位,我才明白,很可能是開發(fā)商資金鏈斷裂了。緊張,不安。
            2008年5月30號(hào),我又來到了現(xiàn)場(chǎng),只見我的那棟樓,進(jìn)度和幾個(gè)月前看到的一樣,相比以前的差別只不過有人在干活了。天啊,一個(gè)月內(nèi)能趕完嗎?!我那棟樓一樓還有的墻沒砌,有的樓板沒裝,空著好大的洞。我把這擔(dān)心傳達(dá)給了售樓部。售樓小姐信心滿滿地說,沒問題,絕對(duì)能交房。于是我繼續(xù)等待。
             2008年6月22日,交房的前一周周末,我又去看了,樓板仍未裝,墻仍未砌,陽臺(tái)玻璃未裝,窗戶沒裝,售樓小姐仍是信心滿滿,我只好悻悻地回去了。
             而這天之后的這一周里,我?guī)缀趺刻於即螂娫捊o售樓部,問他們有沒有發(fā)收房通知書。他們說發(fā)了。我從周一等到周六就是沒有收到
           2008年6月29號(hào)(收房的前一天)又去了趟,居然還有工人在我家里砌墻
            到2008年6月30號(hào)還沒收到收房通知書,只好自己到售樓部看看了。先去自己的小窩看了下,不管是入戶門還是房間里面的玻璃門,一個(gè)都沒裝,水電氣一個(gè)都沒通,窗戶完全沒裝好根本關(guān)不上,窗戶邊上還露著塑料泡沫,客廳里還有水管露在外面,書房里還有電線鐵管露在外面,兩個(gè)廁所和衛(wèi)生間都在往下滴水,但是看一看自己房子的水龍頭還沒裝。我憤怒了,不,已經(jīng)出離憤怒了!怒氣沖沖地跑到了售樓部,看到了與我同樣怒氣沖沖的業(yè)主們。只有很少的業(yè)主收到了收房通知書,一問才知道,開發(fā)商故意把收信地址寫得很模糊,不給你電話通知,想讓你收不到不來收房,能拖多久就拖多久,然后就是你違約,他沒違約。無恥啊無恥,房子搞的不成玩意,難道還想強(qiáng)行交房?!開發(fā)商后來的一席話讓我更是氣不打一處來,今兒你收也得收,不收也得收:只要房屋結(jié)構(gòu)出來了你就可以收房了(可笑,你搭幾根柱子,裝幾塊樓板,我們就能入住了是吧?!)違約金是沒有的(那簽合同約定干嘛)7月份不管沒收沒收物業(yè)費(fèi)是要交的。后來又得知,一級(jí)資質(zhì)的物業(yè)長(zhǎng)城物業(yè)已于最近換成了開發(fā)商新成立的三級(jí)資質(zhì)的物業(yè),收費(fèi)不變(1.1/每平方),每個(gè)月還要多收40元的公共能耗費(fèi)。天啊,真牛的開發(fā)商,真厚臉皮的開發(fā)商。又找了家驗(yàn)房公司查查還有什么問題,查出來以后嚇了一大跳,密密麻麻地寫滿了驗(yàn)房單:1、房屋內(nèi)有空鼓十多處;2、垂直度超標(biāo)幾處;3、房頂不平幾處;4、空調(diào)插座不合要求幾處;————————還包括我自己一眼就能看出來的問題,共計(jì)三十項(xiàng)。回到售樓部,看到售樓部黑板上貼的文件,怒火再次充滿胸腔幾乎要迸發(fā)出來,1、入戶門的合格證書上一個(gè)防盜的字樣都沒有,只說是防火門,而合同上約定的是防盜門,這兩者的價(jià)格相差一倍;2、居然真的還有竣工驗(yàn)收備案表,上面還有人簽字了,在這里通報(bào)下他們。
    監(jiān)理公司是:合肥南巽建設(shè)項(xiàng)目管理咨詢有限公司
    總監(jiān)是:卞鑫
    我就想問問卞總監(jiān),這么多問題的房子,您是怎么驗(yàn)收合格的呢?您怎么就敢往表上簽字的呢?水管暴露在外,那么明顯,您就看不見嗎?
    還有更搞笑的事情,所有房子的驗(yàn)收日期都是2008年6月26號(hào),而6月29日的時(shí)候有的房子的墻都還沒砌好,您怎么就驗(yàn)收通過了?怎么一下子在一天之內(nèi)把小區(qū)內(nèi)所有的房子都驗(yàn)收了?

    我人肉搜索了下這個(gè)總監(jiān):
    序號(hào) 姓名 性別 聘用單位 注冊(cè)專業(yè)1 注冊(cè)專業(yè)2 執(zhí)業(yè)資格證書編號(hào) 崗位證號(hào)
    55 卞鑫 合肥南巽建設(shè)項(xiàng)目管理咨詢有限公司 房屋建筑工程 0012350

    這位總監(jiān)總監(jiān)了不少項(xiàng)目,可謂是經(jīng)驗(yàn)豐富,如:
    1、南巽創(chuàng)景花園項(xiàng)目總監(jiān)卞
    2、合肥市建設(shè)委員會(huì)


    合建質(zhì)安[2007]269號(hào)





    合肥市2007年建設(shè)工程質(zhì)量


    監(jiān)督執(zhí)法檢查情況通報(bào)

    四、典型案例


    (一)質(zhì)量控制較好的工程


    1、創(chuàng)景花園5#樓


    建筑面積:13412m2,結(jié)構(gòu)/層次:框剪/24層;


    建設(shè)單位:創(chuàng)景物業(yè)公司;項(xiàng)目負(fù)責(zé)人:張保安


    施工單位:浙江歌山建筑公司;項(xiàng)目經(jīng)理:張權(quán)平


    監(jiān)理單位:合肥南巽監(jiān)理公司;總監(jiān):卞鑫


    工程質(zhì)量評(píng)價(jià):現(xiàn)場(chǎng)實(shí)物觀感質(zhì)量好,現(xiàn)場(chǎng)管理有序;施工、監(jiān)理單位的質(zhì)量保證體系運(yùn)行良好;施工、監(jiān)理資料齊全。

        卞鑫還是某次評(píng)選評(píng)的的優(yōu)秀監(jiān)理工程師,對(duì)于這個(gè)人我沒什么好說的。
        如果是開發(fā)商偽造他的簽名,我向他道歉,并將和他一起追究開發(fā)商偽造文件的問題;
        如果真是他的簽名,他就是混蛋之極、膽大包天、不負(fù)責(zé)任,吃喝卡拿要的典型,趁早還是從監(jiān)理界滾蛋!
        我們小區(qū)里并不是每棟樓都是這樣,據(jù)說是有別的公司掛靠徽商集團(tuán)建設(shè)的。合肥的那家公司就做的很好,不少業(yè)主都收房了,而我所在的樓,很不幸,聽說是淮南的公司開發(fā)的,慘不忍睹,幾乎沒有業(yè)主收房!我們都在收房單上寫上:?jiǎn)栴}很多,拒絕收房(寫是因?yàn)榕麻_發(fā)商說我們沒來收房,說我們違約)
        我們將近60戶業(yè)主100多人已于2008年7月6日在小區(qū)內(nèi)進(jìn)行了集會(huì),集體簽名,選出了業(yè)主代表,并向開發(fā)商遞交了定期整改、賠償協(xié)議書,如果開發(fā)商再不出面處理,我們將訴諸法律和媒體!
    城市風(fēng)景業(yè)主維權(quán)在行動(dòng)!

    如果您是城市風(fēng)景的業(yè)主,請(qǐng)頂下這個(gè)帖子,這是為您自己的未來考慮;

    如果您是已經(jīng)買房未交房的業(yè)主,請(qǐng)頂下這個(gè)帖子,這是您學(xué)習(xí)維權(quán)經(jīng)驗(yàn)的機(jī)會(huì);

    如果您是已經(jīng)即將買房未交房的朋友,請(qǐng)頂下這個(gè)帖子,這很可能是您將來要走的一步;

    如果您是暫時(shí)不考慮買房的朋友,請(qǐng)頂下這個(gè)帖子,看我們?nèi)绾胃_發(fā)商斗智斗勇!

    謝謝諸位!

    posted @ 2008-07-08 20:51 steady 閱讀(1473) | 評(píng)論 (12)編輯 收藏
    開發(fā)商安徽盛通置業(yè)在沒有滿足交房條件的情況下,就向業(yè)主發(fā)出了交房通知書,引起業(yè)主強(qiáng)烈反應(yīng)。

    7.6號(hào),三期業(yè)主集體聚集小區(qū),商討維權(quán)方案,并集體簽名授權(quán)業(yè)主代表代表維權(quán)

    7.7號(hào),業(yè)主代表得到的反饋:今天上午接到銷售部電話,說是老總出差了,于是我們就找到高新區(qū)質(zhì)檢站并將業(yè)主意見書給了質(zhì)檢站,下午質(zhì)檢站的一個(gè)林質(zhì)檢員到城市風(fēng)景現(xiàn)場(chǎng)了解情況,有開發(fā)商分管工程的副總和工程部經(jīng)理陪同,看來幾家的情況后,質(zhì)檢站承認(rèn)房屋質(zhì)量確實(shí)存在質(zhì)量問題,并由工程部人員、質(zhì)檢員和業(yè)主代表開會(huì)協(xié)商。工程部表示會(huì)盡快進(jìn)行修復(fù)。我方要求要求以開發(fā)商的名義書面就《業(yè)主意見書》逐條在明確時(shí)間內(nèi)給予答復(fù)解決。工程部表示認(rèn)可,并按照我們要求的期限,周三給予明確答復(fù)。
    posted @ 2008-07-07 22:28 steady 閱讀(978) | 評(píng)論 (15)編輯 收藏
      周末的時(shí)候,淘寶對(duì)后臺(tái)又做出了一次較大的升級(jí),主要是在用戶體驗(yàn)方面的調(diào)整,其實(shí)淘寶今年以來,基本上每個(gè)月都會(huì)有這方面的調(diào)整,也說明了淘寶用戶體驗(yàn)部門的成果了。
      第一次讓我覺得有用的改動(dòng)就是對(duì)收藏的調(diào)整,不用出現(xiàn)登錄頁面了,用一個(gè)彈出層解決了這些問題。前不久對(duì)評(píng)價(jià)的改動(dòng),讓用戶做出好評(píng)不需要點(diǎn)這么多按鈕了。
      這次改動(dòng)我感覺是對(duì)我買到或者賣出的東西等一系列功能做出調(diào)整,比如說可以直接在列表里面關(guān)閉項(xiàng)目了,也是一個(gè)彈出層解決的問題。同時(shí),也讓頁面更加簡(jiǎn)潔清爽,當(dāng)然同時(shí)也會(huì)伴隨用戶的不適應(yīng)。
      其實(shí)我們更喜歡簡(jiǎn)單易用的系統(tǒng),每次操作要輸入很多或點(diǎn)很多都是很折磨人的,畢竟上網(wǎng)應(yīng)該是簡(jiǎn)單,輕松的。Web 發(fā)展到現(xiàn)在,單純的頁面跳轉(zhuǎn)與刷新越來越不流行了,Ajax 的真正價(jià)值開始被越來越多的網(wǎng)站開發(fā)團(tuán)隊(duì)理解與運(yùn)用。
    posted @ 2008-06-11 23:09 steady 閱讀(653) | 評(píng)論 (1)編輯 收藏
    今天在看榮登 Jolt 大獎(jiǎng)的 The Art of Project Management,其中最讓我深有感觸的是這樣一段話:
    The simpler your view of what you do, the more power and focus you will have in doing it. If we can periodically maintain a simple view of our work, we can find useful comparisons to other ways to make things that exist all around us. There will be more examples and lessons from history and modern industries that can be pulled from, compared with, and contrasted against. This is similar to the concept defined by the Japanese word shoshin, which means beginner's mind, or open mind, an essential part of many martial arts disciplines. Staying curious and open is what makes growth possible, and it requires practice to maintain that mindset. To keep learning, we have to avoid the temptation to slide into narrow, safe views of what we do.

    確實(shí),最近已經(jīng)很久沒有太多興趣去學(xué)習(xí)新的東西了,包括曾經(jīng)非常有興趣的 ruby,真想回到當(dāng)年剛畢業(yè)的時(shí)候,用那樣的熱情,精神去學(xué)習(xí)。或許今天算是一個(gè)起點(diǎn)吧,畢竟很久很久沒有做下來,好好的看一本書,好好的想著作者要告訴你的東西。

    給自己開了個(gè)書單,好好努力,用 beginner's mind 去感受世界,感受前人的智慧。
    posted @ 2008-05-26 14:27 steady 閱讀(391) | 評(píng)論 (0)編輯 收藏
    什么是 ESB(Enterprise Service Bus)?
    對(duì)于這個(gè)問題,長(zhǎng)期沒有搞清楚,就連我自己也很難說清楚這到底這是個(gè)什么樣的概念,我引經(jīng)據(jù)典來大致的描述一下這個(gè)概念。

    第一個(gè)定義來自于:O'Reilly 的 《Enterprise Service Bus》

    The ESB concept is a new approach to integration that can provide the underpinnings for a loosely coupled, highly distributed integration network that can scale beyond the limits of a hub-and-spoke EAI broker. An ESB is a standards-based integration platform that combines messaging, web services, data transformation, and intelligent routing to reliably connect and coordinate the interaction of significant numbers of diverse applications across extended enterprises with transactional integrity.

    An extended enterprise represents an organization and its business partners, which are separated by both business boundaries and physical boundaries. In an extended enterprise, even the applications that are under the control of a single corporation may be separated by geographic dispersion, corporate firewalls, and interdepartmental security policies.

    另外一個(gè)定義來自于:維基百科的ESB定義
    它是面向服務(wù)架構(gòu)的實(shí)現(xiàn)。
    它通常是操作系統(tǒng)和編程語言無關(guān)的;
    它應(yīng)能在Java和.Net應(yīng)用程序之間工作。
    它使用XML(可擴(kuò)展標(biāo)識(shí)語言)作為標(biāo)準(zhǔn)通信語言。
    它支持Web服務(wù)標(biāo)準(zhǔn)。
    它支持消息傳遞(同步、異步、點(diǎn)對(duì)點(diǎn)、發(fā)布-訂閱)。
    它包含基于標(biāo)準(zhǔn)的適配器(如J2C/JCA),用于集成傳統(tǒng)系統(tǒng)。
    它包含對(duì)服務(wù)編制(orchestration)和編排(choreography)的支持。
    它包含智能、基于內(nèi)容的路由服務(wù)(itenerary路由)。
    它包含標(biāo)準(zhǔn)安全模型,用于ESB的認(rèn)證、授權(quán)和審計(jì)。
    它包含轉(zhuǎn)換服務(wù)(通常是使用XSLT),在發(fā)送應(yīng)用和接收應(yīng)用之間轉(zhuǎn)換格式,簡(jiǎn)化數(shù)據(jù)格式和值的轉(zhuǎn)換。
    它包含基于模式(schema)的驗(yàn)證,用于發(fā)送和接收消息。
    它可以統(tǒng)一應(yīng)用業(yè)務(wù)規(guī)則,充實(shí)其它來源的消息,分拆和組合多個(gè)消息,以及處理異常。
    它可以條件路由,或基于非集中策略的消息轉(zhuǎn)換,即不需要集中規(guī)則引擎。
    它可監(jiān)視不同SLA(服務(wù)級(jí)別合約)的消息響應(yīng)門限,以及在SLA中定義的其它特性。
    它(常常)簡(jiǎn)化“服務(wù)類別”,向更高或更低優(yōu)先級(jí)用戶做出適當(dāng)?shù)捻憫?yīng)。
    它支持隊(duì)列,在應(yīng)用臨時(shí)不可用時(shí)用來保存消息。
    它由(地理)分布式環(huán)境中的選擇性部署應(yīng)用適配器組成。

    總的來說,ESB 提供了跨平臺(tái),跨部門,跨應(yīng)用系統(tǒng)的服務(wù)整合的基礎(chǔ)平臺(tái),就我們目前對(duì)項(xiàng)目的理解,我們或許還沒有達(dá)到這個(gè) level,我們提供的應(yīng)該是個(gè)辦公應(yīng)用平臺(tái),除非我們確實(shí)會(huì)進(jìn)行跨部門,跨業(yè)務(wù)的服務(wù)整合,那樣我們真的是在做 SOA 了,那就有的折騰了。

    不多說了,進(jìn)入下一個(gè)主題 OSGi。
    posted @ 2008-05-26 14:26 steady 閱讀(429) | 評(píng)論 (0)編輯 收藏
         摘要:   閱讀全文
    posted @ 2008-02-26 08:56 steady 閱讀(1579) | 評(píng)論 (3)編輯 收藏

    綁定在淘寶上的 SaaS 的阿里軟件網(wǎng)店版,應(yīng)該還是會(huì)有一些高級(jí)賣家愿意每天花一塊錢用的,里面確實(shí)提供了一些比較有用的功能,當(dāng)然不足的地方也是非常的多。

    先說好的吧:首先,E客服就是比較有意思的東西,解決了很多客服平臺(tái)的問題,過去我們?yōu)閮蓚€(gè)項(xiàng)目做的在線客服,跟它比起來,還是有差距的。平常店里可以同時(shí)有幾個(gè)人一起打理,而且不會(huì)出現(xiàn)一個(gè)旺旺多個(gè)人使用的情況,它用的是子帳號(hào)的概念,各人獨(dú)立一塊,互不干涉。還是很不錯(cuò)的東西。

    打印快遞單應(yīng)該也是個(gè)比較有意思的功能,如果貨物量大的話,這個(gè)功能絕對(duì)是不可少的,大大減小了人力成本。不過估計(jì)我現(xiàn)在還是用不上的。

    商品定時(shí)上架是個(gè)很好的功能,就是針對(duì)淘寶設(shè)計(jì)的功能,如果熟悉淘寶搜索結(jié)果規(guī)則的人,會(huì)很好的去利用這個(gè)規(guī)則,讓自己的貨物在最佳瀏覽時(shí)間出現(xiàn)在搜索靠前的位置。而定時(shí)上架就很好的解決了這個(gè)問題,如果有效利用的話,絕對(duì)會(huì)讓你的商品賣的更好的。

    在說一些不好的吧:首頁有個(gè)統(tǒng)計(jì)最熱賣的東西,但是沒有找到熱賣產(chǎn)品的排名,這個(gè)東西應(yīng)該是挺有用的吧,不過似乎沒有提供。查看報(bào)表里面,經(jīng)常會(huì)刷不出圖片,估計(jì)是 IE 的 Cache 原因,不再重新加載圖片了。進(jìn)銷存這個(gè)東西沒有和銷售報(bào)告結(jié)合起來,應(yīng)該算是一個(gè)缺憾了,希望下一個(gè)版本能有更多的東西。不過,不知道下個(gè)版本要到哪年,上個(gè)版本似乎已經(jīng)發(fā)布半年了。

    From:談?wù)劙⒗镘浖W(wǎng)店版
    posted @ 2008-02-21 16:46 steady 閱讀(814) | 評(píng)論 (0)編輯 收藏

    卡巴斯基這個(gè)俄國(guó)人做的殺毒軟件呢,一直比較彪悍,經(jīng)常見到什么東西都一陣嘶吼,然后你正常使用的軟件也就掛了,QQ啊,這樣的主流應(yīng)用也是經(jīng)常在它的誤殺范圍內(nèi)。

     對(duì)于開發(fā)人員來說,因?yàn)榭ò退够菚?huì)有諸多不爽的問題,下面列舉一二,是我的慘痛教訓(xùn),也和大家分享一下。

    1. SVN 問題:如果你使用 SVN 做配置管理的話,有時(shí)候 check in 代碼會(huì)半天沒有反應(yīng),如果這時(shí)候你把卡巴禁用,就一切正常了。
    2. IntelliJ IDEA 端口沖突問題:用 IDEA 啟動(dòng) Tomcat 時(shí),使用了 8080 或者 80 端口,經(jīng)常會(huì)啟動(dòng)就報(bào)端口沖突,而端口絕對(duì)是沒有被其他應(yīng)用程序占用的,而在獨(dú)立的 Tomcat 下運(yùn)行沒有出現(xiàn)這樣的問題,把卡巴對(duì)這些端口的監(jiān)控關(guān)閉就一切正常。

    這兩個(gè)問題都是比較郁悶的,卡巴斯基很強(qiáng)悍,卻總是讓人很無奈。

    From:對(duì)開發(fā)人員不友好的卡巴斯基
    posted @ 2008-01-29 10:18 steady 閱讀(1971) | 評(píng)論 (7)編輯 收藏

    Jolt Awards 是軟件界的盛宴,被譽(yù)為軟件界的奧斯卡,每年的 Jolt 中,能夠看出軟件開發(fā)領(lǐng)域的發(fā)展和未來的趨勢(shì),讓我們來關(guān)注一下今年的大獎(jiǎng)得主吧。 

    上周 Summer 推薦 Beautiful Code 的時(shí)候,也順便找到了今年的 Jolt Awards Finalists,接著榜單,閑聊一下。

    General Books
      Beautiful Code Edited by Andy Oram and Greg Wilson O’Reilly
    Geekonomics: The Real Cost of Insecure Software by David Rice Addison-Wesley Professional
    Manage It!: Your Guide to Modern Pragmatic Project Management by Johanna Rothman Pragmatic Bookshelf
    Myths of Innovation by Scott Berkun O’Reilly
    Outside In Software Development by Carl Kessler and John Sweitzer IBM Press
    Release It!: Design and Deploy Production-Ready Software by Michael T. Nygard Pragmatic Bookshelf
    Technical Books
      Continuous Integration: Improving Software Quality and Reducing Risk By Paul Duvall, Steve Matyas, Andrew Glover Addison-Wesley Professional
    Fuzzing: Brute Force Vulnerability Discovery By Michael Sutton, Adam Greene, Pedram Amini Addison-Wesley Professional
    Head First SQL Your Brain on SQL—A Learner’s Guide by Lynn Beighley O’Reilly
    The Rails Way by Obie Fernandez Addison-Wesley Professional
    WPF Unleashed by Adam Nathan Sams Publishing
    xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros Addison-Wesley Professional

    圖書方面,看上去幾乎是被 O’Reilly 和 Addison-Wesley 給壟斷了,Pragmatic Bookshelf  也在其中占有了一席之地。圖書中,最大的贏家應(yīng)該是,Beautiful Code,我在國(guó)內(nèi)某家被我批評(píng)過的IT書店上看到了掛上了期數(shù)的預(yù)告,名字叫《代碼之美》,似乎有抄襲《數(shù)學(xué)之美》的嫌疑,第一次看到這么多作者一起寫出來這么好的書,33 章的書,就包括了 33 個(gè)來自于不同領(lǐng)域的作者,共同創(chuàng)造了如此完美的代碼,在 O’Reilly 的牽線搭橋下,造就了 Beautiful Code,如果有機(jī)會(huì),我希望能由東南大學(xué)出版社出版這本書的英文影印版,讓我們細(xì)細(xì)的品味。

    Head First 的新書 Head First SQL Your Brain on SQL 也登上了 Jolt 的舞臺(tái),之前 Head First Design Pattern 和 Head First OOAD 是如此通俗的把面向?qū)ο蟮膬蓚€(gè)經(jīng)典內(nèi)容:設(shè)計(jì)模式和面向?qū)ο蟮姆治雠c設(shè)計(jì),聊家常一般的擺在我們的面前,精妙的內(nèi)容組織,淺顯易懂的語言,就連我們這些非常怕看英語的人看起來都毫不費(fèi)力,不愧為大師級(jí)的功力。而這本新書料想也會(huì)給 SQL 的新手帶來一種全新的體驗(yàn)吧。

    Pragmatic Bookshelf 這個(gè)書系自從《Pragmatic  Programmer》 開始,就不斷的擴(kuò)大其影響。從程序員修煉三部曲中,告訴了我們版本控制,單元測(cè)試,持續(xù)集成這三個(gè)開發(fā)者的基本工具。隨后的 Pragmatic  Ajax 把 Ajax 推到了大家的面前。當(dāng) Ruby on Rails 開始流行的時(shí)候,Programming Ruby 和 Agile Web Development with Rails 都在一版二版的洗禮中不斷的升華,已經(jīng)成為 RoR 開發(fā)的經(jīng)典之作。這次的 XX It 系列又從軟件項(xiàng)目管理角度來 Pragmatic 。我似乎看到過 Ship It 還有 Deploy It 這兩本,或許也是這個(gè)系列里的吧。

    The Rails Way 我一開始當(dāng)成了 The Ruby Way,其實(shí)后者的風(fēng)格我比較喜歡了,于是又套用了它的名號(hào)來了個(gè) The Rails Way,雖然現(xiàn)在還沒有拿到,我想這本書會(huì)給我們一些新意的。

    Development Environments
      Alpha Five version 8 Alpha Software Inc.
    CodeRush/Refactor! Pro Developer Express Inc.
    IntelliJ IDEA JetBrains
    Komodo IDE 4 ActiveState
    NetBeans IDE 6 Sun Microsystems
    QNX Momentics IDE 4 QNX Software Systems
    Web Development Tools
      3rdRail CodeGear
    Adobe ColdFusion 8 Adobe Systems, Inc.
    Appcelerator Platform Appcelerator, Inc.
    IntelliJ IDEA JetBrains
    NetBeans IDE Sun Microsystems
    RSSBus /n software

    開發(fā)工具大獎(jiǎng)上已經(jīng)看不到了 Eclipse 的身影,而 IDEA 依然在榜單上活躍,而我也是一如既往的使用它,即便是在 Rails IDE 中,IDEA 憑借其 Rails 插件,加上它的基礎(chǔ),用起來還是相當(dāng)?shù)捻樖郑壳俺瞬荒?Debug,我似乎沒有其他不滿的地方。

    Netbeans IDE 在年末閃亮登場(chǎng)后,帶來了一個(gè)更輕更小,更完整的開發(fā)工具包,而 Eclipse WTP 一個(gè)包動(dòng)輒就是 2xxM,雖然功能很齊全,不過體積實(shí)在是有些過分了,并且沒有一種 IDEA 的那種讓人很爽的感覺。我沒有用完整的 Netbeans 包,因?yàn)?Java Web 開發(fā)已經(jīng)習(xí)慣了 IDEA + Eclipse 的組合,我只關(guān)注了一下 Ruby IDE,功能上來說,確實(shí)有其獨(dú)到之處,不過在寫代碼上還不能達(dá)到非常流暢的速度。不過 Netbeans 在兩年里就來了個(gè)咸魚翻身,我們要說 Sun 很努力了。

    Libraries/Frameworks
      Eclipse Modeling Project Eclipse
    Guice Google Inc
    JasperReports JasperSoft
    Qt Jambi Trolltech
    Spring Framework SpringSource
    Zend Framework Zend Technologies

    在開發(fā)框架上最活躍的依然是 Java 平臺(tái),這和 Java 平臺(tái)一直以來保持的很好的開源社區(qū)是分不開的。EMF,Guice,JasperReports,Spring Framework 這幾個(gè)一直都是 Java 領(lǐng)域最熱門的開源項(xiàng)目。

    Google Guice 在 Google 的天才程序員 Bob Lee 的創(chuàng)意中誕生了,采用了一種全新的依賴注入的方式,將效率提高了傳說中的 100 倍,雖然對(duì)這個(gè)數(shù)據(jù)我不是太在意,而在 Spring 如此成熟的進(jìn)入 2.0 后,卻有一個(gè)后輩小生提出了全新的思路,而 Spring 2.5 也接受了這樣的思路,調(diào)整了一些依賴注入的策略,在性能上有了不小的提高。

    經(jīng)營(yíng)著 Spring 的 interface21 為了凸顯其 Spring 的品牌,改名為 SpringSource,并且推出了一本《Spring In Production White Paper》,希望能夠在企業(yè)應(yīng)用中占有更大的份額。

    作為 PHP 的領(lǐng)頭羊的 Zend 在 Rails 推出后再也按耐不住了,PHP 一定要有一套官方的 Framework,而且它的特性要很像 Rails,于是 Zend Framework 誕生了,這在幾乎沒有框架概念的 PHP 中注入了一種新的活力,Rails 不光激起了 Java 世界的廣泛關(guān)注,在無數(shù)個(gè)類 Rails 框架后面,Zend 從 PHP 官方的角度接受了 Rails 的思想,改善 PHP 的開發(fā)。而 Java 世界里,Grails 也伴隨這 Groovy 1.5 的推出,伴隨著 Grails 的第三個(gè) RC 版,即將走到 1.0 版本。Rails 帶給了 Web 開發(fā)無窮的活力。


    聊聊 Jolt Awards 2008
    posted @ 2008-01-12 22:23 steady 閱讀(3770) | 評(píng)論 (3)編輯 收藏

      第一次用 Zoundry 客戶端工具來發(fā)布博客,WordPress 還是不錯(cuò)的博客了,提供了 XML-RPC 方式的遠(yuǎn)程提交接口,我們可以比較容易的把我們的博客發(fā)布到 WordPress 上。

      老外對(duì)這方面的支持工作還是做的不錯(cuò)的,國(guó)內(nèi)的同類系統(tǒng)往往只考慮到功能,好一點(diǎn)的考慮到性能,而在這些新技術(shù)帶來的擴(kuò)展性的增強(qiáng)上似乎沒有太多的理解,雖然 WordPress 在功能上和國(guó)內(nèi)的很多博客有一定的差距,但是人家支持插件,這樣就可以讓地球人都上來擴(kuò)展一把。Eclipse 的插件風(fēng)風(fēng)火火的做了幾年,現(xiàn)在人似乎沒有不用插件開發(fā)的了。

      老外在 Web 2.0 中又很多好的思想,技術(shù),拿到國(guó)內(nèi)來就有點(diǎn)變味了,雖說國(guó)人在 Web 2.0 技術(shù)上跟進(jìn)的速度還是相當(dāng)?shù)目欤贿^思想還是又相當(dāng)?shù)牟罹嗟摹?/p>

      要好好學(xué)學(xué)人家做東西的思想,而不僅僅是技術(shù)。

    posted @ 2008-01-04 16:42 steady 閱讀(996) | 評(píng)論 (0)編輯 收藏

    該文章被發(fā)布在我的新博客中:http://4think.cn/blog/index.php/archives/25

      市面上這么多的IM工具,每次打開的時(shí)候就要開上一堆,還不時(shí)的有個(gè)新的IM工具出來,加上一兩個(gè)及其有吸引力的功能,然后又不得不裝上,搞的每次開機(jī)以后總是要開上一大堆的IM,比如QQ啦,MSN啦,還有Yahoo,Google Talk,飛信,Skype,真的挺麻煩的。

      一年前的時(shí)候,突然聽說 Yahoo 可以和 MSN 互通了,于是從此就沒用過 MSN 了,也是對(duì) Microsoft 歧視國(guó)內(nèi)用戶的一種不滿吧,這么多IM工具,最不穩(wěn)定的也最為常用的要屬 MSN 了,雖然飛信這樣“國(guó)”字號(hào)的軟件似乎更加的不爭(zhēng)氣,就原諒他吧,誰叫他是咱最有錢的移動(dòng)運(yùn)營(yíng)商呢。可以說,MSN 的掉線率是相當(dāng)?shù)母撸卿浰俣纫彩求@人的,在公司內(nèi)部傳文字的效率呢更加不用說了,反正沒有人走的快。不過據(jù)我們?nèi)ミ^美國(guó)的一些同事說,MSN 在美國(guó)速度是非常快的,包括其下屬的 hotmail,MSN Space,怪不得這么被推崇了,不過沒辦法,畢竟是在國(guó)內(nèi),屬于不被重視的使用群體,大不了就不用了,于是機(jī)子里再也沒有出現(xiàn)過 MSN,所有重要的好友都加到 Yahoo 里了。

      其實(shí)說來 Yahoo 也是個(gè)比較不爭(zhēng)氣的東西,功能嘛,沒啥強(qiáng)的,不過吃內(nèi)存的能力還挺強(qiáng),印象中也就 Skype 可以和他有的一拼,不過好歹人家 Yahoo 還是比較重視中文用戶的,起碼光纜斷的時(shí)候還是能用的,而且相關(guān)的本地化服務(wù)也還是有一定的可用性的,Yahoo的郵件提示是最為迅速的,基本上是新郵件來到5秒之內(nèi)就得讓你知道,這個(gè)功能還是挺體貼用戶的,其實(shí)我的一些 IM 的一個(gè)重要作用就是 check email,比如說 Google Talk。Yahoo 的客戶端程序其實(shí)是比較不穩(wěn)定的,群聊功能是個(gè)殺手,一次領(lǐng)導(dǎo)通知事情,讓大家開個(gè)會(huì),結(jié)果一位老兄圖方便,Yahoo 把大家全部加進(jìn)來了,大家的機(jī)器全部死翹翹,只好 reset 重啟,自此以后,這個(gè)功能再也不敢使用了,Yahoo 工具箱里有個(gè)看股市行情的插件,不過這個(gè)曲線也太不本地化了,中午休息的時(shí)間也畫在上面,一條長(zhǎng)長(zhǎng)的直線,怎看都別扭。沒辦法啊,公司里唯一允許的 IM 工具,不得不裝,也就不得不去忍受這些了。

      Google Talk 其實(shí)是我用的最多的,極為簡(jiǎn)潔,擁有我需要的主要功能,email 通知,語音,文本聊天,傳文件(大家都喜歡裝中文版的,沒這個(gè)功能,所以也基本找不到人傳文件),其實(shí)還有一點(diǎn)重要的就是所有聊天記錄都會(huì)保存在 Gmail 里,在哪都不會(huì)丟失,也很連貫,這對(duì)于我們經(jīng)常討論需求的人就不會(huì)有上句沒下句的了。也不用擔(dān)心聊天記錄留在本地泄密。另外還有一點(diǎn),傳代碼的時(shí)候絕對(duì)不會(huì)變成一堆笑臉什么的。Google Talk 其實(shí)功能上是相當(dāng)有限的,但是我卻非常喜歡,簡(jiǎn)潔就是美了。

      下面隆重出場(chǎng)的是唯利是圖、忘恩負(fù)義外加極端不安全的 QQ 了,如果不是這么多好友在里面,我是不會(huì)開 QQ 的,當(dāng)然 QQ 作為國(guó)內(nèi)用的最多的 IM 工具(其實(shí)叫他聊天工具更確切),QQ 還是有相當(dāng)多的優(yōu)勢(shì)的,首先網(wǎng)絡(luò)穩(wěn)定性好,傳文件速度快,有遠(yuǎn)程協(xié)助功能,語音質(zhì)量也不錯(cuò),可以看 IP(還不都是珊瑚蟲的功勞,被忘恩負(fù)義的騰訊扼殺了),有群聊功能,也是最適合某些夜晚不甘寂寞的人尋找刺激的工具了,其他的功能我是不大能想到的了,更不用說去用了,所以嘛,QQ 對(duì)我來說,太大了,太花哨了,對(duì)公司來說也是的,基本上正規(guī)的公司,沒有哪個(gè)不封 QQ 的,所以嘛,QQ 只能被遠(yuǎn)遠(yuǎn)的拒之于企業(yè)應(yīng)用的門外,騰訊的 RTX 也就不是那么容易進(jìn)入企業(yè)市場(chǎng)的,誰讓你這么花哨,看了就不想好好工作了。

      Skype 這個(gè)東西嘛,對(duì)我用處不大,自從充值卡被封事件以后就不再常開了,開會(huì)的時(shí)候才會(huì)去用,畢竟多人語音聊天功能還是挺不錯(cuò)的。

      國(guó)外的大部分 IM 工具都開放互通了,包括 MSN 和 Yahoo,Google Talk 也在和 MS 談互通的問題,國(guó)內(nèi)的 IM 互通嘛,似乎完全不可能,國(guó)外那幾家都不是靠 IM 吃飯的,騰訊就不一樣了,如果不保持其 QQ 的占有率,瘋狂的扼殺非“官方”的客戶端,LumaQQ 這么優(yōu)秀的跨平臺(tái)解決方案也就被騰訊自己和諧掉了,最近對(duì)珊瑚蟲下狠手也表示其在此方面的決心,呵呵,我的 QQ 從此不升級(jí)了。

    posted @ 2008-01-02 11:27 steady 閱讀(2029) | 評(píng)論 (4)編輯 收藏

    每個(gè)人在開發(fā)的時(shí)候,都會(huì)根據(jù)自己的喜好選擇一些好用的工具,當(dāng)然,通過一些年頭的積累,我自己也有了這么一些順手的工具,就把這些還不錯(cuò)的東西拿出來和大家分享吧。

    CyberArticle (網(wǎng)文快捕)

      我們?cè)诓榭促Y料,或者遇到問題上網(wǎng)搜索的時(shí)候,經(jīng)常會(huì)想把自己看到的一些好東西保存下來,以后需要用的時(shí)候可以找到,有人把東西復(fù)制下來保存成文本,有人用 Word 文檔,也有人直接保存頁面,這些方法固然是可以,不過以后找起來可就比較麻煩了。我們需要一個(gè)帶分類的文檔管理工具。

      在對(duì)一堆工具的篩選之后,我選中了 CyberArticle,也就是網(wǎng)文快捕,安裝以后,在瀏覽頁面時(shí),IE 和 FF 的右鍵會(huì)出現(xiàn)保存全文,保存選中部分這樣的選項(xiàng),我最喜歡的是保存選中部分這個(gè)功能,畢竟我們并不需要一個(gè)網(wǎng)頁中一些不相關(guān)的文字和圖片。CyberArticle 可以完整的把文章內(nèi)容或選中部分的內(nèi)容保存下來,無論是圖片或者其他什么的,都能較好的支持。在保存下自己喜歡的內(nèi)容后,我們可以手工把這些內(nèi)容分類,以后會(huì)比較容易的找到自己需要的東西。

      另外 CyberArticle 中比較有用的功能是生成電子書。我們?cè)诰W(wǎng)上搜集到一堆某一類別的文章,為了與他人分享或者便于攜帶,我們可以把這一個(gè)獨(dú)立的類別的內(nèi)容導(dǎo)出成 CHM 或 EXE 版本的電子書。

      CyberArticle 可以到 http://www.wizissoft.com/cn/index.aspx 下載,強(qiáng)烈建議使用最新的 5.0 版(只要25塊錢),舊的版本會(huì)有相當(dāng)一部分的文章保存不下來。


    鏈客中國(guó),寫文章也可以賺錢哦
    posted @ 2007-11-29 10:59 steady 閱讀(2088) | 評(píng)論 (11)編輯 收藏
        昨天看到新聞,IBM 在其網(wǎng)站上放出了 Lotus Symphony 的 beta 版,看上去有點(diǎn) Office2007 的一套辦公產(chǎn)品,最重要的是它是基于 Eclipse-RCP 平臺(tái)的,如果說 IBM 讓 Lotus 去做一個(gè)標(biāo)準(zhǔn)的 Windows 應(yīng)用像 Office2007 到?jīng)]有什么奇怪的,關(guān)鍵在于它是 Eclipse 平臺(tái)的,IBM 在一個(gè)強(qiáng)大的 Eclipse 平臺(tái)上,構(gòu)建出了一個(gè)向 Microsoft 最核心產(chǎn)品叫板的應(yīng)用,這大大的壯大了 Java 愛好者的威風(fēng)。

        過去我們 Swing / SWT 做的東西似乎很難有直接面向普通用戶的優(yōu)秀的應(yīng)用,這次 IBM 是代 Java 出了重重的一拳,Eclipse 平臺(tái)不但是與 Microsoft 的 Visual Studio 叫板,甚至可以和 Office 叫板了。

        從另一方面來說,從 Lotus Symphony 的推出,IBM 進(jìn)一步亮相了 Eclipse RCP 的高級(jí) UI 組件,傳統(tǒng)的 Eclipse 開發(fā)出的東西,千篇一律,沒有太大的界面差別,但是 Lotus Symphony 上卻不太容易讓人聯(lián)想到 Eclipse,除了看到啟動(dòng)畫面上 build on eclipse 的只有,還有一些熟悉的菜單項(xiàng),和 PlugIn 相關(guān)的內(nèi)容才會(huì)發(fā)現(xiàn),哇,這個(gè)酷酷的應(yīng)用原來是 Eclipse 平臺(tái)上的產(chǎn)品。

        當(dāng)然 Lotus Symphony 并沒有說是開源的,這些新的,酷酷的 UI 組件也并沒有向開源社區(qū)開放,按照 IBM 最近幾年的慣例,遲早是要捐出來的,但前提是先做幾套東西,賣點(diǎn)錢再說,Eclipse WTP 的很多東西來源于 WSAD,很多 Eclipse 的插件也是來源于 Rational 的產(chǎn)品,只是 IBM 覺得沒有什么商業(yè)價(jià)值了,才捐出來。

        其實(shí)我是非常希望 IBM 能盡快和大家分享 Lotus Symphony 的成功經(jīng)驗(yàn),也希望更多的 Eclipse 愛好者能夠開發(fā)出更多強(qiáng)大的應(yīng)用,特別是桌面級(jí)應(yīng)用,讓更多的人看到,Java 在成長(zhǎng),在進(jìn)取。


    ---------------------------------------------------
    順便做個(gè)小廣告 鏈客中國(guó) www.linkedcast.cn 上線運(yùn)行,歡迎廣大 Blogger 使用


    鏈客中國(guó),寫文章也可以賺錢哦
    posted @ 2007-09-23 08:40 steady 閱讀(1139) | 評(píng)論 (8)編輯 收藏
    Java Web 應(yīng)用似乎總有這樣的情況,有事沒事總是要在 URL 后面加上個(gè) jsessionid,而且似乎不能使用配置的方式直接禁用 URL 傳遞 sessionid,這樣,就比較容易造成安全性的問題,或者在瀏覽器地址欄里留下一堆很不好看的地址,在 Struts2 中,使用了 url 標(biāo)簽的所有鏈接,甚至 CSS, JS 這樣的東西,都會(huì)加上 jsessionid,如何去禁用呢,搜索國(guó)內(nèi)的相關(guān)文章,無功而返,詢問我們過去的架構(gòu)師,也沒有做過,只好想辦法去找國(guó)外的網(wǎng)站,找到了這樣的一篇文章。

    http://randomcoder.com/articles/jsessionid-considered-harmful

    通過加入 Filter 的方式過濾掉 URL 中包含的 jsessionid,再重新包裝 Response 返回給瀏覽器。

    因?yàn)闆]有太多東西,就不多解釋了,大家拿了用就可以了。

    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletResponseWrapper;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;

    /**
     * Servlet filter which disables URL-encoded session identifiers.
     * <p/>
     * <pre>
     * Copyright (c) 2006, Craig Condit. All rights reserved.
     * <p/>
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are met:
     * <p/>
     *   * Redistributions of source code must retain the above copyright notice,
     *     this list of conditions and the following disclaimer.
     *   * Redistributions in binary form must reproduce the above copyright notice,
     *     this list of conditions and the following disclaimer in the documentation
     *     and/or other materials provided with the distribution.
     * <p/>
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     * POSSIBILITY OF SUCH DAMAGE.
     * </pre>
     
    */
    @SuppressWarnings(
    "deprecation")
    public class DisableUrlSessionFilter implements Filter {

        
    /**
         * Filters requests to disable URL-based session identifiers.
         
    */
        
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            
    // skip non-http requests
            if (!(request instanceof HttpServletRequest)) {
                chain.doFilter(request, response);
                
    return;
            }

            HttpServletRequest httpRequest 
    = (HttpServletRequest) request;
            HttpServletResponse httpResponse 
    = (HttpServletResponse) response;

            
    // clear session if session id in URL
            if (httpRequest.isRequestedSessionIdFromURL()) {
                HttpSession session 
    = httpRequest.getSession();
                
    if (session != null) session.invalidate();
            }

            
    // wrap response to remove URL encoding
            HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(httpResponse) {
                @Override
                
    public String encodeRedirectUrl(String url) {
                    
    return url;
                }

                @Override
                
    public String encodeRedirectURL(String url) {
                    
    return url;
                }

                @Override
                
    public String encodeUrl(String url) {
                    
    return url;
                }

                @Override
                
    public String encodeURL(String url) {
                    
    return url;
                }
            };

            
    // process next request in chain
            chain.doFilter(request, wrappedResponse);
        }

        
    /**
         * Unused.
         
    */
        
    public void init(FilterConfig config) throws ServletException {
        }

        
    /**
         * Unused.
         
    */
        
    public void destroy() {
        }

    -------------------------------------------------------------------------------------------------
    順便做個(gè)小廣告 鏈客中國(guó) www.linkedcast.cn 上線運(yùn)行,歡迎廣大 Blogger 使用

    鏈客中國(guó),寫文章也可以賺錢哦
    posted @ 2007-09-08 20:13 steady 閱讀(5682) | 評(píng)論 (4)編輯 收藏
    在過去使用 Spring 整合 Hibernate 的時(shí)候,都是用這樣的配置方式。

    <bean id="sessionFactory" lazy-init="true"
          class
    ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
    <property name="mappingResources">
            
    <list>
                
    <value>resources/icustomer/Contact.hbm.xml</value>
                
    <value>resources/icustomer/Customer.hbm.xml</value>
            
    </list>
        
    </property>
        .
    </bean>

    每當(dāng)需要加入一個(gè)新的 VO 時(shí),我需要過來修改配置文件,來引入對(duì)新的 VO 的支持。

    現(xiàn)在我使用的時(shí)候,是這么配的:
    <bean id="sessionFactory" lazy-init="true"
          class
    ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
    <property name="mappingLocations">
            
    <list>
                
    <value>classpath:resources/**/*.hbm.xml</value>
            
    </list>
        
    </property>
        .
    </bean>

    做項(xiàng)目開發(fā)的時(shí)候,就再也沒有改過配置。
    posted @ 2007-08-17 13:58 steady 閱讀(1932) | 評(píng)論 (5)編輯 收藏
    因?yàn)橛幸粋€(gè) Struts2 網(wǎng)站發(fā)布,需要整合一個(gè)論壇來使用,公司的一個(gè)項(xiàng)目過去曾經(jīng)整合過一個(gè)英文論壇,但似乎不能滿足我們的需求,需要找一個(gè)成熟穩(wěn)定的中文論壇,與我們的系統(tǒng)結(jié)合。

    最終選擇了 Discuz 作為我們的論壇系統(tǒng),主要是因?yàn)樗峁┝艘惶卓捎玫?Passport API,來直接與我們現(xiàn)有系統(tǒng)進(jìn)行整合。

    下面摘錄 Discuz 文檔中的內(nèi)容來說明整合原理,隨后的幾篇中,將詳細(xì)描述具體的整合過程。

    假設(shè)已設(shè)置如下變量或參數(shù)

    • 掛接 Discuz! Passport 的應(yīng)用程序假設(shè)為一套 PHP 語言編寫的 CMS 系統(tǒng)
    • Discuz! 的 URL 為 http://www.myforums.com
    • 應(yīng)用程序的 URL 為 http://www.mywebsite.com
    • 應(yīng)用程序的注冊(cè)頁面為 http://www.mywebsite.com/register.php
    • 應(yīng)用程序的登錄頁面為 http://www.mywebsite.com/login.php?action=login
    • 應(yīng)用程序的退出頁面為 http://www.mywebsite.com/login.php?action=logout

    開啟通行證后的用戶登錄流程

    • 如果用戶在論壇點(diǎn)擊“登錄”,則轉(zhuǎn)向到事先設(shè)置好的應(yīng)用程序登錄頁面(http://www.mywebsite.com/login.php?action=login),并在登錄頁面的 URL 中加入?yún)?shù) forward(加入 forward 后的鏈接例如 http://www.mywebsite.com/login.php?action=login&forward=http://www.myforums.com/index.php),用于在登錄后將用戶導(dǎo)向到指定的 URL。

    • 應(yīng)用程序收到此請(qǐng)求后,按照慣例生成表單,并增加一個(gè)表單變量,將 GET 方式傳遞過來的 forward 參數(shù)通過表單進(jìn)行傳遞。

    • 用戶在應(yīng)用程序的表單中填寫登錄信息,并提交到應(yīng)用程序的登錄驗(yàn)證程序。應(yīng)用程序驗(yàn)證用戶提交的用戶名和密碼的合法性:

      • 如果不通過:提示用戶名密碼錯(cuò)誤,要求其返回上一頁重新填寫。

      • 如果通過,需要進(jìn)行如下操作:

        • 設(shè)置自身 Cookie 或 Session,使得應(yīng)用程序自身處于登錄狀態(tài)。

        • 檢查表單中是否提交了 forward 變量,如有,則意味著登錄請(qǐng)求可能是由論壇而來,將此變量傳遞到后面的請(qǐng)求中。如沒有,自行生成 forward 變量,使得論壇登錄后能夠跳轉(zhuǎn)回到應(yīng)用程序中。

        • 通過 header('Location: http://www.myforums.com/api/passport.php?action=login&auth=xxx&forward=http://yyy&verify=zzz') 的方式,將登錄請(qǐng)求傳遞到論壇進(jìn)行處理。其中 auth 用來將用戶信息與資料以特定的格式,加密傳遞給論壇,forward 用于告知論壇 Passport API 完成自身操作后轉(zhuǎn)向到的 URL 地址,verify 用于驗(yàn)證前面兩個(gè)變量的有效性。auth、forward、verify 格式與結(jié)構(gòu)將在后面進(jìn)行說明。


    • Discuz! Passport API 在接收到由應(yīng)用程序通過 header() 提交過來的請(qǐng)求后,進(jìn)行如下操作:

      • 根據(jù) verify 判斷 auth 和 forward 變量是否合法,如合法則繼續(xù),否則終止。

      • 將 auth 根據(jù)既定算法解密,并還原成數(shù)組,數(shù)組的內(nèi)容與格式將在后面進(jìn)行說明。根據(jù)數(shù)組中的內(nèi)容,檢查此用戶是否存在。如存在,則根據(jù)上述數(shù)組中的內(nèi)容 UPDATE 論壇中相應(yīng)的用戶資料。如不存在,則使用數(shù)組中的信息 INSERT 到論壇用戶資料表中。

      • 論壇設(shè)置 Cookie 或 Session,使得論壇自身處于登錄狀態(tài)。

      • 根據(jù)應(yīng)用程序反饋的 forward 值,通過 header('Location: http://xxx') 的形式將頁面跳轉(zhuǎn)到 forward 變量指定的 URL。


    • 至此,登錄流程結(jié)束

    開啟通行證后的用戶退出流程

    • 如果用戶在論壇點(diǎn)擊“退出”,則轉(zhuǎn)向到事先設(shè)置好的應(yīng)用程序退出頁面(http://www.mywebsite.com/login.php?action=logout),并在登錄頁面的 URL 中加入?yún)?shù) forward(例如 http://www.mywebsite.com/login.php?action=login&forward=http://www.myforums.com/index.php),用于在退出后將用戶導(dǎo)向到指定的 URL。

    • 應(yīng)用程序收到此請(qǐng)求后,清除自身 Cookie 或 Session,使得應(yīng)用程序自身處于非登錄狀態(tài)。

    • 檢查是否提交了 forward 變量,如有,則意味著登錄請(qǐng)求可能是由論壇而來,將此變量傳遞到后面的請(qǐng)求中。如沒有,自行生成 forward 變量,使得論壇登錄后能夠跳轉(zhuǎn)回到應(yīng)用程序中

    • 通過 header('Location: http://www.myforums.com/api/passport.php?action=logout&forward=http://yyy&verify=zzz') 的方式,將退出請(qǐng)求傳遞到論壇進(jìn)行處理。其中 forward 用于告知論壇 Passport API 完成自身操作后轉(zhuǎn)向到的 URL 地址,verify 用于驗(yàn)證 forward 變量的有效性。forward、verify 格式與結(jié)構(gòu)將在后面進(jìn)行說明

    • Discuz! Passport API 在接收到由應(yīng)用程序通過 header() 提交過來的請(qǐng)求后,進(jìn)行如下操作:

      • 根據(jù) verify 判斷 forward 變量是否合法,如合法則繼續(xù),否則終止。

      • 清楚論壇的 Cookie 或 Session,使得論壇自身處于非登錄狀態(tài)。

      • 根據(jù)應(yīng)用程序反饋的 forward 值,通過 header('Location: http://xxx') 的形式將頁面跳轉(zhuǎn)到 forward 變量指定的 URL。


    • 至此,退出流程結(jié)束。

    開啟通行證后的用戶注冊(cè)流程

    • 如果用戶在論壇點(diǎn)擊“注冊(cè)”,則轉(zhuǎn)向到事先設(shè)置好的應(yīng)用程序注冊(cè)頁面(http://www.mywebsite.com/register.php),并在注冊(cè)頁面的 URL 中加入?yún)?shù) forward(例如 http://www.mywebsite.com/register.php?forward=http://www.myforums.com/index.php),用于在注冊(cè)后將用戶導(dǎo)向到指定的 URL

    • 應(yīng)用程序收到此請(qǐng)求后,按照慣例生成表單,并增加一個(gè)表單變量,將 GET 方式傳遞過來的 forward 參數(shù)通過表單進(jìn)行傳遞

    • 用戶在應(yīng)用程序的表單中填寫注冊(cè)信息,并提交到應(yīng)用程序的注冊(cè)驗(yàn)證程序。應(yīng)用程序驗(yàn)證用戶提交信息的完整性和合法性:

      • 如果不通過:提示其問題所在,要求其返回上一頁重新填寫

      • 如果通過,需要進(jìn)行如下操作:

        • 將用戶資料插入到應(yīng)用程序自身用戶數(shù)據(jù)庫(kù)中

        • 設(shè)置自身 Cookie 或 Session,使得應(yīng)用程序自身處于登錄狀態(tài)

        • 檢查表單中是否提交了 forward 變量,如有,則意味著注冊(cè)請(qǐng)求可能是由論壇而來,將此變量傳遞到后面的請(qǐng)求中。如沒有,自行生成 forward 變量,使得論壇注冊(cè)后能夠跳轉(zhuǎn)回到應(yīng)用程序中

        • 通過 header('Location: http://www.myforums.com/api/passport.php?action=login&auth=xxx&forward=http://yyy&verify=zzz') 的方式,將注冊(cè)請(qǐng)求傳遞到論壇進(jìn)行處理。其中 auth 用來將用戶信息與資料以特定的格式,加密傳遞給論壇,forward 用于告知論壇 Passport API 完成自身操作后轉(zhuǎn)向到的 URL 地址,verify 用于驗(yàn)證前面兩個(gè)變量的有效性。auth、forward、verify 格式與結(jié)構(gòu)將在后面進(jìn)行說明


    • Discuz! Passport API 在接收到由應(yīng)用程序通過 header() 提交過來的請(qǐng)求后,進(jìn)行如下操作:

      • 根據(jù) verify 判斷 auth 和 forward 變量是否合法,如合法則繼續(xù),否則終止

      • 將 auth 根據(jù)既定算法解密,并還原成數(shù)組,數(shù)組的內(nèi)容與格式將在后面進(jìn)行說明。根據(jù)數(shù)組中的內(nèi)容,檢查此用戶是否存在。如存在,則根據(jù)上述數(shù)組中的內(nèi)容 UPDATE 論壇中相應(yīng)的用戶資料。如不存在,則使用數(shù)組中的信息 INSERT 到論壇用戶資料表中

      • 論壇設(shè)置 Cookie 或 Session,使得論壇自身處于登錄狀態(tài)

      • 根據(jù)應(yīng)用程序反饋的 forward 值,通過 header('Location: http://xxx') 的形式將頁面跳轉(zhuǎn)到 forward 變量指定的 URL


    • 至此,注冊(cè)流程結(jié)束

      本部分中,加下劃線顯示的部分,是需要對(duì)您的應(yīng)用程序進(jìn)行更改的部分,事實(shí)上,這部分更改會(huì)非常容易和方便。

    posted @ 2007-08-11 17:30 steady 閱讀(3288) | 評(píng)論 (3)編輯 收藏

    Reschedule
    rescheduleJob(String triggerName, String groupName, Trigger newTrigger)

    在進(jìn)行 reschedule 操作的時(shí)候,我們通常只需要修改 Trigger 的時(shí)間,這時(shí)候我們只需要重新 new 一個(gè)含有新的 Schedule 時(shí)間的 Trigger 對(duì)象,reschedule 一下就可以了。

    Unschedule
    unscheduleJob(String triggerName, String groupName)

    進(jìn)行 unschedule 的時(shí)候,我們只需要知道名字和 group 就可以了。

    進(jìn)行 Schedule 操作前后,Database 中的相關(guān)數(shù)據(jù)都會(huì)被更改,在執(zhí)行 unschedule 或者該 schedule 已經(jīng)執(zhí)行過,數(shù)據(jù)庫(kù)中的 trigger 信息都會(huì)被刪除。

    posted @ 2007-08-03 09:00 steady 閱讀(1672) | 評(píng)論 (4)編輯 收藏

    Quartz 是一個(gè)強(qiáng)大的企業(yè)級(jí) Schedule 工具,也是目前最好的開源 Schedule 工具,最近因?yàn)轫?xiàng)目的需要,簡(jiǎn)單的用到了 Quartz 的一些功能,對(duì)項(xiàng)目中使用 Quartz 的一些問題做簡(jiǎn)單的記錄。

    在 Quartz 的應(yīng)用中,我們用到了以下的一些東西,ScheduleFactory, Scheduler, Job, JobDetail, Trigger,簡(jiǎn)單說明一下他們的用途。

    SchedulerFactory 是 Scheduler 的工廠,我們可以從中獲得受工廠管理的 Scheduler 對(duì)象。

    SchedulerFactory scheduleFactory = new StdSchedulerFactory();
    Scheduler scheduler = scheduleFactory.getScheduler();

    Scheduler 是一個(gè)計(jì)劃集,其中可以包含多個(gè) JobDetail 和 Trigger 組成的計(jì)劃任務(wù)。
    我們可以從 SchedulerFactory 中取得 Scheduler。

    接口Job是每個(gè)業(yè)務(wù)上需要執(zhí)行的任務(wù)需要實(shí)現(xiàn)的接口,該接口只有一個(gè)方法:

    public interface Job {
        public void execute(JobExecutionContext context)
            throws JobExecutionException;
    }

    我們可以在里面定義我們的 Job 執(zhí)行邏輯,比如清除過期數(shù)據(jù),更新緩存等。

    JobDetail描述了一個(gè)任務(wù)具體的信息,比如名稱,組名等等。
    JobDetail jobDetail = new JobDetail("SayHelloWorldJob", Scheduler.DEFAULT_GROUP, SayHelloWorldJob.class);
    在上面的構(gòu)造方法中,第一個(gè)是任務(wù)的名稱,第二個(gè)是組名,第三個(gè)就是實(shí)際當(dāng)任務(wù)需要執(zhí)行的回調(diào)類。

    Trigger顧名思義就是觸發(fā)器,Quartz有個(gè)很好的想法就是分離了任務(wù)和任務(wù)執(zhí)行的條件。Trigger就是控制任務(wù)執(zhí)行條件的類,當(dāng)Trigger認(rèn)為執(zhí)行條件滿足的時(shí)刻,Trigger會(huì)通知相關(guān)的Job去執(zhí)行。分離的好處是:
    1.你可以為某個(gè)Job關(guān)聯(lián)多個(gè)Trigger,其中任何一個(gè)條件滿足都可以觸發(fā)job執(zhí)行,這樣可以完成一些組合的高級(jí)觸發(fā)條件
    2.當(dāng)Trigger失效后(比如:一個(gè)永遠(yuǎn)都不能滿足的條件),你不必去聲明一個(gè)新的job,代替的是你可以為job關(guān)聯(lián)一個(gè)新的Trigger讓job可以繼續(xù)執(zhí)行。

    目前的Quartz實(shí)現(xiàn)中,存在兩種Trigger,SimpleTrigger和CronTrigger,SimpleTrigger用來完成一些比如固定時(shí)間執(zhí)行的任務(wù),比如:從現(xiàn)在開始1分鐘后等等;而CronTrigger(沒錯(cuò),和unix的cron進(jìn)程的含意一樣)用來執(zhí)行calendar-like的任務(wù),比如:每周五下午3:00,每月最后一天等等。

    在我們項(xiàng)目中,都是一些固定時(shí)間的 Job,所以只用到了 SimpleTrigger。
    Trigger trigger = new SimpleTrigger("SayHelloWorldJobTrigger",Scheduler.DEFAULT_GROUP,new Date(),null,0,0L);
    這個(gè)構(gòu)造方法中,第一個(gè)是Trigger的名稱,第二個(gè)是Trigger的組名,第三個(gè)是任務(wù)開始時(shí)間,第四個(gè)是結(jié)束時(shí)間,第五個(gè)是重復(fù)次數(shù)(使用SimpleTrigger.REPEAT_INDEFINITELY常量表示無限次),最后一個(gè)是重復(fù)周期(單位是毫秒),那么這樣就創(chuàng)建了一個(gè)立刻并只執(zhí)行一次的任務(wù)。

    但我們定義好了 JobDetail,Job,和 Trigger 后,就可以開始 Schedule 一個(gè) Job 了。

    scheduler.scheduleJob(jobDetail, trigger);

    這條語句就是把job和Trigger關(guān)聯(lián),這樣當(dāng)Trigger認(rèn)為應(yīng)該觸發(fā)的時(shí)候就會(huì)調(diào)用(實(shí)際上是Scheduler調(diào)用)job.execute方法了。

    scheduler.start();
    千萬別忘了加上上面的語句,這條語句通知Quartz使安排的計(jì)劃生效。

    關(guān)于execute方法的參數(shù)JobExecutionContext
    JobExecutionContext就和很多Context結(jié)尾的類功能一樣,提供的運(yùn)行時(shí)刻的上下文環(huán)境,JobExecutionContext中有Scheduler,JobDetail,Trigger等很多對(duì)象的引用,從而當(dāng)你在execute方法內(nèi)部須需要這些對(duì)象的時(shí)刻提供的便利。

    在項(xiàng)目中,我們把需要執(zhí)行的 Job 相對(duì)應(yīng)的一些信息放在 JobExecutionContext 中,在 Job 執(zhí)行的時(shí)候可以調(diào)用。

    jobDetail.getJobDataMap().put(userid, id);

    在 Job 中,我們可以拿到相關(guān)的 Context 信息:

    jobExecutionContext.getJobDetail().getJobDataMap().getInt(userid);

    JobDetail和Trigger的name和group
    Scheduler實(shí)例對(duì)應(yīng)了很多job和trigger的實(shí)例,為了方便的區(qū)分,Quartz使用name和group這兩個(gè)特性,正如你想向的一樣,同一個(gè)group下不能有兩個(gè)相同name的JobDetail,Trigger同理,同一個(gè)Scheduler下不能有兩個(gè)相同group的JobDetail,Trigger同理,JobDetail和Trigger的完全限定名為:group + name

    為了讓服務(wù)器重啟以后,我們的 Scheduler 信息仍然不丟失,我們通常采用數(shù)據(jù)庫(kù)持久化 Scheduler 的信息。
    DBScript 在 Quartz 的下載包中的:quartz-1.6.0\docs\dbTables 下,選擇自己使用的 DB 相應(yīng)的 Script 導(dǎo)入數(shù)據(jù)庫(kù)就可以了。
    在應(yīng)用中,我們需要配置一個(gè) quartz.properties 才能正常使用 DB。我們可以在 quartz-1.6.0\examples\example10 中找到該文件的樣例,稍作一些修改,就可以放到自己項(xiàng)目源碼的根目錄下使用了。

    設(shè)置 org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX 即可啟用基于 JDBC 的 Quartz 信息持久化。

    根據(jù)項(xiàng)目情況設(shè)置以下配置信息:
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
    org.quartz.jobStore.useProperties = false
    org.quartz.jobStore.dataSource = myDS
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.isClustered = false

    org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver
    org.quartz.dataSource.myDS.URL = jdbc:mysql://localhost:3306/myapplication
    org.quartz.dataSource.myDS.user = root
    org.quartz.dataSource.myDS.password =
    org.quartz.dataSource.myDS.maxConnections = 5

    但是光設(shè)置了 Database 不夠,我們還需要在 Application 啟動(dòng)的時(shí)候自動(dòng)啟動(dòng) Scheduler 才行,我們只需要簡(jiǎn)單的寫一個(gè) Servlet 的 Listener 并在 web.xml 中聲明該 Listener ,在 Servlet 容易啟動(dòng)的時(shí)候,Scheduler 就開始自動(dòng)執(zhí)行。

    public class ScheduleStartListener implements ServletContextListener {
        public void contextInitialized(ServletContextEvent servletContextEvent) {
            try {
               scheduleFactory.getScheduler().start();
            } catch (SchedulerException e) {
               // write log
            }
        }

        public void contextDestroyed(ServletContextEvent servletContextEvent) {
            try {
               scheduleFactory.getScheduler().shutdown();
            } catch (SchedulerException e) {
               // write log
            }
        }
    }

    在 web.xml 里面加入以下配置:
    <listener>
        <listener-class>org.agilejava.scheduler.ScheduleStartListener</listener-class>
    </listener>

    以上簡(jiǎn)單的記錄了在項(xiàng)目中關(guān)于 Quartz 的一些應(yīng)用,如果有什么新的使用心得,會(huì)在后面繼續(xù)加入的。

    posted @ 2007-08-02 16:28 steady 閱讀(3559) | 評(píng)論 (4)編輯 收藏
         摘要: 2007年上半年開放式基金資產(chǎn)凈值規(guī)模前20基金公司
    2007年上半年股票型基金凈值增長(zhǎng)率前20位
    2007年上半年積極配置型基金凈值增長(zhǎng)率前20位  閱讀全文
    posted @ 2007-07-02 22:12 steady 閱讀(2045) | 評(píng)論 (1)編輯 收藏

    前幾天的快速下跌中,華夏大盤沒有像它在漲的時(shí)候那樣成為領(lǐng)漲的基金,每次總要在倒數(shù)幾名里面找它,而且這幾天的跌幅總是緊挨著廣發(fā)小盤,這又是為何呢?這幾天華夏大盤并沒有像它名字一樣跑贏大盤,反而遠(yuǎn)遠(yuǎn)的落后于大盤。

    在晨星網(wǎng)上的基金風(fēng)格箱來看,華夏大盤主體是投資中盤型股,從華夏大盤這幾天的變化幅度來看,比較接近中證指數(shù)的中小盤指數(shù),這樣來看,華夏大盤顯然不是真正的大盤。

    或許華夏大盤可能持有了有很多都是上半年被炒高的題材股,或許這樣才能夠使之成為上半年領(lǐng)漲基金的一枝獨(dú)秀,成為瘋長(zhǎng)期少數(shù)能跑贏大盤的基金。但隨著 530 的巨大打擊下,題材股都被攔腰截?cái)啵”P股的日子變的不那么好過了。

    華夏大盤下半年還能繼續(xù)領(lǐng)漲嗎?我看有點(diǎn)玄。

    posted @ 2007-07-02 22:06 steady 閱讀(370) | 評(píng)論 (0)編輯 收藏
        通過銀基通購(gòu)買基金是相當(dāng)?shù)姆奖愕模蛇x余地也是非常的大,但是享受的優(yōu)惠會(huì)比較少一點(diǎn),能買到的基金數(shù)量也比直銷要少一點(diǎn),另外能做的操作也比直銷要相對(duì)少一點(diǎn),比如說轉(zhuǎn)換,在銀基通中,有的基金就不能互相轉(zhuǎn)換。

        首先說一下優(yōu)惠情況,一般標(biāo)準(zhǔn)情況下,股票類的基金申購(gòu)費(fèi)用大約是 1.5%,在招行銀基通上購(gòu)買基金,費(fèi)用就是 1.5%,沒有優(yōu)惠,最近在工行上購(gòu)買基金可以享受 8 折優(yōu)惠,也就是 1.2%,建行是什么情況就不得而知了,沒有辦證券卡,進(jìn)不去,在這一點(diǎn)上,建行有這么一點(diǎn)小小的優(yōu)勢(shì)。

        招行銀基通上購(gòu)買基金基本都是 1000 元起的,設(shè)立的門檻非常的低,每次遞增也是最少為 1000 元,而工行的入門門檻就高了不少,最低要 5000 起,對(duì)于我等工薪階層,要一次性的湊齊 5000 元才能去工行買基金,實(shí)在是不爽的,其每次遞增的額度也是 1000 元。

        另一方面來說,也是說銀行的問題,對(duì)于招行來說,大部分網(wǎng)點(diǎn)都配有自動(dòng)存款機(jī),每次買基金去存款就不用這么麻煩,不用在柜臺(tái)上排隊(duì)了,另外在銀行下班以后也可以在存款機(jī)上進(jìn)行存款操作,這樣就不用趕著銀行上班的時(shí)候才能去存錢了,當(dāng)然也會(huì)碰到機(jī)子不能用的時(shí)候,有一次晚上十點(diǎn)去存錢,連續(xù)跑了兩個(gè)網(wǎng)點(diǎn)都發(fā)現(xiàn)存款機(jī)錢已存滿。但是對(duì)于工行建行的絕大多數(shù)網(wǎng)點(diǎn)就必須在上班時(shí)間跟著大家后頭排隊(duì)了。

        用了兩篇的篇幅把銀基通購(gòu)買基金的一些情況簡(jiǎn)單的總結(jié)了一下,后面準(zhǔn)備說一下用網(wǎng)銀直接在基金公司的直銷站點(diǎn)上購(gòu)買基金。
    posted @ 2007-07-01 13:58 steady 閱讀(474) | 評(píng)論 (1)編輯 收藏
        相信能看到我這篇文章的人如果是基民,相信你的首選購(gòu)買基金的方式會(huì)是網(wǎng)銀,雖然沒有用過所有的網(wǎng)銀,但就我用過的幾個(gè)網(wǎng)銀來亂彈一些自己的看法。我在這里說的都是股票型或者配置型基金。

        我用過的網(wǎng)銀包括,招行,建行,工行。網(wǎng)銀上都直接有代銷基金的功能,招行叫做銀基通,里面可以買到超過 250 種以上的基金,建行的網(wǎng)銀因?yàn)楸仨氁k證券卡才能買基金,所以實(shí)在是懶得去辦這個(gè)破卡,工行上代銷的種類也算是不少,但相對(duì)招行來說,還是有相當(dāng)差距的。

        在網(wǎng)銀上購(gòu)買基金的申購(gòu)確認(rèn)和贖回到帳時(shí)間也各自不同,從確認(rèn)時(shí)間上招行是 T+1 天,其他銀行沒有試過,而贖回到帳時(shí)間各自有所不同,招行的一般是 T+4,在 T+4 天上午 9:00 后可以到帳,工行和建行是 T+5 天,好像農(nóng)行,中行,民生,交行都是 T+7 天。

        據(jù)說建行的網(wǎng)銀賬戶和證券卡賬戶是獨(dú)立的,從網(wǎng)銀轉(zhuǎn)到證券卡上的錢第二天才能夠轉(zhuǎn)回網(wǎng)銀賬戶,而且放在證券卡賬戶上的錢是沒有利息的。而招行的網(wǎng)銀與投資賬戶之間的轉(zhuǎn)賬是隨意的,并且投資賬戶上的錢是有利息的。

        關(guān)于網(wǎng)銀要說的話還是很多的,想睡覺了,哪天有空的時(shí)候繼續(xù)補(bǔ)上。
    posted @ 2007-06-30 23:30 steady 閱讀(549) | 評(píng)論 (0)編輯 收藏

    其實(shí)本來不該把這些東西也寫到這里來的,不過也懶得把自己的 Blog 同時(shí)放在幾個(gè)不同的地方了,實(shí)在是麻煩,于是,便在這里亂彈一些生活方面的內(nèi)容。

    這半年來中國(guó)股市實(shí)在是太火了,牛氣沖天的飛奔直沖 4300 點(diǎn),沒料到被一道名為“印花稅”的緊箍咒套住,便是有哪怕通天的本領(lǐng),也牛不起來了。開始了震蕩行情,這一來二去的,就看到了周圍的人被深度套牢,很多人看我買了基金也便開始問我如何如何,其實(shí)嘛,沒有太多的東西,選對(duì)了,買了放著就不管了。

    其實(shí)選基金還是比較有一些講究的,我一開始選的幾個(gè)基金就因?yàn)楸憩F(xiàn)不佳已經(jīng)被我拋棄了,第一個(gè):南方穩(wěn)健,Google 一下,此基得獎(jiǎng)無數(shù),自從我買了以后基本沒怎么漲過,除去申購(gòu)贖回費(fèi)用一個(gè)月給我賺了 2%,實(shí)在是沒什么意思,賣了它,后來才得知,原來過去讓此基頻頻得獎(jiǎng)的基金經(jīng)理已經(jīng)投靠建信了,現(xiàn)在倒是把建信優(yōu)選搞得很火。此次購(gòu)買基金犯了一個(gè)錯(cuò)誤,對(duì)基金經(jīng)理不了解。

    隨后買了易方達(dá)平穩(wěn),又是一個(gè)帶穩(wěn)的,所以走勢(shì)一直很平穩(wěn),一個(gè)月下來,也不過收入 5%,轉(zhuǎn)為易方達(dá)策略成長(zhǎng),此基在晨星上排名五星,不過經(jīng)過一個(gè)月的震蕩,整體表現(xiàn)還不錯(cuò),入賬 13%,但是晨星最新的評(píng)級(jí)表明,易策已經(jīng)只是個(gè)三星基金了。

    我最為滿意的要數(shù)南方績(jī)優(yōu)成長(zhǎng)了,雖然不足一年,晨星上沒有排行,漲幅前幾也不見其蹤影,但是在六月份這樣的巨幅震蕩的行情下,一個(gè)半月仍然能夠凈增 16%,還是相當(dāng)?shù)臐M意的,而且昨日處在排行榜第一位,選得沒錯(cuò)。

    雖然這里都是 Java 方面的討論,如果遇到基金方面的同好,可以切磋一番,大家互惠互贏。

    posted @ 2007-06-28 23:22 steady 閱讀(431) | 評(píng)論 (4)編輯 收藏

    上一篇中我們說到了,如何使用 HttpClient 抓取所需要的數(shù)據(jù),接下來介紹一下如何對(duì)這些數(shù)據(jù)進(jìn)行處理。基本的處理原理是使用正則表達(dá)式進(jìn)行內(nèi)容的匹配。

    為了便于處理,我們首先把使用 HttpClient 抓取到的數(shù)據(jù)做一些簡(jiǎn)單的處理。

    第一步要做的就是刪除回車符,當(dāng)然我不會(huì)寫含有回車符的正則表達(dá)式才會(huì)這么寫的,當(dāng)然如果您有更好的方法也可以不用這么做。

    代碼很簡(jiǎn)單:

    1protected String removeEnter(String response) {
    2    response = StringUtils.replace(response, "\r\n""");
    3    response = StringUtils.replace(response, "\n""");
    4    return response;
    5}

    接下來就可以使用正則表達(dá)式來對(duì)所抓取的內(nèi)容進(jìn)行匹配了:

    正則表達(dá)式是一種可以用于模式匹配和替換的強(qiáng)有力的工具,一個(gè)正則表達(dá)式就是由普通的字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式,它描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。正則表達(dá)式在字符數(shù)據(jù)處理中起著非常重要的作用,我們可以用正則表達(dá)式完成大部分的數(shù)據(jù)分析處理工作,如:判斷一個(gè)串是否是數(shù)字、是否是有效的Email地址,從海量的文字資料中提取有價(jià)值的數(shù)據(jù)等等,如果不使用正則表達(dá)式,那么實(shí)現(xiàn)的程序可能會(huì)很長(zhǎng),并且容易出錯(cuò)。對(duì)這點(diǎn)本人深有體會(huì),面對(duì)大量工具書電子檔資料的整理工作,如果不懂得應(yīng)用正則表達(dá)式來處理,那么將是很痛苦的一件事情,反之則將可以輕松地完成,獲得事半功倍的效果。

    在這里,我使用了 Jakarta-ORO 作為正則表達(dá)式工具來進(jìn)行匹配。

    Jakarta-ORO是最全面以及優(yōu)化得最好的正則表達(dá)式API之一,Jakarta-ORO庫(kù)以前叫做OROMatcher,是由Daniel F. Savarese編寫,后來他將其贈(zèng)與Jakarta Project,讀者可在jakarta.apache.org的網(wǎng)站下載該API包。
    因?yàn)樵谶@里我們不需要用到太多正則表達(dá)式的知識(shí),僅僅是簡(jiǎn)單的用用而已,所以幾行簡(jiǎn)單的代碼就可以解決問題:
    protected String match(String response, String template, int index) {
        Perl5Util engine 
    = new Perl5Util();
        String name 
    = null;
        
    if (response != null{
            
    if (engine.match(template, response)) {
                name 
    = engine.group(index);
            }

        }

        
    return name;
    }

    第一個(gè)參數(shù) response 表示抓取到的頁面源碼,第二個(gè)參數(shù) template 表示我們預(yù)先設(shè)定的模板,第三個(gè)表示第幾個(gè)匹配。返回的結(jié)果是匹配成功的 group 中的內(nèi)容。

    于是我們可以這樣的調(diào)用它:

    String template = "/(滬綜指)</font></b></a> <span id=\"STK1\">(\\d{4,5}\\.\\d{1,4})</span>";
    String name 
    =  match(response, template, 1);
    String index 
    =  match(response, template, 2);

    注意一下,我們正則表達(dá)式前后都有 "/"。
    另外,我們用() 括起來的部分表示我們要匹配的內(nèi)容,所以這里 name 可以匹配到 滬綜指,index 可以匹配到大盤的點(diǎn)數(shù)。 

    該匹配對(duì)應(yīng)于: http://web7.jrj.com/homev1/StockIndex.htm
    為了防止頁面以后打不開了大家找不到,我把其中相關(guān)的匹配部分的頁面源碼也發(fā)出來:

    <href=javascript:ShowImg('000001',2) target=_self><b><font color=#000000>滬綜指</font></b></a> <span id="STK1">3914.20</span> <span id="STK2" class="c1"><img src=/HomeV1/images/down.gif width=8 height=8>164.40</span> <href=javascript:ShowImg('399001',1) target=_self><b><font color=#000000>深成指</font></b></a> <span id="STK3">12882.17</span> <span id="STK4" class="c1"><img src=/HomeV1/images/down.gif width=8 height=8>701.53</span> <href=javascript:ShowImg('399300',1) target=_self><b><font color=#000000>滬深300</font></b></a> <span id="STK5">3858.52</span> <span id="STK6" class="c1"><img src=/HomeV1/images/down.gif width=8 height=8>181.96</span> <b>香港恒生</b> <span id="STK7">21938.22</span> <span id="STK8" class="c3"><img src=/HomeV1/images/up.gif width=8 height=8>232.66</span> <b>道瓊斯</b> <span id="STK9">13414.48</span> <span id="STK10" class="c1"><img src=/HomeV1/images/down.gif width=8 height=8>13.25</span> <b>納斯達(dá)克</b> <span id="STK11">2612.02</span> <span id="STK12" class="c3"><img src=/HomeV1/images/up.gif width=8 height=8>6.67</span> 
    <div id="indexdata"><object id="STKData" width="0" height="0" classid="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83" viewastext><param name="FieldDelim" value="F"><param name="DataURL" value="/HomeV1/text/StockIndex.htm"><param name="UseHeader" value="true"></object><input type="hidden" id="STKValue" datasrc="#STKData" datafld="a" name="STKValue"></div>

    因?yàn)槲也皇菫榱私榻B正則表達(dá)式而寫這篇文章的,所以對(duì)正則表達(dá)式不會(huì)做太多的介紹,如果大家對(duì)正則表達(dá)式有興趣或想進(jìn)一步了解的話可以參考:

    JAVA中正則表達(dá)式的應(yīng)用
    http://www.ibm.com/developerworks/cn/java/l-regp/part1/index.html
    http://www.ibm.com/developerworks/cn/java/l-regp/part2/index.html


    另外因?yàn)闉榱俗ト∑渌麞|西,代碼已經(jīng)被我改的面目全非了,暫時(shí)就不方便貼出來了,請(qǐng)大家諒解,如果大家有什么疑問的話可以和我聯(lián)系,我會(huì)盡量說明清楚的。
    posted @ 2007-06-28 22:58 steady 閱讀(1783) | 評(píng)論 (2)編輯 收藏

        最近股市大牛,相信這里的不少朋友都在炒股,當(dāng)然上班時(shí)間老是開著網(wǎng)頁看股市或是盯著紅紅綠綠的專業(yè)股票軟件是總是擔(dān)心被周圍同事看到的,但又不時(shí)的想著大盤是漲了還是跌了,自己的股票又是如何呢。

        于是用 Java 寫了一套簡(jiǎn)單的股市信息跟蹤的小程序,Console 的,用于抓取相應(yīng)的股市信息并顯示到 console 中,誰也不會(huì)想到這個(gè)東西會(huì)是用來看股市的吧。

        這套小小的程序用到了幾個(gè)非常簡(jiǎn)單的技術(shù),HttpClient 和 正則表達(dá)式。程序功能非常簡(jiǎn)單,找到含有股市數(shù)據(jù)的頁面,使用 HttpClient 抓取下來,通過正則表達(dá)式匹配自己需要的內(nèi)容,在 Console 上打印出來。

        準(zhǔn)備花兩篇文章簡(jiǎn)單的介紹這個(gè)小系統(tǒng)中的實(shí)現(xiàn)細(xì)節(jié),當(dāng)然這只是簡(jiǎn)單的介紹,其實(shí)我們?cè)偕晕⒂命c(diǎn)其他的技術(shù),可以做出更多更實(shí)用的小工具。比如我就寫了個(gè)小爬蟲,把某個(gè)基金網(wǎng)站上的基金凈值數(shù)據(jù)爬來了,足足有10W條,供我做基金形勢(shì)分析之用,拿到這些原始數(shù)據(jù),再動(dòng)用一下自己的頭腦,再配合一些方便的工具,比如 Excel,我們便可以用實(shí)際數(shù)據(jù)去輔助投資理財(cái)。

            首先我們來簡(jiǎn)單的介紹我們用到的第一個(gè)工具,HttpClient。

        HttpClient 是 Apache Jakarta Common 下的子項(xiàng)目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議。
        以下列出的是 HttpClient 提供的主要的功能,要知道更多詳細(xì)的功能可以參見 HttpClient 的主頁。
    實(shí)現(xiàn)了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
    支持自動(dòng)轉(zhuǎn)向
    支持 HTTPS 協(xié)議
    支持代理服務(wù)器等

    HttpClient 可以在http://jakarta.apache.org/commons/httpclient/downloads.html下載

    HttpClient 基本功能的使用
    GET 方法
    使用 HttpClient 需要以下 6 個(gè)步驟:
    1. 創(chuàng)建 HttpClient 的實(shí)例
    2. 創(chuàng)建某種連接方法的實(shí)例,在這里是 GetMethod。在 GetMethod 的構(gòu)造函數(shù)中傳入待連接的地址
    3. 調(diào)用第一步中創(chuàng)建好的實(shí)例的 execute 方法來執(zhí)行第二步中創(chuàng)建好的 method 實(shí)例
    4. 讀 response
    5. 釋放連接。無論執(zhí)行方法是否成功,都必須釋放連接
    6. 對(duì)得到后的內(nèi)容進(jìn)行處理

    根據(jù)以上步驟,我們來編寫用GET方法來取得某網(wǎng)頁內(nèi)容的代碼。

    根據(jù)這樣的過程,我們便可以寫出一個(gè)簡(jiǎn)單的抓取頁面的方法,該方法返回抓到的頁面數(shù)據(jù)。傳入的參數(shù)是頁面的 URL。

    protected String getURLResponse(String url) {
     try {
      HttpClient client = new HttpClient();
      GetMethod method = new GetMethod(url);
      int returnCode = client.executeMethod(method);
      String response = null;
      if (returnCode == 200) {
       response = EncodingUtil.getString(method.getResponseBody(), "gb2312");
      }
      method.releaseConnection();
      return decode(response);
     } catch (Exception e) {
      return null;
     }
    }

    HttpClient 是一個(gè)很實(shí)用的工具,用它,我們可以做很多和 Http 有關(guān)的事情。
    大家可以參考: http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ 來初步了解 HttpClient 的功能。
    或是去找找 Jakarta.Commons.Cookbook 或者 Jakarta.Commons.Online.Bookshelf,上面介紹了包括 HttpClient 在內(nèi)的很多 Apache Jakarta Commons 項(xiàng)目,相信合理使用,會(huì)讓你事半功倍的。

    下一篇我們將介紹一下如何用正則表達(dá)式處理我們抓取到的數(shù)據(jù)。

    posted @ 2007-06-21 22:11 steady 閱讀(1918) | 評(píng)論 (5)編輯 收藏
         摘要: Java Platform Debugger Architecture(JPDA:Java平臺(tái)調(diào)試架構(gòu)) 由Java虛擬機(jī)后端和調(diào)試平臺(tái)前端組成
    1.Java虛擬機(jī)提供了Java調(diào)試的功能
    2.調(diào)試平臺(tái)通過調(diào)試交互協(xié)議向Java虛擬機(jī)請(qǐng)求服務(wù)以對(duì)在虛擬機(jī)中運(yùn)行的程序進(jìn)行調(diào)試  閱讀全文
    posted @ 2007-06-18 16:20 steady 閱讀(818) | 評(píng)論 (0)編輯 收藏
    主站蜘蛛池模板: 中文字幕亚洲色图| 亚洲熟妇自偷自拍另欧美| 美女被免费网站视频在线| 91精品免费观看| 亚洲一本大道无码av天堂| 亚洲入口无毒网址你懂的| 国产无遮挡无码视频免费软件 | 亚洲国产精品丝袜在线观看| 亚洲欧洲高清有无| 怡红院免费全部视频在线视频| 日韩a级毛片免费视频| 亚洲大香伊人蕉在人依线| 永久免费A∨片在线观看| 亚洲国产一级在线观看| 亚洲精品动漫免费二区| 麻豆国产精品免费视频| 久久精品国产精品亚洲艾草网| 白白色免费在线视频| 成人性生交大片免费看无遮挡| 精品免费人成视频app| 在线视频免费观看www动漫| 亚洲福利视频一区二区三区| 二个人看的www免费视频| 亚洲?v女人的天堂在线观看| 亚洲色一区二区三区四区| 免费v片在线观看视频网站| 久久亚洲精品人成综合网| 国产在线观看免费视频软件| 亚洲无码高清在线观看| 国产亚洲漂亮白嫩美女在线| 在线观看免费宅男视频| 亚洲jjzzjjzz在线播放| 国产成人精品免费视频动漫| 亚洲一区综合在线播放| 你懂的免费在线观看网站| 亚洲精品夜夜夜妓女网| 亚洲码一区二区三区| 91老湿机福利免费体验| 亚洲三级电影网址| 亚洲第一网站免费视频| 美女被爆羞羞网站免费|