2014年6月25日星期三

近況

很久沒空更新了,若說近況如何,我覺得這張圖就能解釋。


註:

  1. Testing的東西不一定只是code,還有不同的生活方法
  2. 作為fans向遊戲的SAO虚空斷章讓我感到很滿足。

2014年2月1日星期六

讓Github幫你管理放在Amazon S3的網站 - 網站更新的自動化部署

用版本控制軟件(Version Control System)來管理網頁並非什麼稀奇的事情,概能容許多人同時修改,又可以追蹤變化,除了這些優點外,配合自動化部署(Auto Deployment)系統更可以自動把內容上傳到網站,大大簡化繁複的部驟,減少出錯的機會。

這裹我會用Tinyboy開源3D打印機計劃的網頁做例子,講解怎樣用Github及Travis-CI來管理網頁的發佈,設定好後絕大部份的發佈工作都可以經Github的介面完成,不用裝FTP,也不用碰網頁服務器,而且所有發佈都有記錄可尋,隨時都能回復(Rollback)到舊版本

理論上以下的框架也可以應用到其他軟件的自動化部署上,需要的是只是按個別需求客制化。

預覽流程


一般來說開發者/設計師都能在自己的電腦內查看及修改網頁內容,不過有時難免會大意弄錯,所以讓其他人檢查及回饋意見也很重要。那些Reviewer卻未必像開發者/設計師般精通技術,可以自已下載最新版的網頁,故此一般都會上傳一個預覽的版本供他們觀看。

把這個過程自動化可以節省不少力氣,不用重覆“修改->上傳”的步驟。





流程
  1. 開發者/設計師利用Git把最近的修訂推到Github
  2. Github會通知Travis-CI進行自動化的部署
  3. 及後Travis-CI再把內容上傳到Amazon S3檔案伺服器,該伺服器提供http://www2.tinyboy.net 預灠網站的內容
  4. Reviewer在不同設備、瀏灠器上查看 http://www2.tinyboy.net
  5. 然後回饋意見給開發者/設計師,讓他們再重新修改

Travis-CI

Travis-CI是一套為Github而設的Continuous Integration(CI)系統,每當收到新的commit就會自動執行測試程序,若成功則進行部署動作,過程中發生任何錯誤都會用電郵告知。 


Amazon S3

S3是Amazon提供的檔案伺服器,功能繁多,包括存放靜態網頁,因為價錢划算加上有API支援,這使得S3很適合用作自動化部署系統的一部份。

以美國東岸N. Virginia計算,少於1TB的情況下,每GB的儲存費用是USD $0.095,流量則是USD $0.12/GB,每1000個請求是USD $0.005,而且使用越多單價越平,加上Amazon經常派Coupon,基本上可以不太花錢就能擺放靜態網頁。 



正式版本的發佈 - Pull Request

預灠版本是為了收集意見及測試之用,過程全自動,並不存在任何審批的流程。但正式版並不一樣,總不能把未檢查的內容向公眾發佈,故除了各位Reviewer外,通常也會有一個至數位Gatekeeper存在,由他們操刀釋放正式版本。

S3並不支援FTP上傳,必須配合專用的工具,這使得Gatekeepr必須懂得使用這些工具,也需共享[密碼],前者要求用戶學習,然後後者又要擔心不小心讓密碼外流,出了事也沒有方法追查成問題所在。

最理想是用戶本身有自己的帳戶,然後上傳又能留下記錄追查,在這些要求下,github是個不錯的選擇。



流程
  1. 當Developer / Designer希望發佈正式版時,他們在Github上向Release分歧提交一個Pull request的伸請
  2. Gatekeeper在Github的介面上批準這個伸請
  3. Github從Master分歧中把修訂整合到Release的分歧
  4. Github通知Travis有新的修改
  5. Travis把內容上傳至www.tinyboy.net的S3 Bucket
在這流程中應用了一個Github的功能 - Pull Request,平常在軟件開發時會有機會出現不同的分歧,這個機制可以讓Github幫你進行分歧內容整合的動作,並且在網頁上留下記錄。

基於這個特性,也可以用作正式版的發佈之用。首先在這個項目中有二個分歧,一個是master,平常工作的地方,任何修改都會自動上傳到預覽網站。

另一個分歧是release,平常不會修改,當需要發佈正式版時,就會向這個分歧提出一個Pull Request。

Gatekeeper只要查看這個Pull Request的細節便能得知有什麼地方被條改了,Github的介面甚至能顯示圖檔在修改前後的變化:



確認一切妥當,只需要按下這個按扭便能發佈:


參考文件



2013年11月1日星期五

不明白Facebook的苦心就不許使用Facebook啊

Facebook一直在說要讓全世界都能找到你("Who can lookup your Timeline by name"),這次的改動不再是突然而來,而是有所準備而來,大概是以前被人罵了太多遍吧。

不過我沒有興趣去理解,因為這本來就是強逼性的行為,理解了又如何?可以反對嗎?可以伸訴可以反對,那才有了解的意義。所以間中彈出來叫你去了解的提示全都被我無視了。

到了昨天,由不定期的提示變成固定、除非你表示"OK , I Understand"否則繼續下去。

那又如何?繼續被我無視。

然後到了今天,終於不許我用Facebook。


除非按下"OK , I Understand",不然就無法使用Facebook,唯一例外是Mobile版本。

為了先向其他用戶傳播這個消息,我安裝了User Agent Switcher的插件,扮成Android貼文,那時大概是14:40左右。

一小時回來,發現這個漏洞已經被堵了,只要你的browser曾經用原來的agent設定連上,後來再改成Mobile也沒用。

看來Facebook已經下定鐵心,逼用戶“了解”,即使根本無法了解。包括以沉默對抗的權利都會被剝奪

2013-11-01 16:14 在Desktop browser裹用m.facebook.com可以跳過限制

2013年9月28日星期六

開始站著工作 - 自己動手做Standing Desk

[關於流動的standing desk組合,請參閱新文章:繼續站著工作 - 自己動手做standing desk (流動版)]
不知是因為年紀日長、還是缺少運動,這年間感覺到專注力、健康等都有所下降,在這時留意到越來越多人站著寫程式,聽說比起坐下來健康。


實際使用後覺得這方法真的非常之累,一小時是極限,之後坐下來就不想再動。

但在這過程中卻不怎樣會分心,異常地集中令效率提昇,至於要休息的問題反而是好事,有效地提醒自己要改變姿勢,及令眼晴休息。(比軟件有效)

那時候的Standing desk:


這是用現有的實惠(PriceRite)鐵架組裝的,只是改變層板的高度遷就自己而已。高度上挺不錯,可是很貴,而且有一個致命的缺點 - 不穩定

只是打字產生的震盪就會令Monitor產生搖晃,變相令眼晴更容易疲勞,就算是Ikea的鐵架也有同樣的問題,看來是這材料先的天性的問題。

選項有二:
☐ 買現成可昇降的桌子
☐ DIY - 繼續自己組裝傢俬
Freemax TCT-G3


Freemax的TCT-G3 Desk是一張很讚的人體工學桌,有三種姿勢任君選擇,在陣列室使用過非常之滿意,不過加上螢幕掛架就要近HKD $8000,價錢有點難以抉擇,而且我要先把家中的L型書檯拋了才容得下,工程過於浩大。

Ergotron Workfit-s



Ergotron's Workfit-S可以加在原有的電腦桌上,價錢也沒有TCT-G3那麼昂貴,不過來貨等候時間很長。

DIY
同時我也在找有沒有其他比較便宜的方案,在網上最多人的做法是用Ikea的LACK角几改造:


這個做法概便宜又方便(HKD $79.9一張),可是遇到一個問題,原來放鐵架的地方並沒有桌子,要先買一張桌子後再放這個LACK角几,如果桌子下面的空間只能放雜物的話,那會相當之浪費。

最後的解決方法還是用了LACK角几,但不是一張,而是2張:

最底一層放雜物,中間放打印機,上面則是工作的空間,讓空間的使用效率大大提高。

用2張LACK角几充當儲物空間,是頗出名的Ikea Hack,一來便宜,二來輕巧(LACK角几是非常之輕的)。

然後在上面再放床頭几(RAST BDS TABLE),在組裝時底板不要上足三口螺絲,並讓底板拉出一點,從側看會呈現一個L的型狀,之後再放一塊木板提供Keyboard及Mouse的活動空間便大功告成!

在Keyboard板及Lack角几之間有一個空位,可以放入雜誌、常用文件等東西。

中間可以放書本或文件架、在使用電腦時參考紙本的內容。

材料
  • RAST BDS Table 52x30 129.90
  • LACK Side Table (55x55cm) 79.9 * 2 = 159.8
  • EKBY LAIVA SHELF 24x59 $39.9
  • 幾口鋼牙螺絲
總造價:$329.6

規格:
Keyboard離地高度 : 97cm
Monitor離地高度    : 130cm

相關閱讀:

  1. 繼續站著工作 - 自己動手做standing desk (流動版)


2013年8月23日星期五

簡報上線 : Making Chrome Extension with AngularJS


這是我在第三次HK Web Developers Meetup上做的簡報,雖然主題是Chrome Extension及AngularJS,不過結果聽眾的關注點都放了在Web Store上的Malware XD

p.s 在簡報中間,我拿了一個Web Store上的Malware做例子,講解Chrome Extension的結構

2013年8月13日星期二

第二屆Hong Kong Mini Maker Faire

為了推擴Marker文化、靈感創意、DIY製造,創意設計及巧手工藝之完美結合,並推動本地創意產業及科技產業有所啟發,一群有心人將會舉辦一項名為Hong Kong Mini Maker Faire的活動!

這次是第二屆舉行,將於今個星期六(2013年8月17日)在PolyU的N112~N116室進行~歡迎大家參觀及互相交流!




另外我有份參與的Tinyboy計劃也會參加這個活動,屆時會展出由我們設計的小型3D打印機,並向大家分享如何把3D打印用在教育上的各種心德經驗。記得來我們的25號攤位啊~ 謝謝大家!



2013年7月21日星期日

誠徵開源軟件測試者 - Dualless 0.4 RC

我準備發佈一款叫做Dualless的Chrome擴充套件的0.4版本(開源軟件),不過因為有些UI的嘗試,希望在Chrome Web Store發佈前能有人幫忙測試及給予意見改善,有沒有人願意幫忙呢?


下載檔




這個軟件可以在Chrome裏進行視窗分割,把視窗分割成3:7,6:4,5:5等各種比例。


那麼用家可以一邊瀏覽Twitter/Facebook/Plurk,另一邊觀看其他網頁,又或者打開Google Keep/RMilk/Wonderlist的工作清單然後同時工作。

用法就跟一般的雙螢幕配置一樣,但不需要實際地使用二個螢幕,因為現在的16:9螢幕已經有足夠的解像度讓二個視窗同時顯示,Dualless活用這項特性來模擬雙螢幕的效用.

V0.3 功能
  1. 以特定比率分割視窗
    1. 同時支援水平及垂直分割
  2. 合拼視窗
    1. 把二個視窗合拼成一個,並且以最大化形式顯示
  3. 複制分割
    1. 按著滑鼠中間鍵點擊分割視窗,會在分割出來的視窗上打開一個跟現在分頁上同樣的網頁 (試幻想你在Google Drive中修改一份很長的文件,突然間發覺需要查看幾頁前的內容,用這功能就不用把畫面移上去又移回來)
  4. Mac OS的視窗管理模疑
    1. 分割後的視窗會自動霸佔整個畫面,在移到其他應用程式再回來,也會保持這個現像
V0.4追加功能
  1. 自動最大化
    1. 進行過視窗分割後,如果其中一方被關閉,另一個視窗會自動進行最大化佔據空白的空間
  2. 加入書籤功能
當中最需要測試的是書籤功能,那功能讓分割的同時載入一個已登記的網站,讓用戶記錄習慣了的使用模式,例如把工作清單的網頁放在右邊,把聊天網站族在左邊等等。

有誰能幫個忙嗎?

關於Bookmark功能的描述 (不看文件也可以,如果自己可以模懂怎樣處理,就代表UI沒有問題 :D )
安裝方法: 
  1. 在Chrome,打開工具 - 擴充功能 
  2. 把已下載的crx檔,Drag and Drop至"擴充功能"畫面 
  3. 確認後就能安裝 

介紹影片



2013年6月18日星期二

第二屆 World Internet Developer Summit !

香港一向都缺乏大型的開發者活動或會議,而World Internet Developer Summit是其中十分難得的一個。今年是第二年舉行,題目是 big data: Cloud - scale your application to million users,邀請了來自Google , Linkedin , Twitter , Mozilla , Microsoft , Square及Blackberry等世界性機構的人來分享他們關於Big Data及把應用擴展於數百萬人規模的經驗。

日期: 6月27-28日
地點: Cyberport (27號) 及 科學園(28號)

詳情及報名:
http://www.isoc.hk/wids2013/

參考資料:


=== 不正經的分割線 ===

記得xdite提過 「辦出人人滿意的網路聚會之黃金三點 」,分別是「正妹、網絡、食物」,要是每個活動都有以上三點,你說有該好呢?可惜就是太理想,而現實總是殘酷的.... 事實上有個不錯的網絡,還有令人滿以的紀念品,我就已經心滿意足...

上年派的Facebook手指不少人爭著搶,今年的紀念品好像也不錯?

(轉自Facebook)






Creative Commons License
本網誌Ben Lau製作,以共享創意署名-非商業性-相同方式共享 3.0 香港 授權條款釋出。