由於Javascript是event driven,
並不會像我們以往寫程式認為程式應該會按照我們寫的順序跑(不過Node.js也因此速度更快)
所以像callback等的觀念與練習是之後還要再摸索的
一個API只要學會CRUD,之後任何應用就會很得心應手了
目前Evernote SDK based on Node.js with express,
有CRUD範例,就屬rexchen所寫的enmlEditor
而且使用的view-engine不是官方範例中的jade,而是我們熟悉的html,相信學起來會更容易上手。
移植到Koding 上寫的話,import https://github.com/rexchen/enmlEditor.git
主要需要改的就是config.json,填上你的key(要是Full Access
key)
把SANDBOX設成true
,PRODUCTION_URL換成你的帳號.kd.io:3000
{
"API_CONSUMER_KEY": "",
"API_CONSUMER_SECRET": "",
"SANDBOX": true,
"NOTEBOOK_NAME": "ENML Editor",
"PRODUCTION_URL": "http://你的帳號.kd.io:3000"
}
之後跟以往一樣執行node app.js
就行囉!
參考資料
後記
一直很喜歡Evernote,也希望能有一天寫出相關應用,
去年11月參加的Meetup接觸了Evernote SDK for Node.js,不過一直還沒有push自己去學更多,
直到現在週末不定時研究所同學會主辦讀書會,分享自己所學,
算是半強迫自己把Evernote的API摸熟一些,產出前幾篇的教學文。
不過,現階段我應該會捨棄Node.js吧! (會寫Node.js系列文,只是那次Meetup學的是Node.js xDDDD)
還不太習慣Event-driven的寫法,會先把之前的CodeIginter練熟再配合Evernote SDK for php,下一步應該是Ruby。
Keep Going!!!
有了前面基礎的環境建置、背景知識了解後,
以官方的evernote-sdk-js為基礎,
就來練習第一個Evernote API的應用~建立筆記,也就是CRUD的Create
流程:
- 進到首頁,先連結Evernote帳號
- 進入Create Note頁面
- 輸入標題、內容,按下Create Note //create
- 在Evernote建立筆記,導回首頁 //receive
一些在Node.js環境中,使用express framework開發Evernote API,可以參考的背景知識
Node.js
Node.js is a platform written in JavaScript for easily building fast, scalable network applications.
可以把 Node.js 當成一個運行環境,同時也是javascript的函式庫
- non-blocking
- event-driven
參考資料
MVC
軟體工程中,把系統分成三個部份: Model、View、Controller的軟體架構
- 程式結構更為直覺(未使用framework=>SQL,CSS,HTML,PHP/JS/Python...混在一起)
- 後續程式修改、維護、擴充容易
- 專業人員可以透過自身的專長分組:
- Model: 資料庫、演算法、程式功能
- View: UI、UX
- Controller: 負責轉發請求,對請求進行處理
- 蒐集使用者於View中所輸入的資料,並決定由哪一支程式進行處理
- 接收Model傳回的資料,解析後傳給View呈現
- 蒐集使用者於View中所輸入的資料,並決定由哪一支程式進行處理
參考資料
Wiki - MVC
[軟體工程] MVC 架構
CI 練習- [帳號申請] 表單傳遞 form_open、method
CI 練習- [帳號申請] database 連結
express
express 其實不太算一個標準的MVC架構,因為Model部分不是由他提供。
以evernote-sdk-js為例,簡單分類的話:
View: views/index.jade
Controller: app.js(routes/index.js)
app.js 是 express最主要的設定檔:定義 express 使用的套件、template 系統、路徑設定與port。
如果全部的定義設定都寫在app.js裡面也很混亂,所以可以分開到其他的目錄文件中
(routes不屬於express模組,只是方便寫邏輯而已!)
參考資料
MVC路由控制 – Express 和 Django
node.js框架 express的mvc簡單解釋
CodeIgniter 2.0.X
在Koding裡的好處是,可以不用安裝npm,
還有可以快速import github上面project,
開一個瀏覽器,就可以編寫code、在Terminal執行、瀏覽器預覽,集於一身,
要做Evernote的教學,Koding是很方便的選擇。
想當年大二升大三的暑假,到趨勢實習,
那時小米1剛發表,看到他的規格還有 價錢 ,
加上還給你直接root權限,隨便你刷機(可刷雙系統),實習的大夥都起鬨著要團購
從那個時候開始接觸小米系列的產品,之後也變成是小米產品的推坑王xDDDD
當年小米1還沒有在台灣地區販售(剛好遇到那一年HTC V系列出包機超多),
別人看到我手上拿的手機,問牌子,我回答是大陸品牌
不少人還用很鄙夷的眼神,覺得大陸的手機就是山寨,很不安全...etc
事隔境遷,從小米2S,行動電源,紅米,小米3,每波都是搶購(然後沒搶到貨或搶到貨晚到,都有人在fb罵xD)
喜歡小米的UI,會聽取客戶的回饋做改進或新增功能,就如同minecraft一樣
Read on →最近Lab需要寫一個Android Ftp Upload Module,也希望有個管理介面
主要參考此篇加上Ftp的功能(使用apache commons FTP)
分享一下code囉!
功能
- 支援多檔上傳 (用,分開)
- 檔案
- 1-level 資料夾:資料夾底下只有檔案,沒有資料夾
- 完成的Job按下Clear會在畫面上清空
完整程式碼 Code
Read on →趁著台灣時間中午前,算是Koding比較穩定的時段,(現在比起Crazy 250TB Week 前三天,穩定很多)
趕緊來測測看前些天還沒測過的功能
在Koding建置Evernote Node.js 環境
Read on →(2014/03/01更新)
以前coding,都要先建置編譯環境
C:DevC++ -> CodeBlocks
Java:Eclipse
CodeIgniter、Node.js(在Windows上裝根本是夢魘@@)
.
.
.
現在有了Koding這個平台,就可以直接在線上coding,不用再為建置環境弄得一個頭兩個大
而且Koding不單只是雲端開發環境,更是開發者們的社群,有許多頻道(Project、開發者)可以訂閱,
讓開發者不僅有個方便的coding空間,更可以和其他程式設計師交流!
從影片就可以看到Koding除了基本必備的編輯器、網頁預覽外,還預設
- Apache:在家目錄WWW裡面就可以架設網站啦
- Git
- npm
- C,C++,Java,PHP,Python,Ruby,Perl,Go,MySQL,MongoDB,Django...開發環境。
- 終端機:Koding是給你一個Ubuntu的VM環境 (也可以透過遠端ex:putty來access,不用透過Koding介面)
- sudo權限:讓你可以安裝各種套件
- 共同編輯:共同coding同一份程式碼、聊天視窗、畫圖板
- 3GB虛擬主機空間(免費版可擴充至
16GB20GB) //2014.02.28 好康釋出 - Custom Domain // 2014.03.01 好康釋出 again
其實就把Koding當成一台Ubuntu虛擬主機(VPS)就對了(實際上就是xD),你想要的功能都可以自己加
只是Koding提供給你GUI檔案管理介面還有編輯器,就可以不需要用到vim,ls,cd之類的指令。
你平常在工作站怎麼編譯,就怎麼編譯。
(只是當你登出或有一段時間沒在Koding,VM會關閉)
前幾天在臉書上看到朋友轉貼的聯結,關於聯合國兒童基金會的 「水龍頭計劃(Tap Project)」
你只要放下你的手機10分鐘,就可以帶給世界各地需要水的孩童們,一整天他們所需的乾淨水源
覺得這個計劃實在是很有意義,做公益之餘也可以改善現在手機成癮的習慣,
跟這幾天 MWC 中 HTC 的 Power To Give 計劃,拿手機閒置的資源貢獻出來,為世界盡一份力的社會回饋精神很像。
之前一直在等 MBPR 的CPU 換成 Haswell處理器(圖像處理更強大)
也卡在 MBPR 13' & MPA 13' 的猶豫中,2013這波更新讓兩者的重量差距縮小到200g
教育價只差$6000左右,毫不猶豫就買了畫質較好的MBPR
入手最基本款128G 4GRAM(主要儲存&遊戲,交給另一台1TB 8G的Win7主機)
Read on →