jade – Node.JS Template Engine

最近把注意力都集中到NodeJS的陣營來,一方面是自己喜新厭舊的糟糕個性(慘),一方面也是因為Node陣營發展的實在太快,幾乎每次都可以看到一些有趣的東西出現,所以不知不覺就陷進去了。(不過其實這樣蠻糟的,因為每次想寫些心得記錄下來,結果還沒開始動筆就又想玩別的東西了…0rz)

template engine其實不是什麼新鮮的東西,幾乎各種程式語言都有一兩個類似的東西,之前我也曾經提過在PHP – Symfony社群中的其中一個元件 – Twig,其實就是相同的東西。它可以協助programmer可以更輕鬆、更方便地撰寫網站頁面的部份。

當然,在nodejs中也可以找到類似的東西,今天要提的jade就是其中的一個 ~

用法基本上跟其他的template engine並沒有太大的差別,不過jade主要是受到Haml的影響,因此使用的語法上相當雷同。(我自己本身也沒用過Haml,有興趣的可以看一下強者介紹文

詳細的範例&說明可以直接看jade的文件以及範例程式

額外一題,雖然說這種精簡的語法對於開發者來說相當方便,不過如果對於分工比較細膩的團隊來說可能也有點麻煩,因為F2E人員也必須得學習新的語法才行,所以說有一利必有一弊阿 XD

npm – Manage Your Node Packages

伴隨着Node.js的火紅,許許多多我們想不到的應用也紛紛出爐,如何能夠有效的管理這些套件就是一件很麻煩的事,更不用多隨之而來的套件相依性(packages dependency)的問題,不過node的社群中也早早就想到這個問題了,所以早在node.js出來沒多久,相對應的套件管理也隨著出現了,就是本篇要提到的-npm

npm

就跟各大語言中的套件管理一樣(像pear、pecl@PHP;gem@Ruby;pip@python)其實都是做相同的事。所以請直接下:
man npm
就可以了,收工(你可以再懶一點…)

繼續閱讀

What is Node.JS?

如果在一年前說起Node.js可能知道的人並不多,不過隨著近期爆發性的成長,所有與Web Develop相關的人都應該好好研究一下這個東西(至少也應該要拿來把玩一下 :p)

From Blogging

老實說,剛接觸到這個專案的時候,其實我第一個直覺是覺得應該又是哪個JS狂人所想出來的專案,硬是要用javascript來寫server-side program,不過後來才知道自己實在想的太淺了…0rz

雖然打著JS的語法來撰寫後端看起來像是一種噱頭,不過請不要把Node.js誤認成我們一般熟知,運行在瀏覽器上的js,雖然語法相同,但是要處理的問題卻是完全不一樣。Node.js的目標是希望提供開發者一個高效開發網路應用程式,當然大家都知道,JS並不是一種設計來處理這類問題的語言,不過一來JS的使用上比較簡單(至少比起直接寫C來說 XD),另外JS event-based的特性剛好可以用來更有效率地處理高流量的網路服務。透過V8 Javascript Engine與底層的C library結合。

Node.js is not javascript, it’s C
不免俗的再次強調一下,不要把Node.js當成是javascript,它其實是C。

透過這樣的結合,讓Node.JS對於處理RealTime || High-load的情況,無論是資源使用以及效率上都來個比以往的傳統方式好上許多。不過也因為如此,程式的邏輯與以往我們比較熟悉的序列式處理可能會有所差別,而且因為非同步的IO,資料的處理上也會有所不同。

雖然Node.js誕生的時間相當短,不過發展的速度卻很驚人,而且開發上又是採用js,應該許多開發者都可以輕鬆上手。 直接搜尋一下也都可以找到一大堆的強者介紹文 :p

What is Node.js?
Learning Server-Side JavaScript with Node.js

Even Presentation Should be HTML5!!

最近HTML5正夯!

html5

當然這也不算是新聞了,而且這篇主題也不是要說HTML5(硬要扯上關係 XD)

既然大家(!?)都這麼推崇HTML5,身為網路程序員也應該要貢獻一點「推廣」的責任 :p。老實說,自從某間現金比國家還多的企業出來說話之後,大家就開始大力推廣起HTML5(雖然那間企業應該不算是推廣主力,但是我覺得至少媒體是從那時候才開始注意到HTML5這個東西的 XD)

應該不少人都把HTML5視為取代Flash的東西,就連在下也是這麼想的。不過如果單把HTML5視為這種用途,那你可能太小看它了 :p

不過再次強調,本文並沒有要介紹任何有關HTML5的東西 XD

在這篇想提一下充斥在目前社會中大家很喜歡做的一件事 – Presentation

繼續閱讀

What’s New in PHP5.4?

印象中PHP5.3好像是好久之前的事了(其實也沒多久,2009 XD)

經過漫長的等待(!?),終於要邁向5.4的分支了,目前已經有alpha釋出,想要先抓來玩玩的可以直接前往 :p

自從PHP5.3出現之後,PHP Community看起來似乎有活絡起來的感覺。不少好用的tools & Framework都一窩蜂的出現。當然,對於程式語言的孰優孰劣這種艱深的問題,就讓強者們去決定吧(其實我也說不出個所以然,因為除了PHP之外我就不會其他的了…0rz)。不過既然都是「工具」,我個人覺得比較重要的就是用起來順不順手 :p

雖然PHP有不少缺點,不過方便上手&快速開發的特性也是它很大的優勢。至少你如果想做做小實驗&工具(或邪惡的東西 :p),應該都是相當方便。

What new feature in PHP 5.4 is the most important to you?

Giorgio Sironi有寫了一篇簡述PHP5.4新增功能的介紹文,有興趣的可以前往拜讀一下。(額外一提,除了這篇文章之外,這位作者還寫了許多關於PHP Testing & Coding Quality的系列文章,都相當值得參考 :p),另外這邊也有不少強者的介紹,可以快速了解一下5.4的新功能 :p

Traits是5.4中加入的主要功能之一,在其他語言中其實並不是新鮮的功能,不過PHP5.4之後才會正式納入這項功能。有點像是interface的功能,不過看起來支援method & variable,對於精簡程式應該相當有幫助(Reuse the same part)(不確定是不是這樣的用法,如果有錯可以鞭我一下 XD)。

PHP5.4中也會內建一個http server,老實說一開始我覺得這個有點雞肋,因為你也不太可能用這個當成真正的http server,不過後來有注意到文件提到應該是for developer為主軸,應該也是針對快速開發而加入的功能。另外有提到全類型type hinting的功能,這個真是太期待了!!(不過我翻了一下changelog又好像沒有提到這點,而且Sironi的文章也提到好像不會在5.4中實作…0rz,不要擊碎我的夢阿 ~)

此外,一直被垢病的performance似乎也有「顯著」的提升,speed*2 && memory usage/2,我們一起期待這個美夢吧 :p

看來5.4的確是值得期待一下的好物(就這麼簡單的下結論…毆飛)

Easy-use Logging System in PHP5.3 – Monolog

最近看到Symfony陣容逐漸成形(其實最近我比較常玩的是Silex ^^』),伴隨著Symfony的專案也出現了許多方便的Lib,透過Symfony的bundle就可以很方便的整合進自己的專案使用。也正因為如此,以往許多開發時會遭遇的問題現在都可以輕鬆解決。

這篇想提一下Symfony2內建的logging system – Monolog

Logging是一般開發中相當重要的行為,雖然前端的使用者可能完全不會注意到部分,但是清楚的log有助於開發者可以更快、更方便的除錯,甚至可以事前發現系統可能潛在的問題。

老實說,Logging這件事並不是多困難的動作,幾乎各種語言都可以輕鬆做到這件事,最直接的,就是直接開個檔案然後把想記錄的資訊都寫進去。

雖然簡單,不過如果你想要更輕鬆、更方便的管理你的紀錄資訊,使用一些知名的Logging Library可能會相當有幫助。例如log4j、log4cpp等的系列作品,就是很方便的工具。

其實一般需要的功能都相差不多,所以這類的logging system通常也會互相參考優點,除了一些比較特殊的情況之外,一般對於「記錄」的行為,不外乎就是記錄的方式、格式,所以只要能涵蓋這兩項需求(如果還能提供Custom的方法就更好 :p),大致上就幾乎可以達到開發者的需求了。

老實說,Monolog也是類似的Library。不過因為他是Symfony2內建的logging system,所以如果你是用symfony進行開發的話,就可以直接用了 :p (Silex也一樣)

使用方式大概就像這樣,簡單收工 :p

Half Way of 2011

自從開始工作之後,猛然驚覺時間好像開始加速一樣。在學生時期常常希望時間過快一點(可以趕快放假 XD),不過現在卻很希望時間走慢一點(因為事情都做不完…0rz),除了身體逐漸老化之外,心靈老化的速度更是快得嚇人(喂)

自從年初寫了一篇例行文之後,一晃眼,今年也過了一半了。自己仍舊是這麼廢,想學、要學的的東西還是這麼多,而且也逐漸感受到從前體會不到的那種「倦勤」的感覺。

老實說,我也不覺得自己有什麼資格說些什麼冠冕堂皇的話。不過慶幸自己應該是有這麼一絲絲Engineer的個性吧(真的只有一絲絲而已 XD),所以對於看看玩玩一些新東西倒是甘之如飴,不過也因為這樣,對於那些明知道不好卻無力改變、期望朝好的方向發展卻老是被打槍的現狀感到有種深深的無力感(脾氣好像也越來越糟了…慘)。

不過至少有件不錯的事,剛剛算了一下自己今年所寫下的紀錄已經超過去年的份量了 :p
雖然其中有不少應該算是沒什麼營養的東西 XD
不過至少算是有達到為自己定下的目標,也希望可以一直持續下去~

身為twitter的超級愛用者,所以平常也經常在上面亂逛(這世界的強者真是太多了,透過這些新媒體,現今的我們無論是找資源或是學習的材料都比以往方便太多了),最近也順手加上了About MeChristian, Software Developer, SONE,這應該是現階段的我努力的目標吧 :p(前兩項應該算是永久目標,不過目前好像都偏到第三項去了…XD[羞])

Stand Firm and Keep Fighting!!

WordPress.com oEmbed Provider API Now Available (via WordPress.com News)

前幾天Wordpress.com剛公開的Developer Site,看起來已經開始有所動作了 :p

除了目前支援的OAuth2.0的認證方式之外(要申請,而且目前看來可能要是「比較大」的開發商才能拿到,因為我不知好歹地跑去申請,結果被殘酷的拒絕了…哭哭),今天WP.com又放出了一個新的API-oEmbed

有興趣研究的可以直接去看看相關的規格,簡單的說,就是可以支援將WP.com上的文章提供給第三方使用。文章中有提到,目前支援的有*.wordpress.com, wp.me*,以及VIP Host(諸如techcrunch、cnn等),目前都可以透過這個oEmbed Provider API讓外部網站可以取得資料。

還沒想到可以惡搞什麼,因為需要給定目標的Post URL(配合現有的WP.xmlrpc ?),不過至少看到WP.com已經開始要積極(?)整合外部開發者的力量了,希望可以看到更多的消息 :p

WordPress.com oEmbed Provider API Now Available Last week, we introduced support for OAuth2 and launched develop.wordpress.com, as we're eager to empower the developer community to extend WordPress.com in new and meaningful ways. Today, we're excited to announce the availability of our new oEmbed Provider API, yet another way to make it easy for third-party services and their respective audiences to share and consume content. oEmbed is a format for allowing an embedded representation of a URL … Read More

via WordPress.com News