Drupal 7 – Write your first Hello World Drush command

1. Create a new custom module. In this example, the module name is eureka_drush.

2. Create the eureka_drush.info.
eureka_drush.info

name = Eureka Drush
description = Custom drush command example.
core = 7.x
package = Eureka

 

3. Create the eureka_drush.module. Even if you do not have any implementation, leave it with just the PHP open tag.
eureka_drush.module

<?php

Continue reading Drupal 7 – Write your first Hello World Drush command

jQuery – Get the actual image width and height from img tag

The <img> allows us to show an image in different size on the browser by setting its width and height. We could get the displayed image width and height in jQuery as follow.

$("#img-tag-id").css("width");
$("#img-tag-id").css("height");

 

However, sometimes we would like to get the actual image width and height of the source image. The following solution is what i found in StackOverflow.

$("<img>") // Create a new <img>
  .attr("src", $("#img-tag-id").attr("src")) // Copy the src attr from the target <img>
    .load(function() {
      // Print to console
      console.log("Width:  " + this.width);
      console.log("Height: " + this.height);
  });

 

Done =)

Reference: StackOverflow – Get real image width and height with JavaScript in Safari/Chrome?

陶傑 – 寄生蟲為什麼受歧視

世界上有人的地方,就有歧視、排斥或厭惡。有時出於偏見,有時出於無知,有時因為狹隘,像對性別、性傾向、種族。

但是有的歧視和排斥,是人性的科學。

明珠台的一個紀錄片,講英國一個科學家,異想天開,研究人體裏的寄生蟲。為了了解寄生蟲,他不惜將寄生蟲植養在體內,還吃生豬肉。他發現其他寄生蟲,只會在人的腸胃裏,但生豬肉的寄生蟲卻會鑽進人的腦子。

他還研究了人身上各種虱子,包括陰虱。他發現,寄生蟲與虱子,與人類的寄生關係,可以上溯至一百萬年前,當人剛從猿人進化過來。

猿人全身是毛,活在原始蠻荒,那時身上就有虱子,體內就有寄生蟲了。一百萬年之前,古人類祖先不以蟲虱為苦,但是在進化的過程裏,到了某一階段,人類開始注視這些蟲子虱子,忽然發現這類生物的外貌醜陋恐怖不堪,極為令人惡心。

當人類發現蟲虱的賣相恐怖惡心之際,就是人類對美感最早產生了觀念,人第一次發現,世界萬物,有美醜之分。美好的事物令人感到祥和而歡欣,而醜惡令人覺得可怖而排斥。

由這時開始,人類懂得排斥寄生蟲和毛虱。因為此一意識的誕生,人類開始產生群居而清潔衛生的要求。這是人類進化的重要一大步。
Continue reading 陶傑 – 寄生蟲為什麼受歧視

陶傑 – 歧視的境界

文明和野蠻之間,永遠無法妥協,也不可能溝通,這個世界,才有名正言順的歧視。加拿大、美國、英國,都有反歧視的法律,但是普京出席澳洲主辦的G20,就公開受到歧視,沒有人願意理睬,普京灰溜溜,提早退場,這就是對俄國的歧視。

朋友的兒子就讀英國一家寄宿學校。有一天,他班上一個俄國同學玩欖球時受了傷,去衛生室包紮。衛生室的兩個醫護士,對中學生一視同仁,很關懷呵護,一面包紮,聊天隨口問:你爸爸在俄國做哪個行業?小孩答:他做軍火生意。一室馬上靜下來。醫療依舊,但人人不再說話,臉色肅穆。

小孩感到氣氛不對,學校員工因為他父親,對他轉為冷淡。這就是歧視了。我告訴朋友的孩子:這樣的歧視,很好,是一種公義。當然,子女無辜,心裏不舒服,但他父親製造的軍火,在世上殘殺了幾多父母,造就幾多孤兒,遠遠超過「心裏不舒服」,一生無依而傷痛。讓這個孩子感到受歧視,他就會轉而怨恨他罪惡的父母。這樣的後果,也是一種公義。

人生的許多抉擇,是基於歧視而達成的。譬如,你選擇移民的國家,是白人為主流的加拿大、澳洲、美國,因為你堅信耶教文明衍生的自由、寬容、人權,對生命的尊嚴保障,比巴布亞新畿內亞和津巴布韋高等。你家中收藏的音樂CD,是海頓、貝多芬、蕭邦,而不是東南亞土著為香港旅行團晚膳時敲敲打打的竹子和幾根粗絃。身為中產階級家長的你,讓女兒學鋼琴,因為英國皇家音樂學院的證書,你為什麼不叫她學拉二胡、腰間繫一隻小紅鼓、咚咚鏘、咚哩𠾐咚鏘地跳紅綢舞呢?你不愛國呀?不,你歧視,對嗎?
Continue reading 陶傑 – 歧視的境界

陶傑 – 鐵漢演員

高倉健逝世,中國觀眾很哀慟,也不管什麼反日愛國不反日了,一起懷念「改革開放」初期,胡耀邦主政,中國從日本「引進」因電影「追捕」全國走紅的這位銀幕鐵漢。

中國電影,其實也有自己的「鐵漢」型演員:六十年代,項堃和崔嵬,以至趙丹,都是中年演員之中的鐵漢型。

中國電影有很好的訓練,受蘇聯的表演方法訓練,上一代的演員不止有戲劇修養,還有文學和美學知識,比起今日大陸年輕人狂迷的一代整容韓星,中國演員有內涵,戲演得都比只懂哭哭啼啼或睜眉怒目的韓星好。

可是有內涵和修養沒有用,沒有創作自由,中國的鐵漢型演員在「解放」後都只能演革命英雄、解放軍政委之類,中國觀眾看得厭。高倉健一登陸,中國人迷上了日本電影角色中的人性。高倉健不止將中國女觀眾渴求的男子氣概帶進來,還有一股人文的情懷。

中國電影再有「鐵漢」,也鐵不過「文革」時「無產階級專政」的鐵拳。上一代中國人都看過「小兵張嘎」(這齣戲一九六五年在香港上映,因為片名的北方話不合粵情,叫做「游擊小英雄」),導演正是演優而導的崔嵬。片中有一個共產黨游擊隊偵察員,名叫羅金保,演員張瑩,就是鐵漢形象。
Continue reading 陶傑 – 鐵漢演員

陶傑 – 業主永遠贏家

佔中之後,香港當然還有生意做:馬路交通回暢,社會秩序「正常」了,但經濟泡沫,會更惡化,交通秩序回復正常,但社會更不正常。

為甚麼呢?首先全球經濟格局:美國帶頭印鈔票,英國、歐盟、日本、中國,大家一起開動印鈔機。

英國、歐盟、日本印鈔票,都有他們的軌道。譬如日本,印鈔導致日圓貶值。日圓貶值,內可刺激日本貨出口,跟南韓競爭;外則吸引遊客,來日本浸溫泉比以前便宜。

日圓貶值,刺激出口旅遊,為國內製造就業職位。日本、歐盟、英國印鈔,都跟從這樣的道理。印鈔票要有「道」──譬如,日圓如果多印了三萬億,其中六千億,不會化為安倍晉三內閣官員及其子女的口袋,然後匯到外國,轉化為貪污的出口資產。

但是中國一印鈔,就不同了。加印人民幣一萬億,化為基建、築橋建路房地產,會有兩三千億帳目不明,經層層貪官,進了他們私人或其子女黨羽的口袋。

中央軍委副主席徐才厚,淪為「大老虎」,其豪宅抄家,中紀委就掏出了一噸重的人民幣現鈔。
Continue reading 陶傑 – 業主永遠贏家

Meteor – Passing variables to template

In Meteor, a Spacebar template could include another template.

<template name="slots">
  {{> slot }}
</template>

<template name="slot">
  <div class="slot">
    <div class="number">100</div>
  </div>
</template>

 

Sometime we want to reuse the template with different variables. Here is an example.

<template name="slots">
  {{> slot one}}
  {{> slot two}}
  {{> slot three}}
</template>

<template name="slot">
  <div class="slot">
    <div class="number">{{number}}</div>
  </div>
</template>

Continue reading Meteor – Passing variables to template

Meteor – Run shell command at server side

1. Install the fibres node package on the server.

npm -g install fibres

 

2. Define the server methods in server.js.
server/server.js

Meteor.startup(function () {
  // Server methods
  Meteor.methods({
    runCode: function () {
      // This method call won't return immediately, it will wait for the
      // asynchronous code to finish, so we call unblock to allow this client
      // to queue other method calls (see Meteor docs)
      this.unblock();
      var future=new Future();
      var command="pwd";
      exec(command,function(error,stdout,stderr){
          if(error){
              console.log(error);
              throw new Meteor.Error(500,command+" failed");
          }
          future.return(stdout.toString());
      });
      return future.wait();
    }
  });
});

Continue reading Meteor – Run shell command at server side

Linux – Preserve Environment Variables when using sudo

Sometimes we may want to preserve the environment variables of the original user when using sudo.

If you want to preserve all env variables, you could use the -E option. But use it with caution.

sudo -E bash -c 'echo $PATH'

 

A better approach is to list those env variables which u want to preserve in the sudoers config file. For example, i want to keep the HTTP_PROXY and HTTPS_PROXY.

Defaults env_keep +="HTTP_PROXY"
Defaults env_keep +="HTTPS_PROXY"

 

So every time you use the sudo command, the HTTP_PROXY and HTTPS_PROXY are kept.

Done =)

Reference:

Dream BIG and go for it =)