2009年4月29日星期三

賽斯‧高汀《部落:一呼百應的力量》讀後感

這是一本小書,很喜歡作者用的部落(Tribe)這個字,這邊所謂的"部落"可以想成一個特定關注於某些議題或具有某一個目標的群體。由書名中的"一呼百應的力量"以及書後的簡介,很清楚這本書要講的就是,在各種社交工具(blog、twitter、plurk、digg、funP)普及後,每個人都有比以往更大影響力能夠改變其他人,而在這樣的"個人影響力強化"後的時代,如何引領風騷。

作者有意地使這本書以鬆散的方式呈現,以一則一則的實例與短文讓讀者體悟到,對於個人,這是一個多麼好的時機開始發展與領導一個部落。
書中最重要的概念包括:
  • 發掘自己熱情所在
  • 克服恐懼,開始領導
  • 領導與管理的差異以及該如何領導
  • 發起部落中的運動
書中有很多激勵人心的部分,而且有不少的好句子。
我想把這些東西節錄出來,並批上我自己的想法。


現在,可以用來協助你領導部落的新工具多到不行,有Facebook、Ning、Meetup和twitter...有數千種的方法可以幫你協調和連繫部落成員...


沒有領導者,就不會有追隨者。
你是領導者。
我們需要你。


你有甚麼好損失的?

事實就是,我們現在有了一大堆工具。但是要能夠去領導,我認為一定要讓別人發現,你比他們更具有熱情或是能力。有別人達不到的熱情或是能夠做到別人辦不到的事,領導才會有力。

管理指的是,控制資源以完成一個熟悉的工作。...至於領導指的是,去打造你所相信的改變。

管理者面對著他們手下進行調度,而領導者則背向他的追隨者,帶領他們往前走;

維基百科是如何成為十大網站之一的?...三個步驟:動機、連繫與工具

可以做為檢驗一個小群體合作的成功因素,是否有共同且夠強烈的動機,群體是不是有適當的聯繫方式以及這個群體能用甚麼工具來達到目標。順便享到最近有點想用basecamp,不知道他能提供一個合作小組多強的連繫跟工具。

領導部落,你只需要去鼓動那些選擇追隨你的人就可以了...

人數不是最重要的,只要有一個小的部落,它的影響力會慢慢的擴散,而且要那些跟你理念不同的人加入你的部落很痛苦而且高難度的事情。

改變並不是得到允許才去做,改變是做了之後才請求認可。


第一件你需要知道的事情是,現在的個人比歷史上的任何時刻都具有力量。...
第二件你需要知道的事情是,唯一一件阻止你變成那種可以改變一切的人的事:缺乏信心。

inspiring!

最簡單的事是「反射動作」。
第二簡單的事是「回應」。
最困難的事是「啟動」。


犯錯的秘訣是了解犯錯不會致命。


領導者的態度
...(你可以)說你辛苦領導,他們卻不努力追隨。不過這些態度一點用也沒有。

綜觀本書除了鼓勵人投入領導自己熱愛的部落外,談了許多領導者的氣度,我覺得很是值得學習。而作者,我想應該是想成為領導人部落的領導才寫這本書的吧 :D
最後推薦大家有空可以弄一本來看看!

*第一段寫到的社交工具,其實我想說的包含Social Networking Tools以及Social Media Tools。

設計高擴展性的網路應用[1] Scalable Web Application[1]


Scalability

擴展性(Scalability)是網路服務一項非常重要的課題,當一個網路服務越來越多人使用後,伺服器端的附載量隨之增加,從網頁伺服器、資料庫伺服器是否能夠承受大量的網頁請求並維持一定的回應速度,是非常值得研究的議題。特別在目前越來越多的開放服務,網站服務的耦合度提高情況下,每個網路服務都要具有一定程度的擴展性,才可能被納入其他網站服務。在這一系列的文章裡,將整理網路上關於提升網路服務擴展性的文件以及投影片,試著了解如何進行這一工作。

在試圖建立具有擴展性的網路服務前,我們必須了解到哪些因素是我們最為關切的,在Buildind a Scalable Architechture for Web Apps( by Bhavin Turakhia)中作者做了簡單的整理如下:
擴展性(Scalability),整個系統可以同時負荷的使用者或網頁請求數目。
可取得性(Avalibility),任一時間內"可存取服務的機率"或是"服務可被存取的部分"。
回應力(Responsiveness),處理一個請求所需要的時間。
服務影響力(Downtime Impact),服務無法正常運作所造成的影響,可能是使用者數、減少之收入...等。
維護成本(Maintenance Cost),維護整個架構的成本。
from Bhavin Turakhia's talk "Buildind a Scalable Architechture for Web Apps"

那我們能夠從哪些面向去改進整體的擴展性呢?事實上幾乎從硬體到軟體每個層面我們都可以試圖去改進。由硬體方面,伺服器主機的硬體規格,到作業系統層級,是不是需要自行編譯最佳化後的系統核心,再到網頁伺服器、資料庫伺服器調整(tuning),伺服器架構規畫,是不是要採用reverse proxy,到最後的網頁程式撰寫以及資料庫存取控制,每一個層面都有改善整體應用擴展性的可能。

基本的擴展性改善流程如下:
  1. 監控現有架構
  2. 找出效能瓶頸
  3. 發現服務異常原因以及影響層面
  4. 以下列四種方式進行調校
    • Vertical Scaling
    • Vertical partition
    • Horizontal Scaling
    • Horizontally Partition

  5. 重複1~4
在步驟四中的四個方法,明顯可以分成由水平或垂直兩個面向著手提高擴展性,這也是目前許多文件提到的最主要的兩個面向。這四種方式有非常多實作的方式與細節,也各有各的優缺點及使用時機,在接下來的文章會繼續進行探討。

2009年4月21日星期二

GTA:ChinaTown Wars

好久沒發NDS的文章了,但是GTA:ChinaTown Wars絕對是要拿出來講一下的啦!
馬上先看看影片。 這畫面、這流暢度,你看看,只能說實在是好阿!



除了NDS外,我在PS2還有PC上都玩過前幾代的GTA,但是對我來說最好玩的絕對是NDS這代!
最主要的原因在於NDS的雙螢幕被運用的十分好,上面影片只錄了上螢幕,是主要畫面,但是厲害的在下螢幕。這一代的下螢幕是個PDA介面,上面可以看任務簡訊、找毒販(選了之後GPS直接定位)還有基本的查看狀態等等,用起來非常順手,有一點iphone上的app那種感覺,比之前在PS2、PC上玩起來都流暢,因為這種操作模式非常方便,只要動動手指就可以了。

這一代的販毒我也覺得很有趣,除了一般可以跟不同的毒販交易買低賣高之外,還可以在路上搶劫運送毒品的貨車,搶到毒品再拿去賣,這種成本幾乎是零的生意讓人熱血沸騰阿!在路上看到可以搶得幾乎都不放過 XD

另外就是刮刮卡遊戲,花十元或十五元可以買一張刮刮卡,括了有可能中錢或中房子,上禮拜回松山的路上我有幾乎半小時是無意識狀態猛刮..,最後賺了大約500塊外加一棟房子!

武器跟車輛到是一般,武器比較爽快的是鍊砲,聽到鍊砲高速旋轉的高頻音,腦中浮現的大概就是「我要打十個(警察)」吧,另外可以到加油站作汽油彈也是蠻有趣事情就是了,有一段時間還蠻喜歡用汽油彈對付大量警察的 XD

此外當然還有一些小任務啦,比方說幫一個男人去炸死他偷情的老婆,或是有個情緒低盪的女的需要你在他高速狂飆...這些小插曲都讓遊戲變得更有趣。

總而言之,這絕對是NDS上不能錯過的一款遊戲!

egistli.com

唷乎!就在剛剛買了egistli.com這個domain name。
其實之前最最想買的是egistli.fm,但是好像朋友們都覺得.fm沒有很酷,而且.fm要價$99.99 USD/Yr,最後還是買了個較一般的.com網域。

買這個網域名稱主要是希望把Blog跟Profile弄在同一個網域下,讓我有個統一的presence,然後也可以把之前做的一些小東西放進來(plurkIt),這樣感覺起來應該好一些,不需要再看到醜醜的IP了。

剛剛弄起來一台ubuntu來作server,不過就在設定NameVirtualHost的時候花了比較久的時間,其實應該是很簡單的東西的,好像又犯了老毛病,Google老半天不好好從根本瞭解起。後來去Apache直接看manual就有解了而且還順便會了解概念。

=================================================
這邊還是簡單記一下NameVirtualHost。

NameVirtualHost主要作的事情就是,讓許多不同的domain name的網站可以使用同一隻apache server。
要這樣做,我們必須完成兩件事:
1.把網域名稱指向apache server的機器
2.在apache server設定NameVirtualHost

下面我們以,把www.yoursite2.com指到一台跑NameVirtualHost的apache server的情形來講解。

第一件事情的話,只要到Name Serverr那邊設定一下,我在godaddy附的管理方式裡面是加一條用A record把www.yoursite2.com指到apache server的IP。

第二件事情比較麻煩一點,不過在Ubuntu上面也算很簡單啦!
到/etc/apache2/sites-avaliable裡面,你可以發現至少有個default,部分內容如下:


NameVirtualHost *
〈VirtualHost *〉
ServerAdmin admin@yoursite.com
ServerName yoursite.com
DocumentRoot /var/www

...目錄設定與log檔設定
〈/VirtualHost〉


這是ubuntu灌好apache2套件之後預設的,裡面的內容其實就已經把NameVirtualHost打開了,因為最上面的一行"NameVirtualHost *"的意思是,這台主機所有IP進來的request都要來作NameVirtualHost,而且下面DocumentRoot /var/www等等的內容,也已經被一個區段給括起來,表示這是預設的第一個VirtualHost,以/var/www為根目錄。

而現在我們要加入第二個VirtualHost該怎麼作呢?
我們cd到/etc/apache2/sites-avaliable中,並建立一個檔案yoursite2.com,並編輯裡面內容如下:


〈VirtualHost *〉
ServerAdmin admin@yoursite2.com
ServerName www.yoursite2.com
DocumentRoot /document/root/for/yoursite2
...目錄設定與log檔設定
〈/VirtualHost〉

這樣我們就設定了第二個VirtualHost,他會把從www.yoursite2.com的request,以這個section裡面的設定執行,比方說最重要的根目錄就會是/document/root/for/yoursite2而不是第一個VirtualHost預設的/var/www。

儲存後,執行
sudo a2ensite yoursite2.com
sudo /etc/init.d/apache2 reload
如此一來,到瀏覽器打開 www.yoursite2.com,應該就可以看到在 /document/root/for/yoursite2裡面的網頁內容了!

其實是蠻簡單的東西,但是沒有清楚的了解NameVirtualHost以及設定語法的話,還是有可能會浪費寶貴的時間呀!還是一句老話阿~ RTFM~!

當然順便附上manual了 :) Apache Virtual Host documentation