痞客邦改網址,有這麼嚴重嗎?

這幾天痞客邦在系統架構、後台架構一直到網址,似乎都有非常大幅度的改變。關於系統架構的部份,幾天前便在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才不管你要不要轉址,這是政策問題而非技術問題;何況,這是收入來源,就別跟它計較太多囉!

600萬Page view達成(我如何在三個月內創造單月600萬Page view的網站)

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

我對「偏小上線」的看法

前言

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

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

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

Continue reading

苦命程式設計師,接案甘苦談

從學會寫程式以來,接過各種大大小小不同的案子,因為自己沉浸在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、樹狀結構討論區(對方只要求一般討論區)、比他們自己原先規劃的更完整的會員資料庫功能,而這個案子也就結束了吧。

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

幾個關於「成份分析機」的數據

本篇分享幾個有關成份分析機的Google Analytics數據。

image image

http://component.agilerails.net/

整個五月份,我可以說是被一堆案子壓得沒有時間喘息,好多想寫的文章只好先擺在一邊了!這篇文章分享一點關於四月底寫的「超宅的成份分析機產生器」,在Google Analytics上得到的數據,還有個人觀察的幾點心得。

image

本部落格經營多年也不過十幾萬個點閱次數,結果成份分析居然在兩、三個禮拜左右衝出了20萬個網頁檢視平均網頁造訪在我放上熱門排行後更是連日攀升。

image
上圖是平均網頁造訪,下圖是平均停留時間,可以證實在網頁上擺「熱門排行榜」是可以有效提昇黏度的。(這雖然是廢話,但我就是想實驗一下看看有多大落差。)

image

接著是訪客造訪次數,最高一天有4,331個visitors,這真是讓我傻眼,我當初只在Ptt的Mind板發了兩篇文章稍微廣告一下,居然可以帶來如此高的流量。

image

Ptt熱潮過了之後,靠的就是頁面上有個「嵌入到blog」的語法,這部份是我希望對於嵌入式語法所能帶來的流量做點實驗,平均每天有1,000人左右上來,從下圖可以發現無名小站帶來非常多的人,我自己也搜尋到好幾個部落格的確貼上了圖片跟連結。

image

點進去看直接流量的停留時間、平均點閱次數都比無名小站來的人少了許多,我想這類分析器只要是經由自己的朋友推薦、介紹,都應該更容易想要多試試看幾個名字。

image

而這個網站也從當初Google搜尋引擎什麼都找不到,到現在有八百多筆的搜尋結果,雖然不是挺了不起,但是二十多萬個Page View是我當初完全沒想過的,套一句我學長說的話:「這個網站在我看來雖然腦殘,但的確是舔到了某些人的蜜點。」

而這個網站上掛的Google AdSense,礙於使用條款我應該是無法分享什麼細節,只能說這種網站想賺廣告錢還是省省吧!畢竟沒有什麼實質的Content。

最後分享幾點我的心得:

  • 熱門排行真的很有用,提高某些內容的曝光機會。雖然這是廢話,但是看到一個這樣的網站在加入熱門排行後有如此大幅的成長,不僅實際得到數字的佐證,更讓我覺得「以後不管做什麼網站,版面安排很重要,讓更多內容有曝光機會」。這也是有些人的部落格一定會同時有隨機文章、相關推薦文章、熱門文章、最新文章之類的。
  • 內嵌語法可以有效帶來更多流量。這點我知道也是廢話,但是看到訪客從不同的網站進來、每天還有穩定的流量,我知道想辦法設計Widget或是各種內嵌語法讓使用者可以輕鬆、簡單地嵌入是很重要的;畢竟,不是所有人都知道怎麼放連結語法。
  • Ptt流量相當可觀,差點灌爆我朋友的機器。這個網站是用Ruby on Rails寫的,除了流量太大硬體支撐不了之外,我相信Ruby本身效能比PHP差也是個原因,於是我用了各種tunning的技巧,調整資料庫、加強cache機制等都做了,後來還嘗試從Mongrel換成Thin Server,一直到前天換了mod_rails之後記憶體消耗量減少了、回應速度也快上許多。「mod_rails誠好物,誠心推薦給各位!」
  • 這類分析器的點子總是有股迷人的魅力,有人說準、有人說不準,對我而言只是好玩,寫這個程式花不到一個晚上卻能讓朋友拿來搞笑整人用,相當有趣。至於準不準、根據是什麼,其實是有根據的,至少同一個名字每次算出來結果一定一樣,不是亂數產生的:p

以上幾點分享一下,我知道這種不是挺正經的網站能分想的內容有限(而且也未必有用),但秉持著分享的心態,往後若我有其他網站丟上線也會繼續跟各位讀者分享我的心得的,還請各位多多指教。

P.S. 這或許也會是五月的唯一一篇文章了,六月之後希望能維持寫作的習慣。