2002-05-17 (Fri) 写真

So You Want to Write a Book?

ほえ〜。O'Reillyの出版ポリシー。よくわかるな。

java-mode-style

引数が多いとき改行してもインデントが深くなりすぎるのでarglist-intro と arglist-close を変更。

(defconst my-java-style
  '((c-basic-offset . 4)
    (c-comment-only-line-offset . (0 . 0))
    ;; the following preserves Javadoc starter lines
    (c-hanging-comment-starter-p . nil)
    (c-offsets-alist . ((inline-open . 0)
			(topmost-intro-cont    . +)
			(statement-block-intro . +)
			(knr-argdecl-intro     . 5)
			(substatement-open     . +)
			(label                 . 0)
			(statement-case-open   . +)
			(statement-cont        . +)
			(arglist-intro  . +)
			(arglist-close  . 0)
			(access-label   . 0)
			(inher-cont     . c-lineup-java-inher)
			(func-decl-cont . c-lineup-java-throws)))
    (c-hanging-braces-alist . ((brace-list-open)
			       (brace-entry-open)
			       (class-open after)
			       (inline-open after)
			       (substatement-open after)
			       (block-close . c-snug-do-while)
			       (extern-lang-open after)
			       (inexpr-class-open after)
			       (inexpr-class-close before)))
    )
  "My Java Programming Style")

効果的にバグを報告するには

BTS開発にあたって。

Reviewed Software Tools for Oracle developers and DBAs

FreeのDB設計ツールもいくつかあるね。


2007-05-17 (Thu)

NKF moduleを実装

JRubyのNKF moduleは、定数だけを定義したダミーのビルトインモジュールが含まれていて、本来 あるべきモジュールメソッドがひとつも呼び出せなかった。

そこでビルトインモジュールは削除して捨ててしまい、NKF module相当を動くように実装してみた。 しかし今更Pure JavaでNKFを再実装するのも不毛チックにも思われたので、 今回はkconvがそこそこ満足に動く範囲にとどめて実装している。

無事に取り込まれ*1、先ごろ出たJRuby 1.0.0RC2には含まれている模様*2

  • guessで自動判別できるエンコーディングはiso-2022-jp/Shift_JIS/EUC-JPの三つ。x-JISAutoDetectを使うため。
  • 特に指定が無いときは入力エンコーディングを自動判別(x-JISAutoDetect)する。
  • $KCODEが指定されていたら、$KCODEで指定されたエンコードが入力されることを期待する。(これはMRIと仕様が違ってくるので変えるかも)
  • Shift_JISはWindows-31J(cp932)が指定されたものとして振舞う。

ただし今のNKFではMIME encode/decodeをまったくサポートしていないので、 いずれ追加しようと思ってる。単純に作るとJavaMail APIを使うのが楽チンだが、 mail.jarの追加が可能か交渉しないといけないな。

ということで今度のJRubyではnkf呼び出しを削除するパッチを当てなくても、 Praggerが動くんじゃなかろうか。動くといいな...

実は二番目の問題のほうが根が深くてinstance_evalへの第2引数に 文字列以外のオブジェクトを渡したときに発生するJRubyのバグでした。

以下のIssueでパッチ&報告済み。

  • [JRUBY-942]: ClassCastException occurs when Object#instance_eval is invoked

こちらは1.0.0RC2には間に合わなかったみたいだが、次のリリースあたりでは直るんじゃないかな。試したいときは上記パッチをtrunkに当ててください。

Tags: JRuby

*1 なにも考えないでJava5ステートメントやGenerics使って書いたらJava 1.4で書き直すハメになったけど;-)

*2 リリースノートは出てないけどひっそりとファイルが置かれてます


2008-05-17 (Sat)

Re: Appleマイティマウスを分解しないで掃除する。

でも、 Synergy で隣りの Windows に行った時に「右クリック」できないと不便。 Windows で 「右クリック」の代替えのショートカットってないのかなあ。 (本末転倒か? これ)

Shift+F10

本日のツッコミ(全2件) [ツッコミを入れる]

# kose [じゃあ、Apple Wireless Keyboardを使っているのですが、IME ON/OFFのショートカットって..]

# ko [IME ON/OFFは、設定でON/OFFできるキーを追加してもなんかダメですね。Synergyより前にIMEがとっ..]


2010-05-17 (Mon)

「JRuby on Rails実践開発ガイド」が発売されます

Ola Bini著、1590598814の邦訳として4798116904を出します。

原著は2007年に刊行された少し古い本です。 中身の濃さと翻訳チームのHPとMPの少なさで大変な時間がかかってしまいました。 Railsを題材にJRubyを使ってRubyとJavaの連携について解説する本です。

JRubyの魅力のひとつにJavaとの柔軟なインテグレーション機能にあります。 たとえばJRubyは、Javaオブジェクトを可能な限りRubyオブジェクトとして扱えるように様々な工夫が凝らしてあります。 また、自分のJavaプログラムにRubyを組み込むにあたっても 原田洋子さんのRedBregdeプロジェクトの成果で非常に簡単な手順で統合できるのです。 そういったJRubyの核となる魅力を、サンプルアプリケーション開発を通して一通り紹介しています。

原著と日本語版の違いをまとめます。

  • インストール、セットアップは最近のライブラリに合わせて更新
  • 各プロジェクトのリポジトリを最新へ追従
  • JRubyの内部の動きについて言及ある部分は、可能なかぎり最新のソースに合わせるか訳註をいれました
  • Rails 1.2.0対応からRails 2.3.5対応しました。具体的にはScaffoldの出力コード、ERBの書き方、細かいAPIの使い方でより良い手法へ(named_routeの利用など)
  • Rails 2.x系ではプラグインになった機能についても追従しています(pagenateなど)
  • Rails 1.2系とRails 2.x系の違いを付録Dにつけました。
  • 配備についてのChapter 11は含まれません。代わりに最近の配備についての情報を付録Cにまとめました。GAE/JRubyに少しだけ触れています
  • 付録A 「JavaプログラマのためのRubyガイド」でRubyの仕様の記述に曖昧な部分があったためYuguiさんの助言により、より適切な表現にしました。Yuguiさんありがとうございます!

本書の刊行に当たって多くの方々の協力がありました。

今回も(いつも)公私に渡り苦労をかけた大場寧子さん。まさに愛が無いとできない仕事でした。 田中祐樹さんとは前の本以来5年ぶりで、またいっしょに仕事ができてよかった。 締め切り目前にお願いしたにも拘わらず、素晴らしい前書きを寄せてくれた原著者のOla Biniさま。 長いあいだ辛抱強く待っていてくれた翔泳社さま。 査読協力してくれた万葉の皆さん。 お祝いに大きな花束をくれた嫁実家の人々。 本当にありがとうございます。

皆様もよかったら手にとってみてください。よろしくお願いします。

Tags: JRuby