這個網站曾經是用 Ubuntu 、 SQLite3 、 Django 、 Apache2 所架構完成的。而今我已改成 Google App Engine 了。所使用的工具仍是 VIM 、 Python 及 Firefox , VIM 是我最喜歡的編輯器, Firefox 是我最喜歡的瀏覽器,而 Python 目前是我最喜歡的程式語言。雖然我的個人網站換成 GAE 是主角,但是對於我其他的程式設計工作來說, Django 還是佔大宗。
我常用的軟體工具有一個共同點:都是 Open Srouce ,也就是免錢給你用到爆的那種(嚴格地說:是讓你自由運用的軟體)。至於效能如何呢?那就要問各位觀眾啦! 覺得不好告訴我(應該很難,我還沒遇過認真對我說不好的人),我會改進的。
本網站的架構從 Django Web Framework 改成 Google App Engine ,花了我大約二天的時間,因為 GAE 不只是 Web FrameWork ,它還有 Web Hosting 的功能,連帶著管理工具也得學一學。
我相當偏好網頁程式設計,或許是我比較擅長這個,但我個人認為將來網頁程式的重要性及普遍性會遠高於桌面程式的。
過去 Internet 剛流行的時候,有些人覺得網頁程式應用不夠豐富,所以引進了 Java Applet 、 Flash 這些東西來讓使用者上網的時候覺得和使用桌面軟體一樣,不過,現在來看,這些應用都有些缺點,所以只能用在小眾市場中,無法大規模地取代 HTML + HTTP 。
現在許多的網頁應用開始普及,有許多原本作在桌面應用的軟體都需要額外寫一個 Web 端的展示系統,像是 CRM 、文件管理、財產管理系統、各式報表系統、會員管理系統……等,所以同一個資料庫,有兩種程式作存取,一種是桌面程式,一種是網頁程式,工程師也要花兩倍的力氣來維護、設計相同功能的不同軟體,這很累,是吧!
過去,我們在網頁程式嵌入桌面程式來符合需求,結果不盡人意,那現在我們就直接把網頁程式變成桌面程式吧!
仔細想想這是可行的。試想使用者打開一個瀏覽器鍵上了 http://localhost:5235/ ,而它與本機的 Apache (或是說 HTTPD 伺服器)接上了,經過了伺服端程式的運算還給使用者一個登入網頁,接下來使用者使用這個系統來完成他的工作,這樣像不像桌面程式了。看到這,你應該會有兩個疑問:
- 反應速度會比較慢吧!
- 很多桌面程式的 event 行為是網頁程式學不來的呀!
第一個疑問,我沒有真實的比較數據,但以定性描述來看, Apache 是在使用者本機,它也就是使用者的桌面應用程式,所以沒有網路頻寬及遞延問題,而如果要連遠端資料庫的話,那桌面程式一樣也要連線,這部份應該是差不多。至於第二個疑問,慢慢地被解決了,利用 AJAX 概念,可能讓使用者在使用瀏覽器時,跟使用一般軟體感覺差不多。
但即使網頁程式取代桌面應用程式是可行的,我們為什麼要這樣作!!有幾個原因:
- 你只需要一種程式設計師
- 使用者只需學會一種軟體,而上網通常是比較容易學會的
- 這軟體本身就是網站,可直接作成果分享或是客戶查詢介面
- 程式更新只須在伺服器上執行,而不需要使用者下載安裝更新程式
心動了嗎?和我一起研究 Google App Engine 和
Django 吧!
Go to Top
現職
興趣
實在很多。像是看原文書來假裝自己英文很好、喜歡跟人家有的沒的都聊聊、假扮文藝青年逛圖書館和書局等等。不過現在則是沉醉在自由軟體的世界中,夢想著拿它來改善人們的生活,培養人們的自信。讓大家都當個駭客。
聯絡我的方式
加密用的PGP公錀
Server: subkeys.pgp.net
ID: 0x244E7AEB 
Fingerprint: 39D5 9857 E340 2EB5 F3AD C7E8 98D0 4DDD 244E 7AEB
Download Here: http://www.hoamon.info/OpenTrunk/hoamon.pgp.asc
Go to Top
自我描述
阿蒙(amon)本名『何岳峰』,當初取阿蒙的理由來自『Interview with the vampire』電影中邪惡吸血鬼頭子(由安東尼奧班德拉斯飾演)的名字,但幾年後才發現他應該叫作阿蒙德(Armand),雖然是個誤會,但也因呂蒙的關係,我想叫『阿蒙』也是可以提醒我,還是要多唸書才能當個將軍,所以英文名字也就不改了。
我的個性是不忮不求,脾氣很好。興趣主要是讀書,涉獵範圍廣泛包含財經、管理、數學、物理、電腦作業系統、程式語言、歷史小說等。其他興趣還有慢跑、打太極拳、壘球、羽球、網球、桌球及爬山等運動;看棒球、美式足球、電影及推廣開放原始碼。
在家中排行老大也是獨子,有3個妹妹,這養成我獨立自主負責任的個性。父親是在中華電信工作,母親是標準的家庭主婦,所以讓我的求學生涯能專心於汲取知識上。目前我與家人搬到埔里定居。
二十七歲時結婚,另一半目前於埔里鎮愛蘭國小擔任四年級導師並兼資訊組長,由於兩人皆熱愛應用資訊技術,所以常常討論網路佈線、網頁伺服器架設及網頁程式設計等問題。
會走向程式設計/系統管理這條路,要感謝我的研究所指導教授在我研二的時候給我一個題目---如何架站!所以我從 ASP+IIS 、 Red Hat Linux 開始玩起,接著是 Apache 、 MySQL 、 PostgreSQL 、 PHP 、 Perl 、 Python ……,逐漸開啟我資訊應用之路。
對工作的態度是積極作好每一件事情,不會的事物我會主動求知、學習,持續更新個人資訊技術以維持最佳狀態。在團隊中能和同事充分配合,分享資訊、知識,共同完成組識願景。
學經歷
學歷:中興大學土木工程學系營建管理組博士班、中興大學土木工程學系營建管理組碩士班、中興大學土木工程學系、 台中二中、台中市四育國中、台中市和平國小。
高中時期相當活躍,加入台中二中龍吟社(辯論社),並擔任公關角色,在班級幹部方面,擔任過副班長、風紀股長。大學時期擔任班級公關、畢冊編輯及「第四屆營建工程與管理研究成果聯合發表會」之事務組組長。研究所時則擔任測量資訊組的總務。
大學時代,唸的是土木工程學系。中興大學的校風自由、環境清新,也藉此吸收了人文氣息及累積多元能力。且在土木工程學系的四年求學生涯中,反而讓我對於一個大型的營建專案管理有了基本的認識,也因此對我目前所專注的軟體工程(軟體專案管理)有莫大的幫助。到了研究所,則選擇了符合興趣的學科-營建管理。畢業論文作的是較偏生產管理-網路規劃應用於多塔吊計劃之最佳化。
研究所期間並擔任謝孟勳老師的專任助理,處理教學、研究及行政上的一般事務。並在老師兼任推廣教育組組長時,擔任推廣教育中心工讀生,處理在職教育推廣之相關活動。
當兵期間,選擇文化服務役(替代役),服務於國史館台灣文獻館,並在地方行政研習中心(原省訓團)擔任志工,從事期刊編目及上架的工作。在文獻館的工作是非常多元的。有整理總督府檔案、圖檔整理並掃瞄、後設資料庫系統規劃、委外掃瞄圖檔驗收、出版日治時期市區改正圖錄集、古籍(風港營雜記)掃瞄、維護網頁伺服器及開發動態網頁 http://unicode.hoamon.info/index.plx 解決難字問題還有一些運用程式解決問題的雜項工作 http://blog.hoamon.info/2007/01/blog-post.html 。服役期間並獲得九十二年兵役節表揚績優服勤機關暨獲內政部役政署頒績優團體獎金等兩項榮譽。
第一份工作,任職於中華聯網寬頻股份有限公司,擔任網路工程師,負責無線服務認證系統、公司內部閘道器、檔案伺服器、原始碼版本伺服器、資料庫伺服器、機房建置及教育訓練(含系統管理觀念及程式設計技巧),除了系統管理的工作外,也撰寫動態網頁程式,像是無線服務的信用卡刷卡網頁、無線服務的會員管理系統等。工作內容相當有挑戰性,很多系統都是親手從無至有開發建置而成。
第二個工作在暨大擔任行政助理,推動教學卓越計畫子計畫7-2 http://seep.cdc.student.ncnu.edu.tw/ 。工作內容有:
- 畢業生資料匯整分析及撰寫報告。
- 規劃企業參訪、讀書會、系友會活動及專案進度管理並撰寫活動成果報告。
- 生涯發展中心圖書資訊系統規劃及建置。
- 畢業生聯繫平台規劃建置及管理。
- 規劃生涯發展中心網站規格。
- 各式活動經費核銷。
- 其他長官交待事項也就是瑣事(如畢業典禮協助、幫忙發便當…)。
目前除了是中興大學土木工程學系謝孟勳老師的博士班學生外,也是他手上研究計劃的助理,研究各式資訊新技術應用在營建管理的可行性,像是 AJAX 、 Web Service with Python 、 XML Parser 、 Web Framework …等。也在研究 TurboGears 、 Django 、 Ruby On Rails 、 ASP.NET 、 ActiveRecord 的設計概念,並實作 TWD (Turtle Webpage Dev) 專案,讓自己參透網頁程式框架,但目前所專注的是現今最好用的 Web Framework 之一: Django 。
專長
- Data Mining: 運用主成份分析、集群分析、關聯法則、生物資訊來分析龐大無序的資料。
- 問題意識及溝通規劃: 對於全新面臨的需求/觀念,能快速有效了解問題及瓶頸所在,並與伙伴分享想法,提出解決方案。
- 生產管理(線性規劃): 主要解決生產組合成本、工率問題、人員分派最適化等。
- 營建專案管理/系統分析: 營建專案通常具備龐大的特性:時間長、人力雜、物料多。這三個因素也造就了問題多。營建專案的週期分為五段,構想階段、設計階段、發包階段、施工階段、維護階段。愈早階段犯下的錯,付出的修復成本愈高。而我個人認為營建專案管理可應用於軟體專案管理(軟體工程)上,就像 fred broks 的人月神話(軟體專案管理名著)一書中所舉的例子,十之八九都是營建工程,像是失敗的巴別塔、莊嚴的大教堂……等。兩者的特性有大半部份是相同的,例如一樣都要寫規格書(施工說明書)卻都不重視規格書的寫作、業主都不具資訊或營建專長及開發時程常常延誤……。所以從軟體發展的趨勢來看,軟體專案也開始注重外包與整合。
- Matlab (高階數學程式語言): 為實作線性規劃、多變量分析方法的工具。現已被 Python 所取代。
- Open Source 應用(開放原始碼應用): 有效地運用 Open Source 像是 Linux 、 Apache 、 Postfix 、 MySQL 、 PostgreSQL 、 BIND 、 GNU RADIUS ……等,能降低成本、提高品質。之前的工作就有好幾個 Open Source 的應用實例:無線服務認證系統、公司內部閘道器、檔案伺服器、文件版本伺服器、 資料庫伺服器。並自行開發 Open Source 專案來解決無線安全問題、快速開發網頁專案等。
- PHP (動態網頁設計): 寫了幾個小網站。與老婆一起協助幫忙縣政府財產課寫了一個土地管理系統,此專案運用了 FPDF 模組,另外還有自己的網站以及 TWD 網頁開發框架。現已被 Python 所取代。
- Perl (多功能程式語言): 用 Perl 寫了無數個泛 Unix os 的工具程式。 Perl 是一種很靈活的語言,可以只花費約二十分鐘的時間,就寫好程式來處理資料夾分類、字串抓取、網路抓檔等系統管理的工作。現已被 Python 所取代。我也用它寫了一個難字資料庫,負責查找中文難字的 unicode 碼以輸入總督府後設資料庫中。
- Python (Perl的最大競爭者) plus Django : 在系統管理方面, Python 語言也是相當優秀的,因為 Perl6 遲遲未出來,也就讓我轉向使用 Python 來作系統管理了。
目前用 Python + Django 作了工程遠端監造系統(日報表、施工網圖、工程督導)、工程法律判決案例查詢系統、報名系統、資訊融入教學系統、問卷系統等,對我來說它已取代了 PHP 語言了,我現在已經不想用 PHP 寫網頁程式。
而 Python 語言也漸漸取代 Matlab 對我的重要性,許多我需用的數學函式庫,都可以在 Python 中找到,像是 Cluster, Linear Programming , Matrix , Bioinfomatics 。
所以簡單講,我已把我的語言重心放在 Python , Django 上了。
Go to Top
我的第一份正式工作是網路(系統)管理員,主要是利用X86架構的硬體結合 Linux 或是 FreeBSD 來執行網路串接、網頁展示、服務認證、檔案傳輸、資料庫管理/備份等。當時,我的最大目標是「同時管理超過 44 台Unix-like的伺服器」。不要嚇著了,44台只是Unix管理員的平均管理數目,也就是就算我同時管理44台機器了,仍舊輸給一半的Unix管理員。而當時,我沒有達到這個目標就離開這家公司了。總計我當時在公司所管理的機器:
- 無線上網閘道器:2台
- NAT閘道器:2台
- PPPoE伺服器:5台
- RADIUS認證伺服器:1台
- CVS版本控制器:1台
- FTP檔案伺服器:1台
- Samba檔案伺服器:1台
- 資料庫伺服器:2台
- httpd網頁伺服器:1台
共16台而已。雖然也有一些不屬於我管理,但有時候會幫忙看的伺服器若干台,我還是離平均值很遙遠。
第二份工作,就單純多了(以系統管理員的角度來說,而不是行政助理),我只管理4台機器,主要是網頁伺服器、資料庫伺服器及域名伺服器。
而以下是我曾經管理、現在還在管或是我所寫的網站:
我所寫的網站
- 難字資料庫: 在國史館台灣文獻館服替代役時,因公務上經常接觸古日本漢字:畑、粂、喆、榊、穐、蕋、鰺…等,但在windows上並無法打出這些字,所以我整合 Unicode 及 CNS11643 兩網站的資訊,使我們可利用部首、筆劃、倉頡碼來找到輸入法打不出的字。
- 南投縣有非公用土地管理系統(非公開網站): 這個網站是我和老婆一起合作開發的。這網站的功能主要是管理土地的使用資訊,並能將繳費單製作成PDF文件在任何機器列印出來。因為利用PDF的可攜性特色,所以使用者不需煩惱這個管理系統需要安裝什麼廠牌的列表機,也不需要煩惱這個系統如何安裝,因為使用者只要有瀏覽器就能使用。
- 無線服務會員入口網: 當我接下這個網站開發時,我把以前常懷胸中的網頁技巧付諸實現,VC架構、多國語言、樣版合成、router控制等想法一股腦地實現在這兒,這也是 TWD 應用的第一個案例。不過它使用的TWD主架構已經離目前所開發的有一大段差距了。
- 愛蘭國小資訊整合網: 中小學的資訊應用環境多半是整合現有的程式模組來作精彩內容的呈現,但在這麼多應用的模組當中,每一種服務的頁面多有不同,所連結的網址也十分紛亂。於是我利用 TWD 來製作一個目錄索引系統,整合所有使用模組,讓使用者不致迷失在浩瀚的網海中。
- 校友資料網站: 我在暨大工作的主要業務是找校友。這網站是我與兩個資工系兼任助理一起作的,只有兩個表單及一個資料表的處理,屬於小小網站,但這個網站的主架構也是用 TWD 開發的。
- 個人網站: 也就是你現在看到的這個網站。已經改成 Django 了(註: 現在則又改成 GAE 了)。
現在還在管的網站
- moinmoin: wiki系統,我們營管組用這個來作研究成果的筆記網站。
- Trac: 程式專案管理系統。
- 程式碼版本控制器:還在用複製的方式備份你的程式碼嗎!太沒效率了。之前我使用 CVS 來作版本控制,不過後來發現 Subversion 更好用,所以我的程式全換用 Subversion 來管理了,但是後來發現 Mercurial 更棒,所以我又改用 HG 了。版本控制器不只是方便讓你與伙伴共同開發專案,也便利你個人使用,尤其是網頁程式,有時候我們在修改程式時,一下子要改 5~6 個檔,函式庫的啦、畫面顯示的、運算邏輯的、設定檔的啦都要一起改,改到後來都頭昏了,也不知道改到那,更可恨的是,客服小姐又打電話來問你問題,等回過神來,又要準備下班了,如果你的效率是這樣子浪費掉的,建議你早學早超脫。
- 秘密的版本控制器:為什麼是秘密呢?因為這是我放所有機器設定檔的版本控制器,什麼!!連設定檔都可以作版本控制器。其實不止,如果你想的話,寫的小說、拍的寫真集、聯絡簿之類的東西都可以,其中以純文字檔最佳,而二元檔次之,因為二元檔在差異比較上,人眼是看不出差在那裡的,所以,只能知道有差。 現在我也開始使用 Mercurial 版本控制器,它與 Subversion 最大的差別是 Mercurial 可以作離線 commit ,但 Subversion 不行。且 Mercurial 是用 Python 寫的。
曾經管過而且有趣的網站
- 討論區: 曾經架過一個討論區是用 phpBB2 架的,有點後悔用這套 open source 軟體,因為它的架構不是用 MVC 作的,更新個模組,居然要我親手貼程式碼。現在我則是使用 Google Groups 來作我的討論區。
- 我與老婆的 Blog: 我和老婆的心情 Blog,是用 LifeType 架的。還滿好用的 Blog 系統。這個就有用 MVC 架構啦。不過現在我們都把 Blog 放到 blogger 去了。
- 我與老婆的相簿: 用 gallary2 架的,也很好用。主要是放些生活照片。不過我們現在也都把照片放到 picasaweb 去了。
- Web Mail: 我本身也架了一個 Mail Server ,跑在 smtp 及 imaps 上面,平時,我都是利用 ThunderBird 在收信的, 只是有時候我與 IBM NoteBook 無法隨時隨地在一起,這時候如果有網路,我就可以透過 Web Mail 收信了。現在我也把 mail 的部份轉給 Google Apps 了。
- 域名伺服器: 我自已曾有個網域 amon.idv.tw 。所以像是 www.amon.idv.tw 、 grace.amon.idv.tw 、 iloha.amon.idv.tw 的網址都可以自己設定,自己設的好處是要設多少域名都可以。只是我現在是和 GoDaddy 買下了 hoamon.info 網域,而它們提供簡單易用的 Web Interface 來作 DNS 設定,所以我也就不用自己架台 DNS ,從這一點可以看出中華電信距離國外公司的資訊能力還有一大段差距。
- 無線網路認證網: 當你連上中華聯網寬頻所提供的無線網路時,首先你會來到這個頁面,你可以填入帳號及密碼後使用無線服務,也可以試用 3 次,當你覺得網路品質不錯,想要購買會員,也直接利用這個網站來到信用卡刷卡頁面,付費後取得帳號及密碼。這個網站是我到中華聯網寬頻工作時的第一個挑戰,是個很有趣的挑戰。它使我了解 RADUIS 認證原理、基本路由原理、防火牆原理及 Perl 模組設計。
Go to Top
要了解一個人,「聽其言而觀其行」是充分要件。而在這個網路時代中,除了面對面溝通外,透過所寫的文章也是一種方法。以下是我所寫的 blog 文章,其中可找到些線索,如果你願意了解我的話。
Go to Top
目前還沒有出版任何著作,只是有一些東西想要寫,像是 Python 教學手冊、 Web Framework 程式設計、工程經濟等。
Go to Top
資料只要放在網路上,那在技術上就沒有保密的必要性,因為無論這麼鎖,總有方法可以拿; 而在道德上也就沒有規範的必要性,因為你的道德不屬於我的權利。
這個網站上的資料,怎麼用隨你囉~
Go to Top