「 2009年07月 」一覧

Firefox3.5のCPU最適化バージョン

昔から、正式リリースとは別に有志による最適化コンパイルされたバージョンがあるのだけど、さっそく3.5に対応したものが出ていた。

Firefox 3.5 Release Optimized Build

日本語版もあるし、Portable版までありますよ。

Core2DuoやPhenomのような最近のCPUならP3をダウンロードすればOK。

...で、Phenom X4の私の環境でやってみたんだけど...どうもページの読み込みが途中で止まる時があるみたいだ。ページ内のHTML部分と画像がある程度表示された後、他のコンテンツを取得しに行こうとしてそのまま通信が止まってしまうような感じ。

なんというか、通信スレッドがいくつも立ってHTMLやら画像やらを平行して取得するなかで、その内のいくつかのスレッドがHTTPのシーケンスの途中で止まってしまってるような雰囲気というか...。

まぁ、こっちの環境も、3.5βからのProfileを使い回してるし、セキュリティソフトのパケットキャプチャが悪さしてるのかもしれないし何とも言えないけどね。


AndroidでJavaとNativeとのやり取り(JNIは絶対必要?Socketなどは…?)

本家フォーラムにちょっと興味深いネタが。

Registering a java method as a callback function - android-ndk | Google Groups

NativeからJavaのメソッドをコールバックで呼びたいんだけど...という質問。

そのレスの一つが

Use a native method to create the pipe and return the read end to the Java side, and that should be it.

JavaとNativeプロセスの間をパイプを使ってやったらどう?ってことらしい。

ああ、Javaってパイプ開けるのね...と思うと同時に、JNI使わなくてもNativeとやりとりしても(Android的に)いいんだろうか?という疑問が沸いた。

こないだリリースされたNDKでもJNI経由が前提っぽいし、今の時点ではオフィシャルにはNativeはJNI経由でということなんだと思う。

ただ、Androidのソースを見ているとJavaからsocketを使ってNativeとやり取りしている場所がある。

mydroid/frameworks/base/services/java/com/android/server/MountListener.java の中で、Nativeプロセスの"vold"に対してsocketを使っている。

おそらく、SDカードのマウント状態を監視している(と思われる)Nativeのvoldプロセスと、UI上やアプリへのintentでSDの抜き差しなどを通知しないといけないJava側のMountServiceとでいろいろやり取りしてるんだと思う。

...で、この方法、使って良いのかな?

もちろん、公式アナウンスが無いから表向きは「ダメ」なんだろうけど。今後SDKやNDKのバージョンアップとともに解禁になったりするのかな。対象デバイス固定の専用アプリなんかでは、どう実装しようが自由と言えば自由なんだろうけどね。

個人的にはframework部分も早くNDKで正式サポートして欲しい。気になる機能がたくさんあるし。


MTのMarkdownプラグインで「もっと読む」が勝手に入る件

movabletypeでブログを書くときは、SukerokuPlus(HatenaLike)ではてな記法を使っているのだけど、一部のエントリを書くときにはMarkdownを使うことがある。

で、MTでMarkdownを使うと、本文しか書いてないのに「もっと読む」とか「Continue Reading」が表示されてしまう。

なんでかなーと思ってググってたら、Markdown for MT fix :: Adam KalseyというサイトでMarkdownプラグインに修正パッチが載っていた。

早速パッチあてをしてエントリをリビルドしたらOKだった。本家サイトでは2004年からMarkdownプラグインの更新が無いのでおそらく今後も修正されることはないんだろうな...。


新人にアドバイスするときに気をつけること

新人に限った話しでは無いのかも知れないけど、特に素直な人だとこちらがアドバイスしたことを鵜呑みにしてしまったりする場合が時々ある。

自分も実力はともかくとしてベテランとか呼ばれる年齢になってきたし、いちおう役職なんかも付いてるので、新人や若い人などから見れば「上の人」に見られるんだろうとは思う。だからこっちのちょっとした一言を受け止め過ぎたりするんだろうけどね...。

なので「こういう考え方もある」「個人的にはこう思う」など、ある種の「逃げの一言」を付け加えるようにしている。仕事のやり方とか考え方とかって一通りじゃないし、人それぞれ向き不向きもあるから、こっちがアドバイスしたことが100%の正解とは限らないからなぁ。

私の伝え方も改善の余地があるんだろうけど。

若かった頃とは違った気の使い方をしないといけなくなってきたんだなぁと思うと、これが歳を取るって事か、と思う。実力は年齢相応では無いのが悲しいところなんだけどねぇ。



AndroidでNativeのデバッグが(未だに?)できない件

Debug Native JNI code on Android emulator - Android Developers | Google Groups

いまだに本家フォーラムにこの事象の質問が上がってくるということは、まだ直ってないのかなぁ...。

一ヶ月くらい前に同じ現象で悩んだまま放置してたんだけど。

NDKに付いているgdbserverとgdbはcupcakeのバージョンと一緒なのかな?新しくなってたりしないんだろうか。

でも上手くいっている人もいるっぽいし、よく分からん。


未経験入社でも化ける人は存在する

極道的研修のあらまし「引数と戻り値が分かりません」 - 歩きつづける ゆり 咲きつづける

ちょっと大きなSIerの新人研修はどこもこんな感じじゃないかと。

そもそも、プログラミング経験を持って入社してくる人が少ない。本当に少ない。

そんな状態で1ヶ月ちょっとの集合研修でどこまで教えられるかって考えると、正直なところあまり期待できない。開発演習と言いつつ、設計書は既に用意されてるのでコーディングのみとか、先輩講師によるレビューがあるのかと思いきや、新人同士でのレビューだったりとか。

まぁ、4月1日の時点で「プログラムってどんなの??」っていう人がそんなすぐにあれこれできるわけでは無いし、開発の各フェーズについて授業を受けても体験してないので実感も沸かないだろうし...。

いちばんガッカリするのは「興味を持って無さそうな子」。これはいくら懇切丁寧に教えても成長が遅いし、2年ぐらいすると辞めてしまうケースが多い。その2年間、お互いが不幸な気がするんだよな...。これなら研修中に辞めてしまったほうが賢明だと思う。

でも意外と多いのね。採用にも問題あると思うんだけど。

逆に、未経験入社でも入社1,2年して化ける子もいるのも事実。

  • 興味を持っている
  • 論理的思考ができる
  • 物怖じしない
  • 自分の思っていることを周りにはっきりと伝えられる
  • 自力で調べるスキルがある、もしくは他人に上手に質問できる

これらのうち3つくらい当てはまれば、未経験でも大抵の人はエンジニアとして使えるようになってると思う。根っからのギーク系の人間と比べれば負けるかもしれないが、良い線は行っているし、交渉力やマネジメントのほうにスキルを見いだす子も出てくる。

なので、未経験を採用するのは100%間違いでは無いのかなぁと。確かにリスクのほうが大きいけど、ネット上で見られる意見のように「未経験者を採用すること自体が間違い」みたいな全否定の意見も少し疑問が残るかな...。

だって、学生でプログラミングと情報工学をきちんと習得している人材なんて、滅多にいないんじゃないのかな。

正直、そんな優秀な新卒とギークだけしか仮にこの業界が採らなかったとして、いくら凡人より生産性が高くてもこの業界全体の仕事量は賄いきれない気がする。だからどこかで凡人も採用して教育していく必要はあると思うわけで。

そもそも、自分自身を振り返ったときに、新人の時にどれだけスキルがあったよ?って人も多いんじゃないかな。私も含めて。でも自分が中堅、ベテランになったときに「未経験の新卒なんて...」とか言ってたりしないだろうか?...自戒を込めて。


Androidのエミュレータでsystem.imgとかを差し替えるときに気をつけること

Androidのエミュレータが使うシステムイメージなどのファイルは、例えばWindows環境だと

C:\android-sdk-windows-1.5_r2\platforms\android-1.5\images

にある、system.img、userdata.img、ramdisk.imgだったりすると思っていたのだけど、AVDを作って一度でもエミュレータを起動すると、

C:\Documents and Settings\[ユーザ名]\.android\avd\[AVD名].avd

の、userdata-qemu.imgやcache.imgのほうを見に行くようになるようだ。

なので、フルソースをビルドして出来上がったsystem.imgを差し替えて使いたい場合は、

  • AVDを新規作成する
  • emulatorの起動引数でsystem.imgの場所を明示的に指定する(-systemオプションなど)

のどちらかをする必要あり。

...たしかに、よく考えればAVDが違うんだからそれぞれのシステムファイルイメージもAVDごとに分かれて管理されるようになるよね...。


Firefox 3.5

正式リリースされたけど、3.5はβからRCと続けて使ってきているので、特にアップデートも無く拍子抜け。

Firefoxのポリシーで最終RC=正式リリースとなってるのを知らずに「ソフトウェア更新」を何回か試してしまったけど。

アドインも以前からNightly tester toolsを使ってて、いくつかは強制的にインストールさせてたりするしなぁ...。もう3.0時代がどれくらいの動作速度だったか忘れてしまった。

会社でも使っているけど、社内システムのいくつかが使えないのでFirefox一本で済まないのが残念なところ。


スポンサーリンク