ブログトップ 記事一覧 ログイン 無料ブログ開設

marsのメモ RSSフィード Twitter

2012-01-26(Thu)

どっこい生きてるJackpot

| 23:39

一時話題になってそのまま所在不明になったJackpotですが、NetBeans7.1でひっそりと復活を果たしたみたいです。


リファクタリングメニューにひっそりある"Inspect and Transform"(日本語版だと「検査と変換」だったかな)。IntelliJのInspectionとか、OSSFindBugsCheckstyle的なコード検査&変換機能なんですが、NetBeansはなんと「カスタムインスペクション」をユーザで定義することができます。

IntelliJでカスタムインスペクション作る場合、プラグインとして作るしかないので、この点については、NetBeansのほうが進んでる。:-)

f:id:masanobuimai:20120126233446p:image


んで、どうやら、このカスタムインスペクションの定義にJackpotが使われているようです。ルールファイルの書き方やらサンプルやらは以下のリンクを参照してね。


ドキュメントやサンプルが豊富じゃないのでイマイチ出来る事が把握しきれてないけれど、今までならIntelliJ IDEA UltimateのStructural Search & Replaceじゃないと出来なかったことがNetBeansでも出来るようになったのは喜ばしいことですわ。


先のJackpot3のサイトをみるとNetBeansのInspectionをコマンドから実行するためのランチャーもあるようだし、なかなか楽しそうなことができそう。リファクタリングだけじゃ出来なさそうなマイグレーション作業も自動化できそうな予感!


ps.

NetBeansって、しれっとこうゆうの付けてくるからあなどれんわー。

トラックバック - http://d.hatena.ne.jp/masanobuimai/20120126

2012-01-25(Wed)

Dynamic Web Projectで任意の場所からライブラリを追加する方法

| 23:54

「ビルド職人本」で「Dyanmic Web ProjectのライブラリはwebContent/WEB-INF/libにしか置けない!」なんてドヤ顔で書きましたが、そんなことないってのが分かりました。この場を借りてお詫びと訂正を...。


他のプロジェクト(Java Project)と依存関係を持たせ、そのJava Projectの成果物をwarファイルに含められないのかな?と思ったのが事の発端。


Dynamic Web Project側のソースコードコンパイルできるようにするだけなら、プロジェクトプロパティの"Java Build Path -> Projects"にお目当てのプロジェクトを指定するだけでOK。ただ、それだとwarファイルにそのプロジェクトの成果物(クラスファイルかjarファイル)は含まれないらしく、不完全な状態でデプロイされるようです。


「そんなものできのか!?」と思いつつ、あれこれ探ったところ、プロジェクトプロパティの"Web Deployment Assembly"で設定できるらしい(ちなみに、この項目、ふるいEclipse WTPだと"Java EE Module Dependencies"だったらしいです。よー知らんけど。

具体的には、同設定画面を開き「Add...」ボタンを押して、warファイルに含める内容を設定します。下図のようなダイアログ("New Assembly Directive")から目的に応じたAssemblyを追加します。

f:id:masanobuimai:20120125235001p:image


Assemblyの種類を簡単にまとめると、

  • jarファイルを追加するなら "Archive via Path Variable", "Archives from File System", "Archives from Workspace"のいずれか
  • 他のプロジェクトを WEB-INF/classes か WEB-INF/lib に含めたいなら "Project"
  • Webコンテンツを追加したいなら "Folder"
  • "Java Build Path Entries" は用途がわかりませんでした。

試しに設定してみたのがこちら。

f:id:masanobuimai:20120125235002p:image


自身のプロジェクト(sampleWeb)の ./lib/hoge.jar を WEB-INF/lib に追加しているのと、依存プロジェクト(samplePrj)の成果物を WEB-INF/lib/samplePrj.jar としているのがわかると思います(残念なことに、依存プロジェクトのjarファイル名は変更することができませんでした。


わかってしまえば簡単な事ですが、そんなんだったら"Web App Libraries"なんて余計なもの付けてくれんな!と自分のマヌケさを棚に上げてつつイラっときたのはナイショ。:-P

でもまあ、「Eclipseだから webContent/WEB-INF/lib にjarファイル置かなきゃダメ」ってのが制約事項じゃないってのが分かったのは大きな収穫か...。あんま嬉しくないけど。

トラックバック - http://d.hatena.ne.jp/masanobuimai/20120125

2012-01-07(Sat)

Sony Readerのイマイチさと、PragProgスゲーな話

| 23:36

EPUBな話。


数少ないe-ink端末のSony Readerなんですが、これで技術書読んでて「ないわー」と思うことが「固定幅フォントの扱いのヒドさ」。内部的にどうゆう扱いかたされているかまでは分からないのだけれど、主だったところで

  • 本文のフォントサイズと無関係にサイズ固定
  • 折り返しされず見切れる

なんて事が多々ある。技術書だとソースコードやらコンソールの実行結果やらで固定幅フォントの出番が多いだけに、これらの欠点は致命的ですらある。悔しいことにiPhoneiBookとかで閲覧すると、これらの欠点が出ることはないので、どうもSony Reader固有の問題っぽい。


具体的にって事で、「Building and Testing With Gradle」をiBookSony Readerで見たときのスクリーンショットを以下に示す。Sony Reader側の残念さがわかるかしら?

f:id:masanobuimai:20120107223519j:image f:id:masanobuimai:20120107223520j:image


そんなわけで「Sony Readerダセぇな」と毒づいてたのだけれど、昨年末にPragProgの「CoffeeScript: Accelerated JavaScript Development」を読んで、考えを改めた。

f:id:masanobuimai:20120107223521p:image f:id:masanobuimai:20120107223522p:image


オレンジ枠のところが同じ箇所なんだけど、Sony Readerで見ても、本文と同じくフォントサイズが変わるし、見切れること無く折り返しもされてた。マジか?と思い手持ちのPragProg本を見返してみたら、PragProgに関しては他のeBookも同じくSony Readerでもキレイに読めた。

おそらく古いほうであろう「Groovy Recipes: Greasing the Wheels of Java (Pragmatic Programmers)」でも大丈夫だったので、PragProg本は全部そうだと思っていいんじゃないかな。


なるほど、同じEPUBでもマークアップの工夫でこんな違いがでるだと思い、実際どんな風にマークアップされているか調べてみたよ。O'REILLYや達人出版会GDPはpreタグで囲んでソースコードなどを表現してる(GDPに関しては「EPUB3用XHTML作成ガイド」に詳しく書いてる)。

対してPragProg本はというと、tableタグで書いてた...。

f:id:masanobuimai:20120107230855p:image


上図はPragProgのAWDwRの一部(注目はオレンジ枠だけど、青枠んとこは普通にcodeタグだった。この辺はGDPなんかと同じ)で、オレンジ枠はどんな風にマークアップされてたかと言うと、こんなだった。

<table class="processedcode">
<tr>
<td class="codeprefix">&nbsp;</td>
<td class="codeline">
<code style="white-space: pre-wrap;">$ <strong class="prompt">rvm use 1.9.2</strong>
</code>
</td>
</tr>
<tr>
<td class="codeprefix">&nbsp;</td>
<td class="codeline">
<code style="white-space: pre-wrap;">$ <strong class="prompt">gem install rails</strong>
</code>
</td>
</tr>
</table>

うっは、行ごとにキレイにテーブルにしてんでやんの。preタグがイマイチだと思って、こうしたんだろな。

面白いところで、各行の先頭に"codeprefix"ってスペース1つだけの列があるんだけど、これこんな風に使うみたい(こっちはCoffeeScript本から)。

f:id:masanobuimai:20120107232121p:image


なんつうか、よく考えてるなー。その達人っぷりにさすがですとしか言いようがない。EPUB直接編集とかしてたら死人の山になること請け合いなので、なんかしらの中間フォーマットもってんだろうなぁと推測。 |ω・`)チラッ


PragProgはpBook持ってると同じタイトルのeBookを格安で売ってくれたりするし、いろいろスゴい。

The Pragmatic Bookshelfが男前過ぎて泣いた

トラックバック - http://d.hatena.ne.jp/masanobuimai/20120107

2012-01-06(Fri)

NetBeans、いろいろ侮ってたり誤解してたりしてた

| 23:58

NetBeans7.1がリリースされたんで久しぶりにいじってみてたら、結構良くなってたんで記念にメモっておくよ。そんでもIntelliJから乗り換える気ないけどな。:-)


テストコードをメソッド指定で実行できるようになった

いつからできるようになったかは知らないんだけど、7.1はできてた。これ長年NetBeansの欠点だと思ってたんだよなー。NetBeansさん、やればできる子。ただ、ちょっとメニューは分かりづらいかな。

やり方は実行したいテストメソッドの行内にカーソル当てて、コンテキストメニューの「フォーカスしたテストを実行」を選ぶ。「フォーカスって何?」って思ったけど、そうゆうことか。

f:id:masanobuimai:20120106235257p:image


あと、この「失敗したものを再実行」って前からあったっけ?

f:id:masanobuimai:20120106235258p:image


フローティング・エディタ

IntelliJのパクりみたく任意のエディタパネルを別ウィンドウに切り離して表示できるようになったよ。やり方はいろいろあるみたいだけど、手っ取り早いのはエディタのタブをドラッグして、適当なところにドロップすると良い。IntelliJでも、この機能は便利に使わせてもらってたのでNetBeansも便利に違いない。

f:id:masanobuimai:20120106235256p:image


不可視文字の表示

スペースや改行といった不可視文字を表示できるようになってた。表示するにはメニューバーの「表示」から「表示不可能な文字を表示(N)」を選ぶ。デフォルトでは不可視文字のカラーが黒に設定されているので、明るいグレーあたりに変更しておくと目に優しい(「オプション > フォントと色 > 構文 > すべての言語」の「空白」を変更する)。

f:id:masanobuimai:20120106235259p:image


ちなみに全角空白は表示されない。


その他

あたしがIntelliJから乗り換える気なんてサラサラ無いのだけれど、NetBeanseclipseの代替として戦えるようになって来たなって感じ。プラグインマネージャの「使用可能なプラグイン」一覧には出てこないけど、手動でUnit Tests Code Coverage Pluginをインストールしたら、テストのカバレッジも取れるようになってたよ。


Unit Tests Code Coverage Pluginのインストールは、こちらにある「Download」からzipをダウンロードし、zipに含まれているNB7.0用のnbmファイルを手動でインストールするだけでおわり。


あとはプロジェクトウィンドウ上でプロジェクトを選び、コンテキストメニューから「Coverage > Activate Coverage Collection」を選べば、そのプロジェクトのカバレッジ測定が有効になる。

f:id:masanobuimai:20120106235254p:image


カバレッジ測定が有効になったら、普通にテストを実行すれば、エディタにカバレッジ結果が表示されるようになる。

f:id:masanobuimai:20120106235255p:image


カバレッジの測定対象はプロダクトコード限定っぽい(テストコードのカバレッジは表示されない)のと、NetBeans7.1にはちゃんと対応してないのか、前述のテストメソッドを指定した実行ではカバレッジ測定はされなかった(テストをすべて実行だと測定される)。それでも機能的に必要十分なくらいはあるんじゃないかな?


これにCheckstyleFindbugsが使えりゃ、eclipseから乗り換えできるんじゃないかな。少なくとも「ツールにこだわり無いんですけど、何かIDE無いスか」的なライトユーザはNetBeans使って欲しいなと切に願う。

なぜならば、教える方が楽だから。:-)

nowokaynowokay 2012/01/07 15:03 「失敗したものを再実行」は7.0でもありますね。あと、失敗したものはテスト単位で再実行できます。
でも、テスト単位で最初から実行できるようになるほうがいいですよねー。なんで前からなかったんだろ

nowokaynowokay 2012/01/07 15:08 一応補足しておくと「フローティング・エディタ」と「不可視文字の表示」も7.0にはすでにあります。全角表示は「ゆたぽん」とかプログラム用フォント使うと解決

masanobuimaimasanobuimai 2012/01/07 22:15 補足ありがとうございます。「創るJava」のNB7.1対応版が待たれますね。:-)

トラックバック - http://d.hatena.ne.jp/masanobuimai/20120106

2011-12-19(Mon)

原稿書きで気をつけたルールとか(その2)

| 22:53

一部に反応があって結構楽しいので続きを書いてみる。


「そうゆうのは(原稿)書く前に教えてくれー」と思ったら最近のエントリだった(2011/11/21)。確かにメニューの選択指示って簡単そうで難しいですよね。手順書を書く機会は多いのに、未だに定番を身につけてない自分もどうかと思うけど。:-)


あと、傳さんがFacebookに残してたリンクも拝借。

読点がいっぱい 【文章技術:句読点の打ち方】:エディテック:ITmedia オルタナティブ・ブログ



プレーンテキストで強調部分を明記するとなると、かぎ括弧で囲むのはある意味妥当かと。って「プレーンテキストでもらえただけで嬉しい」なんてコメントも見ると、あっちの世界も小人さんががんばる世界なのかな?


ちなみに傳さんのスタイルは、こんならしい(はてダに貼り付けたら、なんだかわからんようになってしまったんでリンク先見てね。


意味的にも表記的にもreSTとそう変わんないんだけど、わざわざreSTを選んだのは、そっちのほうが面白かったから。それに俺々マークアップだと、細かいルールを忘れてエラい事になっただろうなと。たとえば、このへん。


少しでもTeXかじってれば、どうってこと無いと思うんだけどな。この手のルールは、TeXというか「LaTeX 美文書作成入門」で覚えたクチなので、イマドキは何で身につけるもんなのか知らない。


上記のようにツイートもしたけど、和文と欧文の間に1/4アキ(って実際は半角スペースだけど)入れるのは要らんとのこと。今回のビルド職人本ではスタイルシートで1/4アキ入るようになってるそうな。Sphinxでもjapanesesupport.py使ってた(逆に消えて欲しくないスペースも消えて苦労したけど。


あと、忘れて欲しくないのがコレ。


Word使ってれば、開き閉じペアや3点リードやハイフンとダーシ(ダッシュ)なんかはよろしくやってくれた。あと表記のゆらぎもチェックしてくれる。...じゃあ「Wordあったら使ってか?」というと、vimキーバインドじゃないから使ってなかっただろうな。:-P


全角・半角の使い分けについては、こんな話も。


よく新聞社のサイトにのってるニュースに「Java」とか英数字を全角表記してるのは、ありゃ縦書き/横書き兼用の原稿だからなんだなって知ってから、おだやかな気持ちで読めるようになった。


あと元本職に言わせると、こんな話もあるとか。


eBookだからだと思うけど、物理制約はだいぶ少なかったな。なにより図表の配置とか、原稿のままだったし。pBookだったら、そうはいかんのだろうなぁ。

カレンダー
2003 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 |