2010年6月30日水曜日

XCodeで円マーク(¥)とバックスラッシュがーの問題

  • プログラムを書く上でバックスラッシュ(\)は外せない。日本語環境では該当するアスキーコードが円マーク(¥)に置き換えられているため。えんえぬとかえんあーる。とか書いたりする。
  • ユニコードでは別々にこれらの文字が存在するため。XCODEでは¥をしてエスケープ符号としたりするとエラーになる。終端記号なんて潜在エラーになるので最悪だ。
  • ちなみにOption+¥で\をタイプできるが、\をタイプする頻度は結構高いのでおすすめできない。むしろ逆のほうがいい。
  • その設定は「ことえり」の環境設定に存在する。
  • 実はわかりやすい検索ワードでわかりやすいこの説明がなかったのであえてここに書いている。めずらしく画像も張っておきます。
  • Option+バックスラッシュでちゃんと¥マークになります。
  • 通貨符号なんて表計算ソフトならオートコンプリートされるのですよ。
  • xCodeでもシステム環境設定でもないので注意。メニューバーの右上の「あ」。
  • WindowsもMacOSも内部コードはユニコードだがWindowsではは同じものとして解釈されているようだ。Utf-8でソース書いてても問題がおきたことはない。

2010年6月29日火曜日

Objective C++

  • 拡張子をmmにしたらC++の構文が利用できるようになる。
  • C++で書いたライブラリの呼び出しも可能だけど、スタックに積んだ場合はコンストラクタが呼び出されたけどヒープにnewしたときは動かなかった。うーん。
  • C++のコード読み込んでいるファイルは全部、sourcecode.cpp,sourcecode.header.cppとかに設定を変えてあげる必要がある。
  • エラーが出るので、インクルードガードに#pragma onceは使えないのかなーと、#ifndefとか久しぶりに書いたが。どうやら使えるようではある。
  • XCodeのコード補完はC++のライブラリにたいして利かないようだ、少なくともstlを使う分には面倒。
  • 正直10年前に戻ったようだよ
  • Cから標準出力にprintf("foo\r\n")としても改行されない。
  • cout << "bar" << endl なら有効
  • NSString、つまりunicodeか。しか通らないんだろうけど。
  • どうせアップルは開発環境にあまり金なんざ払わないだろうな。
  • コンパイラはgccなんだしガワだけなんだからもう少しまともなものを作ってもらいたいものだ。
  • C使うのは実際オブジェクト志向に毒されてるので無理です。stl相当のものライブラリ探して準備するとかぞっとしない。あとなんかboostが少し話題になってたなあ。
  • けどまあネットワーク関係は多分ObjectiveCで書かないといけないんだろうし。Regexも存在するようだ。やりながらいいバランスを見つけていくしかないんだろうこれは。
  • ラクな方向にひっぱってこようとしても、Androidに比べてひどく面倒だよなやはり。

2010年6月25日金曜日

AndroidとiPhone

  • この一月ほどAndroidとiPhone両方プログラムを組み始めてみて感想。
  • Androidはある意味古典的。一方糊付けの自動化もうまく機能していて組みやすい。
  • iPhoneはなんだろう、言いづらいがルールありきの環境でルールの学習に手間取る。
  • Cocoaの頃もこんなに簡単にボタンアクションが作れますよ! というのをやっていたが、実際やってみるとイベントハンドラ書くほうがずっと楽じゃね? とか思わされるわけです。
  • 実際は双方あまりかわらないんだろうけど。
  • iPhoneに関してはコード規則も独自。theButtonとか。これ確かMacOSの頃からあったけどな。実際ここらへんの単語のセンスは、デファクトにのっとってないという点で最悪の部類だと思います。
  • xCodeはEclipseに対して大いに見劣りします。
  • 個人的にはVisual Studio > Eclipse > xCodeだと思う。一言でいうと窓があがりすぎ。ディスプレイが三枚くらい欲しくなるよ。xCode。紹介文でこの分野で最高とかうたっているがまあ、iPhone SDKとかMacのSDKが動くIDE環境ってもうないものな。
  • 無料で配布してMetrowerksを追い詰めてなあ。
  • iPhoneで感心したのは、インターフェイスの作りこみというか、こう作れとかこうあるべきとかガイドライン文書の充実。でライブラリにそれが直結している点。これはもう文句のつけどころがないです。
  • このViewを使うときはこうしろとか。ボタンは指で押せることを第一に考えろとか。
  • デザインというものに対する姿勢はやっぱりIT業界で飛びぬけています。ITでいうデザインが見栄えだけとか思ってる人たちは精読すべきですよね。こういう研究に対する投資をちゃんとしてるからアップルは強いんだと思うよ。
  • 見栄えなら自分も口出せるとか思い込むアホが出鱈目にしていく分野なのですよね。お金をかけて一番つくりこんでいかなきゃいけない所なのに

Au云々

  • Auの携帯を使っている、とりたて不満はないし日本の3Gではまともなほうだと思う。
  • WEBブラウザとかインターネット関連の仕様は一番まともな会社のような気がす。
  • Docomoのように無軌道に独自仕様をぶちたてることもないし、CASIOペンギン可愛いですし
  • けどまあ身のこなしが致命的に遅いよな。BREWでアプリ開発しても作ってからリリースされるまで何ヶ月もかかるそうだ。
  • IS01が今時期Android1.6ベースというのもそこらへんに理由がある気がする。
  • IS02に関してはもうWindowsモバイルの時点で話題性がないというか、話題にしてもらえません。
  • IS01に関して言えば、新バージョンが出たら同時にバージョンあげて出せるくらいな身のこなしがあればまた違うと思うんだ。そこを身動き取れなくしてるのはなんだろう。

2010年6月24日木曜日

XCodeの自動入力保管云々

  • XCodeというかMacOSXの環境をカスタマイズ
  • Macは結構使ってるのだがプログラム書く環境としてはあまり。というか10.2以来かー。
  • アンチエイリアスはけっこう慣れてきた。
  • Apple USBキーボードをひっぱりだして使っているが Caps Lockキーの位置にコマンドキーが欲しい。いつものこと。これはコンパネ(環境設定)からいじれた。
  • というか文字のCaseをロックする必要なんてそんなに頻繁にないだろう。日本人には。
  • ちなみにAppleの場合 Ctrl+CではなくCommand+Cとなる。
  • CtrlキーはどちらかというとUnix文化。ただコピペに代表されるショートカットキーはMacの文化。Ctrl+CとかはどちらかというとWindows文化になるのかね。なぜWindows+Cにならなかったのかtrlキーの扱いは改行コードど同じように混ざってるのだなと開発環境を整えながら思いました。
  • Wikipediaによると最近はコマンドキーにリンゴマークがついてないらしい。Bootcampで質問がいっぱいきたからだというけど。Ctrlキーはきかないのかねえ。
  • EclipseではCtrl+Spaceでコード補完の候補をプルダウンで表示してくれる。XCodeで確認したところ、これがなんと、EscとかF5に割当てあった。いや遠いからそのキー。
  • Ctrl+Spaceを押すと->Spotlightが表示。
  • Cmd+Spaceを押すと->なんか入力方式の切り替えに割りあたってる。
  • とりあえずこの両方をシステム環境設定から取り除いて、Cmd+Spaceに割当。Ctrl+Spaceの運指は楽なのでこちらにも割当ようとしたが何かマークを設定(デバッグ用のマーカだろうか)というのにわりあたっていたのであきらめる。

2010年6月22日火曜日

Evernote

  • MacOS Xを最近使って作業してるのでテキストをメモるのにいいツールがないかと探した
  • なんかEvernoteというのがおすすめされてるので使ってみる→気に入らなかったというだけ
  • ていうか肝心のテキストがかける部分が右半分ってなんなの? 正気? そんなに首傾けながらタイプできないよ。
  • でもMacOS Xってそもそもテキスト生成作業にはあまり向いてないよな
  • 趣味もあるんだろうが、アンチエイリアスの利いた文字って集中できないんですよ

2010年6月15日火曜日

はやぶさとか

  • 久しぶりに明るいニュース、いいよね宇宙開発。
  • 探査とかやってること自体に興味はあまりないんだけど。
  • 探査結果によってせいぜい教科書の内容が書きかわるくらいなことで、直接ご利益があることでもない。
  • 宇宙開発の縮小なんて、ずいぶん昔からの話で今盛り上がってるのは気持ちが悪い
  • むしろはやぶさがの探査がうまくいってる云々なんてのは一昨年くらいの話題。
  • はやぶさに限らずH-2Aだってえらい。
  • 実績があがったんだから資金は投下すべきだとは思う
  • そこに物事をうまくやる人がいるというのが重要。金があればまあ優秀な人がなんかやってくれるというのは日本では甘い考えだが、ないよりはよほどいいだろう。

Apple vs Google

  • あまり公言されないけどAndroid云々のせいでGoogleとの対立が強まって手を切られるとか、利用制限されるとかが最悪のシナリオとしてあるんだが。そのあたりiPhoneユーザーの人はどうなんだろう。
  • 地図はGoogleMapだしねえ、検索エンジンも別立ては考えづらいだろうし
  • このままいくとAppleがどこかで踏んではいけない地雷を踏んでしまうに一票
  • 最近の動向から行くと隙なく回避しそうでもあるけど
  • GoogleもChrome OSとか社内でWindows禁止令を出したり迷走感が否めない
  • 最近はAppleもGoogleも一時期のMSを見てるような感じ
  • 界隈で昔M$とか揶揄されてたけど、ぶっちゃけ今はMSがいちばん成熟してる気もする
  • 開発者に優しい会社ということでいえばAppleだけはありえないな。

2010年6月10日木曜日

EKEN M003 ファーム更新

  • EKEN M003、ファームの1.7.2が出ていたので更新
  • http://www.magcomp.net/page/14
  • こころもち早くなった感じがしないでもない
  • microSDもmicroSDのリーダーも準備してなかった。
  • そしてようやく見つけたmicroSDリーダーは壊れていた。
  • デバッグできない問題が、やはりam,pm関係で出た
  • ADB rejected shell command(ls -l)、うんぬんと出るが原因は同じ。
  • 見た感じ同じだったので前回のものをpush。chmodで成功
  • USBデバッグはどうせ動かないんでしょうな
  • 打ち込んだコマンドを整理すると
  • adb kill-server
  • adb start-server
  • adb connect 192.168.1.XX:5555
  • (正常接続)
  • adb devices
  • adb pull /system/bin/am c:\temp
  • adb pull /system/bin/pm c:\temp
  • (ここで取得した両シェルファイルにshebangを追加)
  • adb push c:\temp\am /system/bin
  • adb push c:\temp\pm /system/bin
  • adb shell
  • (ここでシェル接続)
  • chmod 777 /system/bin/am
  • chmod 777 /system/bin/pm
  • こんな感じ。まあ777でいいよねー。

2010年6月9日水曜日

EKEN M003(M001も?)のデバッグについて

EKEN M003でadbデバッグする際、USBは駄目なのでWiFi経由でデバッグすることになる
だがうまくうごかないので修正したまとめ、同様の記事があったのだけど
WiFiにM003が接続した状態で

・adb connect [EKENM003のIPアドレス]
これで接続確立
・adb devicesで列挙されていることを確認する
・シェルコマンド/system/bin/am, /system/bin/pmをadb pullコマンドで取得する
・先頭にshebang '#!/system/bin/sh'を追加
・adb pushコマンドで書き換えを行う
・adb shでシェルに入り、chmodでシェルファイルを両方とも実行可能にする

これで動きました。amがアプリケーションマネージャー、pmがパッケージマネージャーとかなのかな。
シェルの中身ではjarを呼んでる。