Author Archives: Ying Kit Yuen

About Ying Kit Yuen

Life is for fun~ =)

Install Graphite under pyenv virtualenv on Ubuntu

It took me one and an half day to get the Graphite working…

1. Make sure you have pyenv and pyenv-virtualenv installed.

 

2. Install the following packages.

sudo apt-get install python-dev pkg-config libcairo2-dev memcached

 

3. Install Python 2.7 with enable-shared.

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.8

Continue reading

About these ads

AngularJS – Service VS Factory VS Provider

Design pattern is very important if you want to build a manageable and scalable application. In AngularJS, we could develop module, which is also regarded as a dependency, for specific feature and it could be injected to the controller whenever it is needed. This dependency injection design help us to build clean and well structured application and reduce redundant code.

There are different ways to create the dependency. Most common terms are service, factory and provider which are all singleton and you can find a lot of discussion online about their differences, when and how to use them. Here are some notes which summarize the AngularJS documentation about writing Provider.
 

-

 

1. When a dependency is injected to the controller, the injector from AngularJS framework will register a recipe such that the injected controller could make use of the type provided by the dependency.
Continue reading

Django – Setup Django REST framework

We have the Django welcome page working already.

 

I would like to create some REST services on that setup. We could make use of the Django REST framework.

Let’s keep working on our <project_root>/django_poc project to manage articles by REST. The example in this post are based on the Django REST framework quickstart tutorial. It’s good to go through all of them which could give you a more thorough idea on how the REST framework works.

1. Install the Django REST framework in your virtualenv.

pip install djangorestframework

Continue reading

陶傑 – 理性話

中國的習總據說「決心反貪腐」,好像令大陸內外的「知識份子」,又覺得很振奮。

中國「反貪腐」,絕對不可能成功。理由很簡單:由文化角度,貪污歷史兩千年,連「西遊記」裏的唐三藏最後到了西天,要進門取經,連守在如來佛祖兩旁的迦葉、阿難,也伸手問唐僧索取「引見費」。貪污腐敗,在西方是罪行,在中國,一定是文化。

英國、瑞典、丹麥、加拿大,沒有貪腐,但不表示中國要模仿西方白人國家。世界文化是多元的,中國人不可能根治貪腐,正如其人民不可能改變膚色。斑馬一旦身上沒有了黑白斑紋,就不再是斑馬;中國人不再貪腐,就不再是中國人。許多香港人對中國沒有歸屬感,其中一個原因,是香港有英國人留下的廉政公署,而香港在「回歸中國」之後,廉政專員湯顯明接受中國的茅台款待而竟受到審判──這是很奇怪的案子:湯專員在做一個中國官員、也是「禮尚往來」的儒家中國人絕對應份做的事,為什麼他成為一名罪犯?
Continue reading

陶傑 – 貴族和農民

梁班子的「發展委員會」嚴正指出:大嶼山的綠色郊野,是英國貴族獨享狩獵散步的「西洋文化」,屬於「醜小鴨」;將來「發展」起來了,一片商場大廈屏風樓,你們就會知道,怎樣升級為一隻「白天鵝」。

「英國貴族」這張民族仇恨牌打出來,即得到「中國小農」的一些「基層市民」和議,紛紛支持「開發大嶼山」,並「發聲」稱:「連住的地方也沒有,還散甚麼步?」

確實,當香港連住的地方也沒有,無必要保留大幅面積的「英國貴族」綠色郊野。中國農民對於郊野,只視為可以耕田種菜、滿足口腹飲食生理功能層次。欣賞自然山水,不是農民的「情懷」。中國農民沒有「情懷」,只有「溫飽」。所以,士大夫歐陽修在「醉翁亭記」,欣賞郊野,雖然前呼後擁都是些臣僕百姓「自由行」,只有歐陽修一人看得懂「日出而林霏開,雲歸而巖穴暝,晦明變化者,山間之朝暮也。野芳發而幽香,佳木秀而繁陰,風霜高潔,水落而石出者,山間之四時也。」
Continue reading

陶傑 – 進軍大嶼山

梁班子「大嶼山發展委員會」委員劉炳章,遭到愛護大自然的前天文台長林超英痛斥。原來劉委員說:大嶼山的綠色郊野,是英國人留下來給「貴族」狩獵和散步的,不必保留,大可「發展」成市區。

劉委員又興奮地認為:現在的大嶼山很原始,像一隻醜小鴨,將來「建設發展」成高樓大廈了,就會化身為「白天鵝」。

至於大嶼山將來沒有郊野了,香港市民如果想「減壓」,不要緊,可以回大陸「減壓」好了。

大嶼山不但是廣東沿海最大的島,而且沿中國海岸線,除上海以外的崇明島之外,大嶼山是唯一深海的一座孤懸的綠島。

英國十九世紀來中國發展貿易,對於海洋和島嶼別具慧眼,義律船長不要舟山,要香港,而且後來還連同新界大陸和大嶼山一齊租借,眼光之銳利,與在馬六甲海峽選新加坡、地中海口選定直布羅陀相同。
Continue reading

陶傑 – 看見未來

一個強國連年經濟增長,舉世羨慕。歐洲和美國都不景氣,只有你年年GDP增長百分之八,於是全世界都說,二十一世紀,將會是這個強國的天下。

這樣的恭維話,以前也出現過,主角是二十世紀的蘇聯。

一九二八年之前,俄國大多數人口是農民。這一年,史達林宣佈第一個「五年計劃」,全國工業化,將俄國農村的資源,以國家行政手段強行徵調去城市,而農民重新調配集體農莊。

史達林這樣做,調動人力和自然資源,提高了效率。但是,因為農業出產缺乏私有制的刺激,地不是自己的,農民放軟手腳耕種,造成農作物失收,蘇聯餓死了六百萬人。

但是不要管餓死。由這一年開始,蘇聯經濟以每年百分之六,開始增長,因為資源集中到工業:煉鋼、軍事、機械、科技,甚至太空勘探,此後四十年,蘇聯的GDP每年增長百分之六,從未停止過,因此蘇共總書記赫魯曉夫一九五六年在聯合國演說,將鞋子脫下,在講台上敲敲,咆哮:「我們會埋葬西方。」
Continue reading

PostgreSQL – Set and Get Timezone

There is a timezone configuration on PostgreSQL server. If you want to change the default globally, you can edit the postgresql.conf. On Ubuntu, it is located at

  • /etc/postgresql/<version>/main/postgresql.conf
# - Locale and Formatting -

datestyle = 'iso, mdy'
#intervalstyle = 'postgres'
#timezone = 'Hongkong'
timezone = 'UTC'

 

We could also tweak the timezone only in your current PostgreSQL session.

1. Get the current timezone.

SELECT current_setting('TIMEZONE');

Continue reading

pip – Check avaiable Python package version

It’s quite common to check the available versions of a Python package before installing it. The yolk3k package is a very convenient command line tool for querying PyPI and Python packages. yolk3k is a fork of the original yolk and it adds Python 3 support while maintaining Python 2 support.

 

1. Install the yolk3k package.

pip install yolk3k

Continue reading