Archive for 五月, 2008


林俊吉/DIGITIMES 2008/05/13

由Skype的2位創辦人Niklas Zennström 與Janus Friis所創立、以P2P串流技術提供線上免費電視服務的Joost,在2007年風光揭開神祕面紗、在網路界掀起一股搶鮮試用熱潮,當時還被譽為「Next Big Things」之一,到了2008年,卻接連傳出用戶增長不如預期、拿不到優質內容授權、CTO去職投敵營懷抱、資金消耗過快、營運規模縮減等狀況不佳的壞消息。

方於2007年中募集約4,500萬美元鉅資,投資者包含赫赫有名的創投公司Index Ventures及Sequoia Capital、美國哥倫比亞廣播公司(CBS)、跨國傳媒集團Viacom與香港巨富李嘉誠,被寄予厚望的Joost,經過才短短不到1年,聲勢便大幅滑落,難道以廣告做為收入來源的免費Internet TV事業發展已陷入瓶頸?

線上觀賞電視節目 逐漸蔚為風氣

以 Joost重點發展的美國市場來說,有愈來愈多的家用戶在網路上收看電視節目,且成長速度驚人。根據1項由美國市調公司TNS進行、抽樣數達1萬戶的調查,在2007年第3季美國上網家庭中,有近 16%會線上收看整集的影集或其他電視節目,與2007年同期相較,成長幅度超過100%。

此調查中也顯示出,上網觀賞電視節目的人口中,有6成是因方便性,例如有42%的人表示因錯過節目撥出時段,透過網路事後補看;此外,有3分之2的線上收視者曾透過串流方式觀看,超過4成藉由毋需付費的管道下載觀賞,僅極少數的用戶付費下載或訂閱收視服務。

在位者積極投入 壓縮新進公司空間

面對原先收視用戶上網尋求娛樂內容的趨勢日益加速,有線電視業者跟無線廣播電視台也開始把節目內容的放送管道擴展至Internet。

美國有線電視業龍頭Comcast,於2007年4月宣布成立的fancast.com的網站已於2008年1月上線,其重點服務項目便是靠廣告營收支持 (ad-supported)的免費電視節目;由美國3大電視網中的NBC與Fox所共同成立、以串流方式提供免費隨選視訊節目服務網站Hulu,也在 2008年3月12日正式問世。

此外,英國廣播公司BBC也在2007年12月25日正式推出BBC iPlayer串流視訊服務,讓用戶線上收看BBC電視節目,而Joost的首任CTO Dirk-Willem van Gulik在2008年1月中離職後,便是加入BBC,在負責發展BBC iPlayer的Future Media and Technology部門擔任Chief Technical Architect一職。

從提供電視及影片娛樂服務的角度來看,在產業中握有不少優質內容的在位(Incumbent)龍頭廠商縱然出手稍晚,但後發先至的可能性頗高,對Joost這類新進業者會造成很大衝擊,何況此回這些在位者開始投入的時程,與Joost相差無幾,很容易即可把Joost未來潛在用戶掠奪掉一大部分。

例如,依 據BBC的報導,BBC iPlayer上線不到3週便吸引超過100萬人次,被觀賞或下載的節目影片則突破350萬部;Hulu在2008年3月12日脫離Private Beta(在這個階段,使用者需透過申請,待取得參與測試的邀請函再註冊帳號後,方能登入Hulu網站觀賞節目)正式對外公開時,宣稱其過去1個月的觀賞人次達500萬。

內容多但質精者少 瑕掩瑜反驅退用戶

只要是透過廣告營收來支持營運的免費電視節目,不論節目傳遞給用戶的管道是透過傳統無線廣播及有線電視網路,或是透過Internet進行線上播放,其商業模式不外乎要有吸引人的內容,方可吸引觀眾收看,觀眾多廣告主才願意上門。

至於取得內容的方式,一則是付大錢自行製作或外購,另一則是將廣告營收與內容業者分享。Joost採取的作法是後者,遇到的難題便是要有足夠廣告主,掌握優質內容的業者才願意合作,方可拿到好內容。

眼前是,Joost在未建立起足夠的使用者基礎前,難以長期吸引廣告主投入廣告預算到其播送平台上,加上面對為數不少、握有眾多吸引人內容的在位者自行建立類似事業體,Joost取得優質節目內容的難度更是日益增高。

Joost目前雖然號稱其平台上擁有超過400個頻道及2萬個節目,對 Joost發展重心的美國市場來說,這些大多數都是很冷僻的節目,整體內容吸引力比不上Hulu。

此外,節目內容多到讓用戶眼花撩亂並非好事,特別是Joost目前使用介面編排,對許多初次使用的人來說,可能東看西看過一堆品質較差的節目後,還沒找到具吸引力的內容,就失去耐性不再使用這個平台。

市場初現群雄逐鹿 誰能勝出尚未知

在免費Internet TV這個新興市場,相較於傳統的電視收視方式,收看人口還十分微不足道,但近年成長速率十分驚人。起步較早的Joost,一開始吸引網路界的目光聚集於其上,但這一陣子熱潮漸退,加上對手競起,其挑戰才要開始。

Joost能否重整旗鼓,一如原先外界的期待-成為另一個YouTube,或僅是曇花一現就此殞落?誰又能在這個市場上取得一席之地?免費Internet TV在2008年的發展非常值得關注。

廣告

Google Analytics Custom Tracking API

is available over here:
http://code.google.com/apis/analytics/docs/gaTrackingOverview.html

trac-10.4 繁體中文版

trac-10.4-zh_TW Traditional Chinese translation
trac-10.4 繁體中文版

Modified from ZoomQuiet version, this version provides translation for Traditional Chinese.

To download: http://trac-hacks.org/wiki/TraditionalChineseTranslation

Recently I set up a virtual server to use as a development machine. It runs on CentOS 5 and hosts several Subversion repositories with associated Trac projects.
There are many guides and plenty of help on the net to help you setup such a system. The easiest way is to YUM it.
yum --enablerepo=rpmforge trac

But that’s not it, you need to do the following post-installs.

Initialize a Trac project for your new repository

trac-admin /var/trac/project_name initenv

From there you will enter the trac-admin commands. Use the defaults if not sure.
File permissions

chown -R apache.apache /srv/svn/project_name
chown -R apache.apache /var/trac/project_name

If you don’t like the location, edit the /etc/httpd/conf.d/trac.conf.
Subversion

vim /etc/httpd/conf.d/subversion.conf

Add the following directive:

DAV svn
SVNParentPath /srv/svn
AuthType Basic
AuthName "My SVN Repository"
AuthzSVNAccessFile /srv/svn/svn-acl-conf
AuthUserFile /srv/svn/.htpasswd
Require valid-user

Add a repository user
touch /srv/svn/.htpasswd
htpasswd -m /srv/svn/.htpasswd username

Create the Access Control List for the SVN Repository

vim /srv/svn/svn-acl-conf

Add the following directives:

[project_name:/]
username = rw

Where username represents the username of the repository user you created earlier.
Trac Config
vi /etc/httpd/conf.d/trac.conf

Edit this line:
AuthUserFile /srv/svn/.htpasswd

Give admin permissions to the Trac user you just created:
trac-admin /srv/trac/project_name permission add username TRAC_ADMIN
Where username represents the trac user you just added in htpasswd.
Restart Apache
service httpd restart
You should now have http://server/svn/ and the Trac system at http://server/trac/ associated with the repository.

What’s Next?

check out http://trac-hacks.org

Resources

Recently I set up a virtual server to use as a development machine. It runs on CentOS 5 and hosts several Subversion repositories with associated Trac projects.

There are many guides and plenty of help on the net to help you setup such a system. However, when I tried to do it I came across a few problems and I hope this post may help at least a few people trying to do the same as me. I am not going to rewrite the great tutorials out there, I will just point you to them and note what things I did differently.

This ‘guide’ should get you from a fresh install of CentOS 5 linux to one or more working Subversion (SVN) repositories and associated Trac wiki’s. Apache/WebDAV is used as the network layer. I have only tested this on a fresh install of CentOS 5.

The Environment

I am aiming for the following:

  • CentOS 5, SVN installed. Apache2 as the network layer using mod_dav_svn.
  • Trac running on Apache with mod_python
  • SVN repositories located at: /srv/svn (e.g. /srv/svn/my-project), accessible via http://server/svn/my-project
  • Trac projects located at: /srv/trac (e.g /srv/trac/my-project) accessible via http://server/trac/my-project

How I did it

Not all the steps are vital (probably) but this is how I got it working. Feel free to skip any non-relevant steps (i.e. there is probably no need for a fresh install). Replace any occurence of with the name of your first project.

1. Fresh install of CentOS. I followed most of the Perfect Setup Guide, except the mail and ISPConfig stuff. The important part is setting up the Apache2 web server.

2. Make sure SVN and mod_dav_svn are installed. As root:

yum install subversion mod_dav_svn
vim /etc/httpd/conf/httpd.conf

If the following two lines are not present, add them:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

3. Install Trac: Follow Nick’s guide with the alternative Clearsilver installation below. Skip the Apache Configuration part.

Follow all of parts 1 and 2. Instead of part 3 do:

wget http://dag.wieers.com/rpm/packages/clearsilver/clearsilver-0.10.4-1.el5.rf.i386.rpm
rpm -i clearsilver-0.10.4-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/clearsilver/python-clearsilver-0.10.4-1.el5.rf.i386.rpm
rpm -i python-clearsilver-0.10.4-1.el5.rf.i386.rpm

Continue with parts 4.1 and 4.2 of Nick’s guide. Remember, leave out Apache configuration section.

4. Create your first SVN Repository:

svnadmin create --fs-type fsfs /srv/svn/project_name

5. Initialise a Trac project for your new repository:

trac-admin /srv/trac/project_name initenv

For the trac-admin command use the defaults if not sure, giving a descriptive name for the project. The `Path to repository` is: /srv/svn/project_name.

6. Set the correct file permissions for apache


chown -R apache.apache /srv/svn/project_name
chown -R apache.apache /srv/trac/project_name

7. Tell apache where to find the new repository. Here we create an additional Apache configuration file specifically for the SVN repositories.

vim /etc/httpd/conf.d/subversion.conf

Add the following directive:


<location>
DAV svn
SVNPath /srv/svn/project_name
AuthType Basic
AuthName "My SVN Repository"
AuthzSVNAccessFile /srv/svn/svn-acl-conf
AuthUserFile /srv/svn/.htpasswd
Require valid-user
</location>

8. Add a repository user:


touch /srv/svn/.htpasswd
htpasswd -m /srv/svn/.htpasswd username

9. Create the Access Control List for the SVN Repository


vim /srv/svn/svn-acl-conf

Add the following directives:


[project_name:/]
username = rw

Where username represents the username of the repository user you created earlier.

10. Tell apache where to find the new Trac project. Here we create an additional Apache configuration file specifically for the Trac projects.

vim /etc/httpd/conf.d/trac.conf

Add the following directives:



<location>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /srv/trac/project_name
PythonOption TracUriRoot /trac/

<location/login>
AuthType Basic
AuthName "trac"
AuthUserFile /srv/trac/.htpasswd
Require valid-user
</location>
</location>

11. Add a Trac user:

touch /srv/trac/.htpasswd
htpasswd -m /srv/trac/.htpasswd

12. Give admin permissions to the Trac user you just created:

trac-admin /srv/trac/ permission add  TRAC_ADMIN

Where represents the username of the Trac user you just created.

13. Restart Apache:

service httpd restart

You should now have SVN and Trac installed. You will have an SVN repository setup (http://server/svn/) and the Trac wiki (http://server/trac/) associated with the repository.

Please let me know if this helped you. If you come across any problems I will be happy to try and help.

Resources

The last part of CentOS HowTos: Subversion will give you a quick introduction on how to use SVN.

Subversion setup guides: here and here

Trac setup guides: here and here.

ClearSilver template system (used by Trac).

Setting up CentOS 5.0