Murmur

22
Oct

其實在比賽完當天或是隔天就應該寫心得了,但為了準備學校的報告一直到今天才有空寫文章記錄一下今年的比賽心得。

得獎的那一刻,心中冒出的第一個想法:「原來我還是有能力得獎的」,會有這樣的想法主要是因為就讀碩士班以來總是忙碌於各種外務,不再像過去大學時代一樣總是熱衷於各種比賽,我一度以為自己已經喪失了在外面比賽得獎、獲得評審肯定的能力,不過最終運氣算是挺不錯的,這是碩班以來第二次參加比賽(事實上第一次就是去年的Yahoo! Open Hack Day),這次比起去年算是認真了一點,果然也有了不錯的回報。

我要感謝 @dlackty 以及 @pirrer 分別在UI以及idea、企劃、簡報上的許多幫忙,使得我們三個人可以各司其職在短短的時間內產出大量的程式碼來做出一個可展示的雛型;我要感謝Ruby on Rails、Git、Heroku,因為沒有這些技術的支持,我跟 @dlackty 的程式碼大概無法這麼快地產出並且整合。

相較於去年以為真的是到會場之後開始24小時拼命寫程式,今年我們事先碰面討論了兩次概念,並且在比賽當週先確定有哪些API可以用、該怎麼用,比賽當天主要的工作就是把UI、程式功能、API整合起來,當然計畫趕不上變化,有許多事先沒想到的細節紛紛冒出來,原本以為可以當天晚上開始準備簡報內容、錄製demo,也是到隔天早上十點才開始進行。

這次我覺得算是盡力了,畢竟我在三點準備就寢的時候突然覺得「我應該奮戰到最後一刻,否則我會後悔」,於是我決定直接出門趕到會場,加上了幾個重要的功能並且改掉了幾個bug(原本是有打算當天公開網址的XD),很久沒這麼努力,說實在還滿爽的!

我們的作品或許會在不久的將來悄悄上線,提供一些實用的小功能讓有需要的人使用,只是個小品,但希望能對網路上的某些人有幫助、有些貢獻。:)

此外,這次做的主題跟搜尋有關(我們得到的獎項名稱為Best Search Hack),過去從來沒想過自己會做出跟搜尋有關的產品,沒想到實際接觸之後發現還挺有趣,而且還有許多值得研究的議題可以探討(此時就要安慰自己:或許論文可以派上用場?XD)

上面都是個人內心想法,下面稍微談一下對於比賽的想法:

  1. 場地比去年棒(去年我坐在圓桌,三個人的電腦都放在桌上時空間不好調整)
  2. 網路比去年快(不過後來好像有斷掉一段時間?)
  3. 去年的食物似乎供應量跟多樣性都比今年高(不過也有可能是因為去年花在吃東西的時間比寫程式多)
  4. 我比較喜歡去年的dancer(純粹個人喜好)
  5. 音樂沒有去年那麼激昂(今年還算滿平衡的)
  6. 國外針對這次活動lap dance的看法,我個人是沒什麼意見,有人覺得這是台灣文化、有人覺得這是物化女性、有人覺得跟活動精神無關,好像都有道理,但我大概是太專心寫程式了,我只希望明年還能有Yahoo! Open Hack Day,我應該還會再參加吧!XD(我去年是第一隊,今年還是第一隊,明年搞不好也會是第一隊)
Category : Murmur | Blog
22
Aug

這幾天痞客邦在系統架構、後台架構一直到網址,似乎都有非常大幅度的改變。關於系統架構的部份,幾天前便在gslin的部落格上看到,包括這次 PIXNET 前後台的一些整理假設前後台順利上線後,之後的計畫…

因為我本身不是痞客邦的使用者,對於痞客邦的後台沒有太多意見,唯一印象就是後台比起無名小站好多了,無名小站的後台不僅醜,而且還非常不友善。Yahoo!這家國際級的公司竟然允許自己旗下的產品出現這樣的品質。說難聽點,你前台有很多正妹照片、CSS,後台卻這麼醜又沒架構,就像當年政大商學院出現一個七八萬元的垃圾桶、打開以後發現裡面居然還是橘色的大垃圾桶一樣,金玉其外、敗絮其中啊!

剛剛看到這篇「痞客邦的更新災難(下)」裡面提到改網址會造成很嚴重的後果,我真的要說一句:「有這麼嚴重嗎?」

首先拿強者我同學TingyuTony的痞客邦部落格來測試一下,他原有的網址是http://blog.pixnet.net/tingyutony

當你在瀏覽器輸入舊的網址,瀏覽器會自動轉到新的網址:http://tingyutony.pixnet.net/blog/

如果你在Linux shell底下輸入 curl -v http://blog.pixnet.net/tingyutony,會看到下列程式,可以發現痞客邦目前使用的是HTTP 301 Redirect來將舊的網址轉到新的網址(看不懂程式碼的使用者請直接跳過下面的程式,續看後文)

我曾經在如何使用Rails做HTTP 301/302 Redirect?文中稍微提過何謂HTTP 301/302 Redirect:

HTTP的規範中,狀態代碼301代表Permanent Redirect(永久定址轉移)、302則是暫時定址轉移,相較於使用HTML或是JavaScript來達到Redirect轉址目的,最大的差別在於301/302的HTTP狀態是被搜尋引擎所認可的;換句話說,你可以透過301/302轉址的方式讓搜尋引擎爬到你搬家後的新網頁。

至於301、302兩種狀態的差異,所謂的「永久」定址轉移是指搜尋引擎會根據你所指定的新網址重新建立索引,原來的位址便不再使用;而暫時定址轉移則是暫時性地將網頁搬到某個地方。

換句話說,目前痞客邦採用的是302 Redirect,我猜測是因為目前轉移期間,先使用302 Redirect,這段期間的確Google的索引或PageRank都不會直接跟著轉移到新的網址,但只要過陣子系統穩定後,全部改為301 Redirect後,一切便會恢復正常,我相信Google在這方面應該不會讓人失望。

該文中提到三點,除了PageRank之外,提到訂閱失效的問題,我想這是軟體的問題而不是網址的問題,因為我的Google Reader是完全有follow上述的HTTP 301轉址,把訂閱的來源對映到新的網址的,若您還在用IE7,或許他便是沒有實作這一點吧!:p

至於書籤網站失效,我認為這跟IE7是一樣的問題,funP推推王目前是以你當下的網址來作為推文的依據,只要大河馬他們花點時間將程式或資料庫的index加上判斷301轉址的機制,便可解決這個問題。

痞客邦的作法是依循標準HTTP的作法來更換網址,「理論上」不僅正確而且對使用者也不會造成任何影響,你甚至可以一輩子都用舊的網址,我相信他都還是會自動轉到新的網址。至於IE7的訂閱功能、推推王,或許是當初沒有考慮到?不過,若使用者們對推推王這麼有信心、有興趣,我相信推推王過一陣子就會搞定的;至於微軟的IE7,建議妳改用FireFox 3吧!:D

P.S. 至於Google AdSense失效的問題,這是安全性考量,請進入AdSense後台重新設定即可;我想AdSense才不管你要不要轉址,這是政策問題而非技術問題;何況,這是收入來源,就別跟它計較太多囉!

Category : Murmur | 網站經營 | Blog
30
Jul

大約在四月底、五月初的時候,我花了兩個晚上寫了「成份分析機產生器」,加上後來對資料庫、程式碼的優化,花的時間也不算多,但令我訝異的是直到上禮拜,這個網站已經達到單月600萬Page view的成績。

這個誕生不到100天就達到單月突破500萬PV的網站,有幾個值得分享的數據跟經驗,我就再次貼幾張Google Analytics的統計圖表並為文與各位分享我的心得,還請各位長輩、先進不吝指教。

首先,這個網站對我而言很重要的一個意義是成為台灣少數超越單月500萬Page view的網站,畢竟這是我第一次做出流量這麼大的網站,而且還是一個不怎麼實用、有意義的網站。

Google台灣工程研究所所長簡立峰在Google Developer Day 2008中表示:「台灣大多數網站的page view都在500萬以下」(Google App Engine目前在單月500萬page view以下不收費)

我在五月底曾經提過幾個關於「成份分析機」的數據,當時單日的PV大約在三、四萬左右,一直到6月27日突破單日10萬PV,7月5日開始在三天內攀升到20萬PV,之後便一直維持在單日20萬到25萬左右的PV,最高曾在單日達到將近35萬PV(348,757),我在寫上一篇文章的時候萬萬沒有想到一個無聊的小玩意兒居然可以達到如此驚人的流量與點閱率,而在六月中旬看到簡立峰說台灣多數網站的page view都在500萬以下之後,剛好流量開始攀升,我便開始期待單月500萬PV的日子到來,截至今天為止,七月份的流量剛好就是在600萬PV左右,目前看來要再向上突破似乎不容易,再過一陣子可能會跌下來,但我想單月維持在數十萬到百萬PV應該不是問題。

(當然,PV上不去,主機本身的能耐也有關係。)

沒錯,他是個無聊的小玩意兒,但請看看下列幾張圖表:

image
7月15日,單日PV逼近35萬。

image

7月1日到7月30日,創造了至少610萬PV,要向上衝到650萬可能有困難,但若此系列文章還有機會分享,大概要等到千萬PV再說了(我想機會不大。)。另外,42.5萬個造訪次數對我而言也是挺驚人的數字。 

image
拿funP推推王、Mr.6等知名網站來進行比較。顯然funP的到達率表現是挺優秀的,前陣子飆高不曉得是因為媒體故光增加還是何故?

image
從Rank來看,成份分析機產生器攀升的速度、斜率我個人挺訝異的 。

image

我唯一能拿出來說嘴的PV,就Alexa的資料來看,在七月初超越了funP。「假設」Alexa的數據值得參考,那麼我們大概可以稍微推估一下funP的流量。超越PV的爽度大於實質意義,畢竟成份分析只是一個有趣、好玩的小玩意兒,比起funP推推王這種提供資訊匯集的有用網站,實在是膚淺許多。

雖然無聊,但確實流量驚人

image

目前在Alexa上面,這個小玩意的台灣區流量排名居然在550名,我曾在上一篇文章提到幾點心得,包括在網站上放熱門排行可以有效吸引網友逗留、內嵌語法(或說Widget)可以讓網友掛在自己部落格上帶來更多流量、Ptt流量相當可觀(畢竟我從頭到尾只有在Ptt po過一篇文章,就自己擴散開了。),我想會帶來如此驚人的流量(對我而言很驚人,如果長輩都是數千萬起跳的,還希望能有長輩多多分享這些寶貴的經驗),每個人都有不同的看法。

不過,我覺得上述幾個因素都不是最關鍵的,最關鍵的因素在於:「讓網友們可以自由發揮創意。」

請相信網友們的創意

為什麼說「讓網友可以自由發揮創意」是最關鍵的因素呢?我們先來比較五月份以及目前最熱門的幾個頁面:

image image

左邊這張圖是五月份的,第一名、第二名其實都是我自己無聊想出來的分析機,裡面的元素有些很智障,但我想看到的人應該會覺得很好笑或是很白痴,這樣的東西應該會紅。結果,目前最熱門的前幾名,幾乎都是網友發揮創意想出來的有趣分析機,前四名都已經突破十萬人次,第一名甚至高達46萬人次,這實在是個非常可觀的數字。從這次的經驗中,我學到最寶貴的經驗、也是我最近很常跟身邊朋友說的:「相信網友們的創意,因為網友通常都比你還有創意!

由於我每個分析器的ID是MD5編碼後產生的,直接將每個分析器的key丟到搜尋引擎上,找出來的結果幾乎就全都是指向該分析器的連結,以46萬人次的「我是一個怎樣的人」為例,目前至少有6,000個網頁連結,實在非常誇張。

image

網友們努力推廣自己的成品,同時間也是為網站本身帶來流量。網友的創意,不僅真的很有創意,更重要的是,他們對自己做出來的成品有認同感、擁有感,或許他會覺得:「這東西真的很棒!我要給我的朋友玩玩看!」因此便開始努力地推銷自己產生出來的成品,讓自己親朋好友都玩玩看,甚至不厭其煩自己多玩幾次、直接丟給朋友看,而隨著使用人次的增加,就好像看著自己的小孩不斷長大一樣,隨之而來的成就感跟樂趣也不容小覷。

image

從上圖可以發現,多數的流量來自推薦連結網站,這跟我自己的部落格多數流量來自搜尋引擎是截然不同的,於是我很好奇流量是從哪來的:

image

可以發現無名小站帶來了15萬次的造訪次數,仔細看看分別來自那些部落格的話,也可以發現一些有趣的現象:

image

可以發現不同部落格,因為人氣不同、介紹的方式不同,導入的流量的停留時間、平均造訪頁面的數量也都不一樣,但可以確定的是,有些人的部落格真的可以帶來可觀的流量,擴散出去之後累積起來的能量便非常可觀!

「一個好用的工具,可以讓網友們自行發揮創意,在上面激發出許多不同的元素」這或許也可作為往後腦力激盪的方向。好用的工具例如什麼?小則如貼紙串連、成份分析、貼紙產生器,或是像Dapper這種可以輕鬆替網頁製作RSS Feed的工具型網站,大則如Facebook Open Platform、Google上面各式各樣的API都是可以讓開發者發揮各種創意的工具、舞台(儘管Facebook跟Google的格局過大,但一般人仍可以思考,就像funP目前的走向,或許有一天發展API出來之後也會讓我們有更多發揮創意的機會)。

最後,流量真的可以轉換成金流嗎?我想是可以的,以本部落格來說,每天才幾隻小貓上來逛逛,因為內容的素質不高、更新頻率不高、文筆不夠好或是沒有八卦、不夠勁爆,一個月可能才幾百、幾千的PV,甭談想把流量轉換為金錢。但一旦數量級提升到十萬、百萬等級,光是Google AdSense本身的營收便會開始出現改變(恕我無法提供詳細數據),成份分析機網站本身因為沒有會員註冊系統,我比較無法掌握訪客的年齡層,光從內容判斷大概是中學生居多、其次是大學生,以台灣、香港的使用者為主,我對廣告業務沒什麼概念,但最近出現的彩妝廣告、線上遊戲廣告點閱率都挺高的,我想雖然內容素質不高,但還是有放廣告創造營收的機會。

註:funP所屬的聖洋科技股份有限公司今年度申請「科技應用與服務業界科專推動計劃」所給的資料可參考下圖,說實在比我想像中的少,不曉得是送審的數據較為保守?

image

Category : Murmur | 網站經營 | Blog
3
Jul

前言

我一直挺獨善其身的,或許是因為心中有著不斷想要追求的目標,讓我忽略了許多其他值得關心的議題,我所能關心的朋友、議題都僅止於我身邊的生活圈。

也因此,過去對於社會議題的關注及曾經付出的努力是非常有限的,一直到今年才因為許多事件讓我開始有了一種莫名的使命感。「或許我能多做些什麼!」這樣的想法也經常地在我的腦海中迴繞著,以比較八股的說法是取之於社會、用之於社會,而比較接近我內心的說法則是若能因為某些人的付出、影響到另一些人,豈不是挺快樂的嗎?

有了這樣的想法之後,我在因緣際會之下加入了政大EMBA NPO組(政治大學經營管理碩士學程,非營利事業管理組)底下的某一項專案計畫的子計畫志工(說起來還真是挺複雜的),該計畫之所以吸引我加入的最主要因素是可以讓我發揮所長、使用各類資訊工具來完成各種任務,我與我的夥伴們再加入後的第一項任務(或說訓練課程)便是參與「偏小上線工作坊」的課程,與來自各地偏遠小學的校長、老師們一起學習、交流如何使用Google Blogger來快速建立各種不同目的的部落格

continue

Category : Murmur | Blog
2
Jun

從學會寫程式以來,接過各種大大小小不同的案子,因為自己沉浸在Web的開發,因此也只接網站類型的案子,從使用Xoops、Joomla等正牌的Content Management System,或是用Wordpress充當內容管理系統,一直到直接寫PHP、ASP.NET、Ruby on Rails的案子都做過,甚至連我不喜歡的JSP/Servlet都接過。

通常接案子是為了討生計或是多賺點外快,甚至可以從開發過程中強迫自己磨練新技術以及專注在細節上的能力,與業主溝通的過程也可以磨練自己的耐心、系統需求分析的能力等等,其實好處是挺多的。我總是告訴自己:「可以練功寫程式又有人付錢給你,一舉兩得,不是很棒嗎?:p」不過我想只要曾有過接案經驗的朋友,應該也會有過幾次不愉快的經驗吧!

我在四、五月份接到的幾個案子,好像在洗三溫暖,有的勝任愉快、業主開心、我也開心,有練到功、有傳達我寫程式的精神跟理念出去,更重要的是還有賺到錢!但也有不是挺愉快的經驗。

我想個別談談其中的三個案子。

第一個案子是比較輕鬆的,協助某學術單位建立個案資料庫,從LAMP環境架設、CMS架設到把個案上架一手全包。比較麻煩的部份除了是要手動建立個案資料庫,算是比較勞務性的工作。

學術單位有個好處,雖然支付的薪資未必比外面的行情高,但該給的一定會給。以某大學的行政單位、研究單位找所謂的「網頁工讀生」有兩種給薪方式:時薪、月薪兩種,有些單位很尊重學生,甚至主動跟學生說:「寫程式難度比較高,你可以主動多報點時數補貼」(或許是本來NT$95變成NT$190這種效果),但也有單位很沒sense:「加這個功能不就幾行程式而已?!一下子就能寫好的東西為什麼要報到兩三個小時?兩三個小時還拿不到你三百元,有夠難賺!套一句強者我同學常說的話:「不然你自己來寫啊!」,對於這種人應該另外寫一篇專文來讓他們瞭解寫程式為何物!

但我想多數單位都是很尊重學生的,長期來說,同樣建設、管理一個網站,可能就是五萬元分成十個月給你,這十個月裡面還是有辦法接到其他案子的!(如果要一口氣拿五萬也是有辦法,不過我也沒這樣搞過。)

第二個案子不是很輕鬆,不過因為是完全使用Ruby on Rails開發,業主要求必須符合REST的架構,因此我也得以有機會打造自己的第一個RESTful網站,所以寫起來還算挺快樂的,完全是可以練功寫程式又有人付錢給你,一舉兩得,不是很棒嗎?:p

石墨工房有一篇文章談與客戶維繫良好關係的5個訣竅,裡面談到另外一篇文章講到的幾個重點:

  1. 記得特別的日子
  2. 有點黏、又不會太黏
  3. 給點折扣
  4. 超值服務
  5. 說「謝謝」

雖然這麼說有點馬後炮,不過我的確是在結案後才看到這篇文章,並且意外地發現我居然五點都做到了。我在接案前便先給予折扣(雖然有點破壞行情,但最近手頭緊實在不得已),同時也記住了業主即將demo系統的日子給予關心(主要因為後來加了MSN,比較容易關心到對方,同時也讓對方瞭解自己的進度)。

而在超值服務的地方,我花了許多時間跟對方講解Ruby on Rails的架構、好處、發展性以及REST的精神及對於Web世界的影響,只差沒問對方是否需要我提供教育訓練。總之這是個很不錯的接案經驗。

第三個經驗是一直到最近才變得不愉快的,我必須承認自己在溝通上沒有做得很好,但這個「案子」我最初其實不是把他當成一般的案子在處理,一來是因為對於找我「幫忙」的這對年約四十的夫婦,有志踏入台灣的Web世界感到相當佩服;二來是我自己也對這網站的概念有興趣,他們也說明了未來如果有機會可以合作繼續讓這個網站上線,也因此我認為在整個溝通過程中犯了一個要命的錯誤:太早跟對方搏感情!

現在回頭想想,客戶終究是客戶,建立在對價關係上,給多少錢、做多少事,偶爾給個折扣或是要五毛給一塊都是可以維繫雙方良好關係的,但是以搏感情的方式破壞市場行情其實不是很好。

這我得要細說從頭。

最初對方說明想要完成幾個基本的功能,已經有設計完成的頁面,多次信件往來後便詢問我的報價,當時我回覆說:『「假設畫面已經有了」,大概兩週內可以完成、上線,NT$10,000應該就能找到人接了』,沒想到後來對方就直接以這一萬請我替他們完成。

此時才是錯誤的開始,因為我想真的要「幫忙」的話,就算不拿錢、免費義務做公益也是不錯,而且反正畫面都已經有了,我寫程式通常很快、沒問題的!對方給的所謂畫面全部都是Photoshop的設計稿,因此我希望對方先將之轉為CSS + HTML的格式,但發現對方似乎對這方面不是挺在行,我想說那沒關係,反正我自己來!

這時候是錯誤擴大的開始,我心中天真的想我可以建立個比較有系統的CSS,該繼承的就繼承、能不要用圖片的就不要用,另一方面在網頁程式也寫個比較有擴充彈性的程式,說不定這個站就被我做大了!當時另一位強者我同學就說:「你怎麼連接個案子都想要把他搞大?拿多少錢做多少事,不要把自己搞死。」只能說自己在這部份的想法太天真了。

於是,在我同時要兼顧CSS layout、程式的狀況下,當初設定的兩個禮拜根本無法達成。

這是另一個錯誤,也就是我在接下任務、看到畫面後,就應該發現不對勁、馬上跟對方溝通,但因為我抱持著我是在幫忙、而且我還幫你們cover畫面的處理,多給我一點時間不為過吧?!不過天不從人願,至今三、四個禮拜,我仍無法把畫面的部份處理完善,對方也因此寫信來要求當初約定「一萬塊完成的幾項功能」。

我想說得更直接一點,如果對方自己處理CSS,我想多付出的時間絕對比我自己一個人用還多。

看了信之後我覺得很沮喪,我多幫對方建立基礎架構、預留擴充彈性,結果你最後不但無法諒解我、多給我一些時間,寫信來的時候還連原有的禮貌都消失、驚嘆號也出現了。

從這次的事件檢討,歸納起來有以下幾個重點:

  1. 客戶就是客戶,不需要搏感情
    我抱著幫忙的心態就是個錯誤,導致我連系統規格書、需求分析、合約都沒有建立,一切就只有當面的會談跟E-Mail往來紀錄。
  2. 拿多少錢,做多少事
    我心中想著建立良好的基礎架構,但客戶要的其實就是那幾項功能,不在乎資料庫規劃、不在乎整體的程式規劃的話,客戶自己都不擔心了、我何必費心呢?
  3. 溝通最重要
    因為沒有建立文件,溝通沒有紙本的依據,更該保持電話或信件的聯繫,而不是一意孤行想說我這樣做比較好,對方即使知道也未必領情。

說真的,接這麼多案子以來,還是第一次這麼難過,我覺得我付出我的能力、時間、精神,但最後卻是這樣的結果。我想,以後我會更清楚,客戶就是客戶,會不會成為工作夥伴、勞資關係、合作關係都是另外一回事。

程式碼寄出去了,附送了CSS、樹狀結構討論區(對方只要求一般討論區)、比他們自己原先規劃的更完整的會員資料庫功能,而這個案子也就結束了吧。

希望下次能遇到愉快一點的接案經驗。:)

Category : Murmur | Blog