2012年2月27日月曜日

Windows7 64bitの状況

Windows7を使っていてふと思ったんですが、「アプリは64bitになっているんかしらん?」ということを。64bitを選んだのはメモリをたくさん(4GB以上)積みたかったから。複数アプリを同時に動かしてるとメモリいるしね。でもアプリが64bitに対応してなきゃあまり意味ないし、それに結構32bitしかなくて設定に苦労した経験が多かったので気になった。
コントロールパネルでインストールされているアプリ一覧見ていて、javaが32bitと64bitの2つが入ってるのにびっくり!

しかも会社名がSunとOracleに分かれてるw。32bitの方はバージョンが古いので、もしかしてOracleに買収される前のバージョンのままか?でもなんで、それぞれ入ってるんだと思ったら、(pluginで使ってる)IEも32bitと64bitが入ってました!(Startメニューにちゃんと2個ありました)
なんだこれはと思ったら、Quick起動に最初から入ってるIEは32bitがデフォルトという落ちまでついてました。(右クリックででてきます)
調べてみると、IEやChromeが使ってるFlashが32bitしかなかったり、その他のpluginもほとんど64bitがないので32bitがデフォルトの様子。Chromeも64bitがまだChromium(開発版ね)しかないとのことでした。windowsの64bitだと起動直後の状態でもメモリを1GB以上くってるんで、なんか64bit使っててもあまり恩恵うけてない感じです。32bitよりはメモリ関係が安定してるんじゃないかと思いたい・・・(自宅で使ってる分には、そんな重いアプリや大きなドキュメント使わないのでwindowsも32bitで十分な気がしてきた)

2012年2月25日土曜日

NTT docomo料金プラン検討

昨年の秋にGalaxy S2を買ってからずっと気になってたのが料金プランです。一応パケホーダイフラットに入ってますが、普段は電話としてしか使っておらずスマホとして使うのは自宅でWifi接続のときがほとんど。なのでパケホーダイ2のほうがいいんじゃないかと気になっていました。パケホーダイ2の料金設定は以下の通りです。

  1. 4,650パケット/月まで390円
  2. 71,500パケットまでが従量制で、最大5,985円(フラットより585円高い)
それでこれまでの4ヶ月くらいのパケット通信料を調べてみました。すると平均34万パケットも通信しています。何にいったい使っているのかわかりませんが(gmailとカレンダーくらいしか思いつかない。たまに日経のHPはみるけど。。。)、これではパケホーダイフラットのままの方がいいです。

2012年2月23日木曜日

Android Samsung Kies(とAir)

Galaxy S2に音楽を追加したくなったんですが、以前Kies(Samsung版のiTuneみたいなもの)をアンインストールしていました。(HDDのセクターが一部壊れたため、動きがおかしくなってた)
再度、インストールしたんですがどうもうまくつながりません。数回に1回つながるというかんじ?(イベントログを見ると、USBドライバがクラッシュして、オフラインになりましたとのこと・・・何度インストールしなおしても状態は改善されず)しかも、インストールしてある音楽一覧をスクロールしようとしても、動きが無茶苦茶遅くてまともに操作できない(/_;) 
かなり我慢してなんとか音楽をいれましたが、他に方法がないかと思ったらkies Airというのがありました。これはGalaxy側のアプリでWi-Fiを使って通常のブラウザによりGalaxy内のコンテンツを管理できるようになります。(Kiesがいらなくなります)起動すると以下のような表示がでます。
IPアドレスが表示されるので、Galaxyがサーバーみたいになりここをブラウザで見ます。そうすると音楽や写真、電話帳の内容を修正したり、さらにはSMSまで使えうそうです。(SSIDだけは消しときます。IPアドレスはプロバイダから割り振られたプライベートアドレスです。)そうするとGalaxy側に接続を許可するかというDialogが出てくるので、それを許可すればOKです。

ところでここで問題なのが、複数の音楽等コンテンツをダウンロードしたりしようとするとJavaを有効にしろと言われます。(1個ずつならOK)Javaなら入っているんですが、どうしてもうまくいきません。ネットでぐぐってみると、結構同じ悩みを抱えている人がいますが解決方法が見つかりません。SamsungのHPにいっても単にJavaを入れろとしか書いてありません。試してみてわかったのが以下のことです。


  1. 気をつけてないと複数バージョンのjavaがよくインストールされています。大抵はうまく動くんですが、いい状態ではないのは確かです。(→最新のもの、一つにしましょう)
  2. 通常はChromeをブラウザに使っているんですが、今はV17です。でもSamsungのHPなんか見てると、ChromeのV11とかV12で使えるとかかいてあるので最新のV17ではダメかも。
  3. IE8はOKとあったので、試してみましたがうまくいくユーザーと、やはりだめなユーザーがあります。ダメなのは最初から設定してあるもので、そこで色んなプログラムのインストール等管理作業をしているので、プロファイルになんかゴミがのってしまっているかも。。。

ただ、複数ダウンロードできるユーザーもあったんですが、やってみると「全部」を選択してもそれはそのとき画面に表示されてるもの(例えば音楽3曲分)だけが一度にダウンロードできるだけであって、他のページに入っているものは選択されませんでした。これじゃ「全部」の意味ないよ~。頑張って調べたわりには報われませんでした。(まあとりあえずKiesは削除できるんでいいか)

あとGalaxy S2のデフォルトプレイヤーでは音楽データ(mp3)は、/sdcard/media以下にベタっと入っており、アルバム毎のフォルダ単位で入っていると予想してたのには驚きました。これでどうやってアルバム名を管理しているんだろう?(iTune等だと、アルバム名のフォルダが作られてその中に各曲が入っています)と思ってたんですが(プレイヤーが管理用のファイルでも別に持ってるのかと思った)、mp3ファイルにアルバム名やアーティストの情報が入ってるんですね。

2012年2月19日日曜日

Hacking:美しき策謀

サイバースペースのセキュリティが問題になっていますが、どんな(攻撃・防御)方法があるか用語は知っていても、具体的にどんなものかは知りません。勉強したくなり、タイトルの本を買って読んでます。具体的なプログラムが載っており、これいいんかなと思ったんですが、試してみると半分以上は現在の最新OS(Linux)では対応済みで本の解説通りには動きません。(ただ異常は検知してくるので、危ないことをやっていることはわかります)
前からポートスキャンというものがあることは知っていましたが、やってみました。ツールとしてnmapというプログラムを使います。このソフト、オープンソースでGPLで公開されているんですね。同サイトには他にもsnifferのようなセキュリティ用のツールが公開されていました。とりあえずMac OSXでビルドして、(自宅の)windows7をスキャンしてみました。


macbookair:nmap-5.51.6 hogehoge$ sudo ./nmap -sS 192.168.24.58

Starting Nmap 5.51.6 ( http://nmap.org ) at 2012-02-19 08:16 JST
Nmap scan report for Hiro-PC (192.168.24.58)
Host is up (0.0025s latency).
Not shown: 992 filtered ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
554/tcp   open  rtsp
912/tcp   open  apex-mesh
2869/tcp  open  icslap
5357/tcp  open  wsdapi
10243/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 4.45 seconds
macbookair:nmap-5.51.6 hogehoge$

こんな感じで待受状態のポートが出力されてきます。(各ポートが何のサービスなのかの説明は控えておきます。)まともな使い方は、これでマシンに変な脆弱性のある設定がされていないかを調べるものです。

2012年2月15日水曜日

Android デバッグ方法

以前、プログラムを修正してもうまくエミュレータやら実機に反映されないと言ってましたが、どうも先日デバッグ方法で気づいたAndroid SDKで追加されているデバッグメニュー同様、実行も追加されていました。Androidアプリ専用の実行メニュー項目から起動すればすぐに修正が反映されました。
また、起動が遅くてイライラすると言いましたが、どうも動きを見てると「エミュレータは起動しっぱなしでいいんじゃないか?」という気がしてきました。案の定、最初のエミュレータ起動には時間がかかりますが、その後はそのままでプログラムを修正しても自動でインストールしてくれました。(ただAndroidのアプリは、見た目は停止させても裏で動いているので確実にインストールさせようと思ったら、エミュレータ上で事前にアンインストールしておくと間違いありません。)これなら最初だけは我慢しなければいけませんが、そんなに問題ありません。
(Androidは、eclipse上でGDBを動かし、エミュレータ上のプログラムにリモートでデバッグをかけているそうです。それならエミュレータは起動しっぱなしでいいんじゃないか?ということになります。)

2012年2月14日火曜日

Android アプリのeclipse上におけるデバッグ

Androidアプリの作成するさいのデバッグ方法ですが、簡単なのはLogCatクラスを使用して実行中にログを出させて、それをeclipseなりでモニタする方法があります。実機とつないでも簡単にできますが、やはりeclipseを使うんですから、ソースを直接ステップ実行したいです。簡単にできるだろうと最初は思ったんですが、これが中々うまくいきません。windows7上で試していたんですが、どうも「実行」(run)メニューの2番目にある通常の「デバッグ」ではだめなようで、Android SDKを入れたことで追加されるメニュー項目の「デバッグ」からAndroidアプリのデバッグを選択してデバッグの構成からいかないとだめなようです。結局うまくいかず、次にMac OSX上の環境で試してみたら、デバッグができました。ただ、それでも自分でビューを「デバッグ」に切り替えないといけない(自動で変わってくれたのは最初の1回だけ・・・)ような、あるいはブレークポイントをはってもそれがうまくエミュレータ上に反映されない?ような状況がでてきました。以前もアプリを変更しても、それが中々エミュレータ上に反映してくれなくて四苦八苦してましたが、もう少し試してみないとよくわかりません。(ブレークポイントの設定を変えるたびにアプリを再ロードは、ちょっとおかしいだろう。→さすがにこれはありませんでしたが、初期化ルーチンで止めたい時はエミュレータ上でアプリを一度止めて、再実行しないとだめですね。当たり前ですが。)
あと、ネットで調べていた時たいていは単に「デバッグ」で動かせばいいとしか書いてありませんが、大事な設定があります。当該プロジェクトの"AndroidManifest.xml内の設定で「デバッグ可能」(Debuggable)というフラグがあり、デフォルトの初期値がNULLなんです。これを手動で"true"にしてやる必要があります。(右上にあります)
true/falseなんですが、まさか初期値がNULL(空白)とは予想してませんでした。(これに気づくのに2,3時間かかりました)
あと実機(自分はgalaxy s2)上でもソースコードデバッグができるそうですが、これはまだ試していません。ただ調べてると、Samsung Kies(iPod/iPoneのiTune相当)を入れてないとダメという情報もあり(該当するSamsungのページは今ではなくなっていました。どうも専用のUSBドライバをいれないといけないようです。実際、windows用にしかでてないんですが、昨年末のVerUp以降最新のをいれないとGalaxy s2にはアプリを入れれなくなってしまい、現在Mac OSXではアプリを作ってもアップロードできない状態です。)、各社癖がありそうで大変です。

しかしAndroidの開発環境がjavaで構築されているせいなんでしょうが、動作がとてものろくてかないません。仕事でAndroidアプリを作成している人たちはどうしてるんでしょうね?(我慢するしかない?自分のPC(win7)は一応Core5、メモリ4GBつんでますからそんなに貧弱ではないと思うんですが、どうみてもCore2のMacの方が動作が早く見えるんですが・・・)


PS
ほぼ確実にソースコードデバッグができる手順がわかりました。

  1. emulatorを起動する。(何らかのアプリをデバッグするでもOK)
  2. デバッグしたいプロジェクトを選び、eclipseのビューをjavaからデバッグに切り替える。
  3. そこで(Androidアプリの)デバッグを実行する。
  4. コンソールに当該アプリをemulatorにインストールしますというメッセージが表示され、ブレークポイントで止まる。(Step実行が可能になる)

この手順4になるときに、Core5/4GBのノートPCでも数秒かかります。(Macだと心持早め)仕事で使うなら、Linuxマシンでないとだめな感じです。手元にはメモリが1GB程度の貧弱なマシンしかLinuxマシンがないので実際に確認できませんが。

2012年2月6日月曜日

VMware Player-4.0.2のインストール(CentOS4利用)

久々にLinuxを使いたくなり、以前VMPlayer3で作成したイメージがありましたが折角なんでVerUpします。
VMware Player-4.0.2をDLしてきてインストール、さらにCentOS4(昔作ったプログラムを動かしたいので、あえて古いVerです)をインストールします。Defaultではユーザ名を入力するだけで勝手にインストールされて英語設定になりますが、インストール後設定で日本語にできます。(前はできなかった記憶があり、一度Linuxの入れ物だけつくり、手作業でブートしてインストールしました)その後、vmware-toolsをインストールですが、なぜかうまくいきません。「パッケージがみつからない」と怒られます。
よく理由がわかりませんが、ネットでvmware-toolsのisoイメージを直接vmwareのサイトからDLして使う方法を調べてみたのですが、webで当該URLにアクセスしようとするとうまくいったり、いかなかったりしました。なんか英語のページなどにあった情報で、english版のVMPlayerはVerがさらにあがっており、4.0.3がでているらしいんですがなぜかvmware-toolsがvmwareのサイトに当該Verがなく、4.0.2ものを手動でDLして使えというのがありました。他の日本語のページでは4.0.2で特に問題があったという記述はなく、詳細な理由はわかりませんが手動でDLすることにします。ただ使うのに2回ほど解凍してやる必要があり、それがゲストOSがLinux用のvmware-toolsのパッケージ(tools-linux-8.8.1.exe.tar)から、tools-linux-8.8.1.exeを取り出してこれをlinux上で動かしてisoイメージをとりださないといけません。windows上で作業を行うのにいくつかツールがありますが、自分は「7-zip」を使いました。(解凍できる形式が多く便利でした)
手動でvmware-toolsのisoイメージを作成し、これをVMPlayer上のLinuxでマウントしてやり内部に入っているPerlのインストールスクリプトを実行してやります。これで無事、vmware-toolsがインストールできてvmware用のXドライバや、windowsのHDDをマウントできるようになり、動作環境の準備ができました。