2012年11月7日

node.js(2) - npm

npm (Node Packaged Modules) 看名稱就知道是 node.js 的套件管理工具
基本上在安裝完 node.js 之後它也已經安裝好了,如果沒有的話...那就再裝一次 node.js 吧

不知道 npm 有沒有 GUI 的介面,可能會對初學者比較有善一些?不過我是都用 command line 來操作啦。

直接打上
#npm
就會列出有哪些指令可以用了

這邊介紹...我會用的.v.

1. 列出 npm 的文件

#npm
#npm help
#npm -h
以上三中出來的結果都是一樣的,是將 npm 有的指令列出來
如果要詳細地介紹的話
#npm help npm
裡面有詳細地介紹
若對 npm 某個指令有問題的話則可以
#npm help
例如對 #npm install 有問題的話就可以打 #npm install help 就會有更詳盡的解釋

2.  install/uninstall node module

#npm install  'module_name'
很直覺吧!然後你會發現目前所在的資料夾底下多了個 node_module 這個資料夾,裡面放的就是你剛剛 install 的 module 。如果在繼續裝其他的 module ,他們也都會放在 node_module 這個資料夾底下。
不過,這樣裝好的 module 只有在現在這個資料夾底下才能用,若切換到別的資料夾就要重裝一次,想要裝一次就一勞永逸的話可以加個 g 的參數,代表 global 的意思:
#npm install 'module_name' -g
如果是很常用到的 module 這樣做,以後就不用換一個 project 就裝一次
當然 uninstall 也是相同的用法:)

更詳細的用法請參考
#npm help install

3. 列出已安裝的module

#npm ls
這樣,列出目前這個資料夾所裝的 module
要列出用 global 安裝的 module 一樣也是加上 g 這個參數
#npm ls -g

4. 更新 module 

#npm update [module_name]
若是沒指定 module 就會更新全部的 module

*若是想更新 node.js 的版本,可以上官網抓安裝檔重新安裝,用 git 用 #git pull ,用 nvm 的話下
#nvm install v[版本號]
例如: #nvm install v0.8.14

5. 尋找可以裝的 module

#npm search [keyword]
沒加上 keyword 的話會將全部的 module 列出,如果閒來無事想看看有哪些有趣的 module 可以這樣做。
有加上 keyword 的話則會將 ”module 的名稱內“ 或者 “module 的簡短介紹內” 有包含 keyword 的 module 列出。
有複數個 keyword 的話,keyword 之間用空白隔開

&&&&&

大概就這樣,其他的就等以後慢慢發掘再補上

另外,npm 的官網也列出了最新,最夯或者最多 depend 的 module 。還蠻可愛的


參考資料
https://npmjs.org

2012年11月6日

node.js(1) - 介紹與安裝

一開始是介紹node.js,接下來從安裝到基本使用,然後是兩個 framework (express, socket.io),最後實做一個小 project 出來。大概是這樣啦!因為覺得 node.js 的資料都好分散,想整理一個比較完整的教學。

&&&&&

介紹

node.js 是一個平台,可以讓開發者在 server 端快速開發出一個可擴充的網路服務。這個平台是由 Ryan Lienhart Dahl 這位大大用 Google 的 V8 JavaScript engine 和其他的 library 所開發出來的。V8 JavaScript engine 是 Google 開發的,目前被用在 Google chrome 上,它的特色是將 JavaScript compile 成 machine code ,藉此提高 JavaScript 的效能,而效能好也是 node.js 的特點之一。關於在 node.js 中的 JavaScript 和其他語言的效能比較網路上可以找到許多文章。

安裝

官方網站有提供壓縮檔,解壓縮再安裝就行了,也可以透過 git 來安裝,或者用 nvm 這個套件。我個人是用 nvm 來安裝的,因為他對 node.js 提供比較好的版本管理。



參考資料
http://en.wikipedia.org/wiki/Nodejs
http://nodejs.org/
https://github.com/joyent/node
https://npmjs.org/package/nvm

2012年11月4日

Facebook world hack 官方延伸活動 心得

感謝這次主辦單位有這樣的延伸活動,收穫很多

很早就知道有 facebook hackthon 的活動,不過總覺得自己一個人,而且聽說很多強者都有報,所以就沒報名了,在聽完之後覺得,就算是去打醬油也好,沒報名真是可惜(yahoo 和 node.js 的也沒報名QQ)

整理一下這次我聽到的重點

賽前

想好 idea,idea要注意的是它的大小還有價值。大小要看 hackthon 的時間長度,這次 facebook 的時間是 7個小時,幾乎全程緊繃的狀態,而YY那隊提到他們參加 evernote hackthon 的時間是兩天一夜,可以好好放鬆討論。價值則是對該主辦單位的價值,辦 hackthon 不是在做慈善事業,主辦單位也想從比賽中尋找創意、商機,idea 要有趣也不能失莊重,講中中好像有太嚴肅了,總之就是如果得獎了可以讓的上檯面,讓媒體報導、讓主辦單位宣傳等等,例如有個 "老師點名了" 的作品雖然引起大家熱烈迴響但是卻沒得獎。

熟悉你的工具
筆電、作業系統和程式語言,在比賽的時候都是要用自己最熟悉的,當天大加壓力大,電腦好像也會跟著緊張,compile 不過、踩到特殊 bug,連螢幕解析度也來桶一刀,這麼短的期限內當然遇到的 bug 越少,作品完成度也容易提高,獲獎機率也會升高。

找些好隊友
當然也有一個人參賽的,不過比較好的情況是有 programmer + designer ,最好還有類似行銷的角色在,designer能做的事情很多,有如法師一般的角色,設計,切板,將圖交給programming後可以開始做投影片,demo的流程還有亮點/梗,討論 idea 的時候,也能提供不同角度,還能互相遞茶水,好處多多。programmer方面,就一點,可以溝通,在壓力鍋裡面要的是把料理完成而不是拿菜刀互砍。

&&&&&

比賽時

評估每個feature,想像無限,時間有限,或許很多想法都想要實踐,但是 coding 時間不夠,寫不寫得完都是個問題,demo 只有兩分鐘,就算六個小時寫了一個facebook也沒辦法把所有功能demo完,把握自己作品的重點,能有實際上台示範的功能才是真的。如果一個不是最重要的 feature 做下去才發現太耗時了,斬立決,而不是像賭徒一樣相信下一把會賺回來的心態。就像寫作一樣,寫到一半可能會出現很有趣的想法想要實踐,給它一個合理的開發時間,時間內做不到一樣斬立決。

demo 要有趣,就像超級星光大道那樣吧,一進就要唱副歌,可以設計故事,將評審帶入情境,或者有個漂亮的介面、特效吸引大家目光,例如 xdite 說評審覺得  paperclip 最吸引注意的是首頁那些頁面被夾進迴紋針的效果

&&&&&

記得比較重要的大概這樣吧,去睡個覺記憶應該會回來更多

這次覺得最有趣的是聽到 YY 那組(我搞不清楚哪位叫什麼暱稱Orz),有請到 designer 也來分享心得,一直以來參加活動都是聽到 programmer 發表關於技術方面的議題,designer的角度真的不一樣,希望以後 programmer 為主的會議也能有 designer 分享心得。

&&&&&

我對自己的創意發想還蠻有信心的,在下次 hackthon 之前我要盡力提高技術力,然後一定要參加!!