2012-01-26(Thu)
どっこい生きてるJackpot
NetBeans |
一時話題になってそのまま所在不明になったJackpotですが、NetBeans7.1でひっそりと復活を果たしたみたいです。
リファクタリングメニューにひっそりある"Inspect and Transform"(日本語版だと「検査と変換」だったかな)。IntelliJのInspectionとか、OSSのFindBugsやCheckstyle的なコード検査&変換機能なんですが、NetBeansはなんと「カスタムインスペクション」をユーザで定義することができます。
IntelliJでカスタムインスペクション作る場合、プラグインとして作るしかないので、この点については、NetBeansのほうが進んでる。:-)
んで、どうやら、このカスタムインスペクションの定義にJackpotが使われているようです。ルールファイルの書き方やらサンプルやらは以下のリンクを参照してね。
ドキュメントやサンプルが豊富じゃないのでイマイチ出来る事が把握しきれてないけれど、今までならIntelliJ IDEA UltimateのStructural Search & Replaceじゃないと出来なかったことがNetBeansでも出来るようになったのは喜ばしいことですわ。
先のJackpot3のサイトをみるとNetBeansのInspectionをコマンドから実行するためのランチャーもあるようだし、なかなか楽しそうなことができそう。リファクタリングだけじゃ出来なさそうなマイグレーション作業も自動化できそうな予感!
ps.
NetBeansって、しれっとこうゆうの付けてくるからあなどれんわー。
2012-01-25(Wed)
Dynamic Web Projectで任意の場所からライブラリを追加する方法
eclipse |
「ビルド職人本」で「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を追加します。
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" は用途がわかりませんでした。
試しに設定してみたのがこちら。
自身のプロジェクト(sampleWeb)の ./lib/hoge.jar を WEB-INF/lib に追加しているのと、依存プロジェクト(samplePrj)の成果物を WEB-INF/lib/samplePrj.jar としているのがわかると思います(残念なことに、依存プロジェクトのjarファイル名は変更することができませんでした。
わかってしまえば簡単な事ですが、そんなんだったら"Web App Libraries"なんて余計なもの付けてくれんな!と自分のマヌケさを棚に上げてつつイラっときたのはナイショ。:-P
でもまあ、「Eclipseだから webContent/WEB-INF/lib にjarファイル置かなきゃダメ」ってのが制約事項じゃないってのが分かったのは大きな収穫か...。あんま嬉しくないけど。
2012-01-07(Sat)
Sony Readerのイマイチさと、PragProgスゲーな話
tool |
EPUBな話。
数少ないe-ink端末のSony Readerなんですが、これで技術書読んでて「ないわー」と思うことが「固定幅フォントの扱いのヒドさ」。内部的にどうゆう扱いかたされているかまでは分からないのだけれど、主だったところで
- 本文のフォントサイズと無関係にサイズ固定
- 折り返しされず見切れる
なんて事が多々ある。技術書だとソースコードやらコンソールの実行結果やらで固定幅フォントの出番が多いだけに、これらの欠点は致命的ですらある。悔しいことにiPhoneのiBookとかで閲覧すると、これらの欠点が出ることはないので、どうもSony Reader固有の問題っぽい。
具体的にって事で、「Building and Testing With Gradle」をiBookとSony Readerで見たときのスクリーンショットを以下に示す。Sony Reader側の残念さがわかるかしら?
そんなわけで「Sony Readerダセぇな」と毒づいてたのだけれど、昨年末にPragProgの「CoffeeScript: Accelerated JavaScript Development」を読んで、考えを改めた。
オレンジ枠のところが同じ箇所なんだけど、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タグで書いてた...。
上図はPragProgのAWDwRの一部(注目はオレンジ枠だけど、青枠んとこは普通にcodeタグだった。この辺はGDPなんかと同じ)で、オレンジ枠はどんな風にマークアップされてたかと言うと、こんなだった。
<table class="processedcode"> <tr> <td class="codeprefix"> </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"> </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本から)。
なんつうか、よく考えてるなー。その達人っぷりにさすがですとしか言いようがない。EPUB直接編集とかしてたら死人の山になること請け合いなので、なんかしらの中間フォーマットもってんだろうなぁと推測。 |ω・`)チラッ
PragProgはpBook持ってると同じタイトルのeBookを格安で売ってくれたりするし、いろいろスゴい。
2012-01-06(Fri)
NetBeans、いろいろ侮ってたり誤解してたりしてた
NetBeans |
NetBeans7.1がリリースされたんで久しぶりにいじってみてたら、結構良くなってたんで記念にメモっておくよ。そんでもIntelliJから乗り換える気ないけどな。:-)
テストコードをメソッド指定で実行できるようになった
いつからできるようになったかは知らないんだけど、7.1はできてた。これ長年NetBeansの欠点だと思ってたんだよなー。NetBeansさん、やればできる子。ただ、ちょっとメニューは分かりづらいかな。
やり方は実行したいテストメソッドの行内にカーソル当てて、コンテキストメニューの「フォーカスしたテストを実行」を選ぶ。「フォーカスって何?」って思ったけど、そうゆうことか。
あと、この「失敗したものを再実行」って前からあったっけ?
フローティング・エディタ
IntelliJのパクりみたく任意のエディタパネルを別ウィンドウに切り離して表示できるようになったよ。やり方はいろいろあるみたいだけど、手っ取り早いのはエディタのタブをドラッグして、適当なところにドロップすると良い。IntelliJでも、この機能は便利に使わせてもらってたのでNetBeansも便利に違いない。
不可視文字の表示
スペースや改行といった不可視文字を表示できるようになってた。表示するにはメニューバーの「表示」から「表示不可能な文字を表示(N)」を選ぶ。デフォルトでは不可視文字のカラーが黒に設定されているので、明るいグレーあたりに変更しておくと目に優しい(「オプション > フォントと色 > 構文 > すべての言語」の「空白」を変更する)。
ちなみに全角空白は表示されない。
その他
あたしがIntelliJから乗り換える気なんてサラサラ無いのだけれど、NetBeansもeclipseの代替として戦えるようになって来たなって感じ。プラグインマネージャの「使用可能なプラグイン」一覧には出てこないけど、手動でUnit Tests Code Coverage Pluginをインストールしたら、テストのカバレッジも取れるようになってたよ。
Unit Tests Code Coverage Pluginのインストールは、こちらにある「Download」からzipをダウンロードし、zipに含まれているNB7.0用のnbmファイルを手動でインストールするだけでおわり。
あとはプロジェクトウィンドウ上でプロジェクトを選び、コンテキストメニューから「Coverage > Activate Coverage Collection」を選べば、そのプロジェクトのカバレッジ測定が有効になる。
カバレッジ測定が有効になったら、普通にテストを実行すれば、エディタにカバレッジ結果が表示されるようになる。
カバレッジの測定対象はプロダクトコード限定っぽい(テストコードのカバレッジは表示されない)のと、NetBeans7.1にはちゃんと対応してないのか、前述のテストメソッドを指定した実行ではカバレッジ測定はされなかった(テストをすべて実行だと測定される)。それでも機能的に必要十分なくらいはあるんじゃないかな?
これにCheckstyleとFindbugsが使えりゃ、eclipseから乗り換えできるんじゃないかな。少なくとも「ツールにこだわり無いんですけど、何かIDE無いスか」的なライトユーザはNetBeans使って欲しいなと切に願う。
なぜならば、教える方が楽だから。:-)
2011-12-19(Mon)
原稿書きで気をつけたルールとか(その2)
memo |
一部に反応があって結構楽しいので続きを書いてみる。
@masanobuimai これもご参考になるかと テクニカルライティングにおける考察 URL
2011-12-19 08:17:27 via web to @masanobuimai
「そうゆうのは(原稿)書く前に教えてくれー」と思ったら最近のエントリだった(2011/11/21)。確かにメニューの選択指示って簡単そうで難しいですよね。手順書を書く機会は多いのに、未だに定番を身につけてない自分もどうかと思うけど。:-)
あと、傳さんがFacebookに残してたリンクも拝借。
→ 読点がいっぱい 【文章技術:句読点の打ち方】:エディテック:ITmedia オルタナティブ・ブログ
「」は私の好みです。テキストで区切りを表現できるので 原稿書きで気をつけたルールとか - marsのメモ (id:masanobuimai / @masanobuimai) URL #buildman_ebook
知ってた。:-) RT @dentomo: 「」は私の好みです。テキストで区切りを表現できるので 原稿書きで気をつけたルールとか - marsのメモ URL #buildman_ebook
プレーンテキストで強調部分を明記するとなると、かぎ括弧で囲むのはある意味妥当かと。って「プレーンテキストでもらえただけで嬉しい」なんてコメントも見ると、あっちの世界も小人さんががんばる世界なのかな?
ちなみに傳さんのスタイルは、こんならしい(はてダに貼り付けたら、なんだかわからんようになってしまったんでリンク先見てね。
自分はだいたいこんな感じですが 章見出し 節見出し 項見出し コラムコラム 小見出し 注 図版
意味的にも表記的にもreSTとそう変わんないんだけど、わざわざreSTを選んだのは、そっちのほうが面白かったから。それに俺々マークアップだと、細かいルールを忘れてエラい事になっただろうなと。たとえば、このへん。
あと紙の本だと、段落頭に全角1字分スペースを入れるかどうか、階層構造をどう表現するか、ですね
少しでもTeXかじってれば、どうってこと無いと思うんだけどな。この手のルールは、TeXというか「LaTeX 美文書作成入門」で覚えたクチなので、イマドキは何で身につけるもんなのか知らない。
「パラグラフの区切りはダブルスペース」ってTeX経験者じゃないと使わなそう。
Word で四分空き入れない人見て、TeX やってないんだろうな、と思ったことはある。 RT @masanobuimai: 「パラグラフの区切りはダブルスペース」ってTeX経験者じゃないと使わなそう。
1/4アキはイマドキは邪魔らしい(スタイルで対応できるから。 RT @YAMADA_Ats Word で四分空き入れない人見て、TeX やってないんだろうな、と思ったことはある。
上記のようにツイートもしたけど、和文と欧文の間に1/4アキ(って実際は半角スペースだけど)入れるのは要らんとのこと。今回のビルド職人本ではスタイルシートで1/4アキ入るようになってるそうな。Sphinxでもjapanesesupport.py使ってた(逆に消えて欲しくないスペースも消えて苦労したけど。
あと、忘れて欲しくないのがコレ。
みんなの嫌われ者のWordのオートコレクトは約物とか閉じクオートをよろしくやってくれるエラいヤツ、と言うのはあまり知られてない。|д゚)チラッ
Word使ってれば、開き閉じペアや3点リードやハイフンとダーシ(ダッシュ)なんかはよろしくやってくれた。あと表記のゆらぎもチェックしてくれる。...じゃあ「Wordあったら使ってか?」というと、vimキーバインドじゃないから使ってなかっただろうな。:-P
全角・半角の使い分けについては、こんな話も。
そういえば縦書きも面倒ですよね。数字は1ケタと3ケタなら全角、2ケタなら半角にするとか
よく新聞社のサイトにのってるニュースに「Java」とか英数字を全角表記してるのは、ありゃ縦書き/横書き兼用の原稿だからなんだなって知ってから、おだやかな気持ちで読めるようになった。
あと元本職に言わせると、こんな話もあるとか。
出版社にもよって違うけどライティングには細かいルールがいろいろある。行う× 行なう とか。雑誌だと、折り返してから1?2文字で改行しちゃダメ(必ず行の半分以上文字を埋める)とか。
eBookだからだと思うけど、物理制約はだいぶ少なかったな。なにより図表の配置とか、原稿のままだったし。pBookだったら、そうはいかんのだろうなぁ。
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 |
















でも、テスト単位で最初から実行できるようになるほうがいいですよねー。なんで前からなかったんだろ