Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4


          最近這段時間,Roger Federer這個名字,"出鏡率"相當的高,尤其是在上海:先是地鐵中鋪天蓋地的剃須產品廣告(廣告中出現的三位主角,恰好都是我喜歡和欣賞的),其次當然就是大師杯。

          2007上海網球大師杯最后兩天的比賽多少讓人有些意想不到:費天王的粉絲們當然很開心,費天王雖然首場比賽失利,但后面的每場比賽都展現著他的獨有風 范,贏得干凈漂亮;相對中立的球迷們可能就要抱怨比賽不夠精彩和跌宕起伏了,原本被寄予厚望的巔峰對決:Federer和Nadal,以及最后的決賽,都 呈現出"一邊倒"的態(tài)勢,納豆和今年大師杯的黑馬Ferrer這兩位西班牙選手,面對天王的出色發(fā)揮,都顯得有些"找不著北"。

          是什么成就了費天王今天的輝煌?技術層面的東西我不想說太多,除去網球這項運動本身的技術細節(jié),Federer身上的一些冠軍特質,也是值得我們好好品味:

          首先,熱愛自己從事的工作。Federer對網球的熱愛,只要你看過他的比賽,就不會質疑。
          其次,尊重自己的工作/事業(yè)和對手。正是這種尊重,為費天王贏來所有人,包括手下敗將在內的尊敬。
          再次,對勝利的渴望。看Federer的比賽,尤其是大賽,你能夠明顯感覺到他對勝利的渴望,每個關鍵球都透露出一種狠勁。
          再有,內斂和對自己情緒的控制。Federer剛出道時其實脾氣很暴躁,發(fā)揮也不穩(wěn)定,但是隨著時間的推移,他身上逐漸成長出一種特有的內斂和自信。
          最后,超乎尋常的穩(wěn)定和跑位。為什么看Federer打球總覺得他是那么"輕松"而"優(yōu)雅",而對手總是陷入被動?除了善于觀察和控制對手之外,他總能保持超高的穩(wěn)定性和預判,保證自己出球落點的同時,已經在為下一步回擊做準備了,比賽起來,當然游刃有余。

          Herzlichen Glückwunsch an Roger Federer!


          posted @ 2007-11-18 23:38 laogao 閱讀(390) | 評論 (0)編輯 收藏


          V8來了,經不住誘惑,造型、做工、Linux核心......
          十一來了,不想出門,因為到處是人......
          Bug來了,操刀殺蟲,一天不行兩天,兩天不行三天......
          羅莎來了,這個沒有"正面襲擊"上海的家伙,卻比"正面襲擊"上海的韋帕來得更加生猛......
          老媽來了,一起來的,還有蹄花,和家鄉(xiāng)的味道......


          posted @ 2007-10-08 21:51 laogao 閱讀(391) | 評論 (0)編輯 收藏


          過去的一段時間幾乎沒什么時間看RSS,周末在家打開Google Reader,發(fā)現Google Reader界面上的一個小小調整:

          原先最多能顯示出100+,當某項RSS或分類超過100條的時候,看不到具體的數值,只能看到"100+"的字樣,經常是都已經瀏覽完了,左邊還是顯示 100+,必須Refresh一下才能糾正過來,加上我的胃口比較大,超過100的情況簡直是家常便飯,一直對這個100+頗為不爽。現在這個上限提高到 了1000,能夠直觀的看到各個類別的具體未讀條目數,一下子清晰了不少,至少對我來說這個改進很實用。

          希望Google Reader能越做越好。


          posted @ 2007-09-09 22:34 laogao 閱讀(643) | 評論 (2)編輯 收藏


          據外電報道,繼Dell發(fā)布預裝Ubuntu的PC和筆記本電腦之后,聯(lián)想也宣布將于今年第四季度開始發(fā)售預裝SuSE Linux Enterprise Desktop 10的ThinkPad筆記本電腦,硬件和操作系統(tǒng)均由聯(lián)想向客戶提供支持,操作系統(tǒng)升級則由Novell提供。值得注意的是,與Dell面向Linux 愛好者和個人用戶不同,聯(lián)想這次更多的是針對企業(yè)用戶。

          對于廣大Linux愛好者來說,這可是個不錯的消息哦。

          詳見:
          http://www.reghardware.co.uk/2007/08/06/lenovo_linux/


          posted @ 2007-08-07 21:09 laogao 閱讀(674) | 評論 (1)編輯 收藏


          詳見:
          http://www.worldofwarcraft.com/wrath/

          回過頭來看看魔獸世界中國大陸的代理商九城,到現在連第一部資料片The Burning Crusade還沒有推出,唉。


          posted @ 2007-08-04 10:37 laogao 閱讀(543) | 評論 (0)編輯 收藏


          巴薩與鄧迪聯(lián)的熱身賽精彩回放:

          http://www.youtube.com/watch?v=8Ljp2kwJv0g

          亨利點球絕殺:

          http://www.youtube.com/watch?v=P5gPeNdYYwc


          posted @ 2007-07-28 13:19 laogao 閱讀(507) | 評論 (0)編輯 收藏


          來自PC World的報道:
          http://www.pcworld.com/article/id,134381-c,databases/article.html


          posted @ 2007-07-14 12:31 laogao 閱讀(649) | 評論 (0)編輯 收藏


          http://www.thesun.co.uk/article/0,,2002390000-2007281078,00.html

          No more *free* EPL in mainland China + Henry leaves Arsenal for Barcelona, coincidence?

          This seems to be another reason for me to embrace La Liga and FC Barcelona. All my best wishes for Henry to start a new legend at Camp Nou.


          posted @ 2007-06-24 22:18 laogao 閱讀(451) | 評論 (0)編輯 收藏


          隨著項目越來越大,你的ANT腳本變得越來越臃腫,越來越依賴antcontrib來實現構建邏輯?不想放棄對構建過程和產出做精細的控制?恨不得自己寫ANT Task?

          等一等,在你考慮轉向Maven或者真正卷起袖子開始研究ANT Task的API之前,先聽我向你推薦Ruby/JRuby。相信我,也許這才是你真正需要的。

          在我看來構建腳本最主要的要求是表達能力和控制能力,表達能力是我們應該能夠很方便的告訴它我們要它做什么,而控制能力是我們告訴它如何去做,除了必要的 構建命令的參數、依賴關系之外,它應該能夠理解我們其他一些特殊要求。在項目相對簡單時,ANT的XML格式的"腳本語言"能夠比較好的表達構建者的要 求,至少比純Java的方式更加簡單清晰,于是幾乎從它誕生之日就成為Java領域當仁不讓的頭號構建工具。但是ANT也有它不夠用的時候,尤其在控制能 力上,為了實現實際使用中越來越復雜越來越精細的對構建過程和產出的要求,ANT的使用者們開始對ANT進行擴展,最具影響力的"非官方"擴展可能就是 antcontrib了,很多實際Java項目的構建文件中我們都能夠找到它的影子。但是一堆taskdef和之類的夾雜在ANT腳本里,怎么看怎么覺得別扭,也嚴重影響構建腳本的可讀性。

          我發(fā)現我需要的是一個具有完整功能腳本語言來寫我的構建邏輯:一方面它要足夠簡單,我需要清晰的表達我的意圖,另一方面當我需要的時候它要足夠強大來幫我實現精細的控制。我自然而然想到Ruby。

          由于Ruby是一個功能完整的工具,完全自己寫Ruby腳本來調用Java自己的構建工具如javac、jar等等并非不可能,但是既然已經有人做了輪 子,我們拿來用就是了,大不了自己再改裝一下,也少走些彎路。時下比較流行的解決方案有Buildr、Raven、Rant和Antwrap,它們各有特 點,大家可以根據需要進行選擇。

          我最終選了其中最"輕量"的Antwrap,原因嘛,我不想學新的API,我已經熟悉ANT常用的Task,而且我希望盡可能多的自己控制構建的過程和產 出。Antwrap最能夠滿足我的需要。而前不久JRuby剛剛發(fā)布了1.0版,這樣一來Ruby和Java的跨界引用變得更加容易,Ruby的實現自然 就選擇了JRuby。

          安裝JRuby和Antwrap相當容易,只要把下載的jruby-bin-1.0.tar.gz/.zip解壓到本地,確保JAVA_HOME和 CLASSPATH的配置,然后gem install Antwrap (選擇Java版) 即可。為了順利加載Antwrap,需要在CLASSPATH中包含ANT的ant.jar和ant-launcher.jar。(當然,如果想更加方便 的share你的成果,可以把ant的文件拷貝到jruby目錄下,在jruby的啟動腳本加入必要的export/set命令,然后打包,這樣別人只要 從你提供的zip包解壓出來即可使用。)

          為了給大家一個直觀的感覺,舉個簡單的例子(貌似BlogJava沒有提供對Ruby代碼的默認支持,大家將就看吧):
          ?1?require?'rubygems'
          ?2?gem?'Antwrap'
          ?3?require?'antwrap'
          ?4?
          ?5?@ant=AntProject.new(:name=>"SampleAntwrapBuild",?:basedir=>".")
          ?6?@cvsroot=":pserver:cvsuser:password@10.10.10.1/cvsrepo/SampleProduct"
          ?7?
          ?8?def?cvscheckout
          ?9?????@ant.cvs(
          10?????????:cvsroot=>"#{@cvsroot}",?
          11?????????:command=>"checkout?-A",?
          12?????????:package=>".",?
          13?????????:dest=>"cvsoriginal",?
          14?????????:compressionlevel=>"9")
          15?end
          16?
          17?def?cvsupdate
          18?????@ant.cvs(
          19?????????:cvsroot=>"#{@cvsroot}",?
          20?????????:command=>"update?-A?-d",?
          21?????????:package=>".",?
          22?????????:dest=>"cvsoriginal",?
          23?????????:compressionlevel=>"9")
          24?end
          25?
          26?def?compile(project_name)
          27?????@ant.javac(
          28?????????:srcdir=>"cvsoriginal/#{project_name}/src",?
          29?????????:destdir=>"cvsoriginal/#{project_name}",?
          30?????????:target=>"1.5",?
          31?????????:encoding=>"GBK")
          32?????@ant.copy(????:todir=>"cvsoriginal/#{project_name}")?do
          33?????????fileset(:dir=>"cvsoriginal/#{project_name}/src")?do
          34?????????????exclude(:name=>"**/*.java")
          35?????????end
          36?????end
          37?????@ant.jar(
          38?????????:destfile=>"build/#{project_name}.jar",?
          39?????????:basedir=>"cvsoriginal/#{project_name}",?
          40?????????:manifest=>"MANIFEST.MF")?do
          41?????????exclude(:name=>"src/**")
          42?????end
          43?end
          44?
          45?#?to?actually?call?your?target
          46?if?ARGV.empty?
          47?????puts?"Usage:?jruby?#{$0}?[target]"
          48?else
          49?????eval?ARGV[0]
          50?end
          51?

          可以看到幾乎都是我們熟悉的ANT Task,只是更加緊湊更加靈活,一旦掌握了最最基本的Ruby語法,用它寫出功能強大的構建腳本可以說是分分鐘搞定。


          posted @ 2007-06-18 00:39 laogao 閱讀(693) | 評論 (0)編輯 收藏


          如果你在Windows和Linux兩個平臺下都使用過Eclipse,那么你一定注意到Windows下Eclipse項目列表的顯示要比Linux下 緊湊許多。對于做開發(fā)的朋友來講,在屏幕上同時看到的信息總是希望盡可能多,盡可能全,在這一點上目前的GNOME并不能讓我們十分滿意,它的GTK+控 件本身和控件之間的間隙占掉了不少本來就很有限的屏幕空間,尤其當屏幕分辨率不是特別高的時候。

          Linux版的Eclipse默認使用GTK+2.0的控件,所以在默認的情況下,會和其他GTK應用程序(如OpenOffice.org)一樣給人一 種不夠密實的感覺。當然,這和GNOME的設計哲學不無關系,不過這不是本文主旨,就不深入討論了,進入正題講講如何調整Eclipse樹狀列表的顯示密 度。

          基于GTK+2.0的程序在啟動時會到用戶的home目錄找GTK+2.0的配置文件,即~/.gtkrc-2.0,Ubuntu下默認沒有這個文件,需要我們自己創(chuàng)建。打開你習慣的編輯器,加入如下代碼:

          style "eclipse" {
          ? font_name="Sans 8"
          ? GtkTreeView::vertical-separator=0
          ? GtkTreeView::horizontal-separator=0
          }
          class "GtkTreeView" style "eclipse"

          重啟Eclipse應該就能看到效果了。如果你想做得更徹底,對所有常用的GTK+2.0控件都開刀的話,可以這樣寫:

          style "gtkcompact" {
          ? font_name="Sans 8"
          ? GtkButton::default_border={0,0,0,0}
          ? GtkButton::default_outside_border={0,0,0,0}
          ? GtkButtonBox::child_min_width=0
          ? GtkButtonBox::child_min_heigth=0
          ? GtkButtonBox::child_internal_pad_x=0
          ? GtkButtonBox::child_internal_pad_y=0
          ? GtkMenu::vertical-padding=1
          ? GtkMenuBar::internal_padding=0
          ? GtkMenuItem::horizontal_padding=4
          ? GtkOptionMenu::indicator_size=0
          ? GtkOptionMenu::indicator_spacing=0
          ? GtkPaned::handle_size=4
          ? GtkRange::trough_border=0
          ? GtkRange::stepper_spacing=0
          ? GtkScale::value_spacing=0
          ? GtkScrolledWindow::scrollbar_spacing=0
          ? GtkExpander::expander_size=10
          ? GtkExpander::expander_spacing=0
          ? GtkTreeView::vertical-separator=0
          ? GtkTreeView::horizontal-separator=0
          ? GtkTreeView::expander-size=8
          ? GtkTreeView::fixed-height-mode=TRUE
          ? GtkWidget::focus_padding=0
          }
          class "GtkWidget" style "gtkcompact"


          posted @ 2007-06-09 22:46 laogao 閱讀(1407) | 評論 (1)編輯 收藏


          Linux下面使用Oracle的SQL*Plus工具有個挺惱人的問題:通過sqlplus命令進入到SQL*Plus控制臺后,我們在Bash中已經 習以為常的上下左右鍵突然變成了^[[A^[[B^[[D^[[C這樣的"亂碼"。熟悉ksh的朋友肯定要說我們這是大驚小怪了,不過對于從 Windows平臺轉過來的一般用戶而言,不小心按錯一下就是4個錯誤的字符,而且歷史命令也無法方便的回查了,確實挺郁悶的。

          別著急,如果你的Linux是Debian或者Ubuntu/Kubuntu,直接sudo apt-get install rlwrap安裝這個小巧的readline擴展,然后就可以以rlwrap sqlplus的方式進入方向鍵"正常"的SQL*Plus了。當然,如果嫌每次敲rlwrap不爽,可以在/etc/profile或者自己的 ~/.bashrc里面添加alias sqlplus='rlwrap sqlplus'。其他發(fā)行版的朋友可以選擇rpm包或者干脆從源碼自己編譯。

          posted @ 2007-06-07 22:13 laogao 閱讀(963) | 評論 (0)編輯 收藏


          不知道大家注意到沒有,Ubuntu Feisty自帶的nm-applet有一個小毛病:一旦你通過它連上某個無線網絡之后,不管你是不是點錯了,或者說是不是真的需要保留這個連接的信息,它都會記錄下這個網絡ID,今后如果檢測到這個網絡,根據它自己排的優(yōu)先級(最后一次成功連接,但有時候不準,或者說有可能在來回切換時不小心被弄亂),如果它排在前面,就會自動連上去,就算你手動選擇另一個,它還是不依不饒的切回它認定的那一個。

          遇到這個情況,我想許多朋友大概和我一樣,在它提供的上下文菜單找,不過GNOME的界面哲學使得界面菜單直接提供的信息和高級功能很有限,或者到類似 /etc/*、~/.*/之類的地方找相關配置文件,但是實際上它也不是那么"傳統(tǒng)",因為nm-applet使用GConf來記錄配置信息:

          在命令行輸入gconf-editor,打開GConf編輯器,定位到system -> networking -> wireless -> networks,這個目錄下記錄了所有nm-applet使用的無線網絡ID和相關配置信息,如果有不希望保留的配置,直接進到相關目錄,右鍵逐個點擊右面的key-value條目,Unset Key,完成以后就可以讓nm-applet"忘掉"這個無線網絡連接。當然,通過這個小工具,你也可以手工對某組具體的key-value做修改。

          這件事也讓我聯(lián)想起Linus Torvalds不止一次(也包括不少KDE的死忠)對GNOME的微詞:盡可能讓用戶自己掌控,還是盡可能幫用戶拿主意?這是個問題。


          posted @ 2007-05-13 23:34 laogao 閱讀(3178) | 評論 (2)編輯 收藏


          時下類似小i這樣的IM機器人越來越多,今天又發(fā)現一個有趣的Dictman,也挺實用:



          使用方法是在MSN中添加dictman@hotmail.com,用Gtalk的朋友可以加dictman@gmail.com,成功后直接輸入要查的單詞即可,支持英漢或漢英。


          posted @ 2007-05-07 17:31 laogao 閱讀(704) | 評論 (2)編輯 收藏


          http://www.eweek.com/article2/0,1759,2124025,00.asp

          相信大家都聽說了Dell將在部分產品型號的PC和Laptop中預裝Linux操作系統(tǒng)而非Windows,據eWeek的報道,該Linux操作系統(tǒng)將會是Ubuntu。


          posted @ 2007-05-01 17:19 laogao 閱讀(507) | 評論 (0)編輯 收藏


          上個周末的時候安裝了最新的Ubuntu Feisty Fawn,給用了很久的Dapper來了一次徹底升級。第一印象是眼前一亮,打開默認自帶的Compiz,對用慣了傳統(tǒng)桌面系統(tǒng)的用戶而言,毫不夸張的說,是全新的桌面體驗。

          花了個把小時樣子簡單調整了更新源、中文輸入法、字體、區(qū)域選項等等,還上了比Compiz更強的Beryl,開始全面試用。經過一周的使用,包括工作和其他應用,感覺確實比6.06進步不少,尤其在桌面方面,比較明顯的改善有:

          1- 默認就支持Compiz,同時安裝Beryl也非常容易。
          2- Shell中敲命令,如果出現尚未安裝的常見軟件包,會提示安裝信息。
          3- Gaim默認增加了QQ支持。
          4- 新的NetworkManager Applet 0.6.4使得無線連接管理變得簡單、直觀、而且相當方便。
          5- OpenOffice.org更加完善,對中文支持更加友好,尤其是在中文字體寬度計算上的問題得到了解決。

          總的來說,已經足夠勝任日常工作的需要,而且十分簡單易用。當然了,有些遺憾的是默認的郵件客戶端Evolution并不能讓人滿意:

          我原本一直使用Thunderbird,這次想給Evolution一次機會表現一下,它卻不那么爭氣。本以為Novell和MS的東西集成應該不錯,但是除了對日歷、會議邀請的支持還算是亮點之外,并沒有發(fā)現什么過人之處,而對TNEF的支持就有點貽笑大方了,Thunderbird都能正確處理的Winmail.dat附件,在Evolution下基本就是一個字:掛,連另存然后外部tnef處理都無法搞定,因為出來的東西已經不是tnef格式,搞不懂Evolution為什么要做這一層額外的處理。

          于是準備切回Thunderbird,更令人感到困惑的事情出現了:在Evolution下辛辛苦苦錄入的聯(lián)系人信息,居然無法導出一個簡簡單單的CSV,而只能是vCard。界面上沒有其他選項,命令行倒是有一個導出工具可以指定--format=csv,不過很不幸,上來就是core dump,暈倒。本來簡簡單單的東西,何必復雜化。還好vCard本身還是文本,處理一下也不難,但感覺怪怪的,心中難免不爽,對Evolution和Novell的印象大打折扣。

          順便表揚一下SWT/Eclipse,在Ubuntu Feisty下跑起來真的是無縫,界面風格完全就是一個native的應用程序,開啟Beryl效果之后,連Tooltip都跟著"炫"了起來,讓人越看越喜歡,Evolution帶來的不愉快也就自然而然拋在腦后了。

          今天,你Feisty了嗎?


          posted @ 2007-04-27 22:25 laogao 閱讀(2908) | 評論 (15)編輯 收藏

          僅列出標題
          共34頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 Last 
          主站蜘蛛池模板: 靖远县| 雅安市| 庆阳市| 河曲县| 张家口市| 佛山市| 黄骅市| 铜川市| 舞阳县| 镇巴县| 淳化县| 华坪县| 石渠县| 扎囊县| 昭平县| 绥阳县| 绥宁县| 青岛市| 渝中区| 潢川县| 桦南县| 青浦区| 彩票| 永胜县| 克东县| 玛曲县| 泰兴市| 军事| 辉县市| 吴旗县| 浏阳市| 西乡县| 南昌市| 竹北市| 宝丰县| 田东县| 西畴县| 新晃| 神池县| 合肥市| 徐汇区|