June 25, 2015

Gradle command line


From here

gradlew help
gradlew tasks
 

Convert newline format on Mac

perl -pe 's/\r\n|\n|\r/\r\n/g' inputfile > outputfile  # Convert to DOS
perl -pe 's/\r\n|\n|\r/\n/g'   inputfile > outputfile  # Convert to UNIX
From this post

June 10, 2015

Unity building problem for Windows Phone

在使用 Unity 輸出 Windows Phone 專案的時候遇到幾個類似於下面的錯誤
Currently there will be errors like the following when building Windows Phone project in Unity.

method `System.Int32 System.String::Compare(System.String,System.String,System.Boolean)` doesn't exist in target framework.
因為 Windows Phone 提供的 API 並不完整,遇到這種錯誤的時候解法有幾個
The reason is that some of the .NET API are not provided by Windows Phone. The solutions for the error are:
  1. 改寫程式,拿掉那些沒有提供的 API,改用其他有提供的 API 達到一樣的功能
    Rewrite the code to remove those un-supported API and use other supported API instead.
  2. 一樣改寫程式,實作那些沒有提供的 API ,編譯出 DLL 檔放進 Unity Project
    Implement those un-supported API, compile as DLL and put it in the Unity Project. Use the DLL functions instead.
目前遇到兩個有問題的是 String.Compare(String, String, Boolean)List.ConvertAll,都使用方法一解決。Windows Phone API 提供了String.Compare(String, String, StringComparison)可以作為替代方案,List.ConvertAll 我就直接用 List.ForEach 一個一個處理了。

I chose Solution one for the un-supported API String.Compare(String, String, Boolean) and List.ConvertAll. Windows Phone API provided String.Compare(String, String, StringComparison) which can be used to replace String.Compare(String, String, Boolean), as for List.ConvertAll I just converted each item of the list with List.ForEach.

當然直接把有用到的部份拿掉也是一種 workaround。
Of course you can just remove the un-supported code, if it's not necessary, as a workaround.


June 04, 2015

新加坡旅遊筆記

網路

  • 可以先在台灣買Singtel或Starhub的預付卡
  • 樟宜機場也有賣,之前的價格是 7 天 1G 流量 10 SGD,用完以後可以再買
交通
  • 可以先在台灣買EZ-LINK
  • 在新加坡的話要去櫃台買,沒有自動賣卡片的機器,卡片一張12 SGD,7 SGD 製卡費
  • 地鐵跟公車都可以用,公車的話似乎都是上車前門刷,下車後門刷
  • 在地鐵加值最少要加值 10 SGD,少於 3 SGD 不能進站
其他
  • 最好去程就準備好回程機票的資料,可能會被詢問
  • 台灣有換新幣的銀行很少,台灣銀行的線上換匯再去機場還算方便

Fail to mount Guest Additions in VirtualBox

Just met this problem today and found solution here

sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11

September 28, 2014

2014 秋 日本東京 流水帳

* 相簿在此

9/16
台北-成田機場-千葉-千葉港
因為颱風一堆非香港澳門的飛機延誤取消,差點因為自己耍笨沒搭到飛機
在成田機場地下一樓想買skyliner的票,對方說如果只買回程要到一樓買
回一樓櫃台順利的買到兩張

9/17
整天都待在東橫INN千葉港站前大廳工作
這邊只有車站有一家超市,一家藥妝店,一家麵包店跟一家蕎麥麵店而已 XD

9/18
Tokyo Game Show第一日
第一次用休足時間,好冰 XD

9/19
Tokyo Game Show第二日

9/20
Tokyo Game Show第三日, 公開日第一日
人真是多到恐怖

9/21
逛海濱幕張的outlet,烏龍麵午餐
到千葉港公園跑步,這公園好多貓啊,可惜沒帶相機

9/22
千葉港-千葉-淺草橋
淺草橋站沒電梯一路扛行李爬樓梯好累
與RM到蛋包飯店一起午餐,參觀東京車站跟附近的地標
逛新宿運動用品店,晚餐在新宿吃燒肉
參觀日本橋—日本道路里程計數的起點

9/23
東橫INN淺草橋東口-淺草寺-晴空塔
淺草寺到晴空塔路上經過河堤公園,這邊停著的腳踏車都是前後各一個小孩座椅
晴空塔迴轉壽司午餐,cheese garden 的起士蛋糕好好吃
後來才知道沒開封可以常溫保存,有點後悔沒買
買了Qu'il fait bon的兩塊水果派回飯店
晚上逛秋葉原,回程在飯店附近的咖哩店晚餐

9/24
秋葉原-新宿-河口湖
還好東橫INN有接駁車到秋葉原站,不然要在淺草橋再扛一次行李
搭高速巴士到河口湖後去Toyota租車,午餐吃車站前的ほんとう不動
先把行李箱放到mizuno飯店,因為毫無規劃,去路上經過的天上山公園
回飯店checkin發現行李已經被放進房間了,日式房間好大啊
過了一會有人來鋪床,我本來以為睡榻榻米很硬,鋪床完還蠻好睡的

9/25
西湖野鳥之森-樹海步道-風穴-冰穴-西湖いやしの里根場
西湖非常的美,幾乎沒有開發,放眼望去就是森林跟湖水
步道是在河口湖車站拿的資料介紹的
一直到走完回飯店查資料才發現是知名的樹海
撇去名氣不談,步道算是好走,老少咸宜的程度
風穴跟冰穴都好冷啊,往下走了一階樓梯馬上感覺到溫度下降是很特殊的體驗
本來是為了走步道用的羽絨衣在這裡發揮功效
回程選了以為比較快的路,結果一點都沒有比較快 囧rz
導致到いやしの里根場已經四點了,只剩下一個小時可以逛
是個很有意思的地方,運氣不錯的在日落前看到了赤富士
晚餐預定了飯店的晚餐,一個人吃涮涮鍋,一個人吃壽喜燒 XD
回房間發現熱水瓶的水被裝滿了,這就是日式服務嗎~

9/26
山中湖-忍野八海-北口本宮富士淺間神社
今天吃了飯店的日式早餐才出門
短短的早餐時間回房間時鋪床就被收起來了,服務人員都是忍者吧!
一樣因為車站的景點介紹資料到了山中湖搭KABA,入水的瞬間好刺激啊 XD
買了飼料在湖邊餵天鵝,這裡的魚搶飼料搶的好凶,鴨子只能吃天鵝吃剩的
午餐吃完拉麵跟蛋糕,開車環湖一圈以後就往忍野八海前進
忍野八海是八個地下水湧泉,不知道是不是不要門票的緣故,很多團客
有強國大媽也有日本大媽,大聲起來不相上下
在找八海的路上看到很多日式大房子,頗有豪宅氣勢
淺間神社似乎有非常多分社,在 GPS 只打了淺間神社結果就錯了
到了正確的神社才發現就是一早出發的時候經過的地方
晚餐看飯店附的地圖選了一家當地牛排店,醬料很受好評

9/27
河口湖車站-新宿-上野-成田機場
要離開的時候富士山終於出現了
到了上野先到京城上野站劃晚上skyliner的位置
並且把行李箱塞進站裡的置物櫃
午餐一蘭,我在京都吃了兩次一蘭都沒排隊,在上野排了半小時
逛阿美橫,前兩天都睡的不多,到這時候有點沒力了
就到上野公園裡的pizza店休息,說是pizza店,下午時段只賣香檳跟酒而已
搭上skyliner到機場,晚餐吃機場的壽司,普普通通
接近兩週的日本之行就這樣結束啦

September 02, 2014

ssh key fingerprint

ssh-keygen -lf public_key_file

August 28, 2014

mongo 修改 expire TTL

不能直接用 ensureIndex 修改,要用 collMod,參考文件

範例

  • db.runCommand({collMod: 'CollectionName', index:{keyPattern: {expireKey:1}, expireAfterSeconds:expireTime(seconds)}})

一些 ssh 的設定


參考這篇,有很多把 key 的話,可以設定 .ssh/config 如下

Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github/id_rsa
Host bitbucket.org
        User git
        Hostname bitbucket.org
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/bitbucket/id_rsa
使用 ssh-agent 可以在 .bashrc 加入以下設定
# ssh_agent
function check_ssh_agent {
    if [ ! -e "$SSH_AUTH_SOCK" ]; then
        eval `ssh-agent -s`
        ssh-add
    fi
}

check_ssh_agent;

如果有多把 key 而且在不同目錄就要在 ssh-add 後面指定要加入哪些 key

July 29, 2014

[git] 在 master 改了東西又下了 git pull 結果產生 conflict

很常遇到不太熟悉 git 的人發生這個問題,寫篇文記錄一下

正確解法:不要在 master 下改東西 (重複三遍)

以下的做法目的有兩個

  1. 保護之前在 master 的工作內容安全
  2. 讓 master 恢復正常狀態
在 master branch
  • git add .
  • git commit
  • git branch -b helpme
到此為止所有的東西都在 helpme 這個 branch 了
  • git checkout master
  • git reset --hard origin/master
這個時候 master 就恢復到正常運作狀態

至於原本的工作內容,我個人的習慣是使用 rebase
  • git checkout helpme
  • git rebase master
修完 conflict 再 merge 回 master