2012/01/10

MicrojsでJavaScriptのソースコードリーディング

Microjs CodeReading Bookmarkletとは
http://microjs.com にリストされているJavaScriptライブラリのソースコードリーディングを支援するブックマークレットです。Read/Unread状況、Readサイズ/合計コードサイズを把握できるので、ソースコードリーディングでちょっとした達成感を味わえます。ブックマークレットは http://let.hatelabo.jp/ を利用して公開しています。
Microjsとは Microjsは、数百バイト〜数キロバイトの小さなJavaScriptフレームワークやライブラリを集めて紹介しているサイトです。2012/01/09時点で154個、合計206.7kBのライブラリがリストされています。小さいものに限定されているので、短時間で読めるものがほとんどです。Backbone.js, Zepto, yepnope, Modernizrなど、JavaScript, CSS3, HTML5に興味のある方は一度は見聞きしたことがあるものが並んでると思います。 インストール方法 Hatena::Letのブックマークレット公開ページからブックマークレットをブックマークに追加します。 http://let.hatelabo.jp/shoito/let/gYC-xZiazbHnRw
使用方法
1. http://microjs.com にアクセスします。
2. ブックマークをクリックし、ブックマークレットを実行します。
    実行すると下図のように、どのライブラリがRead/Unreadなのか、どの程度のコードを読んだのかが表示されます。
注意 ソースコードリーディングの履歴はWeb Storageを利用してブラウザに保存していますので、別ブラウザ/別マシンを使用した際に履歴は引き継がれません。 ソースコード https://github.com/shoito/bookmarklet/tree/master/microjs
フィードバック
感想、要望、不具合などありましたら @shoito へツイートいただけると嬉しいです。

2012/01/09

FreeMind Import for astah - astahプラグイン

背景
これまで6年ほどマインドマップを描いていて、ツールはMindManager, MiNDPiECE, FreeMind, astahといろいろ使ってきてました。そのため、それぞれのツールで作ったファイルがあるんですが、全てのツールに互換性がある訳じゃなくて「あー、以前描いたマインドマップが見たいのになー。」ってことがありました。
そんな訳で、まずは自分以外からも要望のあったFreeMind → astahを実現してみました。

FreeMind Import for astahとは
ソフトウェア設計支援ツール astah(旧JUDE) に、マインドマップ作成ツール FreeMind のファイル(.mm)をインポートするastahプラグインです。astah UMLprofessionalの何れかにインストールして利用します。
※このプラグインはastahのバージョン6.5.1以上で動作します。
※マインドマップを利用するため、astah communityでは利用できません。
※個人で作ったプロトタイプなので無保証でお願いします。
FreeMindのこんなマインドマップを↑
↑astahにインポートするとこうなります
FreeMindとは
FreeMind(フリーマインド)は、PC上でマインドマッピングナレッジビルディングのための無料のソフトウェアである。 
GPL下でソースコードが公開されているオープンソースソフトウェアである。 Javaで書かれたソースのほかに、バイナリ形式で、Microsoft Windows版、Mac OS X版、Linux (DebianSuSE) 版が公開されている 。
FreeMind - Wikipediaより引用
プロジェクトページ インストール方法など詳細は下記プロジェクトページをご覧ください。

freemind-import-for-astah 

プラグイン開発について astahプラグイン開発チュートリアルとSDKが公開されているので、それをベースに開発しています。 http://astah.change-vision.com/ja/plugin-tutorial/ FreeMindファイル(.mm) 拡張子.mmのXMLファイルであり、XML Schemaが公開されています。 これをJAXBバインディングコンパイラ(xjc)にかけてJavaのモデルクラスを作っています。
$ xjc src/main/resources/schema/freemind.xsd -p com.github.astah.mm2asta.model -d src/main/java
これでFreeMindファイル(.mm)をastah側で読み込むベースは出来たので、あとはプラグイン側で、読み込んだマインドマップのツリー構造通りにastahのマインドマップAPIを使って、astah側のデータを作っています。この処理はこの辺でやってます。 フィードバック
感想、要望、不具合などありましたら @shoito へツイートいただけると嬉しいです。