[PHP] 從 Country Code 判斷 Timezone 以及計算 GMT 時差

原本正在考慮要不要自己刻,研究一下還是有一些接近內建方式查詢: <?php foreach( array( 'US', 'CN', 'GB', 'DE', 'NL', 'FR', 'ES', 'IT', 'TR', 'RU', 'TW', 'HK', 'BR', 'KR', 'AE', 'TH',…

August 8, 2014 · Yuan-Yi Chang

iOS 開發筆記 - Timezone / NSTimeZone 使用方式

處理 iOS App Push Notification 時,面對著 Global User 時,希望可以依照時區來進行,所以就需要取得使用者現況時區資訊。 NSLog( @"\nlocalTimeZone = [%@]\nDisplay = [%@]\nGMT = [%d] hours", [NS…

August 8, 2014 · Yuan-Yi Chang

iOS 開發筆記 - Warning: Attempt to present YourViewController on ViewController whose view is not in the window hierarchy!

有點久沒有純手工寫 UI 互動類的 Orz 測試時不知為何在 viewDidLoad 彈跳新的 YourViewController 時,會出現這個 Warning 並且沒有任何結果。 查詢了一下,發現要在 viewDidAppear 呼叫就能避免現象,有人說是在 viewDidLoad 時沒有 W…

August 4, 2014 · Yuan-Yi Chang

iOS 開發筆記 - Admob SDK: <Google> Must set the rootViewController property of GADBannerView before calling loadRequest

又有一陣子沒把玩 Admob 了 XD 每次把玩的方式不同,這次看到錯誤訊息: <Google> Must set the rootViewController property of GADBannerView before calling loadRequest: 以及: didFailToRe…

July 27, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 使用 CocoaPods 與 Google Admob iOS SDK

繼續用 CocoaPods 練功,順手弄一下 Google Mobile Admob iOS SDK 6.10.0 版( changyy/GoogleMobileAdsSdkiOS.git ),有需要可以從這邊使用: $ vim Podfile pod 'GoogleMobileAdsSdkiOS'…

July 26, 2014 · Yuan-Yi Chang

[SQL] 依據條件取出指定欄位 SELECT IF/ELSE, CASE WHEN/ELSE 用法 @ MySQL 5.6

假設有一張 Table 有兩個欄位: mysql> SELECT * FROM mtable; +----+----+ | f1 | f2 | +----+----+ | 1 | 2 | | 4 | 3 | | 5 | 6 | +----+----+ 想要撈出 f1 跟 f2 之中,數值最大者: m…

July 25, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 使用 GCDAsyncSocket / AsyncSocket 之處理 Partial Data 的用法

原本想寫寫 BSD Socket 的,再搭配 dispatch_async 其實也能運作的很好,但讓我想起去年底面試一間新創時,被問到有沒有用過 GCDAsyncSocket 的心得,看來用用已經常見的 framework / library 已是一種流行的或組織文化吧?至少接手的人可以有一樣的思維…

July 23, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 使用 UITapGestureRecognizer / UISwipeGestureRecognizer 偵測 UIView Click/Tap/Swipe Event (手指點擊、滑動事件)

沒把玩過,趁颱風天筆記一下 :P One Click (Single Tap): - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tapGestureRecognizer; tapGestureRecognizer…

July 23, 2014 · Yuan-Yi Chang

[CPP] Incremental Test Case for C++ Usage via Google Test @ Ubuntu 14.04

既然做了 Unit Test 了,就希望 Test Case 可以不斷地累積下來。昨晚跟總監級的高手閒聊工作瑣事,以 Python 跟 MongoDB 的互動為例,其實 PyMono 很多操作都還是撰寫 Javascript ,只是從 Python 發動罷了,這時候最佳的設計是讓 Javascrip…

July 22, 2014 · Yuan-Yi Chang

[CPP] Unit Test for C++ Usage via Google Test @ Ubuntu 14.04

跟友人閒聊把玩 CPP 的心得,就被推坑到 Google test 啦: Google C++ Testing Framework 看一下簡介就...準備跳槽了 XD Who Is Using Google Test? In addition to many internal projects at…

July 21, 2014 · Yuan-Yi Chang

[CPP] Unit Test for C++ Usage via CppUnit @ Ubuntu 14.04

隨著時間越來越少後,不知不覺更在意"成果"是否能夠年年累積。想了一會兒後,最佳的方式就是引進軟工管理,除了最基本的版本控制外,幫自己把玩的小玩意 open source 及增加 reuse 的機會也很重要,維護方面則是從簡易人眼的測試改成更制式的 unit test 架構,最好能夠定時批次測試等。只…

July 19, 2014 · Yuan-Yi Chang

[SQL] 透過 INNER JOIN 更新 Table 新增的欄位數值 @ MySQL 5.6

對於一些當作收集 log 用途的 table tb_log ,隨著時間增加後,通常會再整理另一個 tb_status 的 table,快速查詢各個狀態,設計上就會定期批次從 tb_log 取出資料,存進 tb_status 中。 假設 tb_log 有 5 個欄位,一開始只覺得需要 2 個欄位的資訊…

July 17, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 使用 CocoaPods 管理第三方函式庫

記得前幾年都用 git 跟 git submodule 管理,一切都是手動處理,包含 Xcode 添加 include path 等,現在則是想要把一些把玩的東西 open 出來,就想到用 CocoaPods 來管理,畢竟不是每個人都那麼勤勞的 XD 在此以 CocoaAsyncSocket 和 f…

July 15, 2014 · Yuan-Yi Chang

[Javascript] 使用 AJAX/jQuery 與 JSONP/Callback 處理跨 domain 問題

很久沒寫 ajax 了 :P 由於機器整合不易?所以 API 就是要跨網域多台機器要互動。至於原理可以看看 wiki JSONP 簡介,在此筆記一下 Server Site 跟 Client Site 的用法 Server Site API 支援 JSONP 使用模式: 假設 API 輸出結果為 {…

July 11, 2014 · Yuan-Yi Chang

[Linux] 使用 PCRE 進行字串取代 (C++/CPP/Regular Express/Replace) @ Ubuntu 14.04

安裝: $ sudo apt-get install libpcre3-dev 程式碼: #include <iostream> #include <string> #include <pcrecpp.h> int main() { std::string s = "Hello 123-234-45…

July 7, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 列出系統內建 monospaced font (等寬字型/等寬字體)

列出系統所有字型: for (int i=0 ; i< [[UIFont familyNames] count]; ++i) { NSLog(@"Font Family: %@", [UIFont familyNames][i]); for (int j=0; j<[[UIFont fontName…

July 6, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 計算一個字的寬度

程式碼: NSString *words = @"Hello World! 您好!"; for( int i=0 ; i<[words length] ; ++i ) { unichar word = [words characterAtIndex:i]; CGSize wordSize = [[N…

July 6, 2014 · Yuan-Yi Chang

[OSX] 移除 Avira Antivir 方式 @ Mac 10.9.3

在 Mac 用小紅傘一陣子了,但小紅傘一旦有新的軟體時,常常定時顯示出來,好不厭煩 XD 為了更新軟體,以前只要透過拖拉方式把小紅傘拖進垃圾桶即可移除,再裝新版即可,最近卻發現拖進垃圾桶沒反應,找了一下正確的反安裝流程: 從 Finder -> Go -> Utilities -> Avira-Un…

July 5, 2014 · Yuan-Yi Chang

iOS 開發筆記 - 使用 C++ Source Code

最近把玩練習時,想說用一下 CPP 的,寫完後發現要整進 Xcode 卻發現 compile error,例如在 AppDelete.m 中: #include "Test.h" - (BOOL)application:(UIApplication *)application didFinishLa…

July 3, 2014 · Yuan-Yi Chang

[Linux] 使用 wget 測試 Remote Resource Availability @ Ubuntu 14.04

wget 有 --spider 模式,挺方便的 :P $ wget --spider http://www.google.com/favicon.ico Spider mode enabled. Check if remote file exists. Resolving www.google.co…

July 3, 2014 · Yuan-Yi Chang