データを視覚化するとき、重要なのが色の選び方です。せっかく描いたグラフも、配色が悪いと見栄えがぱっとしなかったり、目が疲れたりします。以下はJFreeChartのデフォルト配色ですが、あまり良くない色使いの例だと思います。この配色は、 #FF5555, #5555…
JGraphTJGraphTは、Javaのグラフライブラリです。グラフの描画ではなく、グラフ理論のモデルとアルゴリズムの方にフォーカスしています。とても使いやすかったので、紹介してみます。 無向グラフ UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>( DefaultEdge.class); </string,></string,>…
Swing Application Frameworkのアクションメソッドは引数を持たないのが普通ですが、以下の型で引数を宣言しておくと、メソッド呼び出し時にフレームワークが適切なオブジェクトを代入してくれます。 java.awt.event.ActionEvent javax.swing.Action javax.s…
前回、Lucene 2.4と2.0でインデックス構築速度の比較をしたので、ついでに検索速度の比較もしてみました。前回のエントリーでは、以下のようにインデックスを作成しました。 データ: 日本語版Wikipediaのダンプから先頭20万記事 インデックス形式: 記事タイ…
TopHatenarのランキング対象を全ドメインに拡大して以降、アルファなブログが大半の部門で常連化したことで、部門の特色が薄くなってしまうという問題がありました。先日、この問題への対処として、部門別ランキングの表示ユーザ数を拡張しました。今回、追…
S2Swing 0.1.2をリリースしました。http://s2swing.sandbox.seasar.org/・[SWING-1] S2ActionUpdaterへの参照が残り続ける不具合を修正しました。
Luceneは、こちらのベンチマークなどを見る限り、Sennaなど他の全文検索エンジンに比べて相当遅いとされているようです。上記ページのベンチマークではLucene 2.0が使われています。僕も数年前にLucene 2.0を使ったことがあって、それ以降はLuceneに触れてい…
従来、各部門につき50位まで表示していたTopHatenarの部門別ランキングを、100位まで表示するように変更しました。先日TopHatenarが全ドメインに対応したことで、部門別ランキングの上位が一部の巨大ブログで占められる傾向が強くなったので、表示を拡張しま…
はてなダイアリーのランキングサイトとして公開してきたTopHatenarですが、今回、はてな以外の全ドメインのブログに対応しました。従来のページにアクセスすると、はてな内ランキングに加えて、全ブログ内でのランキングも表示されるようになります。はてな…
14日のSeasar Conference 2009 Whiteで、S2Swingについて話してきました。40人部屋が満席になった上に、立ち見してくださる方までいて、とても嬉しかったです。ご来場ありがとうございました。45分使って話すのは初めてだったので緊張しましたが、笑いも多少…
14日のSeasar Conference 2009 White@法政大で、S2Swingについてのセッションを持ちます。 会場: S304(定員40名) 時間: 15:00 - 15:45 タイトル: 『モダンSwing - S2SwingでGUI開発はどう変わるか』 去年秋のSeasar ConferenceではLT枠をいただきましたが、…
Javaアプレットが載ったHTMLページを開くと、こういうスプラッシュ画像が出てきます。この画像が目に入った瞬間、反射的にページを閉じる習慣が身に付いてしまっているユーザは、僕を含めて多いと思います。Java SE 6 Update 10でサポートされたimageパラメ…
Javaでコレクションクラスを作ってそのイテレータを実装する場合、Javaにはクロージャが無いので、外部イテレータを使うことがほとんどだと思います。例えばint値のコレクションとイテレータを自作するときは、まず以下のようにIntIteratorとIntIterableを用…
各種ブログのRSSのようなWeb上のXMLリソースをdom4jやJDOMなどで読み込むと、パースに失敗するケースがとても多いです。というのも、こういうXMLは基本的に、validであることをあまり期待できないからです(エスケープ漏れがあったり、"
フレームやダイアログの中から特定の条件を満たすコンポーネントを見つけたり、トラバースできると便利だと思い、JDOMをベースにして以下のプログラムを作ってみました。 SwingDOMBuilder SwingPath Swingのコンポーネント階層をDOMに変換して、XPathを使え…
「技術的な知識が付いて、英語の勉強にもなるから」という理由で、CNET Buzz Out Loudを聴き続けたり、技術書を読むときに和訳本じゃなく原著を買ったりしてたんですけど、それって実はあまり英語の勉強になってないことに気付きました。こういうPodcastとか…
iPhoneをjailbreakならぬ、本当にbreakしてしまいました。今までも何回か落としたことがあって、その時は傷一つ付かなかったので「iPhoneって丈夫なんだな」と思ってましたが、着地姿勢が悪いと簡単にこうなるようです…。表面は割れたけど本体の動作には支障…
ここ数日ほど、EDGE Datasetsを活用して、今までTopHatenarで拾いきれていなかった過去のはてなダイアリー記事(2008年初頭ごろまでに書かれたブックマーク数中堅クラスのエントリー)をクロールしました。この結果として、部門別ランキングが一部変動しまし…
ニコニコ動画データ解析発表会でニコニコ大百科の宣伝を行いました(発表資料もあるよ!) - グニャラくんのグニャグニャ備忘録@はてなニコニコ動画で使われているタグのクラスタリング結果がHatenarMapsと同じ手法で可視化されていて、興味深いです。デンド…
K-means法は、入力データからK個のランダムな個体を初期クラスタの中心として選択し、以降、クラスタの重心を移動させるステップを繰り返すことでクラスタリングを行う非階層的手法です。K-means法はシンプルで高速ですが、初期値依存が大きいのが弱点で、不…
TopHatenarの部門別ランキングで、「どの記事がどれだけブックマークタグを集めたのか」が分かるように、内訳表示機能を追加しました。以下のように、個別のエントリーとタグ数(pts)を確認することができます。
Tokyo Cabinet, QDBM, Lux IOなど、DBM同士のパフォーマンス比較はWebで良く見かけるのですが、MySQLのような普通のRDBMSをKey-Value Storage的に使用した場合、DBMと比べてどれくらい差が付くものなのかイメージが湧かなかったので、実際に計測してみました…
明けましておめでとうございます。僕の2008年を振り返ると、その前年の1981s忘年会で刺激を受けて、自分も面白いアウトプットを出したいと思ったことから始まった気がします。TopHatenarを作ったのが5月ですが、その基礎になるデータ自体は、何かの材料にな…
TopHatenarとHatenarMapsのシステム構成が、バージョンアップの度に複雑化してきて、自分でも把握しづらくなってきたので、整理する意味で図を作ってみました。図に示したように、HatenarMapsは、S2RMIを使ってTopHatenarと協調動作しています。はてなダイア…
HatenarMapsでの領地の状況を、ブログパーツとして貼れるようにしてみましたので、ぜひご利用ください。こんな感じの画像を埋め込むことができます。貼り付け用のHTMLサンプルは以下になります。"XXXXXXXX"の部分を、自分のはてなIDに書き換えてください。 <a href="http://hatenarmaps.com/view/XXXXXXXX"><img src="http://hatenarmaps.com/chart/XXXXXXXX" width="160" height="120"/></a> …
新しいHatenarMapsについて、ブクマコメント等でいろいろ疑問をいただいているので、FAQにまとめました。 ○○について書いたことが一度もないのに、○○地区に入っています。何で? できるだけ適切(?)な地区に入るようにしていますが、クラスタリングの性質上…
はてなダイアリーの上位ブロガーと人気エントリーを地図化したサイト、HatenarMapsを大幅にリニューアルしました。いろいろと新機能を追加しましたので、順に紹介します。※過去のHatenarMapsについてはこちらのエントリーをご覧ください。 新機能1: 人口を最…
昨日、Seasarの忘年会に参加しました。僕は、この前行った「知っ得 納得 Webフレームワーク勉強会」で取り上げられていたS2Flex2に感銘を受けて、HatenarMapsをS2Flex2で書き直しているところなんですが、その新HatenarMapsのデモをid:higayasuoさんに見せつ…
さっき、SunからMA4賞品のロードバイクが届きました!ありがとうございます。なんと、サドルがDukeです。これはかなり目立つ!ベルもDukeです。こうして見ると、Dukeって日の丸みたいですね。Sunだけに、Dukeの鼻は太陽をイメージしてるのだろうか。などと思…
Swing Application Frameworkのリソースインジェクションにおける、 Swing Application Framework自身 NetBeansのフォームデザイナ&コード自動生成 S2Swing のそれぞれの役割について書きます。内容は後で整理して、S2Swingのドキュメントに追加しようと思…