2013年8月25日日曜日

Force.com mobile SDK 2.0 for iOS

【重要なお知らせ】新プロジェクトはコマンドライン

前のバージョンまでは、XcodeのFile->New->New Project...でHyblid Force.com App / Native Force.com REST Appを選べばすぐにプロジェクトができていましたが、2.0ではコマンドラインから作る必要があります。簡単ですけども。

【重要なお知らせ】ARCに対応しました!

Xcode 5はARC対応のプロジェクトしか作れないですし。それにARC、慣れてしまえばそんなに悪いヤツじゃないですよw

■大まかな手順■

  • gitからcloneしてbuild
  • テンプレートをbuild
  • では、新しいプロジェクトを

参考ページは以下。
https://github.com/forcedotcom/SalesforceMobileSDK-iOS

以前より増えた分(テンプレートのbuild)
https://github.com/forcedotcom/SalesforceMobileSDK-iOS/blob/master/build.md

■gitからcloneしてbuild■

まず、適当なディレクトリに移動して、ターミナルから以下のコマンドを実行します。

git clone https://github.com/forcedotcom/SalesforceMobileSDK-iOS.git
回線速度にもよりますが、数十秒程度。終了してプロンプトが出たら、次はgitが作ったプロジェクトの中に異動してビルドします。

    cd SalesforceMobileSDK-iOS/
    ./install.sh

これは回線やマシンの速度の応じてやっぱり数十秒から数分。SSDだと妙に速くて感動です。以前はこれでXcode用のテンプレートが自動的にインストールされていたのですが。

■テンプレートをbuild■

それではテンプレートをbuildします。

    cd build/
    ant 

今度はそれほど時間かかりません。

■では、新しいプロジェクトを■

    cd artifacts/
    cd NativeAppTemplate/ または cd HyblidAppTemplate/
    ./createApp.sh

これでテンプレート生成シェルから使い方が出てきます。

Usage:
createApp.sh
   -t <Application Type> (native, hybrid_remote, hybrid_local)
   -n <Application Name>
   -c <Company Identifier> (com.myCompany.myApp)
   -g <Organization Name> (your company's/organization's name
   [-o <Output directory> (defaults to this script's directory)]
   [-a <Salesforce App Identifier>] (the Consumer Key for your app)]
   [-u <Salesforce App Callback URL] (the Callback URL for your app)]
   [-s <App Start Page> (defaults to index.html for hybrid_local, and /apex/VFStartPage for hybrid_remote)]

では、素直にプロジェクトを作ってみます。com.company / companyはあなたご自身のものを使ってください。蛇足ですが。

    ./createApp.sh -t native -n TestForceMobile20 -c com.company -g company

ほんの一瞬で以下のメッセージが出来て終了します。

Creating app in SalesforceMobileSDK-iOS/build/artifacts/NativeAppTemplate/TestForceMobile20
Successfully created native app 'TestForceMobile20'.

あとは適当なディレクトリにコピーして、.xcodeprojをダブルクリックすればXcodeが起動します。

■プロジェクトについて■

コマンドラインで生成した時に指定しなかった場合にはAppDelegate.mのRemoteAccessConsumerKeyとOAuthRedirectURIを設定します。

生成されたコードはばっちりARC対応です。__weakが邪魔っすね。まだ慣れません。AppDelegate.mは1.xよりはかなり洗練されていて、いじりやすくなりました。例によってStoryboardには対応していませんが、setupRootViewControllerでnibではなくStoryboardから生成されるようにすれば問題ないはずです。

取り急ぎ、以上。

2013年8月11日日曜日

ワイシャツの洗濯

■クリーニング屋に不満がある■

うちの近所のクリーニング店はどうもいかん。特にワイシャツ方面:
  • 安いところは襟汚れが落ちない
  • 高いところはまぁ良い仕上がりだったけど潰れた。プリペイ残あるのに
  • どこも高温乾燥しているせいか縮む
  • 糊付けないでと言ってもパリパリ
こんな感じ。なので自分で洗ってるんですが、アイロンは苦手だし面倒なので掛けたくない。とりあえず試行錯誤の結果、ある程度うまくいくようになったので、まとめてみました。

基本的にはきちんとたたんでからネットに入れて洗う。マルイのワイシャツ専用洗濯ネットってどうなんでしょね。良いとは思うものの、ネット1枚でワイシャツ1枚しか洗えないのがイヤなので買ってません。高いし(1枚1000円)。

■前準備■

使い古した歯ブラシでワイシャツの襟と袖口に液体洗剤を塗りつける。

適当な作業場所で襟のボタンをとめてからシャツを広げます。うちは風呂フタの上でやってます。LED電球なので写真の色温度がヒドいことになってますがご容赦ください。

脇の下の縫い目を左右に引っ張るようにするといい感じにシワが取れます。これを3-4枚、写真のように重ねて行きます。重ねる時には、ノーアイロン性能の高いものが上に来るようにすると良いです。今回は綿100%のダンガリー☓2、エディー・バウアーの綿100%シワ無し加工シャツ、ビズポロ…の順番。ビズポロは普通に洗濯脱水しても皺にならないのですが、スペーサーとして入れてます。

次に、片袖ずつ内側に折っていきます。なんか「デュワ〜」って感じ。


最後に、ネットに入る大きさに折ります。私はデブなので幅65cmないと入らないですが、普通の人なら60x45cmのネットに入ると思います。

あとは、普通に洗濯しますが、脱水はしません。洗濯>すすぎ>すすぎ…が終わったところで止めておきます。水槽からネットごとワイシャツを取り出して、濡れたままハンガーに干します。

ノーアイロンはもちろんアイロン簡単シャツならこれで十分パリっと仕上がりますし、綿100%のダンガリーも程よいざっくり加減になります。

2013年8月3日土曜日

NAS + スカパー録画の危機

要約:NASを再起動したらスカパーが見えなくなった

■発端■

バッファローのLX-WV4.0TL/R1というNASにスカパー!の放送を録画してます。2-3年、何の文句もなく動いていたのですが、久しぶりにファイルサーバとして使っているパーティションがアクセスできません。

ホコリも溜まっているので、一度電源を落として清掃しました。で、再起動したら無事ファイルは見えるようになったものの…スカパー!チューナーから、NASが見えなくなってしまいました。ホームサーバ一覧画面には虚しく「オフライン」と表示されるだけ。

■原因■

いくらなんでも再起動が原因ではないと思いますが、スカパー!のサーバとしての認証が消えてしまったようです。

スカパーチューナー側でサーバリストを表示すると、同じ名前のNASが2台並んでいて、1台は接続済、もう一台は未接続。接続済サーバを削除して未接続を再登録すれば解決します。とても簡単な話なのですが、一つ問題があります。

スカパーチューナーは、録画先サーバを変更すると録画が全消去されるという面白い仕様になっています。こればっかりはどうしようもないので…予約リスト画面をiPhoneで撮影してから接続(および予約リスト)を全消去し、改めて予約しなおしました。

いやはや…。

■試行錯誤したリスト■

  • NASをWebコントロール画面から再起動
  • NASのDTCP/IPサービスを再起動
  • NASの電源を落として、数分後再起動
  • NASのアップデータを確認(最新版だった)
  • NASのマニュアルを確認(まったく参考にならん)
  • 「スカパー HDD オフライン」でググった→同様の症状がヒット