over 4 years ago


以前在看 Mobile01 就有看過一些相關的介紹,
對Sony HDR-AS15V 小巧的外形很有印象。

宜蘭行回來後,發覺像騎機車、腳踏車,或是有些水底、極限運動,
要拍攝眼前看到的景象還得多空出一隻手,等於少了一隻手可以自由運用,
並不算太方便,於是興起了買台運度攝影機的想法,讓自己更專注于執行當下的活動,攝影就交給他囉!

現在Sony同樣的機型已經到了AS30v,比起AS15多了GPS、NFC,
但我自己Nikon V1就已有了GPS配件,就直接入手價格較低的AS15($6800)。

Read on →
 
over 4 years ago

最近迷上了一款 iOS遊戲 - Deemo
是製作國產遊戲Cytus 雷亞Rayark公司的新作

遊戲故事的內容是一個孤獨鋼琴師Deemo,突然有一天一個小女孩從高高的窗戶落下來,
小女孩失去了記憶,非常想家,寂寞的Deemo從此有了聽眾,非常努力的彈琴,讓樹長高幫助小女孩回家
而玩家要扮演的角色就是Deemo

Read on →
 
over 4 years ago

[Lab]

情境:每個研究生會有自己的研究題目&程式撰寫、Lab分配到的計畫or活動籌辦

<檔案共享>

Dropbox開一個Lab共用資料夾,每個人的資料夾以自己的名稱命名(其他人也有修改權限)
個人研究成果、paper、Meeting Slides、分工要完成的資料檔案,都丟裡面,其他人有需要參考或校定再看
而Code 因為大部分都是非完成,還在測試階段,所以都存自己本機,結果或完工的程式才會丟到Dropbox

<通知>

會議結果、job分工等 既定事實 的通知 => email
個人的進度追蹤 => FB即時通
需要團體討論 => FB私人社團 or 當面Meeting

好處:版本控制、檔案變動通知、簡單易用、跨平台只要聯網就可隨時隨地使用
缺點:因為Dropbox的共享資料夾,所以不屬於自己的資料夾也會計算在空間中,很容易爆掉@@


Read on →
 
over 4 years ago

前言

常看esor大的blog,了解更多Evernote的應用,
就開始慢慢使用Evernote,漸漸的Evernote已經是我生活中不可或缺的工具
(對我來說就是第二顆大腦,而且空間無限大,還可以隨時像Google一樣搜尋)
自己也很喜歡玩新服務,Evernote周邊的App很多也很方便
尤其今年看到DevCup 2013上不少作品還滿令人喜歡
當然就會一直推身邊朋友坑,大力宣傳Evernote的好用
也有在交大資工營推廣Evernote等數位工具的使用

But自己不只想甘於只是活用工具者
總覺得都已經念好幾年資工系所,
不應該只是從學校課程學習,也該學會寫一些工具讓自己的生活更加便利
再練強一點 Maybe可以參加DevCup 或 Hackthon之類的,推廣自己的idea也算是額外經驗...

無意間從Evernote台灣開發者的FB得知 Taiwan Evernote Developer Meetup #2
當 Evernote 遇上 Node.js Workshop 為主題
有能學習開發Evernote App的機會當然立馬報名參加

Read on →
 
over 4 years ago

有了基本的HTTP Server後,我們接下來就要處理路徑(route)問題
為了解析路徑,除了本身的http模組,我們還需要url模組

建立一個 03-http_route.js 的檔案 (接續02-basic_http_hello_world.js)

var server,
    ip   = "127.0.0.1",
    port = 1337,
    http = require('http'),
    url = require('url');

function onRequest(request, response) {
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  response.writeHead(200, {"Content-Type": "text/plain"});
  
  switch (pathname) {
    case "/index":
      response.end('I am index.\n');
      break;
    case "/test":
      response.end('this is test page.\n');
      break;
    default:
      response.end('default page.\n');
      break;
  }
}
http.createServer(onRequest).listen(port, ip);
console.log("Server has started.");

command line打node 03-http_route.js
再打開瀏覽器:輸入以下四種網址,頁面會有不同結果(終端機也會有不同輸出)

  • localhost:1337 => "default page."
  • localhost:1337/index => "I am index."
  • localhost:1337/test => "this is test page."
  • localhost:1337/xxs21a => "default page"

References

Node入門
Node.js 基礎 Node.js 中文電子書

 
over 4 years ago

這學期碰了不少網頁開發的技術,還想學更多,先從Node.js下手

前言

之前一直是處於:需要寫什麼功能,就去網路爬code看懂自己修改,
其實對於這些網頁相關的程式語言一直都沒有弄懂,就花了些時間了解各個程式語言的功用

Step1. 安裝

我的環境是Windows7 64bit,先去此地下載Windows 64bit的.msi檔來安裝
就用default值,一直下一步,然後就安裝完成啦

Step2. 撰寫第一個程式 Hello World

新增一個01-console_hello_world.js的檔案,不免俗當然就寫個第一個"你好世界"的程式

console.log("Hello World");

Step3. 執行

開啟command line 輸入node 01-console_hello_world.js
這時終端就會輸出 Hello World

小筆記個(在Windows常會習慣打Unix指令阿@@)
Windows Unix
cd /d cd
dir ls

不過如果只是寫個普通會Output 的程式也太無聊了吧
來寫個比較實用跟Web相關的程式:基礎 HTTP 伺服器
建立一個 02-basic_http_hello_world.js 的檔案

var ip   = "127.0.0.1",
    port = 1337,
    http = require('http');

function onRequest(request, response) {
  console.log("Request received.");
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}
http.createServer(onRequest).listen(port, ip);
console.log("Server has started.");

我們載入http模組,利用內建的createServer架設一個基本的HTTP伺服器
用一個call back function接收HTTP伺服器的 request& response
最後HTTP伺服器需要設定listen的port還有IP,監聽所有HTTP伺服器行為
並同時將server收到的訊息顯示在終端上(console.log)
// http.createServer(onRequest) 這裡是Javascript中常見的函數傳遞

在command line執行node 02-basic_http_hello_world.js
終端機上面會顯示"Server has started"

這時候在瀏覽器上打localhost:1337就可以看到是"Hello World"的頁面
此時終端機會顯示1~2的"Request received." (觸發onRequest callback)
這是因為大部分的瀏覽器會在存取 http://localhost:1337 的時候,
還會嘗試讀取 http://localhost:1337/favicon.ico

這裡的運作方式是,onRequest函數被觸發之後,有兩個參數request, response被傳入
我們不在乎request的內容,所以就放著不處理
而利用response回傳一個200 HTTP 狀態碼(200代表OK),
write函數在content-type:text/plain的HTTP的header寫上"Hello World",再用end函數結束完成回應。
response的write、end函數,都被定義在Class: http.ServerResponse中。

References

Node入門
Node.js 基礎 Node.js 中文電子書

 
almost 5 years ago

Github的缺點就是免費版的 repositories 都要公開
可是有時候做的project裡面有比較secret的部分(例如密碼或是和某些公司合約)
需要private repo 可以有幾個選項
( 記得還是要先安裝 Git )


Dropbox

1.初始化

注意目錄要使用"/"而不是"\"
ex: E:/Dropbox/OurProject

如果git remote add origin加錯了,導致之後git push失敗
可以用git remote rm origin刪除,再重新 git remote add origin

2.合作者設定

初始化 那張圖的 3.~5.就好,
和以往的流程一樣 (pull、branch、commit、merge、push) 就各自回去修改code,
不過注意這裡pull要使用git pull origin master

說明

不像是Github有個網頁介面可以來看每個version修改哪些資訊,
所以就要使用git diffgit loggit show等指令來看每個不同version修改哪些部分
一些指令參考


使用Dropbox缺點是本身有同步的時間差,因此多人在同步push而Dropbox還沒同步的時候就會有衝突
此外也有容量的限制,不過 Dropbox 算是一個很簡單快速的選擇。


Bitbucket

Bitbucket標榜的就是 Unlimited private code repositories,
免費版可以提供 5 users (5個帳戶)合作,其他幾乎是跟Github一樣

申請完bitbucket帳號,收信認證通過,就來開個private repo試試
官方的說明流程很仔細

Read on →
 
almost 5 years ago

I. Setup

1. 第一次建立 repo
在Github上開repo

2. 開始分工
分工方式:

  • 管理者將合作者加入Collaborators,每個合作者clone一份回去(初始化),修改後直接push
  • 合作者各自fork回去,修改之後再發pull request給管理者

II. 開發過程

1. Pull
每天開工就記得先 git pull,更新本機的code

2. Coding
開發新功能 git branch [branch-name] git checkout [branch-name]
養成好習慣,修改一個功能就記得 git commit (配合 git status git add [修改過的檔案])

3. Push
有開新branch記得和master合併: git checkout master git merge [branch-name]
然後就push回遠端server啦 git push

不過多人合做最常發生的情況就是

  • A、B 各自clone回去
  • A、B 各自修改code
  • A push

然後這時還在修改code的B,並不知道A已經push,
因此B在修改完code後要push就會失敗
此時就需要用到git pull 將遠端最新的branch下載與本機的branch合併
之後再git push就能成功了!

Read on →
 
almost 5 years ago

Collaborators

Collaborators適用於一個team之間的合作。
負責開這個repository的人,進入settings,加入collaborators的帳號



這樣所有collaborators名單中的人,在git push的時候,可以輸入自己的帳密,而不是擁有repository人的帳密。

流程會像這樣:

A擁有repository,想要B也能更新自己的repository,就把B加入collaborators,
這樣B要一起合做這份code的時候,先按照前一篇的流程設定
B初始化的時候, 注意clone URL 是 A 的 repo 的 clone URL
然後B就可以在自己的本機盡情修改code (用branch、commit、merge)
最後在push的時候輸入B自己的帳密,
會更新A的repository(A仍就可以繼續更新自己的repository)
但B自己的github帳戶並不會有一份和A相同的repository(只會有A的repo連結)


Fork & Pull request

另外還有另外一種多人合作方式是 Fork & Pull request
情境像是 A 擁有一個repo a,B看到覺得還不錯
所以就fork一個到自己的repo中,這裡叫做b (雖然a,b實際上名字一樣,不過用a,b稱呼比較容易搞懂)

Read on →
 
almost 5 years ago

Git 這個詞聽了好久,也知道好處,但遲遲沒用
主要就是上手的門檻有點高,要設定實在會搞死人阿@@

不少網路上的神手紛紛寫的Git教學,很久也沒激起想要弄Git的興趣
直到上了研究所時間更多、也有更多的project對於version控管更加依賴
加上前陣子看到了這份教學是目前覺得最順眼最簡單易瞭的,開始認真把Git融入資工生活中囉

如果想學更多以圖解方式講解的Git功能,也可以參考 Learn Git Branching //2014-10-08更新


或許看完上面的Slide對Git還是霧煞煞,那就 直接照著以下筆記try it
相信操作過對於Slide中所講的概念會更加熟悉!!!


(END 有文字簡易流程)

Github

先從最常用的線上Git服務Github來做體驗

Read on →