2012年6月30日

單車環島:行前準備之自行車水壺選購

水壺是單車長途旅行必備的用品,一般單車用品店隨處可見,買新車、參加活動可能都會贈送,一般單車族並不會太在意水壺。但是普通的便宜水壺(大約一百元左右),其實並不適合長時間、長期使用,特別是在陽光的曝曬下,劣質塑膠製品的水壺可能散發惡臭。

還記得每次參加單車挑戰活動,出發前將水壺的水給加滿時,許多人都會拿空水壺起來聞一下;你可能會發現很難聞的塑膠味,有時候甚至會影響水的味道。

廉價的自行車水壺算是消耗品,用一段時間就必須更換,否則塑膠味會愈來愈重,飲水的安全健康也會有疑慮。相比之下,其實可以買價位較高,但是品質好、安全可靠又耐用的水壺,不用經常丟棄也比較環保一點。

由於受限一般自行車的水壺架設計,並不是每一種水壺都能適用於自行車。太大的水壺會放不下,硬塞會變得很難拿取;太小的水壺則可能因為路面晃動造成彈飛,很容易發生危險。

對於為時數日的單車環島旅行,選購一個好用的水壺,可以讓過程中有更好的「飲水」經驗。

由於這幾年台灣的單車休閒盛行,要買到品質好的自行車水壺已經不是難事,這篇文章列出幾種供大家參考。

圖片來源(Cycle & Style)
POLAR BOTTLE 北極熊自行車保冷水壺
www.polarbottle.com/insulated/

符合一般自行車水壺架的設計,強調比一般水壺更好的保冷效果,讓冰涼的水可以維持比較常的時間,普通的水壺在烈日下很快就變溫水,如果裝冰涼的運動飲料,變熱之後就會很苦澀難喝。Polar Bottle 採用可回收的環保塑膠材質,保冷功能來自內層的鋁箔包覆,用反射的方式減少輻射熱;雖然保冷效果不可能跟金屬製的保溫罐相比,但是重量較、材質軟較適合自行車使用。特別標示不含雙酚A(一種環境賀爾蒙有毒物質),是比較安全的材質,在旅行過程中受日曬可以較少擔心健康問題。鋁箔層有印刷設計,所以有多種顏色圖案可供選擇。

由於多了內層保冷的設計,容量會比一般標準的自行車水壺稍少,僅有 20oz(約 600cc)。

圖片來源
NALGENE OTG 運動型水壺
www.nalgene.com.tw/otg.html

這是登山用品很常見的水壺品牌,OTG(On The Go)是針對運動設計的專用水壺,其大小適合一般自行車的水壺架,也可以用單手操作飲用。其材質也是特別標示不含雙酚A,並可以耐零下40度冰到100度的熱水,如果要拿來裝熱水泡奶茶咖啡也不必擔心材質耐不住。採用耐摔不易破裂的較厚瓶身,但重量僅有 121g 而 容量達 750cc。

由於瓶身較硬,必須自行判斷水壺架是否合用,例如搭配較有彈性的碳纖維材質水壺架,可以避免彈飛的問題。

圖片來源
IBERA 自行車專用 CoolHead 保冷水壺
www.ibera.info/products/bottles/bottles.htm

採用雙層瓶身設計的保冷水壺,容量有 500cc,適合一般的自行車水壺架。材質通過美國 FDA 檢驗,比普通的水壺多一分保障。IBERA 另有「HotHead 不鏽鋼保溫壺」,可以適用冷熱水的保溫效果,但是必須搭配專用的水壺固定架,重量當然也比較重一些


單車長途旅行是否要自備大容量水袋呢?其實以國內環島,走的是會經過市區的省道來說,通常不用特別準備水袋,因為路上的超商、檳榔攤、飲料店、派出所或廟宇,都是可以補給飲用水的地方。準備一、二瓶耐用安全的水壺,通常就可以應付環島的需求。

購買管道:Yahoo 拍賣、PChome 線上購物、秀山莊、...
(歡迎使用留言提供其他購買管道)

WeWantJS 連署支持 .js 網域名稱

Sign The Petition 加入連署

Thanks for your support! Your voice has been heard!
WeWantJS 是一個連署網站,希望有愈來愈多開發者加入連署,向 ICANN(Internet Corporation for Assigned Names and Numbers)發聲,以支持 .js 上層網域名稱的開放。

近年來 JavaScript 逐漸成為建構 Web 世界最重要的基礎技術,不管是用在前端瀏覽器,或者新興的 Node.js 伺服端開發,都有大量的開發者發展出各種開源框架、工具。通常這些開放原始碼專案都有專屬的網址,可是網域名稱通常是以 .org 等上層網域(TLD)結尾,而不是簡潔的 .js,例如 expressjs.org、nodejs.org、backbonejs.org、...等,雖然 .org 對非營利的軟體專案組織來說也算合乎情理,可是這樣的網址愈來愈多,更多開發者的心中可能就會有:「為什麼不是 xxx.js 就好!?」

目前 ICANN(管理網域的國際組織)並未開放 .js 網域,所以是有錢也買不到的情形。雖然即使沒有 .js 專屬網域,這些 JavaScript 專案仍然可以活得好好的!但是現在這個時代什麼奇特的網址都有(例如連色情業者都有 .xxx 專屬域名、電視節目網站可以利用 Tuvalu 的 .tv 域名);身為打造 Web 世界的重要技術,JavaScript 怎麼可以沒有自己的 .js 網域呢?!

為了改變未來的歷史,一群開發者建立了「wewantjs.org」,希望有更多人加入連署行動,讓 .js 網域出現,如果你也支持這個行動,就趕快登記吧!

2012年6月29日

好感辦公室:辦公室好風景,是每位工作者的權利(新書推薦)

好感辦公室(封面)
好感辦公室:工作好有fu!這裡也是我的第二個家!不論員工或老闆都能參與改造,創造綠色、健康、家感覺的辦公室 Green Office
  • 作者:林黛羚
  • 出版社:自由之丘
  • 出版日期:2012-06-13
如果你熱愛自己的工作,那對於工作環境一定有著某種嚮往,也會持續動手改造,讓自己的工作更舒適也更能沉浸其中。

在雜誌或網路媒體經常有關於辦公室的報導,是那種看一眼心理就會想:「哇!如果能在這裡工作該有多好!」如果想要遍覽全球最時髦摩登的辦公室照片,可以在「Office Snapshots」網站一窺究竟:
但是耗資數百萬重金裝潢的辦公室,對許多人來說是遙遠的夢想,或是只能幻想;如果公司真的這麼賺錢,還是加薪比較實在吧 :XD

作者林黛羚寫的好感辦公室,帶給工作者一點不一樣的思考;在台灣,你可以發現這些這些老房子、樸實、以人為本的工作空間,比起科技產業的奢華辦公室,其實充滿人味與自然氣息的空間,反而更適合安居樂業;即使不換工作,也可以從自己的工作環境開始改變起。

雖然這是一本被分類到「室內設計」的書,但《好感辦公室》能讓讀者重新思考「工作」與「生活」,其實兩者並不是壁壘分明。工作對現代人來說佔據每天大部分的時間,其實本來就是生活的一部分,因此對生活品質的追求,需要從「工作時的生活」開始改善起。

書裡介紹的好感辦公室,許多建築與在地的自然環境融合在一起,少一點刻意的人造景觀,多一點刻意任憑生長的植物生態;避免過度裝潢的工作空間,有更多木頭的溫潤質感,既有實用的功能,也能顧及視覺上的舒適平衡。

更重要的是在好感辦公室工作的這群人,即使很忙碌,也會感到非常快樂;在這裡,似乎已經很難把工作與生活分開。



前言 辦公室,是比家還要待更久的地方


Part Ⅰ 綠色、健康、家感覺的辦公室
好空間:伊聖詩.美好生活 ──工作也是營造美好生活的培養皿:員工是公司分享美好、慷慨以對的首要目標
好空間:
半畝塘.環境整合 ──人與土地與樹共好:以自然為師,在樹下、悠哉上班
好空間:
震大建設 ──友善綠都更的第一步:老公寓與上班族的春天
好空間:
和築.自然的住 ──能呼吸,同時能靈活:生活與工作,在吞吐與放鬆之間並行
好空間:
小智研發 ──工作與生活觀相輔相成:身體力行是永續生活的第一步
好手感:
工日人空間研究室 ──在故事中生產故事:高度與時間,形塑風景的工作室
好手感:
1982 Life House ──老家變身工作室:回鄉改造,配電、泥作、粉刷、木作,全部自己動手做!
好手感:
星火燎原工作室 ──獨樂樂,不如眾樂樂:從綠化鄰里開始做社造,大家一起動手做
好福利:
誠閱創建行銷 ──比賺錢更重要的事:友善的辦公室環境及體貼人性的福利
好福利:
博仲法律事務所 ──如在家般的親子照護:讓員工紓壓的頂樓菜園
好植栽:
思麥ㄦ科技 ──不插電的室內空氣清淨機:小型植生牆的實驗
好植栽:
來復園(屏東科技大學污水處理場) ──污水場蛻變成的噴泉花園辦公室:基層公務員改造工作環境紀


Part Ⅱ 辦公室是我的第二個家,用心對待,工作更有好感覺
好綠 × 辦公室植栽:活用植栽更健康,創造工作空間好風水
好吃 × 辦公室廚房:辦公室做菜用餐其實不難,打破上班族只能外食定律
好fu × 辦公室生活:工作與生活,是兩個交集的圓

《好感辦公室》介紹的辦公室,相關報導:

《好感辦公室》延伸閱讀:

無線上網、閱讀的好去處,國立公共資訊圖書館

圖片來源:維基百科
在中興大學附近全新落成的「國立公共資訊圖書館」,斥資 X 億元打造,灣流意象的特別建築,成為台中熱門的新地標。雖然每天都湧入不少人潮,但附近有公園綠地、停車方便,搭公車也能到達,可以遠離市區的喧囂,來到這邊不管是入館參觀或在外面散步,都是可以放鬆心情的好場所。

雖然是圖書館,不過這裡不像是傳統的圖書館有巨大的書櫃牆,這邊提供的書並不多,取而代之的是現代人更需要的「閱讀空間」,提供更多的座位、免費的無線上網服務,重點是有提供電源插座還設有先進的數位閱讀體驗區,可以待上一整天,看書、上網、吹冷氣都不需要花費半毛錢。

對於需要多人討論的需求,館內也設有多人會議討論室,提供大尺寸的液晶電視,每天最多可借三小時。

這裡的冷氣很冷,如果要坐久一點,要自己多帶一件保暖衣物~

Groovy 2.0 正式發佈,搭配 Java 7 Invoke Dynamic 速度更快

What’s new in Groovy 2.0?
期待已久的 Groovy 2.0 終於正式發佈,主要的新功能是靜態型別檢查(static type checking)與靜態編譯(static compilation)。由於 Java 7 Project Coin 開始對動態語言有更好的支援,關鍵的機制是 Invoke Dynamic 指令(參考此篇),新版的 Groovy 也善用了 Java 7 的新功能。

Groovy 2.0 帶來兩個新的 @Annotation 標籤:
  • @TypeChecked
  • @CompileStatic

對於需要明確宣告型別的區塊,就可以利用 @TypeChecked 標記。Groovy 2.0 帶來效能的改善,不過前提是需要搭配 Java 7,對於暫時無法升級到 Java 7 的開發者,Groovy 則提供 @CompileStatic 來宣告一個區塊使用靜態編譯,用以改善效能問題。

Groovy 可以稱為 Java Scripting Language,就是 Java 的 Scripting Language 版本,因為它以 Java 語言為基礎,進行很多語法改良,因此也被視為 Better Java(更好的 Java 語言)。

過去 Java 開發者對 Groovy 的疑慮通常是效能的問題,雖然 Groovy 讓程式寫法更簡潔、開發速度更快,但卻必須犧牲一些執行時的效能。所以 Groovy 比較常被用在專案開發的輔助工作,例如利用 Gradle 來編譯建置專案。

隨著新版的 Groovy 2.0 發佈,效能再次獲得提升,Java 開發者可以重新審視評估,是否有機會用 Groovy 來改善現有的專案。

延伸閱讀

Sweaver - 強大的 Drupal 所見即所得樣板客製化編輯器

Sweaver
Sweaver 是 Drupal CMS 的擴充工具,它讓網站開發者可以透過瀏覽器,以所視即所得的編輯方式,直覺地修改網頁外觀需要客製的部份。

Drupal 有大量簡潔好看的佈景主題,不過以往客製修改佈景,需要熟悉 CSS 語法,而且可能要直接改伺服器上的 CSS 檔案;對於簡單的客製(調字型、字體大小、顏色、段落設定等),需要動到佈景的原始檔實在有點麻煩。

安裝並啟用 Sweaver 工具後,登入 Drupal 的管理者可以在瀏覽頁面時,直接以滑鼠游標點選想要編輯的區塊,該區塊會顯示框線,接著在下方的編輯器直接修改設定,改好的結果也會立即更新。

不過 Sweaver 對瀏覽器效能的要求有點高,建議用版本較新的 Google Chrome 或 Firefox 比較不會造成操作停頓。

相關連結

MiCloud 台灣雲端主機開放公測,參加者可享全年折扣

MiCloud 開放公測,參加即享全年虛擬主機八折優惠
MiCloud 是國內廠商神通推出的雲端虛擬私有主機服務(VPS),提供的功能與服務類似國外知名的 Linode,除了價格稍微便宜一些,還擁有台灣機房、國內網路頻寬的優勢。如果網站主要的服務客群是台灣用戶,就可以考慮採用 MiCloud 的方案。

不同等級的主機主要差別在於記憶體,因為 VPS 可以提供完整的作業系統控制權,所有執行的伺服器軟體都會佔據記憶體空間。目前公告的價格 512MB 記憶體是每月 $549 元(Linode 大約是 $600 元),算起來一年的費用大概是六千多元。

目前 MiCloud 提供公測活動,只要報名參加測試,就能享有全年八折優惠折扣,如果幸運抽獎中籤,就會有六折優惠。也就是說,只要參加公測,第一年只要花費 $5270 元就能租用雲端主機。

2012年6月27日

Node.js v0.8.0 正式發佈,效能穩定度提升!


Node.js v0.8.0

Node.js 發佈的正式版本從 0.6 跳至 0.8;新版本帶來許多關鍵效能的改進,一些核心 API 變得更乾淨,並增加一些除錯功能。


0.8.0 版的改進:
  1. 速度更快 Node got a lot faster.
  2. 更穩定 Node got more stable.
  3. You can do stuff with file descriptors again.
  4. The cluster module is much more awesome.
  5. The domain module was added.
  6. The repl is better.
  7. The build system changed from waf to gyp.
  8. Some other stuff changed, too.
  9. Scroll to the bottom for the links to install it.
更多最新發佈的 Node.js 消息,歡迎訂閱:Node.js Taiwan Facebook 專頁

台灣 iTunes Store 開放付費購買音樂電影

台灣 iTunes Store 開放付費購買音樂電影
幾天前打開 App Store 購買新軟體,發現標價都從美金變成台幣(NT$),剛開始看到還真是不太習慣;長久以來習慣用美金 1.99、4.99、9.99 來區分「便宜」跟「貴」,還要換算一下才知道大概要付多少錢。現在突然看到 NT$30、60、180 元的 App 售價,很直覺就跟珍珠奶茶、雞腿便當可以做比較了。

今天看到新聞才知道 iTunes Store 已開始提供台灣地區消費者付費購買音樂和電影,相信這下子許多朋友的荷包都準備要大失血了!

在過去習慣用 iTunes 整理音樂,卻又喜歡購買正版音樂的消費者,其實很像在被唱片公司惡整;為了少數幾首喜歡的音樂,要多花不少錢購買整張專輯,而且還要自己轉錄到電腦(用 MacBook Air 還要另外找台光碟機),之後再用 Google 找來專輯封面。


終於,iTunes Store 進入台灣市場,未來只要 iPad 拿起來點一點,最新的音樂就能下載到播放裝置,費用等信用卡帳單一起結算;這對經常帶行動裝置旅行又喜歡聽音樂的人來說,才會樂意掏錢買正版音樂,希望唱片公司別再只想著賣塑膠盤子了。

目前 iTunes Store 能找到的中文專輯數量不多,單曲定價則是 $20~$30 元台幣,而專輯的定價大多則為 $200~$400 元。

首日開賣似乎發生烏龍事件,《國語經典101》、《張學友》、《少女時代》等多張專輯整張只要 $20 元(裡面的每首歌卻分別就要 $20~$30 元),疑似標錯價?!

PS. 蘋果已公布確實是標錯價格,標錯價的專輯售價悄悄從 $20 調回 $200 元;但已經付費購買的朋友不會受影響(買到賺到啦!)。

延伸閱讀:

2012年6月26日

「馬來西亞快樂出走」免費旅遊電子書

馬來西亞快樂出走(電子書封面)
這本免費電子書是由台灣的四位知名旅遊作者、部落客共同撰寫,介紹六處必遊之地:

為什麼這麼好康書不用錢呢?這本書是由馬來西亞觀光局發行,算是免費的旅遊推廣讀物:史上第一本馬來西亞自由行手冊完整公開~馬來西亞快樂出走

Malaysia - Truly Asia 圖片來源
雖然電視經常可以看到「Truly Asia」的旅遊廣告,但是台灣人普遍對馬來西亞不太熟悉,旅行社也很少積極推廣馬來西亞的旅遊行程。比起韓國、日本、新加坡這幾個熱門國家,馬來西亞顯得有點冷清。

去年暑假我們帶著楊春龍的《吉隆坡 馬來西亞精品書》,完成一趟馬來西亞的自助旅行,書中介紹的幾個旅遊路線都不錯,但比較適合自助旅行。

其實走過一次馬來西亞,就會發現這個國家比較適合自助旅行,這是個多元文化匯聚的地方,適合慢慢地走,搭乘當地人的大眾交通工具,享受當地的食物。

對台灣人來說,馬來西亞可以算是自助旅行的新手村,只要五小時的飛行,沒有時差問題,不管飲食、貨幣及語言都不會有太多障礙。身上只要帶著台幣,在大城市很容易找到兌幣攤(Money Changer)可以換錢,路上很多華人可以講中文,有些華人也會講閩南話(台語);在吉隆坡有麥當勞也有 7-11,很容易找到自己熟悉的文化。

但如果想要探險,從吉隆坡搭國內線航班、鐵路或渡輪,前往蘭卡威、檳城、沙巴或砂勞越,就可以發現許多意想不到的樂趣。

《馬來西亞快樂出走》

2012年6月24日

寧可為夢想使壞:也不要窮忙一輩子(新書介紹)

寧可為夢想使壞:也不要窮忙一輩子
(行銷分紅連結)
寧可為夢想使壞:也不要窮忙一輩子

在學校,你可能忙著爭取前三名成績,或是為了及格而努力,也可能正在暑修救學分。在公司,你可能忙著爭取年度最佳業績,或是為了升遷加薪而努力,也可能正在熬夜趕進度只為了天亮前能下班。
這是很多窮忙族的寫照,算一算如果能不吃不喝,工作二十年的總收入大概可以付清房貸及車貸,也許還能順利把小孩養大。不過說到夢想,似乎距離愈來愈遠,...

當個乖乖牌很容易得到獎賞,因為不管是家長、學校或公司,都喜歡你好好當個乖乖牌,一切按著規矩行事。如此一來,就能用最低的成本,就能讓你符合...眾人(除了你以外)的期待。

如果從來都不敢使壞,那就準備跟夢想說 bye bye 吧!

作者 Hugh MacLeod(休‧麥克李奧)熱愛畫漫畫,他選擇為夢想使壞。他嘗試過許多使壞計畫,有的成功有的失敗。而現在,他住在自己喜歡的德州沙漠鄉下,過著持續畫漫畫,點子源源不絕,忙到翻卻很快樂的日子。

他的一項使壞計畫看來成功了,他決定讓每年有一萬人給他錢過活。而現在,他靠著部落格與他人分享名片漫畫,走在為夢想使壞的路上。

Hugh MacLeod 的部落格:www.gapingvoid.com

2012年6月23日

Nodejitsu 筆記 - 註冊、佈署、自訂域名

Nodejitsu - PaaS for Node.js clouds
Nodejitsu 是 Node.js 的 PaaS 服務,目前還在 Beta 階段, 但是對於有興趣使用 Node.js 開發網站的朋友,現在已經可以申請帳號,用力給它試玩一下。

Nodejitsu 註冊帳號從「Try Nodejitsu for free」開始,必須先填 username 及 email。


接著會收到一封通知信:[nodejitsu] Signup Confirmation!

|Please visit http://activate.nodejitsu.com to activate your account.


這封信是用來確認電子郵件。打開 Activate 的連結網頁,需要再輸入一次 username。

這步驟是啟用新帳號,啟用成功之後(每日限額)會收到第二封信:[nodejitsu] Welcome to Nodejitsu!

到這邊基本上註冊就已經算是成功。

在通知信裡面最重要的是一段確認碼,以及操作步驟。Nodejitsu 的操作很有趣,在帳號啟用後就不需要透過網站,而是利用「jitsu」這個提供 command-line 工具的 Module。
  1. sudo npm install jitsu -g
    安裝 jitsu 工具
  2. jitsu users confirm lyhcode 確認碼
    確認新帳號
  3. jitsu deploy
    佈署新專案
對於完全以 Node.js 打造專案的開發者來說,可能會偏好 NPM 能搞定的解決方案。Nodejitsu 提供的 jitsu 正好可以滿足這種需求。以它牌如 Cloud Foundry 來說,就必須另外用 RubyGems 安裝 vmc 工具,需要多裝一個 Ruby 開發環境。


Nodejitsu 最低的方案是「免費」,讓開發者可以在零負擔的條件下輕鬆開啟一項新專案。如果專案正式上線開始需要付費,目前公告的 Pricing 看起來也相當划算,對於小型網站來說,每個月只要支付 $3 美金起。


個人方案
企業方案
Nodejitsu 支援 WebSocket,對於想使用 Socket.IO 的開發者來說比較方便;如果使用 *.nodejitsu.com 子網域還可以享有免費的 SSL 支援,對於需要處理圖檔的應用,它也提供 ImageMagick 的支援。企業方案比個人方案多出一些進階功能,包括 HA、依用量增加自動延展(auto-scaling)。


個人方案
  • WebSocket support
  • Administrative Interface
  • Custom Domains
  • Jitsu
  • Snapshots
  • CoffeeScript, ImageMagick, and libxml support
  • Easy Database provisioning with Jitsu
  • Free SSL on *.nodejitsu.com
企業方案(包含個人方案的基本功能)
  • Priority Support
  • Auto-scaling
  • Select your provider
  • Consolidated Billing
  • High availability across providers
  • Select main provider / data centers per drone
  • Custom SSL certificates
Nodejitsu 的設定直接使用 package.json,因此可以和 NPM 模組相依等設定一起管理。如果要切換不同的 node 版本,也是在這邊設定,以下是準備佈署到 Nodejitsu 的 package.json 設定範例。

{
  "name": "nodejs-weekly",
  "version": "0.0.1-1",
  "private": true,
  "dependencies": {
    "express": "2.5.5",
    "jade": ">= 0.0.1"
  },
  "subdomain": "nodejsweekly",
  "scripts": {
    "start": "app.js"
  },
  "engines": {
    "node": "0.6.x"
  }
}

在 Port Listen 的部份,許多 PaaS 如 Windows Azure、Cloud Foundry 會以環境變數傳遞連接埠號碼,以 Express 來說需要用 .listen(process.env.port) 取代 .listen(3000),佈署到 PaaS 才會取得可用的連接埠。不過 Nodejitsu 這部份並不需要特別設定,專案中可以使用直接指定 Port(如 80 或 8080),佈署到 Nodejitsu 都可以正確對應到網域的 80 Port。

佈署成功後,在 Nodejitsu 提供的 Web 後台「develop.nodejitsu.com/」可以管理 apps。之後發佈更新也只需要執行「jitsu deploy」,就會重新 deploy 及 restart。



Nodejitsu 支援自訂網域名稱,對於正式上線的網站來說這就很重要了。同樣也是在 package.json 定義(可設定多組)。

"domains": [
    "jesusabdullah.net",
    "www.jesusabdullah.net"
  ],

關於自訂域名,也可以參考官方文件:http://dns.nodejitsu.com/

Arras Theme 雜誌風格的 WordPress 3.0 免費佈景

Arras Theme Live Demo
Arras Theme 是適用於 WordPress 3.x 的佈景主題。

網站:http://www.arrastheme.com/
原始碼:http://code.google.com/p/arras-theme/

A sophisticated, yet simple and clean WordPress theme for magazine/news blogs. Homepage comes with a featured slideshow and 3 featured post areas with 4 different customisable layouts. Comes with in one, two and three column layouts and 7 different alternate styles. WordPress 3.0-ready with two menu locations, custom post types and custom taxonomies support. Child theme ready with numerous action and filter hooks available for use. Community support available at theme forums.

Arras Theme 是一個設計精細卻又簡單乾淨的 WordPress 佈景主題,適用於雜誌、新聞類型部落格。首頁由一個特別的幻燈片(slideshow)和三個主題文章,有四種不同的客製化佈局,呈現方式有單、雙或三欄佈局及七種不同的風格。目前已經支援 WordPress 3.0,具有兩個選單的位置,可以設定不同的文章類型,並支援自訂的分類標籤,子佈景包含多個 action 及 filter hooks 可供使用。在佈景論壇提供社群支援。

Arras Theme 論壇:http://www.arrastheme.com/forums/

採用 Arras Theme 佈景的中文網站範例:

Ext JS 4.1 Performance 中文摘要

原文連結 http://www.sencha.com/blog/ext-js-4-1-performance
Ext JS 4.1 Performance

這篇文章主要討論幾項影響 Ext JS 應用程式效能的因子。

網路延遲除了會嚴重影響網頁載入初始化的時間,同時也會影響 Data Store 讀取時間。

  • CSS processing.
  • JavaScript execution.
  • DOM manipulation.
網路延遲(Network Latency)

為了減少應用程式啟動時間,你需要明白瀏覽器對任何域名(domain)的同時連線數量有其限制。


意思就是如果對同一個域名存取多個檔案,在瀏覽器的連線數量額度限制下,下載檔案的連線會在佇列中等待,直到有空閒的連線才被處理。較新的瀏覽器允許較多的連線數量,但是針對較舊較慢的瀏覽器仍必須最佳化。

解決方法是使用 Sencha SDK 工具(可以從 ExtJS 壓縮檔取得),將應用程式的所有 JavaScript 最佳化成單一檔案。

See Getting Started with Ext JS 4.0 for details.

這個工具會分析 ExtJS 應用程式的 JavaScript 程式碼,用到 requires 及 uses 語法的類別定義,就會依照正確的順序將程式碼加到單一的 .js 檔案。

See the Ext JS 4.1 Docs for details about the Sencha class system.

其他減少網路延遲的方法,是開啟 Web Server 的 GZIP 壓縮功能,讓 JavaScript 及 CSS 檔案可以先經過壓縮再傳送給瀏覽器。

選擇器(CSS Processing)

CSS 選擇器的檢索是從右到左,透過 DOM 的父節點指標。

意思是說,如果這樣寫選擇器:

.HeaderContainer .nav span

這段選擇器會配對文件中的每一個 span 標籤,並從父節點尋找上層標籤是否有指定的 class 名稱。

相較之下直接選擇指定 class 名稱的標籤會更有效率(span.nav-items)。

JavaScript Execution

撰寫效能最佳化的 JavaScript 程式碼必須牢記幾點:

  • 避免使用老舊或差勁的 JavaScript 引擎(Avoid older or badly written JavaScript engines.)
  • 頻繁地重複最佳化程式碼(Optimize code which is repeated frequently.)
  • 對於影響畫面繪製的程式碼最佳會(Optimize code which is executed at render or layout time.)
  • 最好的作法就是避免在畫面繪製的初始化階段執行額外的程式碼(Better still, try not to execute any extra code at initial render or layout time.)
  • 在進入迴圈之前就盡可能將不會隨迴圈變動的資料先計算好(Move invariant expressions outside of loops)
  • 盡量使用 for 迴圈取代 Ext.Array.each(Use for (...) rather than Ext.Array.each)
  • 如果函式會依照條件判斷執行任務並且頻繁地被呼叫,在呼叫前就先將判斷處理好,並且只有在必要時才呼叫(If a function performs its task conditionally and is frequently called, check the condition outside the call, and only call it if necessary. (See calls to fireEvent in Ext JS codebase))
  • Setup and teardown of a call frame (apparatus needed to make a function call) is slow on bad JavaScript engines

Code optimization example

不好的寫法使用 Ext.Array.each:

function badTotalFn(menuItem) {
   var r = store.getRange(),
       total = 0;

   Ext.Array.each(r, function(rec) {
       total += rec.get(menuItem.up('dataIndex').dataIndex);
   });
}

這個寫法有兩個不好的地方,首先 Ext.each 每次都要呼叫被傳入的匿名函式,匿名函式的設置會影響效能。再來是 menuItem.up('dataIndex') 的運算結果並不會改變,所以應該移到函式執行前。

最佳化之後的程式碼如下:

function goodTotalFn(menuItem) {
    var r = store.getRange(),
        field = menuItem.up('dataIndex').dataIndex;
        total = 0;

    for (var j = 0, l = r.length; j < l; j++) {
        total += r[j].get(field);
    }
 }

雖然這兩種寫法看起來差異不大,結果也相同,但效能卻明顯差很大。

下面的表格是這兩種寫法在不同瀏覽器的測試結果(執行 10000 ):


BrowserBadGood
Chrome1700ms10ms
IE918000ms500ms
IE6Gave up532ms


譯註:雖然該死萬惡的 IE 不管怎樣都跑很慢,但不同寫法的差異還是相當顯著。

Use Page Analyzer to measure performance

Page Analyzer 是 SDK 的範例,位置在  example/page-analyzer ,它可以用來分析任何物件方法的效能。

如果你使用 Chrome 瀏覽器,請在執行時加上 --enable-benchmarking 參數以切換時間的精確度到 microseconds。

合併多個畫面佈局動作(Coalesce multiple layouts)

Ext JS 4 在內容改變或尺寸變動時,會自動將畫面佈局重整。意思就是按鈕的文字有所改變時,它所在的 Toolbar 也會被影響,因為按鈕的寬高可能改變;所以,再上一層的 Panel 也會被影響。

對於這種情況,如果有多處內容都要修改時,可以合併佈局動作(避免每改一筆,整個畫面就要重整一次):

{
    Ext.suspendLayouts();
    // batch of updates
    Ext.resumeLayouts(true);
}

傳入 true 參數代表重新允許畫面佈置,此時就會從佇列得到需要重整的畫面佈局。

Reduce DOM burden

減少太多層的容器/元件可以避免重複的佈局動作及 DOM reflow 次數,這些代價可能非常高。

最基本的原則就是使用最簡化的容器(Container)或佈局(Layout)來完成必要的工作。

過多層次最常見的範例,就是在 TabPanel 中放置 Grid 時,新手可能會這樣做:

{
    xtype: &lsquo;tabpanel&rsquo;,
    items: [{
        title: &lsquo;Results&rsquo;,
        items: {
            xtype: &lsquo;grid&rsquo;
            ...
        }
    }]
}

Grid 本身就是繼承自 Panel,所以可以直接放在 items,上面的寫法會額外建立一個 Panel 並且只放進 Grid,這會產生多餘的一層。

正確的方法應該是:

{
    xtype: &lsquo;tabpanel&rsquo;,
    items: [{
        title: &lsquo;Results&rsquo;,
        xtype: &lsquo;grid&rsquo;,
        ...
    }]
}

為什麼這個原則很重要呢?

盡可能保持元件樹(或者說 DOM tree )盡可能輕量,因為在 Ext 4 中,愈多擁有子項目的容器元件,就會執行愈多的它們自己的佈局管理器(layout managers),舉例來說,Panel 的標題是一級容器,它可以被設置其他子項目例如標題文字或工具。

這聽起來有點太過 over,但這樣才能允許 UI 設計師足夠的彈性。

Ext JS 4 的元件也使用 Component Layout Managers 來管理大小及它內部的 DOM 結構,不像 Ext JS 3.x 都在 onResize 處理。

Visualize the component tree

在設計 UI 時可以試著將它表示為樹狀結構,例如一個 Viewport 可以這樣表示:


為了要繪製(render)元件樹需要兩個步驟。

第一個步驟,每個元件的 beforeRender 事件被呼叫,然後 getRenderTree 產生一個 DomHelper 的設定物件,它會被轉換成 HTML 標籤並且被增加到繪製緩衝區(render buffer)。

接著是第二個步驟,可以代表整個元件樹的 HTML 被一次加到網頁文件(document)中,這樣做的目的是為了減少在建立應用程式元件時處理 DOM 的次數。

然後每個元件的 onRender 被呼叫,此時每個元件已經跟 DOM 節點連接起來。接著是 afterRender 最後被呼叫來完成畫面繪製的程序。

在這些動作都完成後,畫面佈局的初始化才算全部完成。

這就是為什麼建立輕量化的 UI 設計很重要!

考慮以下的 Panel 規格定義:

Ext.create('Ext.panel.Panel', {
    width: 400, height: 200,
    icon: '../shared/icons/fam/book.png',
    title: 'Test',
    tools: [{
        type: 'gear'
    }, {
        type: 'pin'
    }],
    renderTo: document.body
});

雖然看起來很簡單,但其實它已經會產生一個相當複雜的 UI 結構。

Avoid shrinkwrapping (auto sizing based on content) where possible.

shrinkwrapping 是元件依據內容自動調整寬高大小的機制,如果可以的話,將它停用就可以提昇一些效能。



Avoid size constraints (minHeight, maxHeight, minWidth, maxWidth) where possible.

如果可以的話,盡可能取消最小及最大寬度或高度的限制。

Avoid postprocessing DOM of Component in afterRender

避免在 afterRender 事件中改變元件的 HTML DOM,因為這會帶來對效能造成影響的 DOM reflow 及 repaint。取而代之的方式,是利用 hook 的方式在元件的 HTML 產生前就先做好修改。


如果修改 DOM 結構是必要的,那就使用 getRenderTree 來取代直接修改。

Grid performance

資料表的大小會影響效能,特別是欄位的數量,所以盡可能減少欄位的數量。

如果資料集非常大,而且介面允許用 PagingToolbar(分頁工具列),就可以使用有緩衝區的設計(infinite grid)。

實作的方式只要加上設定:
buffered: true,
pageSize: 50, // Whatever works best given your network/DB latency
autoLoad: true

載入和維護資料的方法則不需要改變。

How it works

緩衝的設定會讓 Grid 依照可視區域的大小來決定顯示的筆數,移動垂直捲軸會觸發載入其他資料的事件,緩衝區會預讀資料讓捲動表現更平順,更詳細的設定如下:

{
    xtype: 'gridpanel',
    verticalScroller: {
        numFromEdge: 5,
        trailingBufferZone: 10,
        leadingBufferZone: 20
    }
}

將整個資料集預置到客戶端(Pull the whole dataset client side!)

例如將 leadingBufferZone 設定為 50,000 並將 purgePageCount 設定為 0,就會先將資料從伺服器下載到 Store,如此一來 pipeline 就會先滿載資料,而減少不斷向伺服器要求資料需要的等待時間。

Written by Nige "Animal" White
Nigel brings more than 20 years experience to his role as a software architect at Sencha. He has been working with rich Internet applications, and dynamic browser updating techniques since before the term "Ajax" was coined. Since the germination of Ext JS he has contributed code, documentation, and design input.

原文連結 http://www.sencha.com/blog/ext-js-4-1-performance

獲頒 2012 開放軟體創作競賽產學組金牌 - ContPub 雲端電子書自助出版平台

ContPub 是我從 2011 年底,開始用週末時間進行的一項 Side Project,那時因為需要撰寫程式設計教學書籍,搭配 PLWeb 的線上題庫使用,需要支援多人協作,編寫方式還要其他作者也能夠接受;實在找不到合適的編輯方式,只好自己動手做一個新服務。


很巧的是「教育部顧問室-資訊軟體人才培育先導計畫」剛好在 2012 上半年有個開放軟體競賽,剛好就拿來當做 ContPub 專案開發計畫的第一個里程碑。

很感謝評審老師給我們不少很棒的建議,最後還在分數上給這項專案肯定,讓我們很僥倖地獲得大會給予產學組金牌的獎項。

在頒獎典禮暨成果發表的當天,很幸運地有記者朋友對自助出版感興趣,以下節錄自網路新聞報導:
隨著行動上網與平板電腦普及,電子書成為現代人便利的閱讀工具,國立雲林科技大學學生開發免費的「ContPub雲端電子書自助出版平臺」,讓每個人都可成為電子書的作者,只要打開瀏覽器網頁,就能輕鬆寫作電子書,不需加裝任何軟體,透過平板電腦或智慧型手機都能使用,這項技術獲得教育部100學年度大專校院開放軟體創作競賽產學合作組「雲端網際服務與其他應用」金牌。
雲科大設計推出「ContPub雲端電子書自助出版平臺」,讓每個人都可上網出版電子書,參與的雲科大資管系專案助理林彥宏表示,過去要寫電子書,要先下載電子書寫作軟體,熟悉軟體的各種功能,現在開發的雲端平臺,則是讓一般民眾只要上網註冊登入,上傳電子書內容,雲端編輯器可把內容直接轉換成電子書格式,只要按下出版按鈕就完成「電子書」,讓平板電腦不只是電子書閱讀器,也能成為寫作出版的隨身工具。
(新聞來源:教育廣播電台)

下一個里程碑,是希望能夠透過跨平台的整合,讓自助完成的電子書,能無縫發佈到通路平台上架。

相關新聞連結:

2012年6月15日

Cloud Foundry 正式支援 Play! Framework(Java EE)

Cloud Foundry Now Supports Play!
Play! Framework 是新一代的 Java EE 開發框架,它讓 Java 的開發者可以使用 Java 或 Scala 程式語言,以 MVC 架構更快速實作更棒的網站。

http://www.playframework.org/

Cloud Foundry 是 VMWare 公司推出的開放源碼 PaaS 雲端解決方案,註冊後即可享有免費的雲端應用程式佈署空間,透過方便的 VMC 工具,就能將網站應用程式快速佈署到雲端,並且隨時依照實際需求用量做水平擴展(scale-out)。

http://cloudfoundry.com/

雖然 Cloud Foundry 的主要核心軟體 vcap 是採用 Ruby 開發,但它對於 Java WebApp 也有不斷改良的支援,原因不外乎 VMWare 旗下擁有以 Java 開源框架為主力的 SpringSource 公司。Cloud Foundry 支援以 Spring Framework 開發的 Java WebApp,也很早就提供 Grails 框架(由 SpringSource 支持開發)的支援;但一般在台灣的開發者對 Grails 可能還是比較陌生,而 Play! Framework 知名度相較之下似乎稍微高一些,至少在一些研討會場合可以聽到它的介紹。

近期 Cloud Foundry 發佈了正式支援 Play! Framework 的消息,對於有興趣玩 Play! 或是 Cloud Foundry 的開發者來說,這也是相當有趣的選擇。

Cloud Foundry Now Supports Play!
http://blog.cloudfoundry.com/2012/05/31/cloud-foundry-now-supports-play/

上面這篇官方消息也附帶了實作展示,是採用 Play! 的 zentasks 專案範例,加入 AJAX、LESS CSS 及 CoffeeScript 的支援,示範了如何用 Java EE 的框架打造現代化網站(Modern Web App)。

https://github.com/playframework/Play20/tree/master/samples/scala/zentasks

2012年6月12日

蘋果WWDC:高解析度筆電亮相,MacBook Pro 15吋配備 Retina 螢幕解析度高達 2880x1800

全新 MacBook Pro 預計七月下旬出貨
蘋果全球者開發大會(WWDC)於今日凌晨登場,對於想換新筆電的朋友,等待終於有了結果:配備升級的全新 MacBook Pro、MacBook Air 登場,部分機種價格調降。雖然手邊

2012 New MacBook Air
  • 處理器採用 Intel Ivy Bridge 架構、內顯為 HD Graphics 4000
  • 記憶體最高可擴充至8GB
  • 13吋入門款價格 $37,900
  • 13吋、SSD 128GB、升級至8GB記憶體的總價 $41,160
  • 提供 USB 3.0 連接埠

2012 New MacBook Pro
  • 15吋配備 Retina 高解析度顯示器(2560x1600、220dpi)
  • 15吋配備 Retina 顯示器 $69,900 起(一般螢幕 $57,900 起)
  • 記憶體最高可擴充至16GB
  • 厚度僅1.8公分(移除光碟機)
  • HD Graphics 4000 + NVIDIA GeForce GT 650M/1GB GDDR5 雙繪圖處理模式
  • 客製頂級規格 15" + Retina + 2.7GHz + 16GB + SSD 768GB = $120,871
  • 提供 USB 3.0 連接埠

新款的配備和幾個月前網路不斷流傳的報導幾乎一樣,所以看到新規格只有一個感覺:「原來謠言是真的!」

新款的出貨日期是七月下旬,還有一個月時間才上市。對於想買台輕便的 Ultrabook 又不需要太講究效能的使用者,並不一定要等待新款,如果舊款 Air 有驚喜出清價,也是可以考慮出手了。 

延伸閱讀

2012年6月10日

精實創業: 用小實驗玩出大事業(The Lean Startup 中文版)新書介紹

精實創業: 用小實驗玩出大事業
The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

作者 Eric Ries 是矽谷的創業家,他透過演講、寫書提倡精實創業(The Lean Startup)的理念,這是給網路創業者的行動指南,當然也適用於其他同樣面對諸多不確定因素的產業。

對網路創業者來說,唯一能確定的事情就是「不確定」,因此沒有一種創意是剛開始就會成功,所以「快」是一切行動的準則,快速推出產品雛形(MVP),很快地實驗測量修改,並不斷改良以做出更符合市場需求的產品(Pivot)。

以下是摘自書籍網頁的介紹:
::為何需要「精實創業」?
過去我們都認為,產品開發就是要一套完整的商業計畫。「精實創業」認為,開飛機或許需要厚重的使用指南,但開車到某個目的地,幹嘛把如何使用駕駛盤寫成一本手冊?面對每一秒都在變化的現代環境,「完美」的商業計畫只是浪費時間,我們應該開車就走,到路口再調整方向。這樣,大幅縮短產品修改更新的時間週期,就是「精實創業」的核心精神。
::「精實創業」的關鍵概念?
最小可行產品(MVP):產品或服務不要等到「完美」才推出,只要服務堪用就應該讓消費者使用。當初dropbox的第一版產品只不過是一段影片說明,就可以聽到眾多使用者的迴響。當初google只能搜尋專業技術網站,但使用者都已經知道她的優點。
軸轉(Pivot):快速推出產品、快速更新,可以讓我們真的知道產品是否讓大家滿意,一旦確認做出來的東西不是大家所需要的,就應該立刻修改方向,這就是軸轉。當初flickr是一個線上遊戲網站,經過「軸轉」,將子計畫改成主計畫,就成為全世界最知名的照片分享服務。Twitter原本是線上廣播,也是經過「軸轉」,成為改變世界的新服務。
::誰應該使用「精實創業」?
「精實創業」特別適合有新想法的創業人士,無論你是自己一個人,有三五志同道合的好友,還是你在一家大公司裡準備向老闆提出一個不需要花太多錢的「內部創業」,這些都適合。只要是你的想法還沒有明確成功的範例,這本快速開發、快速獲得結果的方法,就是你的最佳選擇。
::對「精實創業」的經常誤解:
精實代表要盡可能節省。(錯)精實的重點在於實驗->測量->修改的速度。
精實創業只適用網路創業。(錯)任何需對面對太多不確定因素的新想法,都可以使用精實創業的方法。
精實創業者都是那些剛起步的小公司。(錯)許多擁有龐大資源的公司也適用精實創業,重點是有效率的學習與創新。
精實創業要用資料和消費者反應來取代了願景。(錯)願景是新創團隊的核心動力,藉由資料與消費者來確認行動方向。

延伸閱讀
  1. 購買連結(一)(TAAZE行銷連結)
  2. 購買連結(二)(誠品網路書店)
  3. The Lean Startup (official)
  4. Startup Lessons Learned (author's blog site)
  5. 原文書(Amazon) 
  6. 《精實創業》推薦文:持續學習、持續進步、持續創新的創業精神

2012年6月8日

夏日上班族運動生活必買:台灣製造 titan 抗菌活力襪

圖:抗菌活力襪(行銷連結)
又到了熱呼呼的夏天,這種天氣真是苦了上班族,連中午外出都要先擦點防晒油,要一邊想辦法躲開大太陽,還要順便買杯透心涼的冰飲。就算是成天待在辦公室吹冷氣的上班族,上下班搭車騎車開車還是會大粒汗小粒汗,加上怪異的天氣經常濕悶,這種天氣常讓人覺得很不舒服。

但天氣再熱還是要維持每天運動的習慣,在上班前或下班後,健走、慢跑、單車或游泳都是很不錯的選擇。我的習慣是晨起跑步(如果鬧鐘起得了作用)、下班後再去游泳,之後泡個舒服的 SPA 再回家。

夏天運動除了要注意營養和水份的補充,防曬和吸濕排汗的配件也很重要,穿著的部份當然首推快乾的吸濕排汗衫;剛好最近某 L 國民服飾品牌在特價,它很耐洗又耐穿,買個幾件就能度過這個夏天。

相信大家都知道運動要穿專用的鞋款,才能保護腳踝減少運動傷害,但運動襪可能是比較常被忽略的配件。其實到了夏天,除了衣著要穿得舒服,襪子的好壞也很重要,尤其是為了健康或環保,喜歡「多走路有益健康」的朋友,不管是上班前或利用空檔運動一下,其實仔細感覺就會發現襪子經常是濕透。我平常喜歡穿無敵透氣的 M 牌的水陸兩棲鞋款,但上班仍不免常要穿比較體面的皮鞋、皮製休閒鞋,這時候流汗讓襪子濕了就很尷尬,就算很不舒服但也不方便在辦公室大剌剌脫鞋風乾啊!

包裹在襪子的雙腳不能保持乾燥,會有什麼後遺症呢?記得前幾年的夏天,曾經有段時間腳趾長了不少水泡,奇癢無比而且很久才治癒,後來才知道那是汗皰疹,可能是因為悶熱、流汗加上細菌感染,會反復發作好幾次。

自由時報曾刊載一篇報導,皮膚科醫師蔡妍筠表示:「要保持手指與腳趾乾燥,如果因為工作因素,無法穿涼鞋或是露出腳趾的鞋子的話,就要選穿通風、吸汗的襪子。當覺得腳汗很多時,就要換上乾淨的襪子以避免誘發,...」

這次很幸運又能參加 titan(太肯運動科技)的體驗活動,titan 是堅持台灣製造的專業運動襪品牌,只要在搜尋引擎輸入 titan 關鍵字就能找到不少開箱文;多數的介紹都來自部落客的親身體驗,廠商敢於利用網路做「口碑行銷」,肯定是對產品有足夠的信心。

收到「抗菌活力襪」的時候,又被它的精巧包裝吸引,新的紙質包裝更講求環保,但不失運動精品的質感設計。用 Google 找了一下發現 titan 環保包裝,是由位於台中的 enhance design(英翰斯國際)設計,值得一提的是部分包裝作業委託給慈愛智能發展中心,對善盡企業社會責任(CSR)看的到 titan 的實質努力,不但努力創新研發產品,也能顧及環保及公益;這個精美的包裝盒可以保留起來,放在衣櫃或鞋櫃裡收納襪子,看起來更乾淨整齊。

不同襪款強調的特性不一樣,抗菌活力襪的成分是:80% 抗菌紗(竹碳款為 65% 抗菌紗及 15% 竹碳)、14% 彈性紗、5% 萊卡膠絲、1% 尼龍。既然命名位抗菌襪,當然一定要有抗菌效果,但不是廣告寫了就算數,其中抗菌紗經過 Intertek 公司專業檢驗,報告顯示其殺菌及抑菌效果都達到 99.9%;有資料可以佐證這雙襪子的功效,當然一定要實際試穿體驗一下啦!

打開外包裝,可以看到值得信賴的「微笑MIT」標章,這是經濟部主導的驗證制度,標章可以證明產品是台灣製造,讓支持台灣產業的消費者獲得更多品質保障。

抗菌活力襪從腳踝到腳趾都有貼心的設計,包括減壓、透氣及防撞,非常強調舒適度,也可以彌補鞋子的不足:


採用杜邦萊卡織料的襪口設計,不用擔心水洗後會鬆垮垮;鬆掉的襪子最麻煩了,直接丟掉不太環保,但繼續穿又很不舒服。至於這個材質可以耐用多久,就等3-6個月後再來跟大家報告了。


抗菌活力襪是比較適合平時工作及生活的襪款,所以沒有尺寸及左右之分,提供的 F SIZE(24-28公分)適合大多數人的腳長;因為材質有彈性不太會緊繃,不管男生或女生穿都合腳。



在下班後想要順道運動一下,只要換件短褲,把襪口摺一下就能搭配低筒的運動鞋。杜邦萊卡(LYCRA)是彈性極佳的纖維材質,反折後穿起來也不致於太緊繃。如此一來,就不必多為下班後的半小時運動多準備一雙襪子,既省時又方便。



以舒適度來說,襪子最直接和雙腳皮膚接觸,很明顯就能感覺到材質好壞的差異,所以除了擁有一雙好鞋,也要有好襪子搭配才會有加分的效果。即使穿一整天下來,titan 的活力抗菌襪還是可以維持乾燥,基本的透氣排汗功用得肯定,而抗菌的保證也讓對皮膚問題敏感的人更安心。對於需要專心工作或經常走路、開車的人,腳底不舒服其實會很頻繁地影響專注力。

因為工作的關係我經常出差到其他縣市,經常襪子需要穿一整天,晚上回到旅館才能脫下襪子,有時候還是又濕又臭很想直接丟垃圾桶。但後來我每次出差或旅行,一定都會多帶雙 titan 的襪子來解決困擾。

這次體驗抗菌活力襪之後,我對往後朋友當兵去墾親探訪時,要帶什麼伴手禮又多了一個口袋名單。還記得當兵那時整天操課站哨打掃,襪子很少是乾的的狀態,而且迷彩膠鞋經常磨得腳都破皮起水泡流血,得在襪子裡面塞衛生紙才能度過煎熬。雖然那時候試過很多種襪子,一年消耗掉幾打的襪子,還是解決不了雙腳經常腫痛的問題。雖然我已經告別數饅頭的日子,但是在營天數還沒倒數完的朋友,也許可以試試看 titan 的活力襪系列。

在什麼都漲只有薪水沒漲的時代,身為消費者都要睜大眼睛才不會多花冤枉錢。除了價格外,還要把品質也考慮進來,用C/P值做比較才會買到真正划算的產品。有興趣體驗一下台灣製造高品質運動襪的朋友,可以趁著 titan 的促銷活動,用比較超值的價格入手。

titan 透過網路口碑行銷推出優惠預購方案


優惠訊息(購買商品行銷連結)
  1. titan抗菌活力襪體驗組(1)-黑色  原價200   嚐鮮價$180
  2. titan抗菌活力襪超值優惠組(5)限時下殺價$699原價:$1000直接打7平均一雙約140




抗菌活力襪一代出清 BYEBYE 價 $486元

2012年6月4日

手機照相分享服務 picplz 宣佈停止服務,呼籲用戶儘速備份


R.I.P. picplz

曾經註冊過 picplz 帳號的朋友,這幾天應該會收到一封信:


Hi ******,
picplz Shutting Down Permanently
On July 3, 2012, picplz will shut down permanently and all photos and data will be deleted.
Until then, you can log in and download your photos by clicking on the download link next to each photo in your photo feed.
Thank you for your support of picplz and we apologize for any inconvenience this may cause you.
Thanks,
picplz


picplz 為手機提供照片即時分享服務,它曾經被拿來和 Instagram 比較,由於 picplz 比 Instagram 更早推出 Android 版本,對早期沒有 iPhone 的拍照愛好者來說,可能都曾試用過 picplz。

但是 picplz 和 Instagram 的命運大不同,後者幸運被 Facebook 高價收購,而 picplz 則是正式宣佈 GAME OVER...

這個故事告訴我們,沒有一個網路服務會天長地久,對於想要珍藏久一點的數位照片,平時還是靠自己多備份;已經上傳 picplz 還沒備份的照片,在 July 3(七月三日)前趕快登入備份吧!

延伸閱讀


2012年6月1日

DokuWiki + Deck.js 打造超快速簡報發佈工具

DokuWiki + Deck.js
昨天我們發佈了針對閱讀舒適度改良的 Readable Template,這個佈景主題讓 DokuWiki 撰寫的筆記,可以方便在各種尺寸螢幕的裝置,包括手機及平板能夠更容易閱讀。接下來要改善的則是簡報功能,讓寫好的筆記可以快速變成簡報,目的是使開發者不必再花太多時間整理簡報,就能滿足一般小型聚會分享技術的需求。

我目前比較喜歡的 HTML Presentation Framework 是 Deck.js,它的版面簡潔美觀,以更現代的 HTML5/CSS3 為基礎,有換頁效果,並支援平板電腦的手勢操作(手指滑動換頁)。

過去曾經分享過如何將 DokuWiki 加上 s5reloaded 外掛,讓它可以快速產生 S5 簡報。但隨著技術不斷演進,S5 已經顯得不太有魅力了。

目前在 DokuWiki 的 Plugins 清單,仍未看到 Deck.js 的外掛;秉持著開放原始碼自由軟體的精神,沒有人寫的 CODE,當然就是由我們的開發團隊自己動手生一個出來。

很快地,催生 DokuWiki Deck.js Plugin 專案有了一點成果,完整的原始碼分享在:

https://github.com/lyhcode/dokuwiki-deckjs

範例可以參考我們用 DokuWiki 撰寫的筆記,右上方的簡報圖示,點擊後就可以播放。

http://lyhdev.com/slide:deckjs

如果要直接進入簡報模式,則使用這個連結:

http://lyhdev.com/_export/deckjs/slide:deckjs

只要在 DokuWiki 的編輯區,加上「~~DECKJS~~」標示,就能讓筆記支援簡報播放。當然也可以支援 Deck.js 提供的其他佈景,例如使用「~~DECKJS neon fade~~」,就可以切換成「霓虹燈」樣式及「淡出」換頁效果。

Deck.js Neon Styles Theme
目前這個專案仍在 beta 的階段,可以支援 PC 瀏覽器如 FireFox、Google Chrome 及 Safari 等;目前已經支援 iPad(僅限橫式瀏覽),把網址加入主螢幕(Home Screen)當做圖示,就可以支援 iPad 的全螢幕播放。

iPad Fullscreen Slide Show

歡迎有興趣使用 DokuWiki 的朋友參與開發或將意見回饋給我們:

https://github.com/lyhcode/dokuwiki-deckjs
lyhcode by lyhcode
歡迎轉載,請務必註明出處!