Mac OSX 的螢幕截圖快速鍵

這件事知道很久了,但好像忘了筆記在blog,補記一下。
在 Windows 環境下有個我愛用的鍵:Print Screen。按完之後打開 photoshop 開新檔貼上再處理,真是便利。(當然 3D 遊戲畫面例外,Direct X 的關係)Mac上多了 command 鍵卻少了這顆鍵,一開始都笨笨的打開螢幕截取軟體弄的手忙腳亂,有一天忽然覺得這是不可能的吧,蘋果作業系統怎麼能容許這種事情呢?一孤狗之下,果然是有 shortcut 可以用,還有不同組合對應到截視窗或全螢幕或特定範圍,把圖放在桌面還是放到剪貼簿…。詳細資料在此:

http://guides.macrumors.com/Taking_Screenshots_in_Mac_OS_X

基本上 Command-Control-Shift-3 就等同於 Print Screen 的效果,不過有這麼多種選擇之後,按照接下來的處理方式不同選用不同熱鍵比較明智。

【歌詞】コールドフィンガーガール

レベルE OP。曲風其實不是我的菜,但歌詞很有趣,動畫更是超面白い,富奸確實是有兩把刷子 ( ´_ゝ`)

歌 栗山千明
詞曲 浅井健一

街の入り口にはお牛のスカル飾り
法律は一番強い奴が決めりゃいいさ
だけどやさしい気持ちがあふれていなくちゃ
きっとみんなが反乱おこしてすぐに消える

ショッキングな ブラッディピクチュアー
吐き気が してくる
あたまを かかえて 地下鉄 乗り込む
コールドフィンガーガール コールドフィンガーガール

近未来のポリス駐禁切ってるぼくのロメオの
サーフライダドライバ回して時間軸ずれ
レベルファイブの外出禁止令が出たら
峠あたりでキャンプしてるからおいでよ

正しい生き方 正しい死に方って
いったい誰が知っているの いったい何が教えてくれるの
コールドフィンガーガール コールドフィンガーガール
コールドフィンガーガール コールドフィンガーガール Sit Down

She is so Rainy Heart. Madness Traffic Baby Blues 壁ぶち破れ
Love You

ショッキングな ブラッディピクチュアー
吐き気が してくる
あたまを かかえて 地下鉄 乗り込む
正しい生き方 正しい死に方って
いったい誰が知っているの いったい何が教えてくれるの
コールドフィンガーガール コールドフィンガーガール
コールドフィンガーガール コールドフィンガーガール

[iOS]Tab Bar + Navigation Bar + Table View

iOS 開發的初學者如我,新增 Xcode Project 的時候,看到預設模板中有 Tab Bar Application,也有 Navigation-based Application,心中一定很納悶。明明 iPhone 上面隨處可見我家門前有小河後面有山坡….呃,是下面有Tab,上面有導覽列,中間是表格這樣的設計,竟然沒有模板?!好吧,那自己拉可以吧!運氣不好的話,就會發現某些狀況下沒辦法拉出你想要的畫面。其實重點在於,Tab Bar 下面可以包含 Navigation Controller,但反之不然。也就是說,Tab Bar 比較大尾。所以當你看到三種元件出現的時候其實是一個大的 Tab Bar, 包含了許多頁面,其中一個頁面裡頭 有一個 Navigation Controller + Table View。(Navigation Controller 不一定要跟 Table View 在一起就是了)

下面是一個解說的相當清楚的影片,不過請不要第一天玩 Xcode 就看,至少要會基本的 hello world之類的才看得懂。

不想看影片的話,也有圖文並茂的教學,但細節比較講的沒那麼清楚,請自行服用。
How to embed a navigation controller inside a tab bar controller

[筆記]Android Debug certificate expired

今天 Android Project 忽然跳這訊息給我… 雖然很簡單易懂,但問題是 Debug 憑證又不是我手動塞的,去哪更新阿XD
答案當然是 砍掉 Debug 憑證讓 eclipse 自己再產生一份新的,重點是檔案路徑:
Windows 7: C:\Users\{username}\.android\debug.keystore
Mac OS and Unix家族: /home/{username}/.android/debug.keystore

[iOS筆記]The Application Life Cycle

Apple Dev 講 iOS app 生命週期的文章在此:

The Core Application Design

iOS 的 App Life Cycle 比 Android Activity Life Cycle 簡單一點。

iOS 4 之前不支援背景多工時超單純,application delegate function被呼叫的順序如下:

1. 點選 app icon 啓動 app時
application:didFinishLaunchingWithOptions:
applicationDidBecomeActive:

2. 按下 Home 鍵返回桌面時
applicationWillTerminate:

真是簡單到不行了。
iOS 4 支援背景之後,按下 Home 鍵並不會結束 app 而是放入背景,接著進入 suspended 狀態,先不論多工 app 如 voip 或 media player 之類的,ㄧ般的 app delegate function 的呼叫情形大致上是:

1.  點選 icon 啓動 app
application:didFinishLaunchingWithOptions:
applicationDidBecomeActive:

2. 按下 Home 鍵返回桌面時
applicationWillResignActive:
applicationDidEnterBackgroud:

3. 再由桌面按 icon 返回 app
applicationWillEnterForegroud:
applicationDidBecomeActive:

基本上如此循環。iOS 4 原則上不會呼叫 applicationWillTerminate,只有當 app 跑在背景(非 suspended) 又忽然被中止的時候才會 call。點兩下 Home 鍵把 suspended apps 清除的時候並不會呼叫這個 function。

[iOS筆記]There is no SDK error

當你從路邊撿到一包 iPhone Xcode project,比如 Apple Dev 網站的 sample code。馬上用Xcode打開後按下Build and Run 之後卻發現 Build Failed,錯誤訊息是 error: There is no SDK with the name or path ‘iphoneos3.0′ (或 iphoneos2.0或其他)。此時不必驚慌,請依以下步驟服用即可:
1. Xcode 主視窗左上角的 Groups & Files 處,在你的專案名稱上按右鍵(或相等指令)叫出選單,選 Get Info。
2. 上面的四個分頁請選到第二項 Build。
3. 如果沒意外由上數來第三項應該是 Base SDK,你會看到它的 value 現在是 iOS Device 3.0 (missing) 之類的。請改為你要使用的,例如 iOS Simulator 4.1。
4. 容易疏忽的地方:此時再次按 Build and Run 有可能出現新的錯誤,但有時不會有錯誤。不論如何,請檢查 Xcode 主視窗的 Toolbar 最左邊的 Overview,設定值多半是 Device,請改為 Simulator。(除非你真的是連在 Device 上開發沒錯,都已經接上 Device 在除錯了,應該是不會困在這個基本初階問題上吧…)

[2011. 3. 2 資訊補充]
如果上面的步驟試過了仍然還是 SDK Missing, 例如官網的 PhotoPicker 這包 Sample code, 請繼續下面步驟:
5. 選單的 Project 中選 Edit Active Target “YourTarget” (如 PhotoPicker), 可以看到很類似上面步驟中出現的畫面, 仍然去同樣的位置找 Base SDK, value應該是不對的,請改成你想要的。
目前 Xcode 4.2版已經多了一個選擇是 Latest iOS (Currently set to iOS xxx),沒猜錯的話,改成Latest之後這些 Project都一勞永逸了。

[筆記]讓Android上的browser用你寫的app開啟連結

真是落落長的標題,不過因為沒有要仔細討論 intent filter 還是不要用什麼『極祕!Android的 intent filter萬萬強』這類聳動的 title 比較好,免得點進來一看大失所望。
當網站上有 market://xxx.ooo 這樣的連結出現,用 Android 瀏覽器點下去,就會自動打開 market下載應用程式,相當便利。如果連結是 tel:012345678 就會叫出撥號畫面,而且號碼已經帶好了,Google Map 則是 Geo:經緯度 這種形式。
我們自己開發的 Android 程式,要怎麼支援這種功能?比如說我的網站上提供這樣的連結

tarutaru://dance

希望點下去就會帶出我們的app,出現塔魯跳舞動畫..

方法:
1. 請打開 AndroidManifest.xml
2. 找到塔魯跳舞的Activity
3. 請參考下面的寫法









這樣不管你是 tarutaru:dance 還是 tarutaru://dance 還是 tarutaru:///dance 都會叫出目標activity
如果 data 這行寫成:


這樣就只有 tarutaru://mysite/xxx 才會對應到你的跳舞Activity. 也可以利用這樣來把連結導到不同Activity。
比方說 tarutaru://dance/xxx, tarutaru://panic/ooo 就可以分別對應到不同兩個Activities。
其他更多細節就請自行參考官方文件啦 ヽ( ̄∀ ̄)ノ

Messenger for mac 全名單Block

前陣子出國玩了幾天,回來後不記得是不是因為做了Mac OS 更新,總之 msn for mac 登入後就跳出某某人想加你為好友之類的,接著發現整個名單都是Block的狀態,非常的嚇人。不管接受與否(我真的有一度一個一個耐心按完接受),依然是全員被自己Block的狀態。Google了一下並不能說是很輕鬆就找到答案,但到底還是找到了,看起來是userlist檔案權限出了問題。解決方法是刪除以下檔案:

/Users/{your_username}/library/Preferences/Microsoft/Microsoft Messenger User Cache.plist

真是嚇死我,還以為出個國回來就要沒朋友了…

【歌詞】手紙 〜拝啓 十五の君へ〜

看到某Sエルフ的FB想到這首歌詞還沒收,順便附上中日對照Youtube影片

http://www.youtube.com/watch?v=B9Q6PmlXj0Y

アンジェラ・アキが大好きだよ (´∀`)

手紙 〜拝啓 十五の君へ〜
アンジェラ・アキ

拝啓 この手紙読んでいるあなたは どこで何をしているのだろう

十五の僕には誰にも話せない 悩みの種があるのです

未来の自分に宛てて書く手紙なら
きっと素直に打ち明けられるだろう

今 負けそうで 泣きそうで 消えてしまいそうな僕は
誰の言葉を信じ歩けばいいの?
ひとつしかないこの胸が何度もばらばらに割れて
苦しい中で今を生きている
今を生きている

拝啓 ありがとう 十五のあなたに伝えたい事があるのです

自分とは何でどこへ向かうべきか 問い続ければ見えてくる

荒れた青春の海は厳しいけれど
明日の岸辺へと 夢の舟よ進め

今 負けないで 泣かないで 消えてしまいそうな時は
自分の声を信じ歩けばいいの
大人の僕も傷ついて眠れない夜はあるけど
苦くて甘い今を生きている

人生の全てに意味があるから 恐れずにあなたの夢を育てて
Keep on believing

負けそうで 泣きそうで 消えてしまいそうな僕は
誰の言葉を信じ歩けばいいの?
ああ 負けないで 泣かないで 消えてしまいそうな時は
自分の声を信じ歩けばいいの
いつの時代も悲しみを避けては通れないけれど
笑顔を見せて 今を生きていこう
今を生きていこう

拝啓 この手紙読んでいるあなたが
幸せな事を願います