旅遊日期:2012 年 11 月 24 日。
第八天行程:大阪 肥後橋(地下鉄四橋線) -> 地下鉄なんば駅 -> 南海電鉄 住吉大社駅 -> 住吉大社 -> 関西空港 -> 桃園機場 。
這天是賞楓旅程的最後一天。由於我們返台搭乘的班機時間是在下午,上午還有半天的時間可逛。一般可以選擇去関西空港附近的臨空Outlet (Rinku Premium Outlet),或者在難波駅附近的日本橋、黑門市場再逛一下。不過我們這次選擇去參觀南海電鉄沿線的住吉大社。
原本的如意算盤是先逛完住吉大社再去臨空Outlet,不過最後時間實在不夠。
旅遊日期:2012 年 11 月 23 日。
第七天行程:大阪 肥後橋(地下鉄四橋線) -> 地下鉄なんば駅、大阪難波駅 -> 近鉄奈良線 -> 近鉄奈良駅 -> 興福寺 -> 春日大社 -> 奈良公園 -> 東大寺 -> 大阪 難波 -> 日本橋 -> 黑門市場 -> AKB48 Cafe & Shop 難波店。
本日全程使用関西周遊卡三日券。但是要注意,在奈良境內的巴士,不適用関西周遊卡。從近鉄奈良駅到春日大社這一段路,步行距離約1.5公里。
旅遊日期:2012 年 11 月 22 日。
第六天行程:四条河原町 -> 清水寺 -> 建仁寺 -> 青蓮院 -> 知恩院 -> 円山公園 -> 長樂寺 -> 八坂神社。
青蓮院、知恩院、円山公園、長樂寺和八坂神社這五處是相鄰的,後門通前門。一次就可以走完。
交通使用巴士一日券。
本文接續「CommonGateway 初步」的內容,說明 CommonGateway 如何處理 JSON 文件與資料上傳。
HTTP協定關於要求與提交文件型態的規範
HTTP協定定義了兩項關於文件型態的標頭(header),一為 Accept,二為 Content-Type。
在傳統的 REST-like 應用中,這兩個標頭的原始定義並沒有被廣泛採用。大多數程式人員都是透過自定的額外參數來決定服務端該回應什麼文件型態給客戶端。
但在 RESTful 服務的設計場合中,文件型態的交換方式則回歸到這兩個標頭的原始定義了。
所以程式人員必須先分清楚這兩個標頭的使用場合。
旅遊日期:2012 年 11 月 21 日。
第五天行程:四条河原町 -> 天龍寺 -> 寶筐院 -> 嵯峨野觀光電車(嵯峨野トロッコ列車) -> 常寂光寺 -> 二尊院 -> 大覺寺。
今天是電車與腳踏車行程。巴士一日券不適用嵐山地區。関西周遊卡不能搭嵯峨野觀光電車(這屬於JR系統),而嵐電地面電車來回也只需400円。所以今天沒有使用任何優惠票券,主要交通費用是JR電車費790円和腳踏車租金1000円。
CommonGateway Framework (以下簡稱 CG)。概念請見「CommonGateway 介紹」。源碼託管於 github : common-gateway-framework ,主要程式碼只有一個 index.php 。
本文範例之完整內容請見「demo/api-first-step」。以下將逐步說明如何使用 CG 設計你的第一個 RESTful API 。
把 CG (也就是那個 index.php) 放在網頁根目錄下,然後以瀏覽器或你慣用的 REST client 工具開啟網頁。本文範例的網頁根目錄是 /home/rock/public/cg
,瀏覽器開啟的 URL 是 http://localhost/cg/index.php
。開啟後,會看到下列的提示內容:
index.php/{control_name}/{object_id}.
You may put your controller class in controllers/{class_name}.php.
CommanGateway Framework 是一個極小化的 PHP Web 框架。它的主程式就只有一個檔案 - index.php 。
我原先甚至不將它稱為 framework ,而只是一個導入器。但解釋麻煩,還是按一般認知,當它是框架吧。
CommonGateway 主要設計目的是用於設計 RESTful API 或是 Single page web app 。
它按照 MVC 的設計模式,將 Web 應用服務分成三個部份,即資料模型(Model)、流程控制項(Controller)與視圖(View)。
CommonGateway 替設計人員處理控制項與視圖工作。
至於資料模型則不是 CommonGateway 的責任。資料模型由設計人員透過其偏好的資料庫框架處理。
CommonGateway 為設計人員完成下列工作:
- 根據 URL 路徑(PATH_INFO) 選擇 Web 應用服務的控制項。
正是這「依路徑選擇目標」的行為特徵,而且又是 Common Gateway Interface (CGI) 的實作項目,故我將此項目命名為 CommonGateway 。
- 它會將客戶端送出的文件資料,預先處理成關聯式陣列結構。
除了傳統的 Query string 與 Form data ,它也能處理 HTTP PUT Method 會送出的資料。它也支援 JSON 型態的資料。
- 它會根據 RESTful 的原則,調用對應的控制項方法。
- 它會根據控制項方法的回傳結果與客戶端期望的文件回應型態,處理對應的視圖樣板。
- 它會儘量透過外部注入的方式,將其他資源放入控制項 (即 IoC 模式),減少對原有程式碼的侵入性。
旅遊日期:2012 年 11 月 20 日。
第四天行程:四条河原町 -> 東福寺 -> 三室戶寺 -> 宇治觀流橋 -> 興聖寺。本日行程使用関西周遊卡(KTP)。
原本還有計劃逛東福寺旁邊的泉涌寺,但東福寺實在大的出乎意料,所以上午的行程就跳過泉涌寺了。
下午則去宇治,看看不同地方的紅葉景觀。
我先前寫了篇「撰寫乾淨的 eval 程式碼的技巧」,其中一個應用領域是在不同的 JavaScript 端點間傳遞要執行的程式碼。
但我同事又碰到另一個狀況,他不只要傳遞程式碼,同時程式碼中還要有一段從本地端點產生的資料。
由於資料中包含複雜結構與字串,他原先的做法一直碰到斷句或是逸出字元錯誤的困擾。
於是我又在「撰寫乾淨的 eval 程式碼的技巧」這之上擴充了可以放入資料的內容。
旅遊日期:2012 年 11 月 19 日。
第三天行程:四条河原町 -> 金戒光明寺 -> 真如堂 -> 永觀堂 -> 南禪寺。
這一帶的觀光景點很多,例如平安神宮和哲學之道。不過我賞櫻時就去過這兩處,且它們紅葉季節的景色比較普通,就不去了。
永觀堂是所有旅行書籍都會推薦的紅葉名所,有紅葉的永觀堂(もみじの永観堂)之別稱。
介紹
我的手機系統是 Samsung Bada 。很冷門的系統,而且不提供我慣用的行列30輸入法。
事實上,我安裝的 Bada 2.0 系統沒有正體中文版,內建的中文輸入法只能輸入簡體中文,不符合我的主要使用習慣。
於是我以 HTML5 為基礎,設計了這個行列30網頁點取式輸入法給我自己用。
行列30輸入法請參閱維基百科「行列輸入法」條目,或者「行列小站」。
旅遊日期:2012 年 11 月 18 日。
第二天行程:四条河原町 -> 三千院 -> 曼殊院 -> 圓光寺 -> 詩仙堂 -> 叡山電鉄夜楓。因為這一天是假日,為了避免人潮,所以特意安排外圍的三千院行程。儘管如此,三千院還是很多遊客(笑)。
原本還有安排赤山禪院和鷺森神社。但是因為手機的時間跑掉了,早上的鬧鐘沒有準時響起,使我們晚了近兩小時才出發。赤山禪院和鷺森神社也就去不成了。
旅遊日期:2012 年 11 月 17 日。
第一天基本上是交通行程。
16:15 抵達関西空港,接著搭乘南海電鉄販售的「京都アクセスきっぷ」,坐了二小時的電車,在 20:00 前就抵達 Super Hotel 四条河原町。 Check-in 後一看時間才 20:00 ,就按預定行程搭公車前往清水寺觀賞夜楓(Light Up)。
- 2012-12-20 更換羅技 M215 微動開關。
- 2014-06-29 更換羅技 G300 微動開關。
前幾天滑鼠的中鍵「又」壞掉了。咦?我為什麼說「又」呢?因為這是今年我家第3隻中鍵壞掉的滑鼠了。我自己壞掉兩隻,家人壞掉一隻。
我近來都是用羅技的無線滑鼠,我壞掉的兩隻分別是 M215, M310。雖然不是電競滑鼠級的高檔貨,但價位也不是太便宜,大概一隻5百元上下。每次都是壞中鍵,心裡總是不爽快。看網路文章說只要換十幾元上下的微動開關就可以修好。於是把滑鼠一拆,然後我就看到真相了。
看完新聞《幾K才合理? 產發會議吵翻天》的感想。我最討厭「被代表」了,偏偏兩邊都是喜歡「代表」別人的貨色。
外勞基本工資脫勾一事,我的立場就是「要就都從一致的基本工資起算,要嘛就都沒有,我才不分本勞、外勞」。
加班工時一事。兩個問題,一是坑死人不給錢的工作責任制;二是,老闆和員工到底知不知道加班費怎麼算?
要加班可以,先把工作責任制廢除。否則加再多工作時間,都不會有加班費。
本文說明在多顯示器併用的場合中,X Window 環境如何得知顯示範圍尺寸、實際啟用的顯示器數量、以及將視窗放置在指定的顯示器。
基本概念
在 X Window 系統中,對於顯示功能定義了幾個專有名詞,分別是 Display , Screen, Monitor, Window 。
它們之間的關係是 Display 包含 Screen ,Screen 包含 Monitor 與 Window 。
Monitor 代表實際的顯示器,Window 則是負責與使用者互動的部件。
在這些專有名詞中,只有 Monitor 和顯示器硬體是一對一關係,其他都是抽象的軟體概念。
每年慣例的 IBM 開發者大會記事,今年台灣場是 8月28日。
活動當天,我有推一些照片。今天想到該整理到部落格上了。
活動主頁見此「Innovate 2012 IBM開發者大會」(當天的活動簡報已經提供下載了)。今年的活動主題是「Next, NOW!」。今年的主角不意外,「Next」就是指「雲端+行動」。
Debian/Ubuntu 系統與 NVIDIA 視訊晶片的視訊加速播放功能。
第一次發布日期: 2010-09-09
最近更新日期: 2012-09-26
適用的 Linux 散佈版本: Debian 6.0 與 Ubuntu 10.04 。
我使用的 NVIDIA 視訊晶片是 GeForce 8600 。