常言道 V8 超快 XD
所以心中一直有疑惑,到底是快到哪裡去 = =
node.js 真的有比其他的快嘛?
所以做了一點小實驗
比較 node.js 跟 php 的 performance
node.js with Express, Jade, Stylus and CoffeeScript
好像不用 node.js 寫一些小東西感覺不出來他的威力 而且小郭說每次 Demo 都用 Hello World!
所以決定動手寫一個小小的留言板
搭配的 Framework 有 Express CoffeeScript Jade Stylus
這些 Framework 功能如下
- Express : 是 node.js 的 Web Framework
- CoffeeScript : 是快速產生 Javascript 的好物!
- Jade : HTML 的 Template Engine
- Stylus : dynamic stylesheet 簡單的語言產生 css
功能有
- 新增留言
- 修改留言
- 刪除留言
Demo site 在 Cloud Foundry
是透過 VMware 的 Cloud Foundry 執行的
Source Code 在 GitHub
以下是說明
利用 nodejs 與 express 建立基本網站
Node.js 可以說是今年蠻具有話題性的 server side 技術
在官方網頁上可以看到大大的 Evented I/O for V8 JavaScript
簡單來說她利用了 V8 Javascript Engine 的高速性能 加上了 non-blocking I/O 造就了特殊的程式樂趣
沒想到 javascript 除了 client 端 也可以寫 server 端的程式
原生的 node.js 就可以產生 server
不過當然搭配一些 framework 會讓我們寫程式更輕鬆啦
目前跟 node.js 搭配的 framework 有三種
1. Express
主要提供 view helper 跟 routing
2. Jade
是一個 html 的 template engine 可以減少很多寫 html 的工
3. Stylus
類似 ruby 的 Sass 可以用來快速產生 css
VMware Cloud Foundry 試玩小小小之在小不過的心得
話說十天前看到了 Cloud Foundry 的網頁 可以 Request an invite account 當下馬上就申請了一個 XD
他的特色是… 就是 VMware 的雲 沒了! 屬於 PaaS (Platform as a Service) 最大的特色應該算是他們強調是 Open 的 (Open Source !) 主要是社群維護 cloudfoundry.org Source Code 在這裡 不過在 VMware 的平台(cloudfoundry.com)上營運要付錢 所以免費版就是下載回去自己架起來 XD (目前是 Beta 一切免費!)
目前支援 Java, Ruby, Node.js (via FAQ)
資料庫選擇有 MongoDB、MySQL和Redis
Java 的話可以搭配 Spring 或其他 JVM 可以吃的 framework
Ruby 可以選用 Rails 或者 Sinatra (沒玩過 Sinatra 可是看起來好像很簡單耶)
Node.js 則可以原生就可以支援或者搭配 express 與 npm 的 bundle
然後九天後…也就是昨天晚上就收到通知信啦!
今天早上馬上來試玩一下 歡迎切磋指教 :P
以下是小小小小小小試玩心得
在 Mac OS X 轉 dmg 成 iso 檔
dmg (Disk iMaGe) 可以說是 Mac OS X 最常見的磁碟影像檔
但是在其他的作業系統似乎 iso 更常見
而 Mac 本身就提供了 iso 轉檔的功能 指令如下
trac, moinmoin wiki 與 svn 搬移與安裝的三兩事(二)
一 講完了 trac 與 moinmoin 之後
二 這篇要講的是有關 svn
敝單位有使用 LDAP 當做帳號管理
所以要走 ssh+svn 的話首先要建立 LDAP 的認證機制
因為是用 SLES 所以設定也不難 用 yast 建立就好了
trac, moinmoin wiki 與 svn 搬移與安裝的三兩事(一)
最近在搬移 trac, moinmoin wiki 與 svn server 這篇文章記錄一下過程
原本的舊 server 是跑 apache
由於新的 server 是 VM 所以我覺得選用比較 light weight 的 nginx 似乎比較好
首先先講解在新的 server 重新建立環境
1. nginx 的安裝
首先到 nginx 下載頁 下載 (BTW 今天剛好釋出 1.0 萬歲)
讓 php 回 304 Not Modified
在 Google Page Speed 的要點裡 有提到 減少要求 request 的數量
這樣的話會有兩種作法
- deploy 時合併成一支大的 .js
- 透過 php 把要求的 js 合併一次傳送出去
但是前者失去了彈性,假設我們有十種不同的元件( js 檔),因為不是每次都需要這十種元件的功能,所以不可能每次都 loading 這十隻,如果要選擇性的 loading 就要把全部的組合都合併出來,這樣的排列組合未免也太恐怖了。
因此實務上會寫一支 php (姑且稱之 combo loader),透過傳遞不同的 js 元件需求,這隻 combo loader 可以輕鬆的組合出想要的元件。並且可以把合併的結果 cache 起來,下次遇到一樣的需求就不必再重新組合了。
因此程式碼大概會長這樣。
在 SLES 11 SP1 追加 repository
最近敝單位在更新一些機器,長官決定採用 SLES (SUSE Linux Enterprise Sever)
不過我最熟悉的其實是 Gentoo 對於其他 distro 像 SLES, Ubuntu 之類的都不熟
所以大概花了一整個禮拜在研究 SLES (目前最新的是 SLES 11 service pack 1)
其實最大的問題在於軟體 (software) 的處理不同
Gentoo 的 portage system 實在太強大,從版本控制到 USE 控制哪些小功能要編入
而 SLES 因為是 rpm based 的系統,而且 Enterprise Server 版似乎又很保守,一堆套件不是舊就是根本沒有 囧mm
所以只能自己找 repository 了
以下是新增 repository 的方法
讓應用程式都使用 Webkit Core
要讓比方說 Safari, MailPlane 或 CSSEdit 吃 Webkit 的核心的話其中一種方法是從終端機打開
如以下設定
export DYLD_FRAMEWORK_PATH=/Applications/WebKit.app/Contents/Frameworks/10.6/
export WEBKIT_UNSET_DYLD_FRAMEWORK_PATH=YES
open /Applications/blahblah.app
即可
可是要從終端機太麻煩了對吧
Mac OS X 提供更方便的方式讓全系統都套用