2009年8月15日土曜日

初めてのGoogle Android プログラミング (8)

で、地図の表示地図の表示……あれ、Google Map のView が作成されるのに地図がさっぱり表示されない。何じゃこら??

Android 1.5 での Maps API Keyの取得について
に API Key の場所が変わったよ、みたいな記述があるけどこれ?
でもXPだしなぁ……と探していると、

Android 1.5 のdebug.keystoreのVistaでの場所
というそのものずばりなエントリーを発見!このページの記述によるとWindows Vista ならば
C:\Users\\.android\debug.keystore

ちなみにこの本に書いていたのは
C:\Users\\AppData\Local\Android\debug.keystore

SDK1.5 になるとこういう変更があるっての、わからんかったので助かりました。

初めてのGoogle Android プログラミング (7)

衝撃の事実!
Eclipse でGoogle Map を使うためには、 Build Target を Google APIs にする必要がある!
で、今まで Android 1.5 を使ってきたせいで9章で行き詰まった。

うわぁ↓↓↓

2009年8月14日金曜日

初めてのGoogle Android プログラミング (6)

今日は大はまり。
まず、8章の内容のうち、 id を差し替えてコーディングを行ったところ、別の Activity(同じプロジェクト内) で id をかぶらせてしまい、落ちる落ちる。
途中で気がつき、 id を差し替えて再度デバッグモードで起動すると、
Failed to reopen debug port for Selected Client to: 8700
のエラーが出てAVDの内容が更新されない。うっそ、マジ??とか思っても更新されない。
ポートがあけられないって言うことは、なんかで塞いでもたんかいな?と思うも記憶にないしなぁ。

これについては調べたところ、
Google グループ内で該当するディスカッションを発見。
どうもC:\WINDOWS\system32\drivers\etc\host

::1 localhost

となっている行を
127.0.0.1 localhost

に書き換えればいいとのこと。
今日はこんなんであまり進まず。うーん。

2009年8月13日木曜日

初めてのGoogle Android プログラミング (5)

8章を進める。
どうも匿名クラスを使うのが好きらしく、この作者のコードは匿名クラスのオンパレード。
ってか、たまには Listener の実装別のやつにしてほしい。

書いていて気持ち悪いけど、Javaに詳しくないから修正できない。
どうすりゃいいんだろう?

ともあれ、8章になってやっとアプリらしい外見をしてきた。
機能的にはまだまだだけど、外見さえ何とかなれば後はごり押しでなんとかならんものだろうか?

初めてのGoogle Android プログラミング (4)

第6章、コマンドラインからの操作→あんまり今のところ重要じゃないので流し読み。

第7章、 Intent と Phone Dialer
急激にまともな無いように。あれ、この本もしやJava経験者対象?
Listener の実装で匿名クラスを使用されていて、最初???状態。
調べて内容はわかったが、何となく気持ち悪い実装なのでとりあえずOnClickListener を Activity のクラスに implements しといて実装終了。

本当は元クラスの method を扱いたいときとかもあるだろうから匿名クラスが必要になるときもあるのかな。あ、でもこれってキャストしたら使用できたんだっけ?あれ?てか interface の場合元クラスの method なんてあるはずが無いからこの辺好み?

Java Developer Connection(SM) (JDC) テクニカルティップあたりの解説では、 Local クラスと匿名クラスは似たような使い方ができる。ただ、可読性を考えると匿名クラスより Local クラスが優れている場合が多い、とのこと。実装してみた感じではこの考えは同感。今後実装するとしても匿名クラスを積極的には使わないだろうなぁ。

と、こんなことをしていたら続く解説部分の EditText のインスタンス取得関係が不可思議なことに。
仕方がないから onClick() の中で取得しよう……て、あれ?この方が実装として正しくないか?

この本の実装では Listener を設定する前に EditText を取得しているので、onClick() 以外の Listener(もちろん、別のボタン等がある場合) が存在した場合、極端なこと言えば先に操作していれば getText() が入らなくても動くとか???でも逆順に操作されることを考慮したらこの辺毎回値を取得するようにしたいかな。あ、でも毎回取得してたらプログラムの実行速度が遅くなるのか?
ん~、 Java は新入社員研修以来触っていないので、ここんとこ今ひとつわからんなぁ。
まぁ、この章も意図しておいたプログラムができているから良いとするか。

2009年8月12日水曜日

初めてのGoogle Android プログラミング (3)

5章読了。
末尾の挑戦で示されている、複数のビューの表示には LinearLayout クラスを使用。
LinearLayout linearLayout = new LinearLayout(this);
これ、 linear じゃないクラスもあるんだろうなぁ。
また、複数表示するのに久々のJavaだからということで ArrayList も使用。
Iterator とかなつかしー。最近 SAS ばっかり見てたのでこういうまっとうな小物が出て来るとうれしくなる。

2009年8月11日火曜日

初めてのGoogle Android プログラミング (2)

とりあえずはまったこと。
プロジェクトエクスプローラーを消してしまって、別のプロジェクトを開けない!
windows -> show view -> pacage explorer を選択すると開ける。

んで、このはまりを抜けて5章 Hello! World アプリケーションを続ける。
画像を使ったHello World! の節ではGoogle での画像検索結果(hello world)から画像サイズ小を……って、なんじゃこれ!どーみても18禁じゃないですかいな。
こんなのつかえるか!

もうちょい安全な画像を使用しました。そっか、こんな絵がhello world の検索結果だなんて、Google 社員のhello world は強烈だなぁ……

って、めっちゃ拡大されて表示された。これ、もしかしてこの方法(ImageView クラスを使用)だとサイズ指定できない?
次のページのxmlの方法だとうまくいってるし、なんか大きさ指定の方法がありそうな……
setAdjustViewBoundsかと思ったが違うよう。
setLayoutParams(LayoutParams params)?あ、これくさい……と思うが指定しても失敗。
ImageView のインスタンスに設定しても反映されず。

Android LayoutParamsで検索するとこれについて記述したページが。
JavaDrive さんのHP中に、「レイアウトを指定してビューを設定」というそのものずばりな話が。

記述通り、setContentView(ImageView View, LayoutParams param)として設定してみると……あれ?うまく行くときと行かないときが。

Layoutparams を LayoutParams.FILL_PARENT , LayoutParams.FILL_PARENT
にしたときは画面いっぱいに。

LayoutParams.WRAP_CONTENT , LayoutParams.WRAP_CONTENT
にしたときは小さく。ココまではOK。

ここで、
LayoutParams.FILL_PARENT , LayoutParams.WRAP_CONTENT
にしたら画面中央に小さく。逆にしたら画面上端中央に小さく。なんじゃこれ?

ちなみに、80 , 100と指定した時は……大きく(元画像は50x50 pixel)なってるけど、どう見ても正方形。うーん、Buttonクラスには使用できてもImageView クラスには使えないとか?

不明だが画像が表示できたので今日はここまで。

初めてのGoogle Android プログラミング (1)



お盆休みの間、せっかくまとまった時間がとれるのでお勉強をしよう!
ということで、この本を使ってAndroid Programmingをやってみることにしました。
目標はこの本の内容を完了させる+余裕があれば アプリの作成(smart.fm 用。ログインした後、……どうしよ?日記ぐらい書けると良いなぁ)
という訳で、まずはEclipseのインストール。
その後、JavaSDKのインストール。1.5をインストールしているように指示しているのを見逃して1.6をインストール。大丈夫か?

2009年6月8日月曜日

ディレクトリ構造のコピー

ディレクトリ構造のみのコピーは
cp -as from to
を行うことで可能。
アーカイブを作る(a)うえで、シンボリックリンクを指定すると、fromが絶対パスで無い場合エラーが出る。が、ディレクトリは作成済み。
fromに間違えて絶対パスを記述した場合は
find to -type l -exec rm {} \;
を実行することで作成されたファイルを削除できる。

2009年5月2日土曜日

sudoを使う

sudo を使いたいユーザーをwheelグループに所属させた上で
rootになってから
visudoコマンドを実行。

viエディタ上でsudoの設定ファイルを編集。

2009年3月21日土曜日

Haskell による関数プログラミング

と、いうイベントに3/20に出席してきた。

講師はタイムインターメディアの山下伸夫さん。
あ、Haskellを勉強する人にとってはふつける(普通のHaskell プログラミング)の人といった方がわかりがいいか。

内容はBMIの算出プログラムの設計からカリー化
リストの扱いと再帰
テキストの自動表示プログラム(monadから何からいろいろ)

と盛り沢山。正直終わるんかいなと思っていたら、やっぱりすべての説明は終了せず、講義資料の解説は後日webでということに。最近CMにもこういうのあるし、流行とか?

(もちろんそうじゃないのは知ってます。)

時間が厳しい事情からからか、途中からテキスト中に使用されている関数などの説明が端折られだしたので、資料を基に復習がいりそう。でも今回のこういうテーマは大いに使えたので今後も行ってほしいな、と。

もし次回があるのなら、Haskell で書かれた実アプリ(小物)の解説とかやってほしいなぁ。文法のたぐいを勉強するところから実用に使用するまでの開きがありすぎるので。

2009年2月15日日曜日

Real World Haskell


Haskell を用いてプログラミングをするための本……のはず。"Haskell is a deep language; we think learning it is a hugely rewarding experience." とか初っぱなから飛ばしてるけど、立ち読みしてこの文章だったら引くなぁ。米国Amazonを使用して購入した初めての本ということで。

生命保険はだれのものか


ライフネット生命保険の社長が書いた、日本の生命保険に関する本。日本の生命保険について、他国の現状との比較を軸に現在このような状況になっている状況を解説している。我田引水にならないように努力して書かれているのはわかるのだが、それでも自社に有利な書き方をしているように読めてしまう部分もある。ただ、日本の生命保険に問題が多いのは保険金不払いを引き合いに出すまでもなく事実なので、「まともなことを書くと自社(ライフネット生命保険)に有利になるのは必然」かもしれない。良書なので、生命保険に興味がある人はこの本を本で少し落ち着いてから保険に加入することをお勧めする。

悲しみの器


佐藤 優「テロリズムの罠 左巻」に紹介されていたので興味を持った本。古い本なので内容が今と合致するかはわからないが、国家・官僚というものを少しでも感じ取れたらと思う。

自動車絶望工場


読みたい読みたいと思っていながらなかなか読めていない本。
大手企業を労働者側から批判すると、内容にかかわらず「左派的な言説でけしからん」とかWebのセカイでは批判されがちで、住みづらい。
そういう大手企業の経営者にとって、人件費を変動費化することはこの上なく魅力的なのか、古くは期間工、今の派遣労働者のような首を切りやすい労働者の需要はなくなることがない。労働の自由化が進めば失業率は下がるという学説が経済学にはあるそうで、その説に従えばきっと期間工がいるおかげで日本社会の失業率は下がっているのだろう。

例えば毎日タンポポの花を乗せるだけ、しかもいつ首を切られるかわからないのに、拘束時間がやたらと長い環境とか、個人のキャリア形成に全くならない仕事を一度経験してしまった人って、どうなるんだろう?
そういう人たちにはきっと次の職を見つけられたとしても同じような低賃金職だと推測できる。で、きっと自動車工場とかはそれに近いんだろうという予断を持っているのでこの本を読みたい。

2009年1月9日金曜日

TortoiseSVN

今更紹介するのも必要がないくらい有名なSubversion クライアント。
なぜ紹介するかというと単なる備忘録のため。

  • インストール時は「ソフトウェア本体」+「language pack」をインストールする必要があることに注意。

  • リポジトリブラウザからリビジョングラフの呼び出しが可能。異なるリビジョン間の比較が行える。
  • 2009年1月8日木曜日

    2009日経平均株価予想

    ロイターの記事に09年の日経平均株価予想があったので最低予想価格順に
    並び替えた上で転記。
    昨年はひどかったが今年はいかに。
    中西文行投資情報部部長 SMBCフレンド証券 5000-14000
    岩澤誠一郎チーフストラテジスト 野村証券 5500-11000
    森裕恭投資情報室長 岡地証券 6000-9000
    岡本征良資金運用グループチームリーダー 十字屋証券 6000-10000
    山田拓也シニアファンドマネージャー ファンドクリエーション投信投資顧問 6000-13000
    嶌峰義清主席エコノミスト 第一生命経済研究所 6500-9500
    黒瀬浩一チーフ・ストラテジスト りそな信託銀行 6500-9500
    吉越昭二シニア投資ストラテジスト 三菱UFJ証 6500-10000
    児玉克彦シニアストラテジスト 東洋証券 7000-9500
    宇野大介チーフストラテジスト 三井住友銀行 7000-9500
    水野善四郎専務 丸三証券 7000-10000
    若林仁トレーディング部長 明治ドレスナー・アセットマネジメント 7000-10000
    倉持宏朗エクイティ部長 東海東京証券 7000-10000
    井原翼理事 リテラクレア証券 7000-11000
    岡本佳久執行役員 みずほ投信投資顧問 7000-11000
    平川昇二チーフストラテジスト UBS証券 7000-11000
    松尾十作投資情報部長 水戸証券 7000-11300
    福永博之代表取締役 インベストラスト 7000-11600
    高塚孝一シニアファンドマネージャー ユナイテッド投信投資顧問 7000-14000
    平野憲一執行役員 立花証券 7500-11000
    瀬川剛エクイティストラテジスト 新光証券 7500-11500
    下出衛チーフエクイティストラテジスト ドイツ証券 7500-11500
    中島肇エクイティ部次長 コスモ証券 7500-12000
    大西史一シニアストラテジスト 日興コーディアル証券 7500-12000
    高橋和宏グローバル・プロダクト企画部部長 大和証券SMBC 7500-12000
    高橋正信チーフストラテジスト いちよし証券 8000-10000
    木野内栄治チーフテクニカルアナリスト 大和総研 8000-11500
    子幡健二専務 エース証券 8500-12000
    矢野正義シニアマーケットアナリスト 明和証券 8500-12000
    大島和隆チーフストラテジスト 楽天証券経済研究所 8500-12000

    http://jp.reuters.com/article/wtInvesting/idJPnTK021092720081224

    2009年1月3日土曜日

    Apache2

    Fedora 10にて、apacheを80番ポート以外で動かそうとするなら、
    /etc/httpd/conf/httpd.conf
    にある
    Listen 80
    の行を変更して、希望する数字に変更する……だけではだめで、SELinuxでそのポートを開放する必要がある。こういう機能がつくことで、一般向けになってきているのだなあ。
    あ、でもFedoraって一般人が使うことを想定していないっけ?

    2009年1月1日木曜日

    Fedora 10 on Virtual Box

    Fedora 10をVirtual Boxにインストールし、起動すると解像度が800x600と640x480しか選択できない。
    Guest Additions をインストールすると、なぜか解像度1024x768が選択可能に。
    ノートPCではこれ以上の解像度が必要ないので、ここで終了。

    以下備忘録。

    xorg.confの記述を下記のように変更しておくことで以前(Fedora 9 以前)は解像度の変更が可能だった。Fedora 10ではxorg.confが見当たらないので、この手法を使えるのか不明。Google 等で検索してみると、Fedora 10からは、xorg.confがなくても動作するようにXorgが変更されているようだが、xorg.confを作成させるコマンドが存在するようなので、作成した上で変更を行えば解像度のFedora 10でも解像度の変更を行えると推測。

    Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    SubSection "Display"
    Viewport 0 0
    Modes "1280x800" "1024x768" "800x600" "640x480"
    Depth 32
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Modes "1280x800" "1024x768"
    Depth 24
    EndSubSection
    EndSection