陶傑 – 誰是王八蛋

《明報》前總編輯劉進圖被斬,到底是何因由,以西方的邏輯學,審視當前的中國式思維,是很有趣的中學通識課。

許多中國人讀了一些MBA或西洋書,也模仿着白人的思考,聲稱「沒有證據顯示劉進圖遇襲與新聞自由有關」,可能出於「個人恩怨」。既然「沒有證據」,即「不宜過早判斷」,既然不宜「過早判斷」,則劉氏被斬,與一名普通香港市民,包括三合會人士出於個人恩怨而遇襲,地位和性質相同。

但是一名普通市民或三合會人士遇刀襲,一年發生多宗,絕不會引起「不分左中右」的「全城譴責」,連特首、立法會主席、司局級官員,紛紛慰問、探視、「譴責兇徒有意識地殘忍」。

一名普通市民遇刀襲,既無此「不分左中右」的「全城公憤」隆重待遇,但劉先生卻「享受」了,很明顯,是因為劉先生的「新聞工作者」職業。

這就怪了:既然「沒有證據,不要扯上新聞自由」,那麼難道從事新聞工作的香港公民有特權?
Continue reading

About these ads

Django REST framework – Create endpoints for custom actions

We have talked about how to use Django REST framework to create a RESTful backend for model CRUD.

 

But sometimes we would like to have some backend endpoints for non-model actions. Here is a very good article written by Jeremy Satterfield about non-model endpoints on Django REST framework.

 

The Django REST framework offer us a few ways to implement the web service. Some of them are very convenience to use but in return giving you less flexibility. The following example will make use of the APIView class to create a custom GET request end point.
Continue reading

Django – Schedule django-admin command using django-chronograph

Previously we talked about setting up some custom command in a Django project.

 

I would like to run the custom command in a regular interval. I could use Linux cronjob but it’s hard to manage and check the run history. It would be great if i could setup and manage these scheduled commands on the Django web portal.

django-chronograph, written by wnielson, is a Python Package which allows us to schedule any django-admin command through the web interface. It works well with the UTC timezone but if you have set the TIME_ZONE in your Django project setting.py, there would be time discrepancy.

For more detail about the bug, you can refer to the Issue #36 – Job doesn’t follow the Django’s TIME_ZONE setting.
Continue reading

Django – Create custom django-admin command

We could manage our Django project by executing some commands which could be invoked through the manage.py. For example:

# Sync database
python manage.py syncdb

# Start the webserver
python manage.py runserver 0.0.0.0:8000

 

Not only this built-in commands, we can write our own command too.

1. Create a new Django project and in this example i called it custom_command. (Django 1.6.5)

django-admin.py startproject custom_command

Continue reading

貝克漢自傳- 我的立場

作者: David Beckham, Tom Watt

大衛.碧咸的自傳,唔講唔知已經出版了十年(2004年),曼聯七小福都已經退休了,突然感覺自己不再青春。

我唔係曼聯球迷,我只鍾意兩隊球隊,就係阿仙奴同失去左頂級聯賽資格好耐o既列斯聯。那時只覺得碧咸罰球和傳中好厲害,但並不是一個有速度同突破能力的球員。

2004年碧咸剛轉會到皇家馬德里,出書大賣的其中一個原因一定係佢同費格遜決裂的詳情,當然書中只有佢片面之詞,真相相信只有當時人先知道。除了師徒關系,書中記述了碧咸有小到大的成長歷程與所有對佢有好大影響的人,佢細細個踢波就已經好突出,佢同莫耶斯踢過波,去曼聯之前佢同蘇.甘寶係熱刺受訓,仲有其中有趣一段係佢同辣妹維多利亞何相識同第一次約會。

david-beckham-my-side

陶傑 – 昔白今黑

明報總裁,前總編輯劉進圖被兇徒狂斬之日,明報剛好刊登了副總編輯阮紀宏的一篇專論:「香港新聞業有史以來最自由」──明報這篇專論指出:香港的新聞業,在「港英」時代有限制,現在你看,今日特區,新聞自由空前高漲,出來遊行示威的,都是「杞人憂天」。

明報的運氣不大好。專論一刊登,還在網絡散發,劉進圖君即刻倒卧血泊。第二天,在「新聞自由有史以來最自由」的氣氛裏,這張報紙的招牌套了黑。

跟幾個知識份子閒聊──他們有一兩位,還認識劉進圖──我以消費者的身份,向知識份子請教:既然明報歌頌今日香港的新聞最自由,其僱員遭斬了,為什麼第二天又套黑了官方報頭?劉君遇斬,有許多愛國人士說,「未必與新聞自由有關」,而是出於「私人恩怨」。如果因「私人恩怨」,報紙不應為其私人的行為因果負責,為什麼套黑了報頭?

報頭套黑,即是為香港的新聞自由而哀悼了,既哀悼香港的新聞自由,那麼你前一天,卻很權威地告訴我「香港新聞業有史以來最自由」,那麼我該相信你前一天的歡呼,還是該相信你廿四小時後今日報頭套黑了的憤慨和哀悼?
Continue reading

陶傑 – 大危機

一百年前,歐洲爆發了第一次世界大戰。

第一次世界大戰的直接原因有許多,但這場仗稱得上「世界大戰」,最關鍵的原因是十九世紀末開始的第二次工業革命,電信、內燃機、石油的開發,令生活節奏由馬車的速度轉換成汽車,社會風貌由寧靜細膩的畫筆轉為電光一瞬的攝影,全球各地的距離前所未有接近:美國的一個電報可以左右歐洲的戰事;中東殖民地、亞洲的新政權,本來天各一方,但因為一場大戰,信息交流,新技術由歐洲向全世界散播,人人有份,像東方快車穿山過海,一路接通歐亞大陸的風景,全人類共同投入,駛向現代都市文明(Urban Modernity)。

第二次工業革命一百年來,爆發過兩次世界大戰,至少三次石油危機,其中的經濟生產與能源消耗,據說超過過去一千年的總和。

戰後全世界幾乎無一例外模仿美國,大興土木,修路造橋、建摩天大樓、推動房地產,鼓吹借貸,以消費換取GDP,只要稍有頭腦的人都可以預見,此一方式不但無以為繼,在人口已高達七十億的今天更無異於飲鴆止渴,溫室效應、海洋污染,地球生態系統已經開始有災難性的變化,中國北方的霧霾,足以連北京都不再適宜居住。
Continue reading

陶傑 – 貪腐文化

中國社會的貪污,是文化基因的問題。

既然是基因,沒得改變,也不必解釋。英國人領導時期,訓練出來的文官,即所謂AO,在英國人的訓誡之下,規行矩步,像馬戲班馴獸師的口令下的一隻會走平衡木、穿衣服的猩猩,博得滿場兒童觀眾的歡笑和掌聲。

英國人走了,AO「當家作主」,不論當了政務司司長、局長,還是什麼專員,一旦與「內地交流」,到了某種程度,毫不例外,一定會變成「貪腐份子」。

中國人嘴巴裏說反貪腐,行為之中,兩千年都貪腐,當然偶爾會有一兩個像海瑞,包拯這類,天生的不喜歡錢,但因為稀罕,所以才成為兩千年少有的偶像。
Continue reading

StatsD – Installation and integration with Graphite

Previous: Install Graphite under pyenv virtualenv on Ubuntu

-

 

Compared to Graphite, installing StatsD server is just a piece of cake.

1. Install Node.js. For better management on Node.js, you could consider using nvm.

 

2. Checkout the StatsD project on GitHub.

git clone https://github.com/etsy/statsd.git

 

3. Copy the exampleConfig.js and name it to whatever you like and edit it as follow.
ex. statsdConfig.js.

{
  graphitePort: 2003
, graphiteHost: "<graphite host>"
, port: 8125
, backends: [ "./backends/graphite", "./backends/console" ] // console is for debug
, debug: true // For debug
, graphite: { legacyNamespace: false } // Better group all collected metrics under stats
}

Continue reading

About these ads

Dream BIG and go for it =)