Home > Archives > 2009年6月 Archive

2009年6月 Archive

エンベデッド試験、不合格

午前Ⅰ得点 95.20点

午前Ⅱ得点 100.00点

午後Ⅰ得点 53点

午後Ⅱ得点 ---点

ということでES試験は午後1で脱落でした。

受験記でも書いたとおり、午後1だったわけですな...。

時間ギリギリまで回答に時間がかかっていたのと、配点の高い問題を落としたのが痛かったんだろうね。午後の問題はまだ答え合わせしてないのでハッキリとは分からないけど。

あと、午前問題の対策ばかりし過ぎて、午後問題の対策をほとんどしてなかったのも敗因の一つだと思う。午前の回路系、電気系の問題が不安で勉強したのに、実際は全く出なかったという...。

まぁ、おそらく来年リベンジはすると思う。たぶん。

秋試験は、受験するかどうかも含めて考える。ちょうどプロジェクトも佳境に入る時期だし。でももし受けるならセキュリティかな。

住民税、また上がる

住民税の通知書を貰ったのだが...また今年もずいぶん住民税が上がっている。

去年、トラブルプロジェクトで残業しまくって残業代が増えた分なんだろうなぁ。今年はどうなるか分からないけど、去年ほどの収入は無いはずなので上がった分の住民税は痛い。今年は昇給も無かったし、実質マイナスなんじゃないか。

制度がそうなっていて仕方ないとは言えども、あれこれと天引きされた結果の手取りを見るとガッカリする。

Anrdoid NDKは、まだまだ...

AndroidでNativeコードを書くためのNDKがリリースされて、ドキュメントなどをいろいろ読んだりしてみたけれど、まだ現時点では実用レベルでは無いかなぁというところ。

Googleもドキュメントの中でそう書いているし、Nativeコードの正式サポートは次期donutからというのもあるんだろうけど。

ただ、AndroidのNativeコードにおけるGoogleのポリシーというのは少しずつ見えてきた感じがする。

SystemV系IPCの非サポート、というか使用禁止*1がまず目に付くところ。セマフォや共有メモリが使用できないので、Unixからプロセスなどを移植してくるときなどに制約に引っかかるケースがあるかも。

後は今後のAndroidのバージョンでframework部分がどれくらい解放されるのかが気になる。オープンソースなので非公式で使うこともできるだろうけど、Binderは他とのやりとりで使えないと困るだろうし、Surfaceなんかも独自のMediaPlayerやカメラや映像系デバイスと連携させるなら使いたいところだし...。

HTC Heroにはdonutが載っているという噂もあるし、次期SDK/NDKがいつリリースされて、どこまでNative側が使えるようになるかは個人的にも追っていきたい。

  • *1: SYSV-IPC.TXTに書かれている

PCの動画ファイル整理など

昼から雨が降る予報だったので、今週末は引き籠もりモード。

...で、PCに入っている録画した番組の動画ファイルなどを整理したり、新しくHDDレコーダからコピーしてエンコードしたり。

未だに部屋のテレビはアナログ環境なので、こういう事もできるんだけど、デジタルになったら面倒になるんだろうなぁ。

過去に録画したのを見たりしながら、まったりと過ごす。ハードディスクの容量をかなり圧迫してきているので見ない物を消したり。

Android 1.5 NDK, Release 1

Android 1.5 NDK, Release 1 | Android Developers

NDK出てきましたね。

中身は確認してないけど、ドキュメントとか多少は含まれてるんだろうか?それとも単にフルソースからの抜粋だけなのか...。

あとで確認しよう。

設計で悩む

マルチスレッドのモジュールのスレッドなどの構成設計中。

正直なところ、Unixのマルチスレッドの経験が無いので、どういうところに気をつけるべきか、スレッド間通信はどうするのが良いのか今ひとつ決められない。

スレッド自体はWindows上ではドライバやアプリで使った経験があるので、イメージはできるけどせいぜい通信プログラムで送信と受信のスレッド立てた程度だもんな...。

今のところ各スレッドにメッセージキューを設けて要求をやり取りしようかとは思ってるけど、優先度付きキューにしたほうが良いんじゃないかとか、この方法でのオーバーヘッドはどうなんだろうとか、気になることはいろいろあるのよね。

アミノバイタルをお試し

SOYJOYつながりで、健康食品を検索していたらアミノバイタルが効果があるというのをいくつか見かけた。

運動して無くても、仕事から帰って寝る前に飲むだけでも次の日が違うとか書いてあったので、試しに3本入りのワンデーパックというのをドラッグストアで見つけたので買ってきた。

さすがに最初から30本入りとかの箱買いをする勇気は無かった。

...3本が1日分...?で、357円もするのか...うーん。

私の場合は激しい運動をするわけでもなく、単に仕事の疲れが次の日に軽くなればいいなぁという程度なので、寝る前に1本飲んでみることにした。実感できるほど効果が出るかどうか。

1本約120円。安めの栄養ドリンクとほぼ一緒と言えばそうだけど...。そういえば2,3年前にグリナを試したことあったけど、効果がよくわからなかったってのがあったなぁ。この手のアミノ酸系サプリは自分には効果が薄いのかも。

アミノバイタル 2200 ワンデーパック 3本入 [BCAA]
アミノバイタル 2200 ワンデーパック 3本入 [BCAA]
味の素
売り上げランキング :

おすすめ平均 star
star美味しい

Amazonで詳しく見る
by G-Tools

SOYJOY生活

夕方、残業始めの時間にSOYJOYを食べるようになったら、SOYJOYが意外と腹持ちが良いことに気づいた。

少しずつ食べながらお茶や水分を採ると胃の中で膨らむのか、1本でも腹に溜まった感がある。これなら帰宅する時間まで空腹はしのげそうな気がするね。今まで普通にパンやらスナック菓子やら買ってきてたけど、今度からはこれでなんとかなりそう。...飽きなければ。

カロリーメイトとかと比べてドライフルーツが入っていて味に変化もあるし、変に粉っぽく無いし。ちょっと単価が高いかなぁと思わないでも無いけど、菓子パンやおにぎりを買うことを考えれば...と思うようにしよう。

体が不調で仕事も不調

今日は一日中頭がボーッとしてほとんど仕事が手に付かなかった感じ。

日曜からの寝不足なのか、急に蒸し暑くて体調崩したのかよく分からん。

今週もやらないといけないことは盛りだくさんなので、あまり体調崩したくないんだけどなぁ。設計やら調査やらたくさんあるし、ソースの解読もあるし、とにかく一日が濃い。

何やら難しいソースを一日眺めているとホントに疲れる。もっと読解スキルがあれば良いんだろうけど、C++はブランクが長いし、テンプレートやら使った経験もほとんど無いしまだまだ力不足なので思ったより効率が上がらないのが辛いところ。

といっても頑張るしか無いんだけどね...。

ビジネス雑誌も時が移れば...

部屋の片付けをしていたら、2005年の日経ビジネスアソシエが出てきた。

その時の特集が「仕事は「量」できまる!」で、サブタイトルが「人の倍の仕事をこなす「1日12時間+α」「ニューハードワーク術」だった。

「ハードワーク」は時代遅れじゃない! - ビジネススタイル - nikkei BPnet

おそらく上記の記事と同じような内容と思われる。

で、2009年。

ワークライフバランス新次元 - 日経ビジネス Associe(アソシエ)

「ワークライフバランス」という言葉がビジネスパーソンの間で注目を浴びている。男性も女性も、働くうえで「仕事(ワーク)」と「仕事以外にやりたいこと、やるべきこと(ライフ)」を両立させられるようにしようという考え方だ。

なんかこう...時代が違うっちゃそうなんだろうけど、ビジネス雑誌がいかに「流行を煽ってるか」って感じが見えてちょっと可笑しかった。

アソシエは若い世代がターゲットのはずだけど、これに振り回されたりしてたらかわいそうね。

まぁ、アソシエに出てくる人たちは、若くして起業してるか、社内で頭角を現してる最中の人か、まぁ普通の人とは一線を画してるような人ばっかりで、私みたいな普通の人間が読んでも浮世離れした感じがしていたけど...。

それでも1~2年くらいアソシエを定期購読していたことがあるのです。仕事できるようになりたいとすごく思っていた時期があって。で、処分するために改めて数年分のアソシエを見てみると、

  • 手帳術
  • 時間管理術
  • ロジカルシンキング
  • 話し方・会話術
  • 身だしなみ

これくらいのパターンの記事がローテーションで特集されていただけで、毎号買う必要も無かったのかなぁと今となって思った。今日ごっそり処分したけどね。

Phenom II X4 945に換装した

マザーはGIGABYTEのMA790FX-UD5P

GIGABYTEのマザーはもう5年ぶりくらいじゃなかろうか。基本的に私の自作歴ではほとんどASUSなので。でもPhoenomマザーではGIGABYTEのほうが安定しているという噂だったので今回選んでみた。

CPUはドスパラでほぼ相場どおりの21,720円、マザーはポイントがあったのでビックカメラで。

Core2Duoだった時と比べると、ベースクロックが2.13GHzから3.0GHzに上がっているのと、コア数が2から4になっているせいか、細かい動作がキビキビしている感じ。ブラウザでページ遷移するときとか、Windowsアプリでメニューを開くときとか細かいところとか、livedoor readerでRSS読むときとか。

最近はVirtualBox環境を使うことも多くなったので多少は快適になるだろうか。

ただ、Windows環境を再インストールせずに引き継いだせいか、ショップ店頭のデモマシンほどの速さは無い。グラフィックボードが古いからか、2年越しのWindows環境だからか...。

さて、余ったCore2Duoはどうしよう。Athlon64のMicroATXマシンがあるのでそっちに載せて実験用マシンにしようかな...。

PhenomII X4 945

魔が差したとか言えないのだが...。

メインマシンのCPUを載せ替えようとはずっと思っていたのだけど、差し迫って今のパフォーマンスに困っていることも無いので、放置してたんだけど何だか衝動買いをしてしまった。

今から換装する予定。Intel Core2Duoからの載せ替えでマザーとCPUが入れ替えだけど、できればOSは入れ替えずになんとかブートできないかなぁ...と淡い期待をしている。この際に入れ替えるのも良いんだけど、慣れた環境を作るまでが面倒だし。

ということで、今日明日中には動く所まで持って行きたいな。

開発用にAndroidシステムのセキュリティレベルを下げる

Native層からSurfaceを扱うコードを書いたのだけど、ACCESS_SURFACE_FLINGERの権限が無いと警告が出てAPIが動いてくれない。

Androidはセキュリティ確保のためにシステムリソースへのアクセスに制限がかかっていて、特にACCESS_SURFACE_FLINGERの場合は署名付きアプリにしないといけないようだ。

で、署名付きアプリの作り方はググるといろいろ出てくるのだけど、正直なところ実際の開発中はいちいちこの手順を踏んでると面倒なことこの上ない。

…ということで、システム側のセキュリティレベルを下げて署名無しアプリ(デバッグ用署名)でも動作するように設定してみる。

frameworks/base/core/res/AndroidManifest.xmlにパーミッションごとのセキュリティレベルが書かれている。

ACCESS_SURFACE_FLINGERの場合は、

    <!-- Allows an application to use SurfaceFlinger's low level features -->
    <permission android:name="android.permission.ACCESS_SURFACE_FLINGER"
        android:label="@string/permlab_accessSurfaceFlinger"
        android:description="@string/permdesc_accessSurfaceFlinger"
        android:protectionLevel="signature" />

とprotectionLevelが”signature”となっていて、署名が必要な事を示している。

これを、”normal”に変更すると署名が無くても、アプリ側のAndroidManifest.xmlにACCESS_SURFACE_FLINGERのパーミションを付けておくことで関連するAPIが動くようになる。(もしかすると、ソースツリー全体のmakeが必要かも)

パーミッションレベルは、リファレンスの<permission> | Android Developersを見てみると、

  • normal
  • dangerous
  • signature
  • signatureOrSystem

の4つがあるようだ。詳しい解説まで読んでないけど、dangerousってなんだろうな。

とりあえず開発中はこの設定で進めておいて、リリース用テスト環境などで別途セキュリティ面のテストするほうが開発効率は良さそうな気がする。

(参考)Accounted error when display video frame with surfaceflinger - android-framework | Google グループ

Androidというプラットフォームに関わる開発者の一体感

仕事でやらないといけないことがどんどん積み上がっていく...。

技術調査にも時間を割きたいし、今まで調べた内容についてもメンバーに展開できるように資料を作りたいのだけど、設計も進めないといけないしって感じでまぁ時間が足りてない。

技術調査した内容を展開する作業を優先するほうが、周りのメンバーの手戻りが減る分、生産性には寄与しそうではあるな。なんとか時間を作ってメモ書きでも残すかなぁ。

AndrdoidのNative層の解析も進めたい。まだまだ描画周りを掘り起こしていって仕組みを解明していきたいのだけど。

未だにGDBでブレークポイントを設定しようとするとエラーになるので、仕方なくあちこちにログを埋める手法で動作を見ていくしか今のところ無さそう。GDB何でうまく動かないんだろう...。

今までクローズドな組込の仕事が長く続いていたので、オープンな環境のAndroidを触ることができるのはけっこう楽しい。まぁ資料が圧倒的になさ過ぎるのだけど、ネット上にいろいろ情報があったりして、世界の開発者が同じプラットフォームでいろいろ試行錯誤してるっていう、なんとなく同じベクトル向いてるなって感じられるのが良いね。

まぁこれはiPhoneだったり、Linuxだったり、新しいソフトや開発環境が出てきたときに起こることなんだけど、今回は自分がAndroidという波に乗れた感じがしてそれだけでちょっと楽しい。

またそろそろ頑張らなければ

先週あたりから再び仕事が忙しくなって、帰宅する時間も遅めになってきた。

何ヶ月かは勤務時間も少なくて楽だったんだけど、ちょっとボリュームの大きな仕事が舞い込んできてしまった。今から冬の始めくらいまでは忙しくなることが多くなりそうだ。

技術調査とか設計のための検討とかやることがたくさんな割には、メンバーが少ないので余計に忙しいのかもしれないけど...。

社会保障番号をまた別システムにするの?

社会保障番号、11年までに 安心会議報告書

国民を一元管理してるシステムで住基ネットってのがあるのにね。なんであれに統合せずに別システムを作ろうとしてるのかがわからない。...というか、NTTデータみたいな官庁システム屋と関連産業に予算が落ちてくるってことなんだろうけどね。

あとは国民背番号制に反対する人たちがまた出てくるだろうけど、それはどうするんだろうね...。はてブ見てると、番号付け自体に反対している人は少なそうではあるけど。

でもこの流れでいくと、最悪のパターンとしては、住基ネット、社会保障番号、国民納税者番号、と3つの「全国民規模のデータベース」ができるかもしれないってことなのかな。まぁ関連産業の人には嬉しい話なんだろうけどさ...。

本を燃えるゴミに

ブックオフに持って行くか他にリサイクルできないかと考えていた技術書などをはじめとする本だけど、もう不要なものを思い切って燃えるゴミとして出した。

10年前の技術書とか売れるとも思えないし、会社とかでも需要は無さそうだし。

XSLTの本とか、当時はXSLT使ってHTML出力やったりしてたな...。

それにWebサービス(WSDLを使う"昔の"もの)の本も手元にあったけど、これもバズワードで終わってしまった感じ。まぁ一部は今のWebサービスAPI見たいな形で受け継がれてるのかもしれないけど、当時のBtoB、BtoCでの"Webサービス"はあまり日の目を見なかった気がする。

とまぁ技術の栄枯盛衰で持っていても価値の無い本も多くなった。あとは自分が組込系の仕事に移ってから、OracleのようなDB系やサーバーサイドJava系の本も要らなくなった。

なので、これからも手持ちの本と雑誌は整理してゴミに出してしまうことにしよう。わざわざ売りに行って一冊30円とかの買取で、かつちょっと汚れてるからとかで買取不可で持って帰る羽目になることを考えると捨てたほうが早いな。

正直なところ、今まで本を捨てるってことをほとんどしなかった。自分でお金出して買った物だし、読まなくなった本でも自分の所有物という思いが強くてなかなか処分できなかったのだ。

なので部屋に本が増える一方だったのだけど、さすがに数年で陳腐化する技術書やビジネス書、そして収納場所の問題から処分を考えないといけなくなって、ようやくここ1,2年くらいで本の処分に思い切りが付くようになったかなぁというところ。

博多駅に二つも百貨店は要らないような...

asahi.com(朝日新聞社):博多郵便局が大型商業ビルに 百貨店誘致、13年度開業 - ビジネス・経済 (1/2ページ)

博多郵便局を建て替えるという話しは聞いていたけど、百貨店入れる必要あるのかな...。

駅本体には阪急が入るわけだし、これ以上あのエリアに百貨店があってもそこまでの需要は無いと思うんだけど。もともとあの周りはオフィス街で、それ以外の商業施設があまり無い分集客力は天神に比べて負けそうな気がする。

そもそも今落ち目と言われる百貨店を核テナントってのもなぁ。そんなにああいうところで買い物する人がいるのかどうか。新博多駅に入りたかった井筒屋でもまた誘致するのかな。

でも、郵便局の跡地に何を作ればいいのか良いアイデアが思いつかないな。新博多駅に阪急もハンズもシネコンも入って一通りの商業施設は出来るんだろうし、ホテルも駅周辺に既にたくさんあるし、オフィスビルはそこまでの需要があるかどうか分からないしなぁ。

目が疲れやすい気がする

どうもここ2,3ヶ月くらい、そんな感じがする。

会社で一日中モニタを見てると、だんだんボーッとしてくるような感じ。単に体調が万全で無いのか、メガネの度が合わなくなってきたのか、姿勢が悪いとか別の要因なのかよく分からないけど...。

仕事中はあんまり休憩もし辛いので、目薬さしたりしてるけどどうなんだろうな。

メガネをしていても夜の視力が少し落ちてるような感じもするので、度が進んでるのかなぁ。まぁ30過ぎると少しずつ変調を来してくるってことかも。

新しいプロジェクト

今週くらいから本格的に新しいプロジェクトが始動。

例によって短納期、技術検討が必要な部分の多い、リスキーな仕事。

またそろそろ忙しい日々が続く生活が戻ってきそうね...。今年度は少し余裕を持って過ごせるかと思ったんだけど、そうもいかなったようだ。

今は資料読みと技術調査と大まかな構成を考えているところ。範囲が少し大きいのでまだまだ頭の中で整理できてないところが多いな。

PCパーツのリサイクルはどうすればいいのだろう

デスクトップPCはもう10年近く自作してきてて、CPUをアップグレードしたりしたときに余ったマザーボードやグラフィックカードなどがそれなりにある。

もう動くかどうかも分からないし、そもそも需要も無いだろうし処分しようと思っているのだけど、単に燃えないゴミとして出すのもレアメタルがどうこうという話を聞いたことがあるので何となく気が引ける。もしきちんとリサイクルしてくれるところがあればそんなところに処分をお願いしたいなぁ...と。

ちょっと調べてみると、インプレスの記事にも出ている、パソコンファームってところがあった。ちょっと見た感じPCパーツのみバラバラで送って大丈夫かどうか分からないけど...。

ググってみると、人力検索、Q&A系のサイトもよく引っかかるのだけど、ほとんどの回答が「ヤフオク」「ソフマップ」「燃えないゴミ」なんだよね...。質問者は「古いパーツ」とか「手間をかけずにリサイクルしたい」って書いてあるのに、何だかその意をくんでない回答が多すぎる気がする。

もう動作するかどうか分からないのをヤフオク出すのも面倒。いちいち発送とかしないといけないし、数百円それで手元に入ってもね...。それに買取もちょっと年数が経った物は買取不可がオチだし。

とりあえず業者系をもう少しリサーチしてみる予定。

iPhone3GS欲しい

次の機種はiPhoneにしようかと考えていたら、3GSがけっこう良い感じ。

まぁ、今の割賦が11月まであるのですぐに機種変というのはお得じゃ無さそうね。Twitterで教えてもらったのは新規契約がお得らしいということ。今の端末は割賦が切れる11月までほぼ冬眠させておくってことね...。

iPhoneも今すぐ欲しいというわけでもないので、キャンペーンやってる間に買えばいいかな。

あ-、新規だと電話番号が引き継げ無いのかな?んー、ちょっとそれは困るかも知れないな。そうすると機種変しか無いのか...?

WWDC

最初のMacbookProのアップデートの発表が終わったところで寝てしまった。

結局、SnowLeopardは9月、iPhone 3GSが発売ということになったのね。

SnowLeopardが9月に延びても、値段が$29ならそれ搭載のハードの買い控えはあまり起こらないと踏んでMacbookProのアップデートを先にやったんだろうか。

でもこのタイミングだと9月にはSnowLeopardプリインストールモデルが出るわけで...。そこまでまたハードスペックの微変更が入る可能性が高そうだしな。

AndroidのフルソースからビルドしたエミュレータでSDを認識しない場合

タイトルそのままなんだけど、私の環境で発生して解決できたようなのでメモ。

AVDを使わずに、フルソースをビルドして出来上がった各種イメージファイル(out/target/product/generic/system.imgなど)を使ってエミュレータを起動した場合(emulatorのパラメータで-system/-ramdisk/-kernelなどを付けたとき)、-sdcardでSDイメージファイルをちゃんと指定していてもエミュレータがSDイメージを認識せずに「SDが刺さっていない」ことになってしまうことがあるようだ。

mksdcardでイメージを作り直したりしても同じで、しばらくハマっていたところで本家フォーラムで回避策を発見。

Cupcake Emulator do not mount SD card image - Android Developers | Google グループ

実際のバグトラッキングページはこちら↓。

Change 9452: Ensure that /system/etc/vold.conf is created in the "generic" product. This is necessary to let the emulator mount SD Card images properly through the "vold" mounting daemon | review.source Code Review

どうもソースをmakeしたときに、out/target/product/generic/system/etc/ の下にvold.confというファイルが作成されないかららしい。

ちなみにvold.confの中身はというと、

## vold configuration file for the emulator/SDK

volume_sdcard {
    ## This is the direct uevent device path to the SD slot on the device
    emu_media_path /devices/platform/goldfish_mmc.0/mmc_host/mmc0

    media_type     mmc
    mount_point    /sdcard
    ums_path       /devices/platform/usb_mass_storage/lun0
}

と、SDのマウントの設定が書かれている。これが無いとそもそもエミュレータがSDを認識しないようになってる模様。

さてvold.confが正しく生成されるために、ここにある差分をマージする。

diff --git a/core/main.mk b/core/main.mk

--- a/core/main.mk
+++ b/core/main.mk

@@ -209,6 +209,14 @@ ifeq (,$(filter %:system/etc/apns-conf.xml, $(PRODUCT_COPY_FILES)))
     $(warning implicitly installing apns-conf_sdk.xml)
   endif
 endif
+# Install a vold.conf file is one's not already being installed.
+ifeq (,$(filter %:system/etc/vold.conf, $(PRODUCT_COPY_FILES)))
+  PRODUCT_COPY_FILES += \
+       development/data/etc/vold.conf:system/etc/vold.conf
+  ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
+    $(warning implicitly installing vold.conf)
+  endif
+endif

# If we're on an eng or tests build, but not on the sdk, and we have
# a better one, use that instead.
ifneq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)

パッチ適用後もう一度makeすると、vold.confが生成される。またsystem.imgも更新されるようだ。

これでエミュレータを起動すると、今度はきちんとSDが認識されるようになる。

…これで半日くらい潰した…。

Android解析進まず

週末もいろいろAndroidの解析をやってみたのだけど、ほとんど進んでない。

一番知りたいSurface周りはまったくと言って良いほど。Surafce,ISurface,SurfaceComposer,SurfaceComposerClient,SurfaceFlingerなど関連クラスがいろいろあるのだけど、その関連性もよく分かってないまま。

システム構成には"SurfaceManager"というSurfaceの重なりなどを司っている部分があるはずで、単純なSurfaceオブジェクトをManagerの管理下に置かないといけないのか、置くための手順はあるのかなどなど謎が多い。

ついでにSurfaceを内部で扱ってる感じのVideoViewとCameraクラスを見てるんだけど、これ内部でSurfaceクラスとのフレンドクラス指定とかやってるんだよな...。

Surface::getISurface()を使うためらしいんだけど、フレンドクラス指定とかやられると、第三者が似たような機能のクラスを作るとすると、Surfaceクラスの元ソースにfriendを入れないといけないってことだよなぁ...。うーん、元ソースは汚さずに拡張したいんだけどなぁ。

あとは、エミュレータでのNativeフレームワークのデバッグ方法について。かなり頑張ってみて、少し光が見えてきた感じ。フルソースをビルドするとシンボルが別個に生成されるのでそれをGDBに読ませれば大丈夫そう。

クールビズ

6月からクールビズが始まった。今年で5年目らしいね...。

なんとなく毎年何を着ようか微妙に迷う。クールビズなんてそんなに着る物の選択肢は無いんだけど、色づかいとかどうも自分にはしっくり来ない物もあったりするので、スーツの上着を着ないだけのような格好に落ち着くことが多い。

半袖シャツなんかも何となくオヤジくさい感じがして去年まで着なかったし。自分に合う組み合わせを本気で考えたほうがよさそうだな。

シャツはまぁユニクロあたりに行けばそれっぽいのはいくらでも安く手に入るんで、だいぶ便利にはなったけど。

Androidのコア部分のデバッグは...?

AndroidのNativeのシステム、ライブラリなどのデバッグをしたいのだけど、やり方が今ひとつわからない。

gdb使うのは間違いないけど、ソースレベルデバッグするためのシンボルとかはあるんだろうか。フルソースをビルドすると作られたりするのかなぁ...?

やりたいのは、エミュレータにgdbリモート接続して、mediaserverなどの動きを見たいのよね。

自分で作ったNativeモジュールなら、gcc -g でデバッグ情報埋めたものをエミュレータに転送すれば大丈夫そうなんだけど、システムモジュールはどうなんだろうと。

ソースだけ追っていても動作が分かりづらいのでデバッグトレースしたいと思ったのだけど、gdbの経験が無いからかさっぱりやり方がわからない。

AndroidのNative層でのログ出力

まだ調査中だけどとりあえず動いているのでメモ。

(1)LOG出力の際のタグの定義と、Log.hのインクルード
warningが出るのでLOG_TAGはundefしておいたほうが良いはず。

#define LOG_TAG "JNI-Test"
#include <utils/Log.h>

ちなみにLog.hの場所は以下。

frameworks/base/include/utils

(2)Android.mkにlibutilsとlibcutilsをリンク対象に含める
これを含めないとLOGV()でログが出力されなかったり、LOGD()やLOGI()を使おうとするとビルドエラーになったりする。
ちなみにEnabling LOGD messages in Webkit - Android Developers | Google グループでのやり取りを参考にした。
LOCAL_SHARED_LIBRARIES:= \
    libutils\
    libcutils


(3)LOGD()やLOGI()などをコードに埋め込む
GDBでデバッグが面倒な時もあるのでログは重要だと思う。LogCatで手軽に見ることができるので。

Androidのソースツリー内にあるJNIのサンプルソース

AndroidでJNIを使うサンプルがソースの

development/pdk/ndk/samples/samplejni

以下にあるのを発見。

NDKというのが、"Android Native Development Kit"といってShared libraryを作るための一式らしい。samplejniサンプルは、.soを含んだ.apkを作るところまでのサンプルになっているようなので、アプリパッケージにNativeのライブラリモジュールも含めたい場合には参考になるかも。

あと、javahを使ってヘッダファイルを生成せずに、JNI_OnLoad()から動的にJNIに関数を登録する方法のサンプルにもなるかな。

ただ、まだNative層のライブラリのドキュメントが整備されていない(?)*1ので、ほかのソースを見ながら手探りでやっていくしかないんだけどね...。

  • *1: なんだかdoxygenのconfigが入ってるのでdoxygenで生成できたりするんだろうか

Google IOの講演ビデオ

Google Waveのデモビデオの完全版です

Google Waveの講演ビデオを見たいのだけど、なんか時間が取れなくてまだ見ていない。いろいろ興味はあるんだけど。

プレゼンターの英語も聞き取りやすそうだし、英語の勉強にも良いかもな。

ISOファイルをUSBメモリからブートしたいのだけど

USBメモリにWindows7のISOを展開してブート、インストールしようといろいろ試してるけれど上手くいかない。

unetbootinもダメ、BIOSでCDROMエミュレートさせてもダメ、USBメモリをアクティブパーティションにしてもブート時にエラー画面が出る、などどれも失敗。これで上手くいってる人もいるので、システム環境の問題なんだろうか。

光学ドライブが壊れているのでできればUSBメモリからISOがブートできればいいんだけどな...。

今日は時間切れなのでまた時間のあるときに。

BeagleBoardの弟分?LeopardBoard

LeopardBoard.org - Product details

BeagleBoardといえば、$149なのにARMのCortexコアとグラフィックチップが載っている高パフォーマンスのボードだけれど、その弟分とも言えそうなボードが登場していた。

それがLeopardBoard。BeagleBoardと同じくTI社がバックについているのか、TI社製のARM9CPUが載っていて、こちらは$99。Ehternetが標準でついているのが違うところかな。あと別売りでカメラが付けられるんだとか。

ARM9ならLinuxはどれくらいのパフォーマンスで動くんだろうね...。まぁサーバとか簡単なセンサネットワークサービスには十分なんだろうと思うけど。

BeagleBoardほどの性能は必要ないけどっていう場合とか、安いボードを何枚か欲しい、とかLANを繋いで何かしたい、とかにはまたまた面白そうなボードが登場ですね...。

サイトを見ると、注文はまだ直接のメールオーダーしか無いみたい。DigiKeyとか通販サイトで買えるようになるとまた話題になりそう。

※シリアルケーブルの形状がBeagleBoardと変わってるなぁ...。一緒にしてくれれば買う物が減って良かったのに。基板のスペース上仕方なかったのかな。

ゲームと株主優待券を売ってきた

前々から処分しようと思っていたPS2のゲーム。

もうゲームをゆっくりやる時間も取れないしほとんど遊ぶことも無いので、ソフトを売ってきた。グランツーとかFFXとかそれなりに有名どころは遊んだしもういいかな、と。

とりあえずPS2本体(初代)は売っても二束三文だろうし、まぁ気が変わったときのために置いておく。ついでに簡単に遊べるゲームを数本(電車でGO系と、三国無双)残し、PSPのリッジレーサーと、GBAのMOTHER1+2、マリオも一緒に合計で18本を売って8896円。思ったよりまとまった額に。

実はGBA-SPの本体も持って行ったのだけど、箱・説明書無しだと10円買取になると言われてやめてきた。いくらGBAとは言え本体で10円は無いだろう...。

あと、吉野家の株主優待券。大黒屋に持って行ったら額面の50%だって...。うーん、と思ったけど他の所に持って行くのも面倒だった、というか日曜定休のチケットショップが多くて近場ではココしか無く仕方なくそのまま売ってきた。次回は絶対に別の店に持って行こう。

Index of all entries

Home > Archives > 2009年6月 Archive

Feeds

Return to page top