以Express套件初始化Node.js開發環境,在WebStorm上

環境初始化

1.安裝nvm:

a.首先從 nvm GitHub 這裡複製以下代碼讓終端機下載套件

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

b.接著重啟終端機,安裝

nvm install 4.2.2

c.設定預設套件

nvm alias default 4.2.2

安裝各種套件

1.express:

npm install -g express-generator

2.bower:前端套件管理器

npm install -g bower

3.pm2:進程管理器

npm install -g pm2

專案初始化

1.透過express-generator帶less建立專案

express -e -c less [專案資料夾名稱]

-e:使用ejs
-c:宣告要用什麼CSS的編寫模式,預設就是原汁的CSS

2.安裝後端套件

到專案底下並且安裝所有相依套件

cd [專案資料夾]
npm install

如果要安裝樣版引擎:

npm install --save ejs-mate

3.安裝前端套件

初始化bower.json:紀錄相依性與已安裝套件

bower init

用bower安裝angular與bootstrap

bower install --save angular bootstrap

–save:會將安裝套件名稱與版本寫入bower.json,以便日後於其他機器中開發部署

4.啟動

用webstorm開啟

wstorm .

啟動

npm start

ADB無線debug,USB連線提示騷擾 go away!!!

  1. 確認電腦與手機連到同一台wifi分享器上
  2. 將手機與電腦先用USB連接起來
  3. 打開終端機(微軟就是Dos模式,Mac就叫做終端機),
    找到Android SDKadb的路徑(如果已製作adb環境變數則不用)
    Ex:cd …\android-sdk\platform-tools
  4. 輸入:adb tcpip 5555
    讓debug的port轉到5555,成功時會出現 restarting in TCP mode port: 5555
  5. 連線到手機:adb connect [手機IP](不含中括號),成功時會出現

    connected to 192.168.0.114:5555
    如果失敗的話,可以試試:adb connect [手機IP]:5555

接著就可以很開勳地用用wifidebug嘍~~~

But!!!

如果你的電腦是用要拿來debug的手機wifi基地台網路,就有可能無法取得手機IP,進而無法使用~~

傳值、傳址、傳參考呼叫

 

我們現在先假設目前有兩個變數,分別是A=5,B=10

又有一個swap(C,D)函數(即變數交換),裡面有著參數C與D

故一開始變數的情況如下:

變數 記憶體位址
A 5 0×04
B 10 0×08
C
D

以下便以BEFORE代表A,B剛傳入swap(C,D)時的狀態,以AFTER代表swap(C,D)執行完後的狀態

傳值呼叫(call by value):

函數宣告方式 函數用法
 swap(int C,int D) swap(A,B)
變數 值(Before) 記憶體位址(Before) 值(After) 記憶體位址(After)
A 5 0×04 5 0×04
B 10 0×08 10 0×08
C 5 0×16 10 0×16
D 10 0×32 5 0×32

根據上表所示,很明顯地傳值呼叫只是將A,B兩個變數的複製給C,D這兩個參數,爾後C,D如何的變化,都不會影響A,B

 

傳址呼叫(call by value of pointer 或 call by address):

函數宣告方式 函數用法
 swap(int *C,int *D) swap(&A,&B)

 

變數 值(BEFORE) 記憶體位址(BEFORE) 值(AFTER) 記憶體位址(AFTER)
A 5 0×04 10 0×04
B 10 0×08 5 0×08
C 0×04 0×16 0×04 0×16
D 0×08 0×32 0×08 0×32

 

傳址呼叫是將A,B的記憶體位址傳給C,D這兩個參數當作,就如同C,D是A,B在swap(C,D)裡面的反向傳出通道,其異動結果將會改變A,B的值,而不改變所有變數的記憶體指派情況

傳參考呼叫(call by reference):

函數宣告方式 函數用法
 swap(int &C,int &D) swap(A,B)

 

變數 值(BEFORE) 記憶體位址(BEFORE) 值(AFTER) 記憶體位址(AFTER)
A 5 0×04 10 0×08
B 10 0×08 5 0×04
C 5 0×04 10 0×08
D 10 0×08 5 0×04

傳參考呼叫是在C++以後才有的技術以C,D代理A,B的一切資料,包含值與記憶體位址。所以C,D的異動將會完全連動A,B的異動,且不需要額外分配新的記憶體給C,D

 

參考來源:mlab Blog

 

作品拾遺–你是中國古代哪位名將呢??(三)

記得當初在挑選武將的時候,整整花了一個禮拜的時間遍覽古今中外的戰例,斟酌再三後最後選出13位在各個領域最具代表性的武將,相信這樣的數量蠻免有遺珠之憾,不過當時時間有限,也只夠挑出這幾位了,望請各位大大海涵。

198907188

 

以下是本次測驗的遴選標準:

  1.  提出劃時代軍事技術者
  2. 舉世無雙的戰略或戰術實踐者
  3. 各種類型極致典範者(如項羽為猛將之最)
  4. 以寡擊眾而使戰略形勢扭轉者(如張巡)

以上四項至少要符合兩項才有可能被遴選進來。而我又在領域方面分成野戰、機動戰、山地戰、水戰、城池攻守等各種戰例參數增益考量後方選出綜合評價最為經典者。所以才沒有看到家喻戶曉的關羽或呂布之類的武將了(他們就屬於項羽+霍去病之類的了)

以下就是這13位武將的結果解說,請各位有緣的大大慢慢地回味品嘗XDD

繼續閱讀

作品拾遺–你是中國古代哪位名將呢??(二)

其實這個測驗,很多人誤以為是心理測驗,以為不管怎麼測都會出現一位名將。但其實我是往"你是否真的具備有名將素養"的方向,仿造夢幻模擬戰中主角素質養成的設問去走XD。畢竟名將沒有那麼容易當,沒有相當的千錘百鍊、因緣際會是很難名留青史的,所以我才會在一開始聲明:一失足成千古恨!!!先讓受測者有點心理準備。

敝人在設計這個測驗的時候,只有前兩問有關連性,其他均是隨機出題,不過一旦滿足了某位名將的條件,就會出現歷史性抉擇,如果抉擇正確就會出現稀世名將,抉擇錯誤就有可能會出現小兵或普通武將。只要受測者不選錯立即變成小兵,或者選中超過三次普通武將屬性,原則上都會回答十題並且出現稀世名將。

Q1.一個將軍,什麼是最需要具備的?

選項 解釋 下一題
勇武善戰 戰術進攻型將領適合在戰鋒上與士卒們並肩作戰,以激勵部隊殺敵建功 Q2
體恤部下 戰場指揮型將領在前線指揮全盤戰局,以贏得戰役為最高目的 Q3
通曉兵法 軍事戰略型將領適合任大將軍統籌全盤戰局 Q3
政治謀略 大戰略型將領多半為宰輔,常以國家總體趨勢為觀點統籌戰和事宜 Q4

這題是用來區分受測者適合戰在什麼樣的位置指揮戰爭,也決定會出那些名將。比如項羽只會出現在勇武善戰,陳慶之則不可能,所以後續就算算選中陳慶之的加權,也會因為本題的而起不了太大的作用,故不會出現陳慶之。

繼續閱讀

作品拾遺–你是中國古代哪位名將呢??(一)

時間大概在2010年左右吧,那時候的FB上面有個叫做Quiz的應用程式,可以自行設計心理測驗或一些莫名其妙的問卷,於是我就心血來潮做了這樣的一個問卷,自娛娛人。然而我萬萬沒想到的是,這個小測驗居然引來這麼多人認真地玩,甚至還寫起了攻略與網誌來研究XD

然而隨著FB政策的改變,原本的Quiz也不見了,想當然爾我的測驗也不見了。而最近要因幫忙佈署一個也要用到FB的跨平台應用程式,開始研究FB的API。卻發現這個小測驗也成了一隻APP存在於我的管理頁面裡,雖然內容還是遺失了,但是用戶統計資料卻都還很健全地保存著,於是開始了我的拾遺之旅…

 

03

雖然用戶人數大幅下降很多,但是這麼多年前的小測驗還能夠流傳到最近實在令我驚豔XD

繼續閱讀

高僧與少女的私生子

高僧與少女

鎮上有一個少女,有了身孕,父母逼問少女,孩子的父親是誰。少女被逼無奈,說孩子父親是附近廟裡的一位高僧,孩子出世後,這家人抱著孩子找到了高僧。

高僧只說了一句「 這樣子啊!」便默默地接下孩子。此後,高僧每天抱著孩子挨家挨戶討奶喝。小鎮裡炸開了鍋,說什麼的都有。高僧被人指指點點,甚至辱罵。

繼續閱讀