星期五, 10月 12, 2007

知識管理的非IT要素

http://tw.myblog.yahoo.com/jw!Tu_UlhuWAhLaEvcD9aXj_GI-/article?mid=10&sc=1


知識管理的非IT要素 (1)

作者:李琨 高雪娟 郝崢嶸 郭瑩 來源:賽迪網-中國電腦報

“1+1=2,三角型的內角和是180度。



這些從小學到大學耳熟能詳的知識,正是由於前輩的日積月累和不懈傳播得以流傳。

每個集體中的人都有可以貢獻的知識,這種知識不只是成果,還可以是過程,是資料,是經驗,是教訓。


但是,一個企業如何才能讓這些存在於員工記事本上、電腦裏、頭腦中的知識留存在企業中,形成知識庫,讓後來者可以學習呢?流水的兵走後怎麼留下鐵打的營盤?”



制度保證分享



A公司是集研發、生產與經營為一體的高科技企業,研發過程中需要大量知識支撐,又會產生大量知識。同時,市場激烈競爭,還有大量研發人員不斷被競爭對手挖走,而新的研發人員接手項目又要重新再來。這對企業來說,損失的不只是幾個研發人員,還有本應屬於公司的研發知識。因此,A公司意識到讓知識重復利用、人走知識留的重要性,引入了知識管理。在“一把手”的推動下,A公司投資上了一套知識管理系統,並建立企業知識共用門戶,員工可以將自己的知識發佈在門戶上供大家分享。看起來,一切具備,不過,接下來的事卻讓人大傷腦筋—幾個月下來,門戶上空空如也,沒有人寫工作心得,也很少有人把成果上傳。



相比A公司,B公司的知識管理系統卻一片紅火。其實,B公司在知識管理方面也走過彎路,剛開始也沒得到有力實施,員工不願意分享自己的知識,認為知識是自己的薪水體現,分享出去了,自己的價值豈不失去了?後來,B公司建立了一個知識管理小組,由各部門領導來負責該部門的知識管理,但其實他們心裏是最反對知識共用的,“自己之所以當部門經理的原因不就是具有組員所不具備的經驗和知識麼?讓組員分享自己的知識,門兒都沒有。”最終小組的成果可想而知。後來,B公司建立了一套獎勵機制:分享一次自己的成功工作經驗或小技巧,可以免費獲得一張電影票;一個月累積分享10次,在本月績效考核上加分,另獲得500元的獎勵基金。有了這套機制,B公司的知識管理平臺開始熱鬧起來,員工們紛紛將自己的工作小心得寫下來,多則幾百字,少則幾十字。公司員工開始共同在這些知識中提升水準和技能。



分析一下A公司和B公司的情況,B公司通過有效的獎勵機制,激活了公司的知識管理系統。可以看出,知識管理系統不僅是一個資訊系統建設的問題,更是文化建設和制度建設的過程。公司需要有一個好的方法、一套好的流程,保證知識管理能夠順利進行。這套制度建設包括三個方面的內容。



一是分工協作式的工作氛圍。知識管理並非組織“剝奪”個人核心知識的手段和方法,而是對個人成長、組織發展、企業競爭力提高都有價值的活動。讓每位員工認識到知識管理對於個人的價值極為重要。知識管理必須有人負責,在初期最好有幾個人專門負責,對於兼職的知識管理推動人員而言,也必須把這部分工作納入他們“本職工作”的範疇。



二是獎勵機制。尊重知識,知識是有價的,B公司就贏在此。員工心裏其實存在矛盾:一方面非常希望得到別人的經驗分享,另一方面又怕自己的知識分享出去後,失去競爭力。當今資訊社會,知識是價值,知識是競爭力,這無可厚非。因此,應當適當花錢購買員工的知識—雖然從嚴格意義上來說,在一個公司打工,知識本屬於該公司。



三是績效考核機制。將知識管理與日常運營結合。如今的商業社會,是用真實的結果來說話的。對一個銷售員來說,業績就是銷售額。在這種殘酷競爭的條件下,誰會用額外的時間做沒有績效的事情呢?知識管理如果只停留在“領導要求的額外工作”,必然是把知識管理作為一項額外的工作“忽略”掉。這樣的知識管理實施從一開始就註定了無法深入,最後只能讓知識管理成為雞肋而放棄。因此,必須讓知識管理成為日常工作,讓知識管理的工作成果成為績效考核的指標。





知識管理的非IT要素 (2)



作者:李琨 高雪娟 郝崢嶸 郭瑩 來源:賽迪網-中國電腦報 字體[放大、標準、縮小]





邏輯決定內容



小張是一家國內知名大報社新來的員工,上班第一天,人事經理告訴他,可以到報社內部的資源庫中學習老人的經驗。小張心裏一陣溫暖—大報社就是不一樣啊,真是學習型組織。滿懷激動的心情,小張登錄上內部網—裏面的內容可真多,眼花繚亂,上百個文件夾,每個夾子下面還有幾十個文件。其實,他最希望知道的是,作為一個編輯,哪些地方是比較容易出錯的。然而,失望的是,這些文件夾命名各異,有中文、英文,還有各種縮寫,再加上一些名不副實的文件夾,小張一個個找過去,就是沒找到想要的文件。資料的海洋裏,小張長嘆—東西太多了找不到也是煩惱啊!



與小張的困惑相比,李子幸運多了。李子是一個外貿銷售人員,剛剛跳槽到一家做服裝出口貿易的公司。他以前對服裝出口了解比較少,希望能快速掌握服裝出口市場行情以及企業的市場位置。在知識管理專員的指導下,李子上內部網站,一齣現的就是 “知識地圖”,在知識地圖裏,每種類型的知識都有一個分類。有諮詢公司關於各個細分市場的報告,也有內部人員點評,而企業內部每次會議的文字和聲音記錄都很明確。李子只需要按圖索驥就能很快找到資料。知識管理員告訴他,以後他添加資料的時候,也要按照流程來做,其中一項就是寫在知識地圖裏的路徑。



小張和李子的不同經歷,反映了對待知識管理中知識的不同態度。文中的報社和貿易公司都重視知識的積累,但是,前者沒有對雜亂無章的知識進行整理和歸納,甚至沒有創建一個知識地圖。



有專家指出,知識管理中的重要一環是知識集約,是在進行知識收集之後,對知識進行整理、分類和管理。在前期的規劃中,要搭建一個知識資源體系,對企業既有知識進行盤點,分析企業的實際情況,進行知識體系規劃。規劃可以從多個維度進行,首先可以從內容上分類:經營數據、客戶資訊、產品資訊等屬於公司經營資料,工作方法、工作心得、成功與失敗事例等屬於工作技巧總結。再者,可以從存放介質來分類:手冊、書、錄影帶、電腦等不同的儲存介質。



對於一個企業來說,經過整理和分類的知識,可以使內部知識庫的建設更加有序和有效,一方面防止垃圾資訊的進入,保證了知識的專業性;另一方面,及時發現冗餘的資訊、重復的資料,通過不同的組合,提高了知識的價值。



經過一段時間的積累,企業的各種知識就很多了。如果都像小張所在的報社一樣,把很多資料雜亂無章地堆在一起,知識就難以發揮應有的作用。很多網站為了方便訪問者快速找到需要的網頁,設立了網站地圖。同樣的道理,企業的知識管理中,一個重要的工具是知識地圖。它標明了按照各種分類方法的知識具體內容、存放地點、擁有人等。可以把知識地圖存放在內部網路上,供員工隨時瀏覽和檢索。這種方法在知識管理中得到了廣泛的應用,也被稱為知識可視化過程。



要使知識的分享變得容易起來,不僅需要科學的整理和分析,還需要有簡單的操作。如果員工上傳或閱讀資料時,需要經過複雜的操作和多個審批程式,將會讓人喪失興趣,知識管理系統也就達不到原來設計的目的。



知識管理的非IT要素 (3)



作者:李琨 高雪娟 郝崢嶸 郭瑩 來源:賽迪網-中國電腦報 字體[放大、標準、縮小]





應用創造效益



在南方的某家大型醫院機房內,存儲著超過5GB的電子病歷檔案,每天還有來自各科室數以千計的電子病歷在此不斷集中。數據與日俱增,資訊不斷膨脹,但直到今天,這筆寶貴財富都沒有被有效利用起來。



該醫院的資訊主管坦言,一旦這些電子病歷得到利用,將極大地便利醫患雙方。醫生可以從過往電子病歷中查詢相似病例及其診治的成功案例,極大提高確診與診治成功率;患者及其親屬可以通過查詢患者以及類似病患過往的醫療資訊,提高對病情的認識與把握程度,增進醫患間理解,減少醫患摩擦。



但是非常可惜的是,這些已經獲得良好歸類、實現可靠存儲的醫療資訊知識,竟然一放就是幾年無人問津,至多也就是個別醫院醫生有意無意地翻閱一下自己過往診治的病例,實際利用率極低。醫生們仍然停留在憑藉自身臨床經驗來對患者實施診治的階段,遠沒實現資訊時代的知識管理。



在IBM公司的內部網上同樣積累著大量知識資源。諸如公司季度收益、銷售情況、市場戰略、競爭對手資訊、最新研發計劃與成果、工程技術經驗等知識應有盡有,為員工提供了良好的學習環境。那麼這些知識利用效率怎麼樣呢?



為了保證知識管理在公司內部的有效實施,在員工入職伊始,IBM就會對其進行多方位的知識利用培訓,既有集中面授又有分期培訓,同時還為新員工建立電子學習中心、圖書中心等。電子學習中心涉及的內容廣泛,包括財務、金融、市場行銷、技術基礎、研發經驗等,頗似企業辦的網上在職專業培訓中心。



通過電子學習中心的方式,IBM公司給員工提供了一個隨時隨地學習培訓的機會,只要登錄企業內部網,就可以獲得學習資料並進行自學,解決了員工工作繁忙,沒有較多的時間進行脫產學習的問題,真正實現了工作學習兩不誤。



與此同時,公司的電子學習中心還會分部門、分級別地對員工提供各種學習資源,保證知識針對性的同時,讓員工再根據自己的情況在工作範圍內選擇要學習的內容。主管經理還將跟蹤員工學習情況,對完成學習的員工實施考試測評認證,確保員工真正利用起公司內部的知識資源。



知識經濟時代,企業的生產經營過程本身,貫穿著知識利用過程。在諸如市場研究和經營決策、產品設計和開發等一些特定環節上表現尤為突出。通過對知識的有效利用,可以加快企業產品開發和加工方法的革新,節約研究開發的時間和費用,有效地搶佔市場有利時機和回避市場風險。



因此,企業引入知識管理順理成章。所有管理的目的都在於創造效益,知識管理的目的也不例外。將企業的知識資產進行管理,將企業發展過程獲取的經驗、企業員工個人知識等變成企業的知識資產,企業就可以通過利用這些知識資產創造利潤。



但是知識利用往往是不自然的行為,在缺乏良好學習環境及有效促進機制時,員工的知識利用常常停滯不前。有鑒於此,IBM通過良好的企業文化與培訓機制,有效地實現了公司知識管理中的知識利用環節。相反,南方的那家醫院採取員工自願方式來實現知識利用,導致大量醫療資訊資源閒置浪費。



其實,知識利用本就是企業建立知識管理系統的根本目的,知識管理過程就是改進知識利用、提高知識利用效果的過程。在此過程中,建立良好學習氛圍與培訓機制不可或缺,並且也是對知識的最大尊重。



*記者手記



也說習慣



作為一名記者,我經常與別人交換名片並收到抽屜裏,當有一天我發現抽屜裏的名片已經佔據了太大的地方時,名片的數量已經超過500張。每次想找一個人,都要在浩瀚的名片堆裏翻來翻去。很多次我下定決心把名片處理掉,用名片掃描器或手工錄入的方式把他們電子化,這樣搜尋起來也方便。



但是我一次次退縮了—那得多長時間啊。於是,名片在這種鬥爭中從500長到了600,然後是700。終於有一天,報社有人來收我的名片,說免費給錄入成EXCEL表,讓我吐了一口氣。



從那以後,我每當收到新名片,就會隨手錄入到我的名片庫中,每天也就幾分鐘,不覺得麻煩也非常簡單。但其實,不知不覺中我現在名片數早已突破了1500。



知識管理其實與我的名片管理是一樣的,初期的建設工作是讓人恐懼的,而一旦能夠建立起初期數據庫,並將之合理存儲,便於檢索,後來的陸續添磚加瓦就會成為一種習慣。



當分享知識成為一種習慣,數據格式成為一種習慣,隨時查詢和學習成為一種習慣,知識管理就是隨手的事情了

星期一, 10月 01, 2007

淺談「Trunk」

http://armaniboy.blogspot.com/2007/05/trunktrunk-linktrunk-trunk-trunkport.html

淺談「Trunk」
「斯斯有二種,一種治…」,原本以為網路世界的Trunk也是二種(果然是菜鳥工程師),後來再實務工作碰上了Trunk Link後,再去細究才發現,Trunk有「三種」:

第一大類是在電信網路的語音級的線路中,Trunk指「主幹網路、電話幹線」,即兩個交換局或交換機之間的連接電路或信道,它能夠在兩端之間進行轉接,並提供必要的命令和終端設備。

第二種是在網路的分層結構和寬帶的合理分配方面,TRUNK被解釋為「Port匯聚 」,是頻寬擴展和鏈路備援的一個重要途徑。TRUNK把多個物理Port捆綁在一起當作一個邏輯Port使用,可以把多組Port的頻寬疊加起來使用。 TRUNK技術可以實現TRUNK內部多條鏈路互為備援的功能,即當一條鏈路出現故障時,不影響其他鏈路的工作,同時多鏈路之間還能實現流量均衡。

第三種在最普遍的路由與交換器領域,VLAN的Port聚合也有的叫TRUNK,不過大多數都叫TRUNKING ,如CISCO上頭就常用到。所謂的TRUNKING是用來在不同的交換機之間進行連接,以保證在跨越多個交換機上建立的同一個VLAN的成員能夠相互通 訊。其中交換機之間互聯用的Port就稱為Trunk Port。

星期二, 9月 25, 2007

Java SE 6 + Firefox 2 UI 問題

http://jacky.seezone.net/2006/12/18/1737/

最近分別在兩部機器上安裝了新的 Java SE6 ,然後 Firefox 都會出現 UI 問題:底下出了一個「menuitem」的紅字。我用了這個方法來解決,特此記下:

1. 進入 Firefox 「安全模式」
2. 選「停用所有附加元件」然後點「執行變更項目並重新啟動」
3. Firefox 重啟後,打開中「附加元件」,重新啟動所有元件,再重啟 Firefox

這樣子就可以修復 UI 的問題了。而事實上,跟據 moztw 這個討論串 ,原因是因為 Java SE6 在加入 console 附件時的 chrome 打錯了字,更簡單的方法是:到 Firefox 安裝目錄下的 Firefox 安裝目錄下 extensions\{CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA}\ 修改 chrome.manifest ,將

chrome/locale/zh_TW/ffjcext/

改成

chrome/locale/zh-TW/ffjcext/

存檔之後,進入安全模式一次,再重啟 Firefox 就可以了。

星期四, 9月 06, 2007

Smarty

{literal}:

http://www.hbcms.com/main/smarty/language.function.literal.html

Literal 標籤區域內的資料將被當作文本處理,此時範本將忽略其內部的所有字元資訊. 該特性用於顯示有可能包含大括弧等字元資訊的 javascript 腳本. 當這些資訊處於 {literal}{/literal} 標籤中時,範本引擎將不分析它們,而直接顯示.

星期二, 9月 04, 2007

《投1休4》席林精神 令人動容

《投1休4》席林精神 令人動容


http://tw.news.yahoo.com/article/url/d/a/070904/57/jv7d.html

王建民上週封鎖紅襪強打群令人激賞,表面上頗有壓倒大投手席林之勢;但關注比賽細節的球迷應該會跟我一樣,對於席林展現的敬業精神深深動容。不論建仔未來會在投手丘征戰多久,席林的大前輩風範值得建仔永遠追隨。

長江後浪推前浪,是任何領域不變的世代交替法則。洋基以建仔為首的一票農場出身年輕投手,包括「小火箭人」休斯、超級新人張伯倫、變速球凌厲的拉米瑞茲、「小穆西納」甘迺迪都已展露頭角;紅襪升上大聯盟才第二場先發的菜鳥投手巴克霍茲,近日更演出令人驚豔的無安打比賽。新生代的優異表現,似已宣告「基襪世仇對決」即將進入一個嶄新局面。

從這個角度來觀察,上週王建民領軍以5比0力克紅襪這場球,理應是「一代新人換舊人」的最新篇章。建仔只讓紅襪強打群擊出一支安打的卓越演出,硬是把也有只失2分優質先發表現的席林比了下去,更別說建仔本季的16勝6敗早已遙遙領先席林的7勝6敗。

然而,棒球絕對不是只看表面數字就能定論。由於快速球逐漸失去球威,加上年齡老化、因傷所苦、體力下滑,席林的壓制能力確已大不如前,換成其他人恐怕早已被洋基豪華打線KO下場;但席林卻以認真觀察、勤做筆記、不斷檢討的兢兢業業態度,在場邊反省檢視所有對戰重點,以此彌補力有未逮之處,進而維持不容輕侮的大投手尊嚴。

部份大聯盟球評、專家認為,席林生涯雖已跨越200勝門檻,也拿過兩次世界大賽冠軍(在響尾蛇隊、紅襪隊各拿一次),但因從未拿過賽揚獎,其大投手地位雖無庸置疑,未來能否進入名人堂卻有所爭議。

但我相信,看過席林在2004年美聯冠軍賽浴血力拼洋基隊的那一幕,以及注意到席林隨時在場邊勤做筆記身影的球迷,都會對這位老將的奮戰精神與專注態度深深動容。在球迷心中,「席林精神」已經不需要賽揚獎加持,早就在名人堂預留一席之地;建仔向連續兩季勝投王目標奮進之際,腦海裡應該時時記起,這位大投手與他對戰時留下的如此可敬風範。

星期六, 8月 25, 2007

鼾聲如雷 健康藏危機

鼾聲如雷 健康藏危機
http://tw.news.yahoo.com/article/url/d/a/070824/4/jbf1.html


有人覺得睡覺打呼很正常,代表睡得好,但在鼾聲的背後,別忽略了重要警訊。

打鼾可說是個常見現象,據統計,習慣打鼾的人男比女多,而體重過重者及年紀越大者,打鼾的機率也愈高,即使是正常人,在極度疲勞時也容易在入睡之後打鼾。有不少人為鼾聲所苦,使得家人不堪其擾,但也有人每天必須聞「鼾」才能入眠。

大部分人都認為打鼾是正常的,表示睡得正熟,其實,打呼是危險的訊號。醫師表示,打呼可能造成阻礙型睡眠呼吸中止症,對生命恐將造成威脅,嚴重者甚至會半夜猝死。

醫學研究顯示,50%打鼾者都是先打呼,接著產生睡眠呼吸暫停。台中勝美醫院睡眠中心林昌宏醫師指出,打呼的人通常是因為上呼吸道變窄,伴隨而來的睡眠呼吸中止會對健康造成影響,可能導致心臟、高血壓、腦溢血、中風等疾病。

●男性及肥胖者 高危險群

睡眠呼吸中止的高危險群通常是習慣性打鼾、脖子粗短、肥胖、下巴短小或後縮、懸壅垂長、扁桃腺肥大的人,男人較女人易得到,尤其是肥胖、歲數較大、經常抽菸喝酒者最容易打呼。

罹患呼吸中止症患者,初期症狀會容易疲倦、睡眠中斷、多夢,此外,也會發生睡眠中上氣不接下氣、夜晚常反覆的醒來、日間疲倦、打瞌睡、早晨起床會頭痛、情緒容易低落或記憶力不佳等情況。

值得注意的是,若是以「駕駛」為工作的人應特別小心,因為日間較疲倦,注意力無法集中,容易分心造成交通事故意外。

醫師提醒,如果有以上症狀的民眾應及早就醫檢查,在專業的睡眠檢查師依患者睡眠腦波、呼吸狀態、血中氧氣濃度、鼾聲、睡姿及肢體抽動等完整紀錄與監測睡眠狀況,經專業訊號分析與判讀,選擇適合的治療方式。

此外,林昌宏醫師提醒,平時的保健不容忽視,BMI體脂率應維持在22以內、戒除菸酒、避免使用鎮定安眠藥、平常採側睡姿勢、少吃刺激性食物、定期檢查,以減少發病機率。除了大人之外,張口呼吸的小孩也要特別留意此症。

星期四, 8月 23, 2007

張伯倫給建仔的一句話

轉錄自 http://tw.news.yahoo.com/article/url/d/a/070822/4/j790.html

張伯倫給建仔的一句話

王建民拿下14勝的當天早上,我到休息室找洋基現在當紅的張伯倫。當時不知道他會是替王建民拿下關鍵勝投的功臣之一,只是一直好奇為何一個21歲的小伙子膽子這麼大?第1次上場就敢對波沙達的配球暗號搖頭,而且連搖3次!

對於這個問題,張伯倫毫不猶豫的回答:「因為我知道最近自己哪種球投得最好,波沙達不見得知道。只有自己最了解自己。」張伯倫的言語充滿自信並勇於挑戰權威,真是美國這個社會培養出來的標準產物,知道自己夠好不用隱藏,把80分的能力表現出90分的樣子。

就個性來說,張伯倫和王建民是完全不同的典型,這位當紅炸子雞也笑著說:「我們是天秤的兩端,所以才合得來吧!」談到對王建民的看法,張伯倫一語道破好友近來的低潮關鍵,「He is too good to second guess himself。」張伯倫認為,王建民非常棒,這麼棒的投手還懷疑自己就太可惜了。

若非按慣例記者不好去打擾當天要先發的投手,真想馬上把張伯倫的話告訴王建民。離開的時後眼角掃到王建民靜坐的背影,他還真是亞洲文化的縮影。外表安靜謙虛,骨子裡好強自我要求高。是那種明明考95分,卻還自責為什麼會丟掉5分的孩子。

王建民多倫多那場球,對大部份曾經投出相同成績的美國投手來說,不過就是「a bad day」,他們會說:「That’s it!」然後會聳聳肩下次再來。但對王建民來說,卻成了他開始懷疑自己的起因。

王建民對老虎一戰剛開始投得很好,但第5局壘上有人時又開始瞻前顧後。被安打沒人會說話,保送加暴投就是自亂陣腳。所以雖然整體表現不差,基德瑞卻看得很難受。他愛王建民有如己出,看到建民在自我折磨,實在不知該怎麼辦。

每個投手都會有低潮,大聯盟評價投手的指標之一就是看他們如何從低潮中破繭而出。美國這個社會說現實卻也有天真的一面。如果你能證明自己有反敗為勝的能力,錯誤不但馬上被原諒,甚至會獲得更多尊敬。

對老虎的那場球,建民已經證明了一半,所以退場時許多球迷站起來拍手鼓勵,要告訴建民「我們相信你」。聽到這麼多認同的聲音,王建民應該很窩心、應該要更有自信。就如張伯倫所說,這麼優秀的投手如果還懷疑自己,實在太沒道理!

星期六, 7月 28, 2007

拓撲學

轉錄自:http://tw.knowledge.yahoo.com/question/question?qid=1306013004462

拓撲學是數學中一個重要的、基礎性的分支。它最初是幾何學的一個分支,主要研究幾何圖形在連續變形下保持不變的性質,現在已成為研究連續性現象的重要的數學分支。中文名稱起源於希臘語Topology的音譯。Topology原意為地誌學,於19世紀中期由科學家引入,當時主要研究的是出於數學分析的需要而產生的一些幾何問題。發展至今,拓撲學主要研究拓撲空間在拓撲變換下的不變性質和不變數。

拓撲學起初叫形勢分析學,是萊布尼茨1679年提出的名詞。十九世紀中期,黎曼在復函數的研究中強調研究函數和積分就必須研究形勢分析學。從此開始了現代拓撲學的系統研究。

連續性和離散性是自然界與社會現象中普遍存在的。拓撲學對連續性數學是帶有根本意義的,對於離散性數學也起著巨大的推動作用。拓撲學的基本內容已經成為現代數學的常識。拓撲學的概念和方法在物理學、生物學、化學等學科中都有直接、廣泛的應用。

目前拓樸學又分為點集拓撲學, 組合拓撲學 , 代數拓撲學, 微分拓撲學與幾何拓撲學.

星期一, 7月 23, 2007

解決Firefox狂吃記憶體實作

轉載自:http://jas9.blogspot.com/2006/05/firefox.html


使用Firefox瀏覽網頁的便利不可勝數,唯一美中不足的大概是它吃記憶體的恐怖程度。尤其是裝了一大堆好用的外掛,又開啟好幾個分頁時,那種記憶體不足的壓迫感,格外令人刻骨銘心。

 這篇文章提供了相當實用的解決之道。

 我把作法整理如下:

(1)開啟FireFox。

(2)在網扯列輸入並按Enter執行:about:config

(3)點右鍵,在功能選單裡選擇:新增->真假(Boolean)值

(4)在跳出視窗裡輸入並按Enter:config.trim_on_minimize

(5)在接下來的選項裡選擇並按確定:True

(6)關掉並重新啟動Firefox。

 另外,如果你覺得還不夠,前文作者還提到:可以將「browser.sessionhistory.max_total_viewers」的設定值設為零。這麼一來,連瀏覽時的回到上一頁暫存也免了,當然也連帶省去佔用記憶體的機會。

星期日, 7月 22, 2007

【轉載】為什麼要唸研究所?

研究所和大學的差別:

轉錄自:http://www.wretch.cc/blog/ErinChu&article_id=10126165

大學所學的是人類已知的學問,研究所要探索的是未知的學問

我過去三十二年在美國的大學真正的工作是培養研究生,從 1968 年開始當教授,在芝加哥及柏克萊的 26 年裏,所從事的工作都是和研究生在一起的,最欣慰的是對培養下一代科學家有些貢獻。我是化學物理領域的教授,你們若到美國各大學去訪問,常會遇到我的學生,若問說那個實驗室培養最多化學物理的教授,答案一定說是我的實驗室。孔子說「不孝有三,無後為大」,培養下一代,我是花了些心血。

記得以前每年九月,總會有很多的年輕學生來到加州大學,有的想研究化學物理的學生,對我的題目很感興趣,就會來和我討論幾次可能的研究題目。每年我都收二至四位學生,剛開始時,這些學生總是要我告訴他們怎麼做,用什麼方法做。而我總是老實地告訴他們,如果我知道要怎麼做、如何解決這些問題,我早就做了,這些問題不會留到今天給你。因為我們各大學做的較好的教授,真的是走在知識的最前面,每天都在推動知識的前進。對於未知世界的探索,可能知道該怎麼走,但並不清楚應怎麼做。

新的研究生剛到研究院時,是需要有些調適的時間,要認識自己要做的研究工作是會有很大的疑難,因為我們是要去未知的世界走出一條路。面對新的同學,我總是告訴他們,如果是我,我會怎麼做,但是我不確定是否是最好的方法。大半的同學都覺得很奇怪,到好大學、跟好教授做題目,但剛開始時卻什麼都不懂,這其實是常發生的事情。我以前每次和我的指導教授討論,教授所能提供的也很有限,有些提供的也不是很好的構想,甚至根本理念有錯。研究生將會看到自己和教授一起走入未知的世界,在某些方面,教師可能懂的不會比研究生多,但在其他方面則不然,教授經常知道以前為什麼沒有走通,以後要怎麼走,而這種經驗在研究的過程中是非常重要的。

每年研究所開學時,我都會感到大學部的教育和研究所的教育有很大的脫節。最大的原因是明明我們對世界的知識很有限,人類到現在也還是無知的,僅管從事學術工作的人有滿腦袋的學問,但對地球上所發生的事情的瞭解,只是一小部分。當中學的老師們急急忙忙的把人類已知的知識傳授給學生時,應告訴學生還有許多是未知的,說那些事情是需要探討的。因為很多研究生習慣接受人類累積的知識,以為我們所學到的東西是相當完美的或人類的知識是很多的,會忽略以前所學只是很小的一部分。所以在中、小學教小孩時,應以好奇、探討為原則來帶動學習,才是對的教學方法。若是在學校時只有灌輸,即使小孩是天生的科學家,在成長的過程中一直以為該知道的已都知道了,好奇心就沒有了。經過小學、中學、大學時,到研究所時,探知的動力已被磨損殆盡了。

「訓練」是重覆學習已知的事以做的更快更好,「教育」是要培養能力以解決未來的問題前兩年,我曾經因為擔任教改會召集人的工作而到全省各地作巡迴演講,這些演講的內容,多是針對國中、國小的義務教育而講的。在演講中,我常提到教育改革要政府解除對教育過多的管制,學校要能自主,真正要改的目的是要把每位學生培養上來。我們目前的教學,只有一個方向,一個進度,會造成有些學生跟不上,以為自己這裏不行、那裏不行,而失去前進的力量。

我們在台灣的教育工作,常常沒有把「教育」和「訓練」這兩件事分開,教育是教一個人學做人、學待人處事,是要學解決未來的問題。若是要訓練一個技術工人,則要重覆訓練。比如說做腳踏車,相同的時間內,熟練的人可以做六部腳踏車,不熟的人只能做一部,前者的生產力是後者的六倍。訓練是已知要如何做的,做的更快,但在求學的過程中,有很多時候最重要的是要了解。比如說若是我今天要講的內容是分子碰撞、角動量、散射角度,我可以講的很清楚,你們也會瞭解。但若我出些習題給你們做,有些乖巧的人,可能很快會把習題做出,有些人可能要很久,還有一部分的人可能沒有搞通。但較快懂的人,也許成績、分數較高,但不表示科學研究能力較強。

就如同在我們受教育的過程中,光是懂沒用,不能快則考不好。我們不是讓學生了解自然現象或是教導他們如何去探求學問,而是給他們很多題目回家操練。若是做過、有印象的題目,則會考的很好,否則考不好。從國小起,學生都是在學校受考試訓練,不是受教育。學校在訓練學生以最快的速度解答,而這些問題都是人類已經解決的問題,要學做的快,實在沒什麼了不起。

我認識一位大學教授,他的小孩很聰明,所有的問題都會解,但在台灣的國民中學裏,卻是位後段班的學生,因為考試時,解題太慢。另外有一位教授的小孩也是後段班的學生,到了美國後卻成為高材生,老師每天稱讚他。這是因為我們不重視教育而只重視訓練。在座可能有很多人是如此被折磨過來的,若到了研究生還不改過來的話,尤其想要做一個科學家,前途會很暗淡。「教育」和「訓練」的差別,在研究生的階段特別重要。

激勵學生學習的最佳方法是教授以身作則、培養學生成功的經驗、研究群間經常共同討論、彼此學習我在 1967 年到 68 年間曾在哈佛和賀胥巴哈(Herschbach) 教授一起做研究工作。在 1971 年時,我到芝加哥學教書,賀胥巴哈教授來芝加哥大學講演。當時有感而發的告訴我:「遠哲,你們六Ο年代時,做科學研究的動機是熱情,但現在七Ο年代的學生,把它當作一個工作看待。」他一直看著我,表示很懷念在六七、六八兩年我們共同擁有的好日子,而覺得現在的學生已遠不如以前。但我告訴他,我到芝加哥大學之後,發現這裏的學生也都非常努力。即使到了 1974 年,我到柏克萊之後,我的學生也都很努力,他們都日以繼夜的做研究。

有位柏克萊的希柏格 (Seaborg) 教授告訴我,在我搬到 Lawrence Berkeley Building 78 之前,下午五點鐘,所有的燈就暗了。而我到了之後,每天晚間燈火通明,學校有了新氣象。因為我對科學是滿懷熱誠的,學生跟著我做。而希柏格教授晚上不回實驗室、週末也不來,他的學生也不會回去。過了幾年後,我去德國拜訪一個研究所,有位教授也對我說類似的話。說他的學生每次休假回來,第二天就討論下次去那裏休假,也許他應要把他的研究經費給我,因為我在美國這麼努力。我告訴他,如果你常常在實驗室,學生就不會一直在計畫下次的旅行到那裏去,而是計畫下一個實驗是怎麼做的。若是教授保有年輕時的熱誠,想必學生會跟著走的。所以當很多老師說一代不如一代時,該檢討自己是否變老了,是否花較少的時間在做科學研究,若每天在未知的世界奔波探討的話,我想還是會有很多年輕人跟著一道走的。以身作則,學生不但會跟著你,有時會跑的更快。

此外,我們應多鼓勵學生,讓他們有信心努力往前,千萬不能如我們在國小或國中時一樣,所有的教導只有一個進度,一個方向。老師一直說你這個不會,那個不會,一直說你不行,你不行。學校要成為一個成功的地方,而非一個失敗的地方。學生要成功才會往前走,這在設計題目給研究生時即要注意,因為研究生在四、五年之內要離開,若頭幾年沒有結果,很容易失去信心,讀不下去的。英國的情形就常是如此,因為英國的學校獎學金只有三年,時間到了,給學位就走。我曾收了一位英國牛津大學的學生,他有很好的推薦信,也非常聰明,但他以前的論文題目做不出來。我因為知道他沒有成功的經驗,馬上設計一個實驗,讓他有成功的信心。在學生學習的過程中,常需要幫助,特別在最困難的時候,更要提他一把。

我在美國努力那麼多年,也不知自己做對了什麼或做錯了什麼。只是看到很多學生滿懷熱誠進來,滿懷熱誠出去。其中,我印象很深的是有位挪威來的物理系學生,在博士論文之中對我表達感謝之意,而對物理系的指導教授,只提寥寥數語。他說他在我的實驗室裏,能儘情享受研究科學的熱情,並經常和大家一起討論。教授能常和學生在一起,關懷他們、一起討論是很重要的。

啟發學生、培養學生、為學生營造很好的學習環境、讓學生有機會接觸有成就的人,比指導學生研究的方向更重要我到芝加哥大學教書後,前後陸續做了八、九個很複雜的儀器。若所有的儀器我都自己做,大概三個月可以做一個出來。可是我要學生做,他們剛開始什麼都不懂,連畫機械圖都不會,很多事情都要慢慢教他們。從功利的觀點看,教學生做實驗是不會比較快,同時,一個研究生常常到了可以做實驗時,就已寫好論文,要說「再見」了。但從人才的培養及享受來看,沒有什麼可比看到年輕人學成的感覺更快樂。我常向年輕的教授說,多花些時間和學生一起做實驗,雖然表面上自己浪費時間,但長遠看來,對自己發展及整體的發展是很重要的。

對於我們不知的未來世界,在和學生摸索、討論的過程中也不一定能解決。但若是教授耐心聽,指出問題,老師和同學都可以學到不少事情。重要的是,一起做科學研究是很有趣的。學生剛開始時,常提出一些很笨、不合理的問題,經過幾次解說後,就慢慢地提出很好的問題,變的很能幹。啟發學生比指導學生方向更重要的。

我最不喜歡看到有些老師把學生當成廉價勞工,常要學生做很多事。在英明教授的領導下,可能學生可發表很多文章,為指導教授解決了一些問題,但很可能沒有學到什麼。我一定會讓我的學生有主導的機會,而不是我的一雙手去推動我自己的工作。每次教授要學生做一件事,都應以身設想,是否自己願意花這麼多時間如此做。當然若是學生自己願意做的,有自己的構想,又是另當別論。

此外,要培養學生就要有責任為學生營造很好的研究環境。所謂好的環境包括大環境及小環境,大環境是一個大學、一個學院的環境,小環境則是一個研究室的風氣。我到過美國很多大學,每次講到芝加哥大學,都很懷念。因為該校不大,教授之間很多討論。在創校時,洛克斐勒先生就說這是所研究大學,教授不但要教書,也要做研究。每年三個學期,總有一個學期可以不教書,專心做研究。每個教授中午都在教授餐廳吃飯,彼此常常有很多各種學科的討論及活動,感覺這是個學者的社區。

而到了柏克萊的化學系時,規模很大,什麼都有,但也因此減少和別的教授溝通、互動的機會。對一個研究室來說,研究生之間要如何坐在一起討論,把自己的困難講出來,也從別人學到一些東西,是教授很大的責任。此外,一個教授在收了研究生之後,也應負起營造一個環境,讓研究生可以有毫無牽掛地做研究,這包括有足夠的錢可以解決衣食住行的需要,但不要有太多錢去煩惱要如何花。也就是說,收入可以到吃住都沒問題,但不能到每星期都去聽歌劇。

此外,我們要讓年輕人多接觸學術上有成就的人,並和他們討論學問。如此可以打開年輕人的眼界,並知道有成就的人在想什麼、有什麼遠見?為什麼他們有那麼大的成就?年輕人一定會發現,即使很有成就的人,談了之後,也覺得不怎麼樣。如果自己努力的話,一定可以做的比他們好,這也是和名人接觸的另一優點。

學生找研究題目切忌好高鶩遠

在過去幾年內,有些美國的教授朋友告訴我,他的大陸學生好高鶩遠,常要做些艱深的題目,以為解決這些問題,就可以得諾貝爾獎。這些學生不了解科學研究的能力是一步步學來的,研究的題目不是圖書館找的,是教授根據以往經驗所得的題目,若學生覺得那個教授的題目有趣,則跟該教授做論文。事實上,我們科學所知道的很有限,每個人在研究中,會發現奇妙不能解釋的現象,往往成為以後的題目,這些題目剛開始是從年長的人得到的,但年輕人慢慢地就知道如何解決。

學生好高鶩遠不是研究科學的好習慣。有時候,有的學生也很狂妄。記得我在台大化學大二時,常和台大物理系的學生談世界上許多還沒有解決的理論。不懂為什麼愛因斯坦這麼聰明,還不能解決地心引力、電磁場、強力弱力的一些問題,把力、場從更根本的方向統一起來。我也曾買了很多相關書籍,想解決許多愛因斯坦不能解決的問題。對於好高鶩遠的學生,教授應指導其先從根本了解,發覺有些路不是此時能做到的,很多的成就是一輩子的努力,是一步步的走上去的。好比從這裏到二樓,要一步步走樓梯上去,若要一步跳上去,可能要跳一輩子也跳不上去。

結語:人生最有趣的事是能做自己喜歡的工作

我總覺得世界上,從事學術研究工作的人不一定要那麼多。每一萬個人中,有三、四十個人做就夠了,如此社會的負擔也差不多。還有並不是每個人都適合做研究工作,不能鼓勵每個人都從事研究工作,或以為每個人都可以做的不錯。更因為研究工作的職位空缺是有限的,不能盲目的要研究生做研究,把每個研究生當作將來要做研究工作的人。

我國每年增加約二千個博士,包括有一千兩百位從國外回來及八百位國內的博士。不應是每個博士都做研究,很多人可以投入實務工作或是生產界,學的技能也可以對社會做出貢獻。如教育界國小、國中之老師,政府界的環保工作等等也都很好。真正研究工作人員,應是真的對研究有興趣的人,讓這些人可以沒有失去工作的憂慮。

有一年輕人說他小時候原本父母親因為家庭環境不好,要把他送給別人養。但他為了可以留在自己的家中,向父母親說「我可以不吃飯,喝水就好,不要把我送給別人。」後來他母親也因此沒有把他送給別人。要享受自己的人生,則要找自己喜歡的工作,錢賺少一點沒有關係,沒有飯吃的時候,喝水就好。因為做自己喜歡的工作則會努力的做,努力做則會有些成就,有成就會受到鼓勵,就會有成就感及滿足感,這是人生最有趣的事。所以只有真正熱愛科學及喜愛科學的人,才需要從事研究工作。若是國中國小教育能如此的教育孩子,不要鼓勵所有的孩子只重視智育及升學,則真正做研究的人可能越來越少。

有個加州理工學院的教授在得獎時說,學校對我很好,給我做研究,給我錢,又給我好學生。我的一輩子渡過了很興奮、很快樂的日子,再也沒有什麼比做研究更高興的事。對於真正對科學工作有興趣,而且又能做出貢獻的人,從事研究工作,在人類未知的社會走出一條路的,也如同在原始森林中漫步、探索一樣,是那麼的有趣、值得的。

星期六, 7月 21, 2007

PHP 中的類別-什麼叫類別

轉載自:http://blog.csdn.net/zcatlinux/archive/2004/10/19/142267.aspx (china)

在闡述類的概念之前我們來先說說面向物件編程的概念:面向物件的程式設計(Object-Oriented Programming,簡記為OOP)立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程 序中加入擴展語句,把函數封裝進編程所必需的物件中。面向物件的編程語言使得複雜的工作條理清晰、編寫容易。說它是一場革命,不是對物件本身而 言,而是對它們處理工作的能力而言。物件並不與傳統程式設計和編程方法相容,只是部分面向物件反而會使情形更糟。除非整個開發環境都是面向物件的,否則對 象產生的好處還沒有帶來的麻煩多。有人可能會說PHP不是一個真正的面向物件編程的語言, PHP 是一個混合型 語言,你可以使用面向物件編程,也可以使用傳統的過程化編程。然而,對於大型專案的開發,你可能想需要在PHP中使用純的面向物件編程去聲明類,而且在你 的專案開發只用物件和類。隨著專案越來越大,使用面向物件編程可能會有幫助,面向物件編程代碼很容易維護,容易理解和重複使用,這些就是軟體工程的基礎。 在基於Web的項目中應用這些概念就成為將來網站成功的關鍵。

  物件(Object)是問題域或實現域中某些事物的一個抽象,它反 映此事物在系統中需要保存的資訊和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。 關於物件要從兩方面理解:一方面指系統所要處理的現實世界中的物件;另一方面物件是電腦不直接處理的物件,而是處理相應的電腦表示,這種電腦表示也 稱為物件。簡單的來說,一個人就是一個物件,一個尺子也可以說是個物件。當這些物件可以用資料直接表示時,我們就稱他為屬性,尺子的度量單位可以是釐米, 公尺或英尺,這個度量單位就是尺子的屬性。
  
  在PHP裏我們可以定義一個類,類(Class)就是指變數與一些使用這些變數 的函數的集合。PHP是一種鬆散類型的語言,所以通過類型重載不起作用,通過參數的個數不同來重載也不起作用。 有時在面向中重載構造函數非常好,這樣你可以通過不同的方法創建物件(傳遞不同數量的參數)。在PHP中就是通過類來實現的。

  在PHP中是通過類來完成資訊封裝的,在PHP中定義類的語法是:
class Class_name //
在面向物件編程類中,習慣上類的第一個字元為大寫,並且必須符合變數的命名規則。
{

//
函數與變數的集合

}
?>

  在定義類時你可以按自已的喜好的格式進行定義,但最好能保持一種標準,這樣開發起來會更有效些。

  資料成員在類中使用"var"聲明來定義,在給資料成員賦值之前,它們是沒有類型的。一個資料成員可以是一個整數,一個陣列,一個相關陣列(Associative Array)或者是一個物件。

下面是一個類定義的實際例子:
class Student
{
var $str_Name; //
姓名
var $str_Sex; //
性別
var $int_Id; //
學號
var $int_English; //
英語成績
var $int_maths; //
數學成績
}
?>

  這是一個很普通定義類的簡單例子,用於顯示學生的學習成績,類名為StudentStudent類包涵了一個學生的基本屬性:姓名、性別、學號、英語成績和數學成績。
  
   function我們稱之為在類中被定義的函數,在函數中訪問類成員變數時,你應該使用$this->var_name,其中var_name指 的是類中被聲明的變數,否則對一個函數來說,它只能是局部變數。 我們先定義一個Input()的函數,用來給實例中的物件賦以初值:
function Input ( $Name, $Sex, $Id, $Englis, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_Englis=$English;
$this->int_Maths=$Maths;
}

現在我們再定義一個叫“ShowInfo()”的函數,用於列印學生的基本情況:
function ShowInfo() //
定義ShowInfo()函數
{
echo (“
姓名:$this->str_Name

”);
echo (“
性別:$this->str_Sex

”);
echo (“
學號:$this->int_Id

”);
echo (“
英語成績:$this->int_English

”);
echo (“
數學成績:$this->int_Maths

”);
}

而定義好的類則必須使用new關鍵字來生成物件:
$A_student=new Student;
例如我們要為一個名為$Wing的物件創建實例,並進行賦值,可以使用下面的代碼:
$Wing =new Student; //
new關鍵字來生成物件
$Wing ->Input (“Wing”,”
”,33,95,87);
//
分別輸入Wing的姓名、性別、學號、英語成績、數學成績,其中姓名和性別是字元型變數,所以需要用雙引號,其他為數值型變數則不需要。
通過下面這段完整的源代碼,我們就可以很清楚的看到類在PHP是怎麼被運用的:


class Student
{
var $str_Name;
var $str_Sex;
var $int_Id;
var $int_English;
var $int_maths;

function Input ( $Name, $Sex, $Id, $English, $Maths)
{
$this->str_Name=$Name;
$this->str_Sex =$Sex;
$this->int_Id =$Id;
$this->int_English=$English;
$this->int_Maths=$Maths;
}
function ShowInfo()
{
echo (“
姓名:$this->str_Name

”);
echo (“
性別:$this->str_Sex

”);
echo (“
學號:$this->int_Id

”);
echo (“
英語成績:$this->int_English

”);
echo (“
數學成績:$this->int_Maths

”);
}
}


$Wing = new Student;
$Wing->Input (“Wing”,”
”,33,95,87);
$Paladin = new Student;
$Paladin->Input (“paladin”,”
”,38,58,59.5);

$Wing->ShowInfo();
$Paladin->ShowInfo();

?>
執行結果應是這樣的:

姓名:Wing
性別:男
學號:33
英語成績:95
數學成績:87
姓名:Paladin
性別:女
學號:38
英語成績:58
數學成績:59.5

  PHP現有的版本較以前的版本在對面向物件編程的支援方面有了很大的改善,但支持的還不是很完整,不過現階段PHP對面向物件編程語言提供的支援不但有利於我們設計程式的結構,對於對程式的維護也能提供很大的幫助。

全文出自 : cngnu


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=142267

星期四, 7月 19, 2007

DenyHost 設定檔中譯 by coke750101

DenyHost 設定檔中譯 by coke750101
要轉載請來信告知coke750101@gmail.com,嚴禁盜連複製


############ THESE SETTINGS ARE REQUIRED ############

########################################################################
# 紀錄檔存放處
# SECURE_LOG: the log file that contains sshd logging info
# if you are not sure, grep "sshd:" /var/log/*
#
# The file to process can be overridden with the --file command line
# argument
#
# Redhat or Fedora Core:
SECURE_LOG = /var/log/auth.log
#
# Mandrake, FreeBSD or OpenBSD:
#SECURE_LOG = /var/log/auth.log
#
# SuSE:
#SECURE_LOG = /var/log/messages
#
# Mac OS X (v10.4 or greater -
# also refer to: http://www.denyhosts.net/faq.html#macos
#SECURE_LOG = /private/var/log/asl.log
#
# Mac OS X (v10.3 or earlier):
#SECURE_LOG=/private/var/log/system.log
#
########################################################################

########################################################################
#
# HOSTS_DENY: the file which contains restricted host access information
# 檔案包含限制存取的host資訊
# Most operating systems:
HOSTS_DENY = /etc/hosts.deny
#
# Some BSD (FreeBSD) Unixes:
#HOSTS_DENY = /etc/hosts.allow
#
# Another possibility (also see the next option):
#HOSTS_DENY = /etc/hosts.evil
#######################################################################


########################################################################
# 清除拒絕連線清單
# PURGE_DENY: removed HOSTS_DENY entries that are older than this time
# when DenyHosts is invoked with the --purge flag
# 在指定的時間過後移除 HOSTS_DENY 項目
# format is: i[dhwmy] Example:7w(7週)
# Where 'i' is an integer (eg. 7) 整數
# 'm' = minutes 分
# 'h' = hours 時
# 'd' = days 天
# 'w' = weeks 週
# 'y' = years 年
#
# never purge:
PURGE_DENY =
#
# purge entries older than 1 week
#PURGE_DENY = 1w
#
# purge entries older than 5 days
#PURGE_DENY = 5d
#######################################################################

#######################################################################
# 清除門檻:定義Host最多被清除的次數
# 若清除次數超過定義值,則Host不會再被清除掉
# 設定這個參數為0(預設值),關閉這個功能
# PURGE_THRESHOLD: defines the maximum times a host will be purged.
# Once this value has been exceeded then this host will not be purged.
# Setting this parameter to 0 (the default) disables this feature.
#
# default: a denied host can be purged/re-added indefinitely
# 預設:一個被阻擋的Host可以被 清除/重複清除 無限次
#PURGE_THRESHOLD = 0
#
# a denied host will be purged at most 2 times.
#PURGE_THRESHOLD = 2
#
#######################################################################


#######################################################################
# 封鎖服務:服務名稱可以被阻擋在HOST_DENY
# BLOCK_SERVICE: the service name that should be blocked in HOSTS_DENY
#
# man 5 hosts_access for details
#
# eg. sshd: 127.0.0.1 # will block sshd logins from 127.0.0.1
# 封鎖所有服務可疑的Host
# To block all services for the offending host:
#BLOCK_SERVICE = ALL
# 只有封鎖sshd的服務
# To block only sshd:
BLOCK_SERVICE = sshd
#
# To only record the offending host and nothing else (if using
# an auxilary file to list the hosts). Refer to:
# http://denyhosts.sourceforge.net/faq.html#aux
#BLOCK_SERVICE =
#
#######################################################################


#######################################################################
# 封鎖無效門檻:在超過幾次的登入失敗封鎖其Host
# 其值適用於不合法的使用者在試圖登入
# DENY_THRESHOLD_INVALID: block each host after the number of failed login
# attempts has exceeded this value. This value applies to invalid
# user login attempts (eg. non-existent user accounts)
#
DENY_THRESHOLD_INVALID = 5
#
#######################################################################

#######################################################################
# 封鎖有效門檻:在超過幾次的登入失敗封鎖其Host
# 其值適用於合法的使用者在試圖登入
# 使用者帳號存在於/etc/passwd(除了root帳號)
# DENY_THRESHOLD_VALID: block each host after the number of failed
# login attempts has exceeded this value. This value applies to valid
# user login attempts (eg. user accounts that exist in /etc/passwd) except
# for the "root" user
#
DENY_THRESHOLD_VALID = 10
#
#######################################################################

#######################################################################
# 封鎖Root帳號門檻:在超過幾次的登入失敗封鎖其Host
# 其值適用於root的使用者在試圖登入
# DENY_THRESHOLD_ROOT: block each host after the number of failed
# login attempts has exceeded this value. This value applies to
# "root" user login attempts only.
#
DENY_THRESHOLD_ROOT = 1
#
#######################################################################


#######################################################################
# 封鎖門檻限制:在超過登入失敗的次數值後,封鎖其Host
# 其值適用於使用者名稱出現在WORK_DIR/restricted-usernames檔案中
# DENY_THRESHOLD_RESTRICTED: block each host after the number of failed
# login attempts has exceeded this value. This value applies to
# usernames that appear in the WORK_DIR/restricted-usernames file only.
#
DENY_THRESHOLD_RESTRICTED = 1
#
#######################################################################


#######################################################################
# 工作目錄:DenyHosts會用這個路徑去寫入資料
# (如果資料不存在會自動新增)
# WORK_DIR: the path that DenyHosts will use for writing data to
# (it will be created if it does not already exist).
#
# 注意:建議使用完整的路徑名稱(例如:/home/foo/denyhosts/data)
# Note: it is recommended that you use an absolute pathname
# for this value (eg. /home/foo/denyhosts/data)
#
WORK_DIR = /usr/share/denyhosts/data
#
#######################################################################

#######################################################################
# 對allowed-host的可疑的登入報告
# SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS
#
# SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES|NO
#
# 如果設定為YES:如果從allowed-host中可疑的試圖登入結果,被認為是可疑的
# 如果設定為NO :如果從allowed-host中可疑的試圖登入結果,不會被報告記錄
# (所有可疑登入的IP位址不在allowed-hosts中,皆會被報告紀錄)
#
# If set to YES, if a suspicious login attempt results from an allowed-host
# then it is considered suspicious. If this is NO, then suspicious logins
# from allowed-hosts will not be reported. All suspicious logins from
# ip addresses that are not in allowed-hosts will always be reported.
#
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
######################################################################

######################################################################
# 主機名稱查詢
# HOSTNAME_LOOKUP
#
# HOSTNAME_LOOKUP=YES|NO
#
# 如果設定為YES:每個IP位址會被記錄在Denyhosts,符合的主機名稱同樣的也會被查詢且紀錄(如果可以的話)
# If set to YES, for each IP address that is reported by Denyhosts,
# the corresponding hostname will be looked up and reported as well
# (if available).
#
HOSTNAME_LOOKUP=YES
#
######################################################################


######################################################################
# 鎖定檔案
# LOCK_FILE
#
# LOCK_FILE=/path/denyhosts
#
# 如果這個檔案存在DenyHosts執行中時,DenyHosts會立即離開
# 否則這個檔案會被在期望上被創造和刪除離開
# 保證同時間只有一個實例在執行
# If this file exists when DenyHosts is run, then DenyHosts will exit
# immediately. Otherwise, this file will be created upon invocation
# and deleted upon exit. This ensures that only one instance is
# running at a time.
#
# Redhat/Fedora:
LOCK_FILE = /var/run/denyhosts.pid
#
# Debian
#LOCK_FILE = /var/run/denyhosts.pid
#
# Misc
#LOCK_FILE = /tmp/denyhosts.lock
#
######################################################################


############ THESE SETTINGS ARE OPTIONAL ############
#################### 選擇性設定 #####################


#######################################################################
# 管理者E-mail:如果你想要收到較新的限制Host和可疑登入的資訊
# 設定符合你的email位址,如果你不想要收到這些紀錄報告
# 將欄位留空(或者執行一個沒有Email的選項)
# ADMIN_EMAIL: if you would like to receive emails regarding newly
# restricted hosts and suspicious logins, set this address to
# match your email address. If you do not want to receive these reports
# leave this field blank (or run with the --noemail option)
#
# 多個Email位址用逗號(,)來界定
# Multiple email addresses can be delimited by a comma, eg:
# ADMIN_EMAIL = foo@bar.com, bar@foo.com, etc@foobar.com
#
ADMIN_EMAIL = coke750101@gmail.com
#
#######################################################################

#######################################################################
# SMTP主機名稱和PORT:如果DenyHosts設置去做Email紀錄報告(看ADMIN_EMAIL)
# 這些設定詳細說明SMTP位址和PORT
#
# SMTP_HOST and SMTP_PORT: if DenyHosts is configured to email
# reports (see ADMIN_EMAIL) then these settings specify the
# email server address (SMTP_HOST) and the server port (SMTP_PORT)
#
#
SMTP_HOST = localhost
SMTP_PORT = 25
#
#######################################################################

#######################################################################
# SMTP使用者名稱和密碼:如果SMTP伺服器需要驗證才需設定
# SMTP_USERNAME and SMTP_PASSWORD: set these parameters if your
# smtp email server requires authentication
#
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
#
######################################################################

#######################################################################
# SMTP寄件者:可以詳細說明寄發Email的"From:"位址,當報告被試圖阻擋濫用
# SMTP_FROM: you can specify the "From:" address in messages sent
# from DenyHosts when it reports thwarted abuse attempts
#
SMTP_FROM = DenyHosts
#
#######################################################################

#######################################################################
# SMTP主旨:可以詳細說明寄發Email的"Subject:"主旨資料,當報告被試圖阻擋濫用
# SMTP_SUBJECT: you can specify the "Subject:" of messages sent
# by DenyHosts when it reports thwarted abuse attempts
SMTP_SUBJECT = DenyHosts Report
#
######################################################################

######################################################################
# SMTP資料格式:可以詳細說明寄發Email的"Date:"表頭資料格式
# SMTP_DATE_FORMAT: specifies the format used for the "Date:" header
# when sending email messages.
#
# for possible values for this parameter refer to: man strftime
#
# the default:
#
#SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z
#
######################################################################

######################################################################
# 系統紀錄報告
# SYSLOG_REPORT
#
# 如果設定為YES:當阻擋host被記錄在資料中將會送出一個系統紀錄
# (系統紀錄必須被放置在你的系統)預設為NO
#
# SYSLOG_REPORT=YES|NO
# If set to yes, when denied hosts are recorded the report data
# will be sent to syslog (syslog must be present on your system).
# The default is: NO
#
#SYSLOG_REPORT=NO
#
#SYSLOG_REPORT=YES
#
######################################################################

######################################################################
# 允許Host主機名稱查詢
# ALLOWED_HOSTS_HOSTNAME_LOOKUP
#
# 如果設定為YES:對於每個在WORK_DIR/allowed-hosts登入資料的檔案
# 主機名稱機會被查看,TCP封包版本和SSH通常附加紀錄主機名稱在IP位址後
# 你可能會希望詳細說明這個選項
#
# ALLOWED_HOSTS_HOSTNAME_LOOKUP=YES|NO
# If set to YES, for each entry in the WORK_DIR/allowed-hosts file,
# the hostname will be looked up. If your versions of tcp_wrappers
# and sshd sometimes log hostnames in addition to ip addresses
# then you may wish to specify this option.
#
#ALLOWED_HOSTS_HOSTNAME_LOOKUP=NO
#
######################################################################

######################################################################
# 合法使用者重設期間:詳細說明在試圖不合法登入的期間內,當超過設定時間
# 錯誤計數次數會被重設為0,這個值應用在試圖登入的所有合法使用者
# (在/etc/passwd之下,除了root帳號外),如果沒有定義,這個值永遠不會被重設
#
# AGE_RESET_VALID: Specifies the period of time between failed login
# attempts that, when exceeded will result in the failed count for
# this host to be reset to 0. This value applies to login attempts
# to all valid users (those within /etc/passwd) with the
# exception of root. If not defined, this count will never
# be reset.
#
# 完整細節參考如下
# See the comments in the PURGE_DENY section (above)
# for details on specifying this value or for complete details
# refer to: http://denyhosts.sourceforge.net/faq.html#timespec
#
AGE_RESET_VALID=5d
#
######################################################################

######################################################################
# root使用者重設期間:詳細說明在試圖不合法登入的期間內,當超過設定時間
# 錯誤計數次數會被重設為0,這個值應用在試圖登入的root使用者
# 如果沒有定義,這個值永遠不會被重設
#
# AGE_RESET_ROOT: Specifies the period of time between failed login
# attempts that, when exceeded will result in the failed count for
# this host to be reset to 0. This value applies to all login
# attempts to the "root" user account. If not defined,
# this count will never be reset.
#
# 完整細節參考如下
# See the comments in the PURGE_DENY section (above)
# for details on specifying this value or for complete details
# refer to: http://denyhosts.sourceforge.net/faq.html#timespec
#
AGE_RESET_ROOT=25d
#
######################################################################

######################################################################
# 限制的使用者重設期間:詳細說明在試圖不合法登入的期間內,當超過設定時間
# 錯誤計數次數會被重設為0,這個值應用在存於WORK_DIR/restricted-usernames
# 檔案的使用者,如果沒有定義,這個值永遠不會被重設
#
# AGE_RESET_RESTRICTED: Specifies the period of time between failed login
# attempts that, when exceeded will result in the failed count for
# this host to be reset to 0. This value applies to all login
# attempts to entries found in the WORK_DIR/restricted-usernames file.
# If not defined, the count will never be reset.
#
# 完整細節參考如下
# See the comments in the PURGE_DENY section (above)
# for details on specifying this value or for complete details
# refer to: http://denyhosts.sourceforge.net/faq.html#timespec
#
AGE_RESET_RESTRICTED=25d
#
######################################################################


######################################################################
# 非法使用者重設期間:詳細說明在試圖不合法登入的期間內,當超過設定時間
# 錯誤計數次數會被重設為0,這個值應用在試圖登入的所有非法使用者
# (不出現在/etc/passwd之下的帳號),如果沒有定義,這個值永遠不會被重設
#
# AGE_RESET_INVALID: Specifies the period of time between failed login
# attempts that, when exceeded will result in the failed count for
# this host to be reset to 0. This value applies to login attempts
# made to any invalid username (those that do not appear
# in /etc/passwd). If not defined, count will never be reset.
#
# 完整細節參考如下
# See the comments in the PURGE_DENY section (above)
# for details on specifying this value or for complete details
# refer to: http://denyhosts.sourceforge.net/faq.html#timespec
#
AGE_RESET_INVALID=10d
#
######################################################################


######################################################################
# 成功時重設:若設為YES,如果登入成功,個別IP位址的錯誤記數會被重設為0,預設是NO
# RESET_ON_SUCCESS: If this parameter is set to "yes" then the
# failed count for the respective ip address will be reset to 0
# if the login is successful.
#
# The default is RESET_ON_SUCCESS = no
#
#RESET_ON_SUCCESS = yes
#
#####################################################################


######################################################################
# 外掛阻擋:如果有設定,這個值應該會被表明為執行的程式
# 當Host被加入HOSTS_DENY時會被要求
# 這個可執行程式將會被通過Host,Host將會被加入當它是唯一可爭辯的
# PLUGIN_DENY: If set, this value should point to an executable
# program that will be invoked when a host is added to the
# HOSTS_DENY file. This executable will be passed the host
# that will be added as it's only argument.
#
#PLUGIN_DENY=/usr/bin/true
#
######################################################################


######################################################################
# 外掛清除:如果有設定,這個值應該會被表明為執行的程式
# 當Host被從HOSTS_DENY移除時會被要求
# 這個可執行程式將會被通過Host,Host將會被加入當它是唯一可爭辯的
# PLUGIN_PURGE: If set, this value should point to an executable
# program that will be invoked when a host is removed from the
# HOSTS_DENY file. This executable will be passed the host
# that is to be purged as it's only argument.
#
#PLUGIN_PURGE=/usr/bin/true
#
######################################################################

######################################################################
# 使用者定義錯誤元素:如果有設定,這個值將會包含一個正規表示式
# 可以用來辨別附加的駭客對於你的ssh設置
# 這個功能延伸DenyHosts使用的嵌入正規表示式
# USERDEF_FAILED_ENTRY_REGEX: if set, this value should contain
# a regular expression that can be used to identify additional
# hackers for your particular ssh configuration. This functionality
# extends the built-in regular expressions that DenyHosts uses.
# This parameter can be specified multiple times.
# See this faq entry for more details:
# http://denyhosts.sf.net/faq.html#userdef_regex
#
#USERDEF_FAILED_ENTRY_REGEX=
#
#
######################################################################




######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ##########
############### 這些設定會被詳細說明在預設模式 #################



#######################################################################
# 預設程式紀錄:當DenyHosts在預設模式下執行
# 這個DenyHosts使用在紀錄報告狀態的記錄檔
# 關閉登入和離開???
# DAEMON_LOG: when DenyHosts is run in daemon mode (--daemon flag)
# this is the logfile that DenyHosts uses to report it's status.
# To disable logging, leave blank. (default is: /var/log/denyhosts)
#
DAEMON_LOG = /var/log/denyhosts
#
# disable logging:
#DAEMON_LOG =
#
######################################################################

#######################################################################
#預設紀錄時間格式:當DenyHosts在預設模式下執行
# 這個詳細說明預設模式訊息時間戳記格式
#
# DAEMON_LOG_TIME_FORMAT: when DenyHosts is run in daemon mode
# (--daemon flag) this specifies the timestamp format of
# the DAEMON_LOG messages (default is the ISO8061 format:
# ie. 2005-07-22 10:38:01,745)
#
# for possible values for this parameter refer to: man strftime
#
# Jan 1 13:05:59
#DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S
#
# Jan 1 01:05:59
#DAEMON_LOG_TIME_FORMAT = %b %d %I:%M:%S
#
######################################################################

#######################################################################
#預設紀錄訊息格式:當DenyHosts在預設模式下執行
# 這個詳細說明預設模式每個訊息項目訊息格式
#
# DAEMON_LOG_MESSAGE_FORMAT: when DenyHosts is run in daemon mode
# (--daemon flag) this specifies the message format of each logged
# entry. By default the following format is used:
#
# %(asctime)s - %(name)-12s: %(levelname)-8s %(message)s
#
# "%(asctime)s"的部份是延伸格式,定義在DAEMON_LOG_TIME_FORMAT
#
# Where the "%(asctime)s" portion is expanded to the format
# defined by DAEMON_LOG_TIME_FORMAT
#
# This string is passed to python's logging.Formatter contstuctor.
# For details on the possible format types please refer to:
# http://docs.python.org/lib/node357.html
#
# This is the default:
#DAEMON_LOG_MESSAGE_FORMAT = %(asctime)s - %(name)-12s: %(levelname)-8s %(message)s
#
#
######################################################################


#######################################################################
# 預設睡眠:當DenyHosts在預設模式下執行
# 這個數值是DenyHosts在請求SECURE_LOG的時間量
#
# DAEMON_SLEEP: when DenyHosts is run in daemon mode (--daemon flag)
# this is the amount of time DenyHosts will sleep between polling
# the SECURE_LOG. See the comments in the PURGE_DENY section (above)
# for details on specifying this value or for complete details
# refer to: http://denyhosts.sourceforge.net/faq.html#timespec
#
#
DAEMON_SLEEP = 30s
#
#######################################################################

#######################################################################
# 預設清除:當DenyHosts在預設模式下執行,執行清除機械作用過期最久的HOSTS_DENY
# 這個會影響PURGE_DENY的間隔
# DAEMON_PURGE: How often should DenyHosts, when run in daemon mode,
# run the purge mechanism to expire old entries in HOSTS_DENY
# This has no effect if PURGE_DENY is blank.
#
DAEMON_PURGE = 1h
#
#######################################################################


######### THESE SETTINGS ARE SPECIFIC TO ##########
######### DAEMON SYNCHRONIZATION ##########
############## 這個設定會詳細說明預設同步 ###############


#######################################################################
# 同步模式:允許DenyHosts預設有能力去週期性的寄和收denied host資料
# DenyHosts預設遍及可以自動通知一個其他關於被禁止的Host
# 這個模式預設是關閉的,你必須取消SYNC_SERVER的註解去開啟這個模式
# Synchronization mode allows the DenyHosts daemon the ability
# to periodically send and receive denied host data such that
# DenyHosts daemons worldwide can automatically inform one
# another regarding banned hosts. This mode is disabled by
# default, you must uncomment SYNC_SERVER to enable this mode.
#
# for more information, please refer to:
# http:/denyhosts.sourceforge.net/faq.html#sync
#
#######################################################################


#######################################################################
# 同步伺服器:一個DenyHost預設傳遞的中心伺服器
# 現在denyhosts.net是唯一可用的伺服器
# 無論如何,在未來這可能可以對在內部網路之間主機安裝他們擁有的伺服器
# SYNC_SERVER: The central server that communicates with DenyHost
# daemons. Currently, denyhosts.net is the only available server
# however, in the future, it may be possible for organizations to
# install their own server for internal network synchronization
#
# 預設關閉同步
# To disable synchronization (the default), do nothing.
#
# 開啟同步:取消註解
# To enable synchronization, you must uncomment the following line:
#SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
#
#######################################################################

#######################################################################
# 同步間隔:如果SYNC_SERVER被取消註解,會在這個間隔時間執行同步(預設1小時)
# SYNC_INTERVAL: the interval of time to perform synchronizations if
# SYNC_SERVER has been uncommented. The default is 1 hour.
#
#SYNC_INTERVAL = 1h
#
#######################################################################


#######################################################################
# 同步更新:允許DenyHosts欲設去傳送被你阻擋的hosts
# 只有在SYNC_SERVER選項被取消註解時才會執行(同步更新:yes)
# SYNC_UPLOAD: allow your DenyHosts daemon to transmit hosts that have
# been denied? This option only applies if SYNC_SERVER has
# been uncommented.
# The default is SYNC_UPLOAD = yes
#
#SYNC_UPLOAD = no
#SYNC_UPLOAD = yes
#
#######################################################################


#######################################################################
# 同步下載:允許DenyHosts欲設去下載其他人阻擋的hosts
# 只有在SYNC_SERVER選項被取消註解時才會執行(同步下載:yes)
# SYNC_DOWNLOAD: allow your DenyHosts daemon to receive hosts that have
# been denied by others? This option only applies if SYNC_SERVER has
# been uncommented.
# The default is SYNC_DOWNLOAD = yes
#
#SYNC_DOWNLOAD = no
#SYNC_DOWNLOAD = yes
#
#
#
#######################################################################

#######################################################################
# 同步下載門檻:如果SYNC_DOWNLOAD開啟
# 這個過濾參數回傳hosts到這些已經其他人被多次阻擋
# 如果設定1:單一個DenyHosts伺服器阻擋以個IP位址
# 你也會收到這個被阻擋的host
# SYNC_DOWNLOAD_THRESHOLD: If SYNC_DOWNLOAD is enabled this parameter
# filters the returned hosts to those that have been blocked this many
# times by others. That is, if set to 1, then if a single DenyHosts
# server has denied an ip address then you will receive the denied host.
#
# See also SYNC_DOWNLOAD_RESILIENCY
#
#SYNC_DOWNLOAD_THRESHOLD = 10
#
# The default is SYNC_DOWNLOAD_THRESHOLD = 3
#
#SYNC_DOWNLOAD_THRESHOLD = 3
#
#######################################################################

#######################################################################
# 同步下載適應:如果SYNC_DOWNLOAD開啟
# 這個值詳細說明這個選擇的彈性下載資料週期限制
# SYNC_DOWNLOAD_RESILIENCY: If SYNC_DOWNLOAD is enabled then the
# value specified for this option limits the downloaded data
# to this resiliency period or greater.
#
# 彈性時間定義一個駭客第一次知道的攻擊一段時間和他最近的攻擊
#
# Resiliency is defined as the timespan between a hackers first known
# attack and it's most recent attack. Example:
#
# 如果集合管理denyhosts.net伺服器記錄攻擊在2PM且在一次在5PM攻擊(間隔3h)
# 同步下載彈性時間為4h,將不會下載這個IP位址
#
# If the centralized denyhosts.net server records an attack at 2 PM
# and then again at 5 PM, specifying a SYNC_DOWNLOAD_RESILIENCY = 4h
# will not download this ip address.
#
# 無論如何,如果攻擊者再一次攻擊'紀錄在6:15PM,IP位址將會被下載到你的DenyHosts事例當中
#
# However, if the attacker is recorded again at 6:15 PM then the
# ip address will be downloaded by your DenyHosts instance.
#
# 這個值和SYNC_DOWNLOAD_THRESHOLD使用連接,且只有唯一的hosts滿足此兩個值才會被下載
# 這個值再SYNC_DOWNLOAD_THRESHOLD為1時沒有影響
#
# This value is used in conjunction with the SYNC_DOWNLOAD_THRESHOLD
# and only hosts that satisfy both values will be downloaded.
# This value has no effect if SYNC_DOWNLOAD_THRESHOLD = 1
#
# The default is SYNC_DOWNLOAD_RESILIENCY = 5h (5 hours)
#
# Only obtain hackers that have been at it for 2 days or more:
#SYNC_DOWNLOAD_RESILIENCY = 2d
#
# Only obtain hackers that have been at it for 5 hours or more:
#SYNC_DOWNLOAD_RESILIENCY = 5h
#
#######################################################################

星期五, 7月 13, 2007

安裝 MysQL [use Without installer (unzip in C:)] for WinXP

1. 將mysql-noinstall-5.0.45-win32.zip解壓縮到c:\,並將資料夾更名為mysql
2. 使用命令提示字元,進入c:\mysql\bin
3. 輸入C:\mysql\bin>mysqld-nt -install
Service successfully installed.

C:\mysql\bin>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
4. 這樣即可開始使用mysql,帳號預設為root,密碼無

星期四, 7月 12, 2007

IIS + PHP 安裝指南,讓 ASP 與 PHP 共生

以下轉載自 Link!

IIS + PHP 安裝指南,讓 ASP 與 PHP 共生
以前我推薦安裝 PHP Server 比較懶人的作法是 Appserv 2.4.3 ,但是由於 Apache 和 IIS 互相衝突,兩種服務只能啟動其中一種,因此 Demo ASP 和 PHP 網頁時就要在那邊切換來切換去,後來考慮到這種作法實在太不專業了,因此只好放棄 Appserv 著手研究另一種可能性,IIS + PHP。在這裡的教學是以 WindowsXP 作為平台,並以 IIS 作為 PHP Server。

序、前言
介紹 PHP 的話,就必須要包含到這些項目:
1. PHP
2. PHP 的好朋友 MySQL
3. MySQL 的經紀人 phpMyAdmin

而這幾位也都不是省油的燈,建議最不會發生問題的版本如下:
1. PHP 4.4.0
2. MySQL 4.0.26
3. phpMyAdmin 2.6.1-rc2
只要不是以上版本幾乎都會在各種領域嚐到苦頭(只有 phpMyAdmin 狀況比較少一點)。

那麼請先將以上項目搜集完畢,請全部找到 zip 壓縮版本,而不要用安裝版本,備齊這些資料就可以開始了。

示範平台:Windows XP,IIS 5.1

一、安裝 PHP
將 PHP 檔案解壓縮到 C:\php (解壓縮後此目錄下應是數個檔案夾)
將 php4ts.dll copy 到 C:\WINDOWS\system32
將 php.ini-dist copy 到 C:\WINDOWS 並更名為 php.ini

開啟 php.ini
找到 extension_dir = "./" 改成 extension_dir = "C:\php\extensions"
找到 ;extension=php_mbstring.dll 改成 extension=php_mbstring.dll
將 php.ini 存檔後關閉

二、設定 IIS
控制台 > 系統管理工具 > Internet Information Services (沒有請自行安裝)
本機電腦 > 網站 > 預設的網站 按右鍵選內容
找到 [主目錄] 按 [設定]
按 [新增]
在執行檔填入 C:\php\sapi\php4isapi.dll (或是按 [瀏覽] 找到這個檔案)
副檔名填入 .php
一直按 [確定] 並離開 IIS

三、測試 PHP 環境
請到你的網站資料夾上新建一個檔案 phpinfo.php ,內容只有一行如下:

開一個新的瀏覽器,並在網址列輸入 http://localhost/phpinfo.php
如果有出現 php 相關訊息就代表安裝成功了。

四、安裝 MySQL
將 MySQL 檔案解壓縮到 C:\mysql (解壓縮後此目錄下應是數個檔案夾)
依下列程序安裝 MySQL 服務
開始 > 執行
輸入 C:\mysql\bin\mysqld -install 按確定

五、繼續之前,先進入不可不知的 MySQL 講座
一般在 WindowsNT/2000/XP,MySQL需要安裝成為一個系統服務。
你可以在以下程序看到 MySQL 服務。
我的電腦上按右鍵選管理
服務及應用程式 > 服務
在 MySQL 上點兩下(如果沒有找到代表你安裝不成功)
啟用類型: 自動.. 服務狀態: 已啟動 才是正常,如果不是請設定成這樣。經過此設定後,MySQL 服務將會在你每次開機後自行啟動。(不錯吧)

如果要移除 MySQL 服務,請作以下動作
先停止 MySQL 服務,我的電腦上按右鍵選管理
服務及應用程式 > 服務
在 MySQL 上點兩下
啟用類型: 自動.. 服務狀態: 已停止,設定成這樣。
開始 > 執行
輸入 C:\mysql\bin\mysqld -remove 按確定
需注意的是,若沒有這個動作自行刪除 MySQL 檔案,這裡的 MySQL 服務就會變成無法移除了!

六、安裝 phpMyAdmin
將 phpMyAdmin 檔案解壓縮到 (你的網站資料夾)\phpmyadmin (解壓縮後此目錄應是數個檔案夾)
開一個新的瀏覽器,並在網址列輸入 http://localhost/phpmyadmin/index.php
有畫面的話,就是代表安裝成功了。

為什麼 php 安裝程序都這麼複雜啊,我只能說,免費有代價...

星期三, 7月 04, 2007

免費防毒軟體+防火牆

免費防毒軟體+防火牆


防毒:Free Anti-Virus Protection - Active Virus Shield
http://www.activevirusshield.com/antivirus/freeav/index.adp

手動更新病毒碼
http://www.avira.com/en/support/vdf_update.html

防火牆:Jetico
http://www.jetico.com/

星期六, 6月 23, 2007

Paul sings Nessun Dorma high quality video/sound



Nessun dorma, nessun dorma . .
無人能睡!無人能睡!
Ma il mio mistero e’ chiuso in me,
但我的秘密隱藏在我身上
Il nome mio nessun sapra’,
無人知曉我的名
no, no,
喔!不,
Dilegua, o notte!
離開吧,噢!夜晚
Tramontate, stelle!
星辰也將沈沒
Tramontate, stelle!
星辰也將沈沒
All’alba vincero!
屆時我將會贏!
Vincero!
我將會贏!
Vincero!
我將會贏!


Paul Potts於準決賽中的演唱Time to Say Goodbye



原唱

星期三, 6月 13, 2007