2014年9月23日 星期二

[Android]client 和 service交互作用透過proxy 和 stub

交互過程client<-->proxy<-->stub<-->service
stub和proxy是為了方便client/service交互而生成出來的代碼,這樣client/service的代碼就會比較乾淨,不會嵌入很多很難懂的與業務無關的代碼

reference:
http://www.devdiv.com/forum.php?mod=viewthread&tid=41482

2014年9月16日 星期二

iBeacon技術

iBeacon是由 Apple 公司開發,是個基於低功耗藍牙技術(Bluetooth Low Energy,也就是Bluetooth 4.0)的室內定位系統

2013 年年底,Apple 在全美 200 多家 Apple Store 建置 iBeacon 基地台,提供店內的無線通訊系統。當使用者拿著iOS7的手機或平版電腦進入商店時,便會收到店家傳送商品或折扣等促銷訊息。Google 在 Android 4.5 更新中新增的 「Nearby」,功能也和 iBeacon 很像,Google 將 iBeacon 視為競爭對手的動作很明顯。與 GPS 定位技術不同,iBeacon 可應用於各種不具 GPS 訊號的室內。

這是一種新的微定位技術(microlocation), 他提供了新的行銷模式
讓消費者在進到特定的區域的時候,會透過APP推播訊息到手機,讓消費者得知店家的促銷訊息及產品推薦
並可以為消費者在店內導航,他的精準度極高,誤差小於1cm


iBeacon 推播怎麼用呢?金融行銷公司 Financial Brand 分析了幾個在金融機構的應用,這些應用也很適合用在零售業,例如:
  • 歡迎訊息:消費者進到店裡就會收到個人化的歡迎訊息與店內服務簡介,例如產品類別區域與促銷活動。
  • 顧客識別當舊顧客進到店裡,店員能立刻識別顧客身分,並獲得該顧客先前的購物明細,以便提供適合顧客的銷售資訊。這個應用能提升服務品質和顧客的忠誠度。
  • 預約:對於提供預約服務的零售店,顧客可以透過 iBeacon 技術知道特定服務人員的空檔,並透過手機預約。
  • 顧客教育:在顧客等候期間傳送產品或服務的使用資訊,讓他們利用這段時間閱讀。如果是需要線上註冊的服務,也可以利用這個時候傳送連結,讓顧客填寫。
  • 問卷調查:在顧客進門或離開時,請顧客回饋意見和評價。
  • 分店資料分析:如果業者有數家分店,iBeacon 技術所蒐集到的資料可以幫助業者分析各店狀況,例如各店的費者資料、尖峰時段、消費者待在店內的時間以及交易內容。透過這些資料,業者能提供更好的店內購體驗,甚至追蹤不同通路的銷售狀況。

reference:
http://www.smartm.com.tw/Article/313835cea3
http://www.bnext.com.tw/article/view/id/32652
http://share.inside.com.tw/posts/3442


2014年6月9日 星期一

[Android]看log且有顏色區分

寫程式免不了要看一堆log來debug
而Android的log又臭又長的,實在很難找到關鍵點
所以如果可以用顏色來區分log的level,讓你一眼就看到Error類型的log
那是不是增加了debug的效率呢?!

這裡透過vim來看log,且有顏色區分,讓你一目了然!!

另一種方式在這裡,是adb logcat直接output到terminal的時候,做顏色的區別

2014年5月26日 星期一

[Travel][東京]2014自由行攻略採購整理

挑好出發日期2014年(5/9~5/13)
透過雄獅旅遊的航空自由行
訂好機(全日空)+酒(銀座首都飯店新館 Ginza Capital Annex Hotel)之後
就要來開始準備這次的行程了
如果買的東西太多有可能會超重或是多帶一件行李的話,要參考全日空的收費方式

這次的目的很明確,就是要完成我老婆的夢想,去一趟東京迪士尼
以及大採購我們家小人冬冬的嬰兒用品
迪士尼要作的功課很多
1. 了解我們進去的那天有哪些設施在維修,以及那天有沒有煙火秀(幸福滿夜空)
2. 確認當天開園和閉園的時間表,我們是5/12,8:30~22:00,有少數日子只開到18:30喔!
3. 線上購買迪士尼門票
4. 預估當天入園人數的網站


VISA信用卡可以享有的優惠店家
例如BIC CAMERA可以有95折+退稅+禮品
PREMIUM OUTLET可以有35~75折+禮品
另外還有免費一日Wi-Fi方案

[買電器]
可以上以下網站查詢價錢 ()內的是價格.COM顯示的名字
BIC CAMERA (ビックカメラ.com)
Amazon JP (Amazon.co.jp)
Yodobashi (ヨドバシ.com)
BICQLO
PC Bomber (PCボンバー)

可以透過價格.COM來比價
用信用卡購買後送到飯店或機場

[水波爐]
可以搜尋"過熱水蒸気オーブンレンジ",搭配日本日立官網水波爐型號表
日立日本原裝烘烤微波爐 MRO-MBK3000T


[熱水瓶]
可以搜尋"VE電気まほうびん",搭配日本象印官網的熱水瓶型號表
TIGER PIA-A300(3.0L)

[電子鍋]
如果要象印的話,可以搜尋"極め炊き",搭配日本象印官網的電子鍋型號表
象印電子鍋 NP-NY18-XJ, 從日本買回來的電器,最好接個降壓器,這篇推薦明昌變壓器
TOSHIBA壓力IH電子鍋RC-10VXG強力推薦


[咖啡機]
Nespresso U型 C50, 在ヨドバシ.com賣日幣10980

NesCafe MD9742FS-RM紅色 BIC Camera賣日幣11360
雀巢的日文: ネスカフェ
咖啡壺的日文: コーヒーメーカー


[冰箱]
HITACHI 2014年新款機型 型號為R-SF9800D (日本型號R-M6700D)
670L 容量的六門機種,去年首次出現琉璃鏡面設計

[吹風機]
eh sw51
Panasonic NA95


另外2014年10月1日開始, 日本會降低免稅門檻(從一萬日幣降成五千日幣),
並擴大免稅的種類,食品,藥妝等「全品目」都加入免稅.可以看一下這邊
http://www.mypacetravel.com/?p=12504


[Android] delay sleep

在Android JAVA code裡面,如果你要使用sleep
請先 import java.lane.*;
然後使用 Thread.sleep();

但是你不能單單呼叫
Thread.sleep();
你必須寫成如下
try {
Thread.sleep(500);
} catch (InterruptedException e) {
Log.d("error");
}

2014年4月21日 星期一

[Linux][git] 如何知道一個檔案裡被誰修改過

git blame frameworks/base/core/res/res/values/strings.xml
它就會秀出人名,時間,改過的地方...

2014年4月18日 星期五

[Linux][git] 在repo sync遇到git相關問題

如果出現如下文字
If no other git process is currently running, this probably means
a git process crashed in this repository earlier. Make sure no other
git process is running and remove the file manually to continue.
找到.git/index.lock刪除即可


2014年4月17日 星期四

[Android] 遇到 remount failed: Operation not permitted 如何處理

如果需要把 .so檔案 push到 /system/lib 底下
在輸入adb remount的時候出現Operation not permitted
請做以下步驟
$ adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system
# chmod 777 /system/lib
# exit
$ exit
$ adb remount 應該就可以了

2014年4月10日 星期四

[Android]在res資料夾下各國語言對照



語言 國家 Country 代碼 folder
阿拉伯文 埃及 Egypt EG values-ar-rEG
阿拉伯文 以色列 Israel IL values-ar-rIL
保加利亞文 保加利亞 Bulgaria BG values-bg-rBG
加泰羅尼亞文 加泰隆尼亞
西班牙的自治區之一

ES values-ca-rES
捷克文 捷克 Czech CZ values-cs-rCZ
丹麥文 丹麥 Denmark DK values-da-rDK
德文 奧地利 Austria AT values-de-rAT
德文 瑞士 Switzerland CH values-de-rCH
德文 德國 Germany DE values-de-rDE
德文 列支敦斯登侯國 Principality of Liechtenstein LI values-de-rLI
希臘文 希臘 Greece GR values-el-rGR
英文 澳大利亞 Australia AU values-en-rAU
英文 加拿大 Canada CA values-en-rCA
英文 英國 United Kingdom of Great Britain
And Northern Ireland
UK values-en-rGB
英文 愛爾蘭 Ireland IE values-en-rIE
英文 印度 India IN values-en-rIN
英文 新西蘭/紐西蘭 New Zealand NZ values-en-rNZ
英文 新加坡 Singapore SG values-en-rSG
英文 美國 United States of America US values-en-rUS
英文 南非 South Africa ZA values-en-rZA
西班牙文 西班牙 Spain ES values-es-rES
西班牙文 美國 United States of America US values-es-rUS
芬蘭文 芬蘭 Finland FI values-fi-rFI
法文 比利時 Belgium BE values-fr-rBE
法文 加拿大 Canada CA values-fr-rCA
法文 瑞士 Switzerland CH values-fr-rCH
法文 法國 France FR values-fr-rFR
印地文 印度 India IN values-hi-rIN
克羅里亞文 克羅埃西亞 Croatia HR values-hr-rHR
匈牙利文 匈牙利 Hungary HU values-hu-rHU
印度尼西亞文 印尼 Indonesia ID values-in-rID
義大利文 瑞士 Switzerland CH values-it-rCH
義大利文 義大利 Italy IT values-it-rIT
希伯來文 以色列 Israel IL values-iw-rIL
日文 日本 Japan JP values-ja-rJP
韓文 韓國 Korea KR values-ko-rKR
立陶宛文 立陶宛 Republic of Lithuania LT values-lt-rLT
拉脫維亞文 拉脫維亞 Latvia LV values-lv-rLV
挪威博克馬爾文 挪威 Norway NO values-nb-rNO
荷蘭文 比利時 Belgium BE values-nl-BE
荷蘭文 荷蘭 Netherlands NL values-nl-rNL
波蘭文 波蘭 Poland PL values-pl-rPL
葡萄牙文 巴西 Brazil BR values-pt-rBR
葡萄牙文 葡萄牙 Portugal PT values-pt-rPT
羅馬尼亞文 羅馬尼亞 Romania RO values-ro-rRO
俄文 俄羅斯 Russian Federation RU values-ru-rRU
斯洛伐克文 斯洛伐克 Slovakia SK values-sk-rSK
斯洛維尼亞文 斯洛維尼亞 Slovenia SI values-sl-rSI
塞爾維亞文 塞爾維亞 Republic of Serbia RS values-sr-rRS
瑞典文 瑞典 Sweden SE values-sv-rSE
泰文 泰國 Thailand TH values-th-rTH
塔加洛語 菲律賓 Philippines PH values-tl-rPH
土耳其文 土耳其 Turkey TR values-tr-rTR
烏克蘭文 烏克蘭 Ukraine UA values-uk-rUA
越南文 越南 Vietnam VN values-vi-rVN
中文 中國 China CN values-zh-rCN
中文 香港 Hong Kong HK values-zh-rHK
中文 台灣 Taiwan TW values-zh-rTW

2014年3月19日 星期三

[Android] 利用Wi-Fi下adb command

1 先接上連上 wifi,接上USB,下adb shell netcfg看手機ip
2 adb tcpip 5555
3 拔掉USB
4 adb connect 手機ip:5555
5 adb shell 就能使用


如果要斷線的話,可以下
adb disconnect 手機ip:5555


要再透過USB連上adb,下
adb usb

2014年1月28日 星期二

[C/C++]如何在網頁上顯示程式碼及在Ubuntu上編譯C語言

在google的blog左側邊欄找到 "範本" 點進去
找到 "編輯HTML" 點進去
然後會看到一堆HTML的code
找到</head>
在</head>之前插入以下的程式碼

<!-- begin syntax hightlight -->
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeEmacs.css' rel='stylesheet' type='text/css'/>

<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDelphi.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushGroovy.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushScala.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushVb.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js"></script>
<script src='http://www.undermyhat.org/blog/wp-content/uploads/2009/09/shBrushMatlabSimple.js' type='text/javascript'></script>

<script language='javascript'>
    SyntaxHighlighter.config.bloggerMode = false;
    SyntaxHighlighter.config.stripBrs = true;
    SyntaxHighlighter.defaults['wrap-lines'] = false;
    SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/current/scripts/clipboard.swf';
    SyntaxHighlighter.all();
</script>
<!-- end syntax hightlight -->


改好以後儲存
之後再利用這個網頁
http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx
把你想要的程式碼透過這個網頁去encode
再貼回自己的blog
再切到HTML編輯模式
把<pre class="brush:c">放在最前面
把<\pre>放在最後面
就OK了


如果想要測試自己的C code寫的對不對,可以利用Ubuntu去編譯
只要有安裝gcc
在指令列輸入如下
gcc -o test test.c
就可以產生test執行檔去看輸出結果了

reference:
http://blog.lupopi.com/2013/02/blogger-source-code-syntax-highlight.html