跳到主要內容

發表文章

軟體版本編號方式

  Apache Portable Runtime Project Version Numbering  這分文件詳細定義編號意義,讓編號代表明確的軟體工程意義。 基本上就是3個數字組成:  MAJOR.MINOR.PATCH 每一個數字改變都有相容性上不同的意義。 由github 提出的版本編號規格: Semantic Versioning

Application Framework 設計感想

關於一個application framework 該怎麼設計,根據這陣子工作的經驗,整理一些心得。 使用時鬆散,設計時嚴謹。 鬆散是方便使用者,算是抽象化帶來的好處,使其不需要瞭解運作細節就可以使用。設計嚴謹才容易在其上發展更多應用,如輔助工具等。可以讓你鬆散使用的技術,背後在設計的時候都有嚴謹的定義,當運作不如你預期的時候,可以依循一個嚴謹的規則檢視背後的運作流程來除錯。 從簡單的原則與概念開始,漸進地增加概念。 每次增加一個概念,都要與既有概念一起比較分析,看有無衝突之處。 Spring framework 最早只從一個 Dependency Injection概念開始,發展到今天成為一個 de facto Java EE standard。 我相信儘可能的維持簡單才是好的設計,因為人的心智是極為有限的。 整體應維持一致的設計哲學。 兩種相反的程式語言設計哲學: Python: There should be one-- and preferably only one --obvious way to do it Perl: There's more than one way to do it. 沒有對錯,只有維持一致才不會讓使用者混亂。 有一致的規則,使用者容易理解,可以舉一反三,不用事事皆需查文件,也無需針對各種情況寫文件。 從使用角度來定義需求,並用嚴謹的技術去滿足。 從使用者角度評估才能解決他們真正的痛點,但用嚴謹的技術才能維持長久發展。 Framework 新創的抽象概念應有明確的定義。 定義不清楚將導致使用者學習的障礙。 Application framework不是Application Application framework的目的是協助它的使用者建造application,而application(應用程式)本身是要解決應用情境的問題。所以application framework的抽象層次要更高一點,不要對應用情境有過多的假設。

TortoiseGit (Git 客戶端)

TortoiseGit是Windows下可用的Git 客戶端,可用來與Github連線,push及pull程式碼 簡單裝安裝教學: [教學]初心者git (TortoiseGit) + GitHub使用教學 使用的時候記得啟動Pageant (Putty agent)並把產生的private key加到Pageant中,才可進行ssh通訊。

免費圖片圖示下載網站

照片 PHOTO PIN 需加註圖片來源 介紹: http://www.techbang.com/posts/9866 http://www.soft4fun.net/website-recommand/photopin-free-photo-gallery.htm freepixels 介紹: http://blog.xuite.net/loveisa/media/19739611 小圖示 http://icons.mysitemyway.com/

大衛 鮑森新約、舊約綜覽

大衛 鮑森(David Pawson) 的新約、舊約綜覽是非常好的讀經教材,他深入淺出的講解聖經,保證讓基督徒在聖經中找到前所未有的亮光。 以下是一些相關的網路資源: Mp3 福音影視網 新約綜覽 舊約綜覽 正版DVD有附上課程內的所有中文圖表與講義,值得收藏。

為新手撰寫技術文章的方法

觀察 "XYZ" for Dummies這類書籍中使用的撰寫方式: 每章開頭有漫畫 將要描述的觀念、步驟,條列式、分點 配合圖示來標注要強調的段落 採用較大的標題,標題用特別的字型 儘量使用圖片說明想法 另闢一區特別解釋專有名詞 其他作法: 從讀者的角度去訂標題 只提供一種不容易出錯的操作步驟 去除非必要的程式碼與技術細節

使用Google Custom Search REST API

介紹: 我使用v1 https://developers.google.com/custom-search/v1/overview 準備工作: 只要有Google 帳號就能申請,但一天只能免費查詢100次 申請設定custom search engine 並取得engine ID 申請Google API使用權限 並取得 API key 作法概念: 發出Http GET request 到下面的URL並設定好參數 https://www.googleapis.com/customsearch/v1?key=[INSERT-YOUR-API-KEY]&cx=[CUSTOM-SEARCH-ENGINE-ID] 範例程式: public String search(String keyword){ StringBuffer result = new StringBuffer(); try { HttpURLConnection connection = (HttpURLConnection)new URL(CSE_URL+"&q="+keyword).openConnection(); connection.setRequestMethod("GET"); connection.setDoOutput(true); connection.connect(); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; while ((line = reader.readLine())!=null){ result.append(line); } }catch (Exception e) { e.printStackTrace(); } return result.toString(); } 使用 Custom Search API - Java library : Javad...