Xcode4を Command+Q で終了させない方法

僕はCommand+tabで、アプリの切替を行っている。
たまーに、[tab]と[Q]を押し間違うときがある。

特に、Xcodeでけっこうな数のウィンドウをひらいてて、Command+Qを押してしまったときなんて最悪。
ウィンドウがすべて閉じてしまうので、またいちからすべて開きなおすのがかなり面倒だ。

そこで、Command+QでXcodeを終了させないようにした。
手順は以下。

1.「システム環境設定」の「キーボード」をひらく。

2.キーボードショートカットタブをクリック。

3.ウィンドウ中央やや下の「+」をクリック。

4.アプリケーションでXcodeを選択し、メニュータイトル項目に「Quit Xcode」と入力、
キーボートショートカット項目にて、[⌘Q]以外を入力する。
(僕は[option][command][Q]で登録した。下記画像)

5.追加ボタンをクリックして登録完了。

デフォルトで、「[アプリ名] を終了」するショートカットを command+Qで登録されているはずなので、それを上書きするイメージ。

ただし、Xcode4に限っては、英語なので「Xcode を終了」ではなく、「Quit Xcode」になる。

ちなみに僕はXcode以外にもGoogle Chromeも同じような設定をしている。

<参考>
Redirecting...

iTunes Connectの口座をcitibankに変更した

僕はiPhoneアプリの収入の口座を日本の赤い銀行にしているのだけど、それだと、月4000円の手数料がとられる。
きいたところ、citi bankだとそんなぼったくり手数料をとられないということなので、この際にcitiの口座を開設した。

その備忘録。

1.http://www.citibank.co.jp/ja/openaccount/index.htmlでイーセビングをネットで申し込む。
自分の免許証を写真にとって送る。
(便利!)

2.数日後、早速イーセービングとかかれたキャッシュカードが届く。
この際電話かかってきて、口座開設の目的を聞かれた。「海外送金受領」とだけ伝える。
そしたら、イーセービングの口座だと円で入金(手数料とられる)されてしまうので、別途「なんちゃら口座」(※)でのお申し込みをお願いされた。
※マルチマネー円口座だと思う

3.キャッシュカードと同封されていたサインカードに各項目記入して返送する。

4.ネットのユーザー登録する。
IDとパスワードの発行。
この時点でcitiの方の口座開設は終了。

5.iTunes accountの口座変更する。
つまづくポイントは、以下どす。
・country Japan
・Zengin Code など
Zengin Code : 0401-730
Bank Name : CITIBANK JAPAN LTD
Bank Address : Citigroup Center, 2-3-14 Higashi Shinagawa Shinagawa-ku, Tokyo, Tokyo, 140-8639, Japan
・Account number はマルチマネー口座で
・Account Holder Nameはアルファベットで

そんな感じ。

これで月4000円のぼっくり商売から解放される!!!(はず)

<参考>
iTuneConnect での 銀行情報の登録 - It_lives_vainlyの日記

Xcode4のエディタで、半角スペースを非表示にする方法

というより、デフォルトでは半角スペースは非表示なんだけどね・・。
どこかいじってる間に、僕のXcode4のエディタで、半角スペースが表示されるようになってしまったんす。
このように。

どうやって非表示にするんかなーと、設定からエディタタブ周辺さがしたんだけど、まったく見つからず。twitterでつぶやいてみたところ、@gaolayさんに教えて頂きましたよ。

こんなところに、「Hide Invisibles」なんてボタンがー。

ありがとうございます★gaolay様。

てか、「Show Invisibles」って響きが好き。
ステレス迷彩を装備してても、見れる、ゴーグルみたいなw

Xcode 4.0.2 and iOS SDK 4.3

Xcode 4をやっとダウンロードした。
4.3GBってけっこう重い。
光ではなくADSLのうちの回線(+無線)では1時間近くかかってしまった。
平均800kB/secってけっこうヤバいな。(昔に比べれば速いんだけど・・・)

リモートで鍵の施錠・解錠ができるlockitron

商売で成功するためには、人より多く情報を仕入れ、人より速く動き出さなければならない。

ということで、今日から少しずつであるが、TechCruch(日本のではなく)の記事を中心にピックアップしていく。

Lockitron Lets You Unlock Your Door With Your Phone – TechCrunch

Lockitronはリモートで鍵の施錠・解錠ができるサービスだ。これはかなり便利。鍵を掛け忘れたときにリモートで掛けたり、友達が自分の家にきたときに、鍵をわざわざ物理的に渡さずにすむ。また、注目点は、NFCをつかって、スマートフォンで解錠できるところだ。現状では、まだAndroidiPhoneにはNFCは搭載されていない。(そう考えると日本のガラケーの技術の高さはスゲー。ワンセグチューナー含め。)マネタイズに関しては、ウェブアプリとハードウェアを使用するのに295〜500ドルとるとのこと。Schlageというサービスは、ハードウェアに300ドル、使用料に月9ドルの価格設定だ。
今後、もっと「持たない暮らし」がすすむと思われる。

warning: UUID mismatch detected with the loaded library 解決法

実機を接続して動作確認しようとしたら

warning: UUID mismatch detected with the loaded library

という警告が出て、実機の画面が真っ暗になって確認できず。。
その警告の解決法をメモ。
(実施する際は、自己責任で)

参考は
iphone - UUID mismatch detected with the loaded library - Stack Overflow
1.iPhoneを接続解除する
2.Xcode閉じる
3./Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.2(最新)のフォルダを他のディレクトリに移動する
(たぶん消してもいいんだけど、バックアップということで。)
4.Xcode立ち上げる
5.iPhone接続する
6.オーガナイザに「知らねーiOSだよ、クソボケ」と聞かれるので、「Collect」押して、色々ファイル収集がはじまる
(5分くらい)
7.動作確認。できてる。
以上。

ちなみにiOSは4.3.2(最新)
SDKは4.2(最新ではない)

再度Railsでtwitterサービスに挑戦

前回までで、
KRAY - みんなで考え、作り、価値を生み出す
という素晴らしい記事を参考にして超簡単なtwitterサービス(1文をポストするだけ)をつくったわけだが、本質的にまだまだ理解していない部分があるので再度つくってみる。

今度、参考にさせていただく記事はこちら
http://mitukiii.jp/2011/01/16/rails3-create-twitter-mashup-application/

プロジェクトを作成して、Gemを管理するためにGemFileにいくつか書き加える。
Gemfileの書き方について参考にさせていただいたのは以下の記事。
bundlerのREADMEを読んでのメモ - おもしろwebサービス開発日記

gem 'rubytter'
group :development, :test do
gem 'rspec-rails', '>= 2.3.0'
end

gem 'rubytter'
#rubytterのライブラリをひっぱってくるということ。
group :development :test do
#groupは、プラグインを使いたいenvironmentsを設定するものらしい。

んで、bundle installを実行。

$ bundle install
Fetching source index for http://rubygems.org/
Using rake (0.8.7)
Using abstract (1.0.0)
Using activesupport (3.0.6)
Using builder (2.1.2)
Using i18n (0.5.0)
Using activemodel (3.0.6)
Using erubis (2.6.6)
Using rack (1.2.2)

次にコントローラとルーティングを作成する。

$ rails generate controller index index oauth callback
create app/controllers/index_controller.rb
route get "index/callback"
route get "index/oauth"
route get "index/index"
invoke erb
create app/views/index
create app/views/index/index.html.erb
create app/views/index/oauth.html.erb
create app/views/index/callback.html.erb
invoke rspec
create spec/controllers/index_controller_spec.rb
create spec/views/index
create spec/views/index/index.html.erb_spec.rb
create spec/views/index/oauth.html.erb_spec.rb
create spec/views/index/callback.html.erb_spec.rb
invoke helper
create app/helpers/index_helper.rb
invoke rspec
create spec/helpers/index_helper_spec.rb

rails generate controller index index oauth callback
は、indexというコントローラと、index,oauth,callbackの3つのアクションを追加するということ。
rails g controller index index oauth callbackでもよいとのこと。
各アクションに関して、indexは認証ボタンの表示/ツイートの表示、oauthは認証ボタンを押した時にTwitterに転送、callbackはTwitterから認証された時の後処理、に使用する。

また、
rails g controller Aで、Aというコントローラ作成、
rails g model Bで、Bというモデル作成、
rails g migration Cで、Cというマイグレーションを作成する。

MVCモデルに関してはこちら。
まつもと直伝 プログラミングのオキテ 第20回 MVCとRuby on Rails | 日経 xTECH(クロステック)

次は、config/routes.rbの書き換え。

get "index/index"
get "index/oauth"
get "index/callback"

を以下のように書き換え。

root to: "index#index", as: :index
get "/oauth" => "index#oauth", as: :oauth
get "/callback" => "index#callback", as: :callback

これで、サーバをrails serverコマンド で起動。が、しかし、エラーで起動しない。。。
なるほど。routes.rbを正しくかかないと起動せんのだな。とりあえず、以下に修正して起動はできた。

root :to => "index#index"
get "oauth" => "index#oauth"
get "callback" => "index#callback"

で、app/views/index/index.html.erbを

<% form_tag :oauth, method: :get do |f| %>
<%= submit_tag '認証する' %><% end %>

に変えて、localhost:3000にアクセスすると・・・コンパイルエラー。。。SyntaxError in Index#indexとのこと。

index.html.erb:1: syntax error, unexpected ':', expecting kEND
...ing= form_tag :oauth, method: :get do |f|
^

なので以下に変更。

<% form_tag(:oauth, {:method => :get }) do |f| %>
<%= submit_tag 'apply' %><% end %>

コンパイルできたので、localhost:3000にアクセス。
以下の画面が表示された。(ボタンのみ)

んで、例のtwitterのアプリを登録してConsumer KeyとConsumer Secretを取得して、それらを、app/controllers/application_controller.rbに書き出す。(記事通り)