2013年5月20日 星期一

[專業打雜滴咕] 你敢挑戰你既有的思維嗎?


我們常常陷入所謂的【確認偏誤】


         今天在書上看到一則很有趣的故事,某位教授做了一個實驗,他給受試的學生們看一張紙,這張紙上面寫了一排數字,數字的排列方法是:「2、4、6」,然而學生們必須猜中在這張紙背後所寫下的排列規則,學生可以任意的在接下來的序列上填上數字,則教授會回答與「規則相符」或是與「規則不符」,大家可以猜猜到底這個規則是什麼,我在文章最後一段會公布答案。
人們最會做的事情,無非就是把新資訊過濾到讓既有的想法得以完整無缺低保持下去
股神 - 巴菲特
         沒錯,我們常常難以接受「新的資訊」來改變自己既有的觀念,除了怕別人覺得自己很foolish外,也會有種好不容易找到的規則又錯了的不安全感,所以我們很難放棄原先保有的觀念,誰會想要挑戰自己呢?如果一開始觀念就是往正確的方向前進,那還沒有什麼太大的問題,怕就是怕在一開始就是不對的,還死不認錯的活了一輩子,這樣的人很有可能是你的長官,你的長輩,甚至是你自己,這就是所謂的【確認偏誤】。

         書中舉了一個例子,如果一家公司的董事會決定了一項決策,通常都會很順利的通過,底下的部屬無不拍手叫好,即便是一個很爛的決策,接下來種種成功的跡象,都會拿來放大的證明這是個英明的決策,然而那些反面的跡象,就會被當成例外,或是直接了當地忽略。這是多麼可怕的一件事情呀!但是卻實實在在地出現在真實生活,所以身處在最底層的我們,常常會覺得為什麼我們要執行一項這麼愚蠢的任務,就因為當決策已經執行下去,很難會有決策者能否定先前的一切,可想而知最後就剩下底下的人去收拾爛攤子,然後心中默默的暗自詛咒上面的人。

         Franky一開始在創辦5irehands時,就很清楚的說在這個團體,每個人都是平等的,都被賦予可以勇敢的挑戰其他人的思考,就連身為founder的我,也很能無時無刻接受大家的挑戰,勇敢的去顛覆以前的思考,畢竟我們是身處於變化相當急速的網路世界,今天的決策,不代表明天適用,尤其5irehands是新創團隊,在一開始建立各項知識時,一定會經歷不斷不斷的改變,我相信只要能改變的夠快,快到能符合各種需求以及時勢,這樣才有資格存活下去,寫這篇文章同樣的是在提醒我自己,不要陷入這樣的確認偏誤迷思中,才能做出好的決策!

         現在要來公布這個故事的結局,讓大家了解要質疑自己的理論,需要耗費多大的力氣,大部分的學生都猜「8」這個數字,教授就回答與規則相符,為了保險起見,大夥又多猜了「10、12..」,教授還是回答,與規則相符,於是學生們得出了一個結論,就是「前一個數字等於後一個數字加2」,但教授卻搖搖頭表示這不是他列的規則。

         其中一個比較古靈精怪的學生,在測驗一開始就跟大家猜得不一樣,他先猜了「4」這個數字,教授說與規則不符,後來他又猜了「7」,教授說與「規則相符」,接者他猜了一連串數字,諸如「12、-17、33…」,顯然他有了一些規則,最後這位學生的答案是,「後一個數字大於前一個數字」,教授回答「那正是這張紙背後的規則」,很簡單的規則是吧?但所有的同學都在「證實」自己,只有這位聰明的同學,在「否定」自己的假設,透過這個實驗,感受到確認偏誤的威力了嗎?

(以上故事出自思考的藝術這本書)

2013年5月14日 星期二

[菜鳥設計師嘀咕] browser統治世界 (1) - HTML5


行動 + 堅持

        
        每天都要更努力一點,更進步一點,在追求夢想的路途中,就是要馬上行動 + 堅持到底!!!!!!!! 上個星期周末很不巧地遇到下雨,而且還下著根本就是像是用倒的親盆大雨!!!!!!!! 不過呢,菜鳥我依然還是去朝聖了軟體界的大神保哥大大開的Web前端認證課程,再大的雨也澆不熄菜鳥我的熱情阿!!!!!!!!!!!!! 身為5irehands掌舵前端技術的菜鳥,任何有關前端技術的講座、課程或是研討會,菜鳥絕對都不會輕易放過!!!!!!!!! 這次的認證課程主要是在講授HTML5、CSS3以及一些Web開發和測試工具介紹,這門課真的是給菜鳥灌頂不少,而且保哥大大的講授真的都很深入人心,既實務又具體,不像一般傳統死硬的課程只有照本宣科,圖片就是傳說中的保哥大大!!!!!!!!! 保哥大大在課程中說了"以後就是browser統治世界",且聽菜鳥的所見及所聞.......

HTML5






        這次的課程重點之一就是HTML5!!!!!!!!! 菜鳥在這之前也有自學了一下HTML5,不管是從Google上找資料還是到書局翻書,或甚至是菜鳥還想找一本菜鳥覺得寫得不錯的HTML5的書來每天抱著研究,就這樣拼拼湊湊了一些基本概念,而菜鳥在這次課程徹底被灌頂,很多觀念都被連結起來了,而且也真正認識到HTML5的強大,在這裡菜鳥簡單的跟各位分享!!!!

簡介

     
        HTML5是下一代主要的HTML規格,自從1999年制定HTML 4.01成為網頁開發標準後,於2004年首次由WHATWG這個組織提出HTML5,直到2007年被W3C採納後W3C隨即成立工作小組進行規格制訂,在這次的規格制定中不同的是,各家瀏覽器大廠也都參與了規格制訂,因此目前的主流瀏覽器(最新版:Chrome v26、FireFox v20、IE10、Safari v6、Opera v12)幾乎都已經有支援了HTML5,要利用HTML5著手進行網頁開發是沒問題的(當然要考量到老舊版本的瀏覽器相容問題,不過也已經有solution了),至於何時才會發布HTML5成為正式的網頁設計語言標準??? 最近一次的W3C官方發布消息是說2014年就會有正式的版本出現,但是在近期的一些消息指出,HTML5要到2022年才會發布正式版本,這時間點真的是差很大...;事實上,目前HTML5雖然已經受到各家瀏覽器的支援,但是草案畢竟是草案,在尚未有正式版本發布之前,先不說瀏覽器新舊版本與跨瀏覽器的相容性,光是HTML5的語法本身就仍有變動的可能,在菜鳥來看,徒增不少前端技術開發的複雜度(這在CSS3更加明顯),但不論如何,HTML5的趨勢是擋不了的了,擁抱它吧!!!!!哈~

HTML5 v.s HTML 4.01

     
        究竟HTML5和現行的HTML 4.01差在哪呢???

  • DOCTYPE的宣告方式變得簡單:DOCTYPE是用來定義此份網頁文件類型的標籤,使得瀏覽器可以辨別此份網頁文件是HTML或是XHTML,此外,也是告訴瀏覽器該用何種模式來解析顯示此網頁。以往HTML 4.01的DOCTYPE宣告如下所示

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


          但是到了HTML5之後,簡化成下列所示

<!DOCTYPE html>

        沒錯!!!!! 以往還要很嚴謹繁瑣的宣告一堆東西,在HTML5短短一行就搞定!!!!!

  • 網頁編碼:要讓後端server回傳網頁到前端時能夠正確解析網頁,編碼格式就很重要了,只要在<head>標籤中加入<meta>標籤就可指定網頁編碼囉!!!但是HTML5和之前的版本宣告方式不同,分別為

HTML 4.01:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
HTML5:      <meta charset="UTF-8">


        一般來說,這兩個<meta>標籤都會同時加入,主要是為了要相容不支援HTML5的瀏覽器也能正確解析。此外,網頁編碼還有其他方式,像是直接在HTTP的Content-Type標頭設定「Content-Type: text/html; charset=UTF-8」,或是在網頁檔頭的地方加上BOM字元「EF BB BF」,當瀏覽器開始解析網頁時,認到這三個字元就知道要以Unicode來顯示網頁。

HTML5概要

     
        廣義來說,HTML5可視為是HTML + CSS + JavaScript的技術組合,它除了希望能夠減少瀏覽器因應網頁內容與網路應用服務的日趨多元而需擴充支援的外掛安裝之外,更是要實踐將網頁架構與網頁呈現做到徹底分離,以網頁架構為出發點,HTML5包含了標籤和APIs兩個部分:

標籤

       
         HTML5在標籤的制定上保留了大部分原本在HTML 4.01中存在使用的標籤,進而做了一些變化及調整,包括
  • 新增語意標籤:HTML5所新增的標籤,這些標籤本身即被賦予意義,有助於網頁架構能夠增加其可讀性以及可用性,最重要的是,在SEO的表現上更為突出!!!!! 相關常用標籤有<header>(標記頁首的內容)、<footer>(標記頁尾的內容)、<article>(標記主要網頁內容)、<aside>(標記與主要內容相關的內容)、<nav>(標記網頁的導覽列)、<section>(代表一份網頁文件的範圍)、<figure>(標記圖片)。其中,<section>這個標籤的用法與<div>可以說是一模一樣,唯一的差別在於,<section>有其語意存在,而<div>並無代表任何意義。
  • 新增各種功能標籤:包括了向量標籤(<MathML>、<svg>)、多媒體標籤(<audio>、<vedio>)、繪圖標籤(<canvas>)、外掛標籤(<embed>)、以及其他標籤如<kengen>、<mark>、<rp>、<progress>、<meter>等等。
  • 原本用來表現樣式的標籤如<center>、<font>等等的標籤在HTML5皆已被移除,改以CSS取代,實現架構與樣式分離的目標。

        還有其他一些新增或被移除的標籤,菜鳥在這裡僅列舉出常用的標籤。此外,在HTML5中,某些標籤有新增了一些屬性,如<input>,<input>通常會搭配<form>標籤使用,在<form>標籤中的屬性通常會指定HTTP的方法、表單動作等等,如下所示

<form method="post" action="XXX">
    ......
    ......
    <input type="submit" value="送出">
</form>

        在<input>標籤的新屬性中有一個屬性叫做"formaction",這個屬性與<form>標籤的"action"相同,同樣都是指定表單動作,新增此屬性可以達到動態地指定當送出按鈕按下時要進行的動作,如下所示

<form method="post" action="XXX">
    ......
    ......
    <input type="submit" value="送出" formaction="YYY">
</form>

        當送出按鈕被按下的當下,表單動作會優先取用YYY而不是XXX,如此一來就能更有彈性地去動態調整表單動作。相關新增的屬性還有很多,這裡就族繁不及備載啦!!!!!!!

APIs


        HTML5所提供的APIs也是很強悍吶!!!!!!!!!!!! 且聽菜鳥娓娓道來..............欸等等!!!!!!!在介紹APIs之前,菜鳥要先介紹一下在HTML5裡對於JavaScript之類的指令碼所新增的非同步執行屬性"async"!!!!!!!!!!!!!



       我們直接利用這張圖來簡單描述一下。在瀏覽器解析(parser)一份網頁文件的過程,當解析到<script>這個標籤時,如果是正常情況,則會像圖片中最上面的執行情況,中斷解析,先去連線下載指令碼,接著執行,執行完成後才會繼續解析網頁,這樣的情況稱為「正常載入」;圖片中間的執行情況,可以發現有多加了一個"defer"屬性,這是在HTML 4.01舊友的屬性,加入這個屬性後,解析的過程不會因為下載指令碼而中斷,直到網頁全部解析完成後才去執行下載好的指令碼,這樣的情況稱為「延遲載入」;圖片最下方的執行情況就是加入了HTML5新增的屬性"async",同樣地解析過程不會因為下載指令碼而中斷,一下載好就立刻執行指令碼,這時才會中斷解析,這樣的情況稱為「非同步載入」。
        事實上,我們在使用的時候還是會用正常載入的方式,除非是指令碼所要取得的資料花費時間會太長或是資料來源的網路速度真的太慢,為了不影響網頁解析速度,才會去使用非同步。

        接下來,菜鳥就要跟大家簡單分享一下HTML5有哪些強悍的APIs

  • 網頁歷程記錄:可以控制網頁的瀏覽歷程、管理歷程記錄堆疊的URL與方法
  • 離線網頁應用:使得網頁有離線瀏覽的能力,實作方式就是提供一份離線瀏覽所需要的檔案清單
  • 網站儲存空間:以往的HTTP存取資訊都存放在cookie中,但是由於1個cookie的容量最大只有4KB、每一個domain最多也只能存300個cookies、且每進行一次HTTP Request都會送出cookie,會消耗過多頻寬而降低網頁整體效能,因此在HTML5提出了容量更大且效能更好的資料空間來解決這個問題
  • NoSQL:HTML5捨棄了以往關聯式資料庫的概念,改以index的方式進行資料庫存取
  • 全球定位資訊:提供行動裝置上的全球定位資訊
  • Web音頻控制:常用於HTML5的遊戲開發,且利用此API可以做到很專業的音效處理
  • Web Socket:透過HTTP模擬Socket使得前端到後端可以透過事件做到即時互動,線上聊天室的好solution
  • 伺服器發送事件:透過HTTP實作專屬的Server Push協定
  • Web Worker:可以使得前端會需要用到長時間執行的指令碼能夠以一個獨立的執行緒在背景執行,可提升網頁的回應速度
  • canvas 2D繪圖:提供完整2D繪圖實作,瀏覽器會利用用戶端顯示卡的繪圖加速功能來處理2D繪圖,HTML5的遊戲幾乎都是透過此API做出來的
  • 多媒體擷取:可用於擷取裝置上的相機與麥克風
  • 檔案操作:允許用戶端直接進行本機檔案操作
  • 觸控事件:用於行動裝置上,允許瀏覽器擷取在裝置上的觸控事件
  • XMLHttpRequest level 2:更完整的XMLHttpRequest和Ajax功能
  • 拖放API:讓瀏覽器支援與裝置桌面互動的拖曳功能支援

        HTML5實在是太強大了,由於它提供的APIs太多,菜鳥也還在研究中,其實菜鳥覺得真正會實務用到應該就是像網頁歷程記錄、網站儲存空間、Ajax、Web Worker、觸控事件與拖放API這幾類,當然也是要評估網站類型、用途、目標客群、或是透過使用者經驗的角度來選擇要使用那些APIs來開發。

        光是一個HTML5就可以說得天花亂墜,這還只是綜觀概述而已,真正的HTML5還有很多地方值得菜鳥和大家一起繼續研究,還是要繼續努力啊!!!!!!!! 最後菜鳥對於整體的心得會在下一篇文章跟大家分享,而下一篇菜鳥即是要跟大家分享課程的另外一個重點 - CSS3!!!!!!!!!!!!!!歡迎各位大神不吝指教~~~~~~~~~~



2013年5月13日 星期一

[專業打雜滴咕] POW ( 力量 , 堅持 )


          有些程式語言底子的人,應該知道pow這個函數所代表什麼,很簡單,就是次方的意思,所以標題的含式用白話文來說,如果你在努力某件事,他所呈現的力道就是以力量為基底,堅持為次方,呈現所謂的「指數成長」。指數成長有個特色,一開始的累積很慢,不同時間成正比,就像我們一開始學習,也許可能不知道自己在幹麻,但是當我們突破到一個層次,我們就會開始晉升為不同的等級,那時我們獲得的東西或是成就感,也會跟者提升到另外的境界,這是很爽的一件事,也就是我對於學習任何事情的一種「心法」。

堅持成就偉大力量


        我以前是個自視甚高的學生,對於「規劃」這件事根本不削一顧,只要事情一來,我相信自己只要在死到臨頭幹個幾天,應該沒有100分也有個70、80分,所以我無法估計未來有多少事情,也懶得計算,在這沒有評估的情況下,變成了一台「多頭馬車」的窮忙族,感覺自己好像做了很多事情,卻不知道很多事情只是碰到了皮毛,還有很多博大精深的學問,或是熟能生巧的技術,都沒有仔細去專研,就拿看書這件事情來說,我是一個相當愛看不同領域書籍的人,有個大部分人都有的習慣,就是「上廁所」會看書,除此之外,平常的我有空閒也會「專程」花一兩個小時看書,但比較不同的,我「上廁所」看的書,跟「專程」看的書,是不同本,因為懶得再把書再拿出廁所…,後來,發現了一件驚人的事情,就是「上廁所」看的書,往往比「專程」看的書,來得早看完,不是因為書本比較薄的關係,而是因為每天都要上廁所,常常誤以為自己專程花了的時間研究東西,居然比不上每天花一點時間的力量,由次可見每天的做的效益是大於專程研究的,雖然不是什麼大發現,卻讓我很吃驚,原來堅持的力量,這麼大。


重複做簡單事


        後來再做業務員的時候,聽一位頗具盛名的前輩講過他成功的方法,他不是做了什麼偉大的事情,也不是有什麼過人的毅力,只是重複做簡單的事情而已,他每天打給10個不同人,發名片給4個陌生人,見3位客戶…等,每天都做一樣的事情,他說,簡單的事情每天做,他就不簡單了!原來成功的秘訣是如此單純,一位設計系的朋友跟我說,他們一年要產出上百件作品;一個成功的部落客,一年要寫上百篇的文章,要經過如此多的反覆與時間,才會磨練出一個專業的技術,因此5irehands為了要成為一個專業的網路團隊,也會繼續堅持下去,除了現階段堅持每周一篇的部落格,一個月一次的工作日,還有堅持每天對於新技術的吸收,不用多,只要每天都比前一天成長一點,突破了某個臨界值,我們就會晉升為不同等級的團隊,寫這篇文章主要的目的,是提醒我自己,不論面臨什麼困難,都要帶者5irehands堅持努力下去,朝我們的夢想邁進。

2013年5月6日 星期一

[專業打雜滴咕]創業除了幹勁外 還需要傻勁


APPUNIVERZ - KKBOX技術長


       這星期AppUniverz請來一個大咖- Eric,現在在KKBOX擔任CTO,如同上圖一樣,外表是個非常非常親切的大男孩,可是技術能力卻讓我相當吃驚,所以我Google了一下他的經歷,只能說是實作派的強者:

       1996 ~ 2000 台大資工
       1999 ~ now 願境網訊
       1998:大三暑假到遊學公司打工當MIS
       1999:公司轉型為網路公司任軟體工程師,拉同學朋友進
                    公司一起開發KKMAN與KKCITY
       2001:任資深軟體工程師
       2002:公司跨入手機遊戲與服務領域任研發一部經理,
                    帶領開發手機遊戲軟體(WAP, J2ME, BREW…etc)
       2004:公司跨入數位音樂領域任研發一部總監,帶領開發KKBOX軟體
       2006:任新事業暨研發副總經理
       2007:任技術長
       2009~:任集團技術長兼任KKBOX技術長

        說到KKBOX,他是我第一個決定「付費」用的軟體,這對我一個資工系畢業的學生,是個重要的里程碑,因為真的蠻好用的,比起我在學生時期所用非正版派系的Ezpeer或是Kuro都來的便利,Eric不斷強調他們的核心價值「一點就聽」,不用在網路上找種子,像個水龍頭一樣,一打開,就會有源源不絕的音樂任你下載,由於他們剛開始就決定走正版路線,使用者大可放心盡量下載來聽,還有許多令人佩服的新功能,譬如說:一起聽,可以自己當電台DJ,播放喜歡的歌序與大家分享。聽說之後還會有互動的遊戲跟平台,實在創意十足啊!Franky非常推薦大家可以使用看看,一個月也才149罷了。

傻勁,其實還蠻重要的


       當初他們在做KKBOX的時候,由於那時他們的強項,是成名很久的電腦軟體KKMAN,對於網路軟體才剛剛踏足進去,想實現一點就聽,他們不斷壓縮音樂的檔案大小,並且在軟體的UI上下了很大的功夫,可以讓大家很快的找的自己想聽的音樂,而且除了技術外,他們還費盡九牛二虎之力跟唱片公司打交道,為了走正版一途,吃了不少的苦頭,終於,在一切終於處理好後,看似很美好的情況下,他們疏忽了最重要的一件事:「頻寬」,如果所有人都要同時在線上收聽,就算聲音格式再小,所佔的頻寬成本還是非常的驚人。Eric說現在回想起來,還覺得當時好傻好天真,但是如果不是當時的傻,也不會有現在的成就,最後他們透過邊聽邊載的機制,成功了解決頻寬的問題,KKBOX也順利地存活到今天。

抉擇也是需要傻勁


       還有一個令我印象很深的,就是Eric反問大家,也是一個他一直在問自己的問題,當初他們公司在第一套軟體KKMAN跟KKCITY,其實已經賺了不少,那時公司不到十人,由於後來社群網站崛起,BBS開始式微,不得不轉型要做其他的,KKBOX就是在這樣的情況下誕生的,但正版音樂初期就要燒掉不少資金,等於要把第一波賺到的資金全數投入,甚至還會不夠,你知道的,唱片公司不是這麼好搞,如果你是當時的CEO,你會決定把全部的資金壓在一個未知勝負的KKBOX呢,還是乾脆分一分給員工直接提早退休,這真是一個很難的問題,我相信5irehands走下去也會遇到類似的問題,沒有自信應該會分一分算了,雖然這答案怎麼也說不準,不過現在證明,他們賭對了!

先找到自己的強項


       聽完演講後,我抱者尊敬的心去請教Eric,我問了一個問題:在這樣多的技術,尤其現在技術推陳出新的速度,遠遠超過一個團隊的學習能力,更不要說是一個人員匱乏的startup團隊,當初他們是如何克服?Eric只簡單的回答我,先找到你們最想做的核心技術,再慢慢地擴大,當初他們的專攻的就是MFC電腦端的軟體。這讓我更加堅定,5irehands現在全心全力的,在網站技術上琢磨,因為我們是個創造力很強的團隊,網站技術可以快速地實現我們的想法,然而眾多的網站技術,我們選擇最新的也是最完善的Ruby on Rails,架構整合最齊全,開發上也非常快速,而目前在這領域上的競爭者,還不是很多,總有一天,5irehands也要像KKBOX他們看齊,找到我們的核心價值,並發揚光大!
Related Posts Plugin for WordPress, Blogger...