投稿

久しぶりの投稿

何気なく見た サイト に今まで紹介された記事を見たことのないメソッドを見つけた。 Objects.hash() これは地味に便利なメソッドじゃない? JJUG CCC 2011 SpringでもOracleの寺田氏は紹介してなかったと思う。あれは概要だから仕方なかったのか? 7月7日のイベントではじっくり説明されるのかな? Effective Javaにこのネタ載っているし、第3版に記載させる確率高い重要なメソッドな気がする。 ...パッケージはjava.langでなくjava.util。なんでだ。 Obujects.hashCode()とか似たものがある。見ただけじゃ使い方よくわからない。いじってみるか。

最近参加したイベント

例によって今更報告ですが、 JJUG CCC 2009 spring行ってきたぜ。興味なかったクラウドについて知ったぜ。 google app engineのセッションは立見発生の大盛況だぜ。 興味なかったけど者のためしに聴講したセッションのおかげでクラウドが何たるか 見えてきた気がする。 ひが氏google app engine for javaのtipsも開発のキモがわかってよかった。 第1回 scala ユーザー会参加したぜ。最大の目的であるスカラ座で写真撮影できない オチがついたぜ。 scalaは 1 to 4のtoがどこで定義されているかわからず、質問しようかと思ったけど そんなレベルではなかった。すごいレベル高い。仕様読もうぜとか。 私には敷居高いなあ。    

日食ツアーその後

実は3月頃kntの日食ツアーキャンセルしていた。 私の金銭感覚では値段が高すぎる。 先日、本屋で日食の本を手に取ったら結構日食って頻繁に起こっていることが判明。 なんだぁ。 代わりに普通の国内旅行に申し込んだ。自分で計画して行く旅行はほとんど無いので ツアーとかで十分。 きっとおばさんばかりに違いないけどまあいいいや。 次回は海外旅行とか挑戦してみようかな。    

今日の積読。

イメージ
\やべえ/ うかつだった。こんな分厚い本とは思ってなかった。 てっきりEffective C++ぐらいの厚さだと…。 それ以前にすでに積読があるってのにまた買っちまった…。

googleカレンダーオフライン

やった!ついにきたぜ、googleカレンダー オフライン。 うれしいよー。    

セマンティクスってなに

「セマンティクス」という単語をあちこちで見かけていたけど、 今までどんな意味かよくわかっていなかった。 シンタックス(文法)に対してセマンティクスは「意味」「意図」を 表現することみたい。 参考にしたサイト JavaA2Z ではアクセス修飾子protectedで作成者の意図を 表現する例を挙げた。 「意図した使い方は便利に、意図しない使い方は使いにくく設計する。」 というような言葉がどっかにあったと思うけど、これはセマンティクスを プログラムにしっかり織り込むことすすめている話なのかも。 他には... 多分引数にconstを記述するのもセマンティクスの話だろう。 javaでいうと@Overrideアノテーションとか。 プログラミング言語XXや言語入門~などの書籍はシンタックスを紹介し、 Effective XXのような書籍は良いセマンティクスを紹介しているんじゃないかな。 なんかこう、制約を課すような文法はセマンティクスを内包している感じがする。    

JNAのコードを読んでみた

NetBeansの利用ライブラリ一覧を眺めて、JNAなるライブラリを発見。 以前JNIについて調べたことがあったが、JNAはとっても便利そうだ。 .NETのP/Invokeっぽく使えてネイティブライブラリの資源が活用し やすくなったと思う。ブリッジ用DLLとか作る必要なくなって、 Javaから直接ネイティブDLLを呼んでいる感じになるみたい。 P/Invokeのときみたいなエントリポイントのエイリアスとかどうやるんだろ? 今度サンプル作って試してしてみよう...。 CallBackを定義したJavaコードをネイティブで実行できるのは夢広がるなあ。 GPUで処理させたりできないかなあ。 少しいじってみたけど、どうやってこの仕組みを実現しているのか皆目 見当つかないなあ。 ということで、仕組みが知りたくなりソースを読んでみた。NetBeansの プロジェクトなのでNetBeans利用すすることでコードが追いやすかった。 ざっくりいうと、JNAは2層構造でJava側とネイティブ側がある。 Java側はjava.lang.reflect.Proxyクラスを利用している模様。Proxy クラスなんて初めて知ったが、JNAはこれを利用するサンプルとして いいかも。 ネイティブ側はlibffiという代物を利用している。ffiはforeign function interfaceの略らしいのだけど、これが良くわからん。 各種アーキテクチャ ごとのフォルダが並んでいるので、きっとバイナリコードを読んでメタ プログラミング的に定義されている関数を呼び出してくれる仕組みなんだ ろうけど...。 詳細はサッパリ。そもそも拡張子.Sのファイルって...。 私には無理だわ...。 そもそも読む気が起きない。 (^_^;) あとJNAの内部の仕組みについて、ウソ書いていたらごめんなさい。