2008年11月16日日曜日

User-Agentを偽装して、YahooBB! BBモバイルポイントにタダのりを試みた

  • 実験場所:都内某所のマクドナルド
  • iPhoneからの接続:良好。速度も申し分なし。ただし電波強度がいまいち。
  • MacBookからの接続:失敗。User-Agentを偽装しても、iPhoneエミュレータからアクセスしてもだめ。UAを正しくiPhone2.1に設定していなかったのが原因と思われる。再度調査する
  • 電波の発信場所はおそらくバックオフィス内、バックオフィスに近い場所の方が電波的に有利(場所によっては外にもアンテナがある?)
  • どうでもいいけどマックは煙たくて騒々しい、そのかわり安くて人がたくさんいて面白い
  • スクリーンショットとってくるの忘れたorz

遅ればせながら手持ちのiPhoneで実験してみました。駅構内とかでも使えるのかと思っていたら想像以上にBBモバイルポイントのアクセスポイントが少なく、結局マック以外まともな場所がないということがわかってちょっと残念。

○まずは店内の電波強度を試験してみる
WiFiFoFumというアプリを利用して店内の電波強度を測ってみました。
結果、店のカウンターの手前が最も強力(RSSI = 40程度)で、2階の禁煙席付近はRSSI = 20前後でした。常にWifiアンテナ表示が2本程度という感じです。


○iPhoneからつなげてみる

電波が弱いのでちょっと心配でしたが無事接続できました。速度も相当快適です。YouTubeの動画でも問題なく視聴できるはずです。


○禁断の果実(?)MacBook Airからつなげてみる
User-Agentによって接続デバイスを判定しているという噂があったので、噂を信じてSafariのユーザーエージェントをMobile Safari 1.1.3に変更していざMacBookから接続!

・・・だめでした。XcodeからiPhoneエミュレータを起動して試してもやっぱりだめ。くそう、そんなに甘くなかったか・・・

と思ったら、どうやら私の試した設定が悪かったみたいです!
Windows版SafariのUA追加方法 | iPhone 3G Wiki blog
これはWindowsでの設定方法ですけれども、要するに開発メニューから選択できるUAはiPhone OS 2.1ではなくて1.1.3(昔のiPhone)だったためうまくいかなかったと。
Mac版のSafariでは、以下のファイルの中身を適当に書き換えると、「開発」メニューからiPhone OS 2.1のUAを選択できるようになるみたいです。
/Applications/Safari.app/Contents/Resources/UserAgents.plist
に以下のUser-Agent文字列を見よう見まねで追加する:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F136 Safari/525.20
これでまた来週試して結果をご報告したいと思います。


○結論
もしこれでただ乗りに成功できれば、しばらくはマックが主な勉強場所になりそうです。

2008年11月10日月曜日

知っている人がメディアに露出すると有頂天になる小者=自分


何気なく@ITのフィードを眺めていたら、なんだかどこかで見た名前が・・・って!こないだのPython温泉にいたニコニコ大百科の中の人!!
うらやましいと思う反面、なんだか凄い悔しいです。自分もいつか日の目が当たる人間になれる時が来るんでしょうかね?
とにかく、勉強会にはえり好みせずどんどん参加することにしました。このカレンダーさえあれば勉強会の日程は分かるんだから、参加しなきゃ損ですよね。

2008年11月9日日曜日

CS193P Cocoa Programming - 1日目の宿題Bをやってみた

  • Objective-Cは、見た目とは裏腹に非常に簡単
  • Xcodeのリファレンスはきわめて優秀
  • Xcodeのコード補完はControl + , またはOption + Escだが使いづらいのでCommand + Spaceに変更する
  • Xcodeのコンソール表示(NSLogの内容を確認)はShift + Command + R
引き続き宿題B。こっちの宿題はiPhoneから完全に離れてObjective-Cの基礎基本について学ぶようになっています。
それにしてもこの宿題、問題の出し方がうまいです。全く調べないで解けるほど優しくないですが、何処を調べればよいかはきちんと示されています。リファレンスの引き方と自分で調べる力が養えるのがうれしいです(あたりまえなんですけど・・・自分の大学では調べてもさっぱりわからないか、調べ方がそもそもわからないか、調べる必要がまったくないか、というような宿題が多かったので)。

閑話休題。Objective-Cは何一つわかりませんが、とにかく見よう見まねでコードを書いてみます。


おおー動いた!最初このコンソールの出し方がわからず困りました。Shift + Control + Rでした。


調子に乗ってさらに数行記述。リファレンスを引いてNSString同士の結合およびフォーマットのやり方を調べてみました。+で結合できないのが少々面倒(確かC++だとできたはず)。


なれてきたらもう簡単。
それにしてもメソッド名がいい感じに長いです。私はこういうやたら説明的で長いメソッド名が大好きです。


NSArrayのループもこの通り。Javaっぽい。
あとNSDictionaryも調べてみましたけど、Javaと同レベル・・・これはいまいち・・・
JavaScriptやPythonみたいなスクリプト言語らしい使い勝手のいいDictと比べる方が悪いですけどね。


Xcodeの設定。これでコード補完をCommand + Spaceに割り振ることができます。



同じ項目がもう一カ所ありましたが、こちらは変えなくても特に問題ないらしいです。メニューから呼び出しているかそれともテキストエディタの中で直接呼び出しているかの違いのようです。

それでは引き続き残りの宿題をやってしまいますか!