2008-01-01から1年間の記事一覧

頑張って作ります

うわ、Seasar-user MLでid:koichikさんがS2Swingに言及している!(大汗S2SwingをSandbox申請したのは5ヶ月近くも前なのに、仕様についてあれこれ悩んでいるうちに時間が経ってしまい、未だリリースに至っていません。本当に情けないです。最近になって、よう…

TopHatenarのブックマークレット

閲覧中のはてなダイアリーユーザのTopHatenarページに移動するブックマークレットです。 javascript:if(location.href.indexOf('http://d.hatena.ne.jp/')==0){location.href='http://tophatenar.com/view/'+location.href.replace(/http:\/\/d\.hatena\.ne\…

TopHatenarはRails並の軽さで作られている

TopHatenarにみる「Javaの復活」 - yvsu pron. yas Java好きな僕としては、TopHatenarが、Javaでも(Seasar2ファミリーを使えば特に)スピーディーなWeb開発ができることの実証例になれば良いなあと思っています。ただし、HOT deployが使えない場合はさすが…

マウスイベントを親コントロールに透過させる

SwingコンポーネントはsetOpaque(false)で背景を透明にできますが、その場合でもマウスイベントはコントロール領域内で捕捉されます。マウスイベントも透過させたい場合は、以下のようにすれば良いようです。これを応用すれば、不定形のコントロールを作って…

HatenarMaps更新しました

HatenarMapsのユーザ抜け問題と、不当な面積比率の問題を修正しました。この修正の影響と、毎日はてブが更新されていく影響で、クラスタの位置や所属が変化しています。せっかくネタ湾とか地名を付けていただいたのに、申し訳ないです…。はてな村の厳しい世…

HatenarMapsの外形はDQ3のランシールです

HatenarMapsに想像以上の反響を頂けて嬉しいです。はてな村の外形に「オーストラリア?」というコメントが多かったですけど、ドラクエ3のランシールだと気付いてくれた方は少なかったですね。ランシール自体、オーストラリアを真似た大陸ではありますが。ラ…

はてな村の地図『HatenarMaps』を公開しました

『はてな村』のアナロジーを本当に地図にできたら面白いだろうなと思って、週末を潰して作ってみました。TopHatenarが蓄積しているDBを一部活用したサービスになっています。 Blogopolis このサービスを簡単に説明すると、はてなダイアリーのユーザに、獲得…

Eclipse Scalaプラグイン

EclipseにScalaプラグインを入れてみました。あちこちで触れられている以下のURLhttp://www.scala-lang.org/downloads/scala-plugin/は少し古いらしいので、以下の開発版の方をインストールしました。http://www.scala-lang.org/downloads/distrib/files/nig…

JavaからWin32 APIを簡単に呼べるnlinkを使ってみた

Windowsのファイルにhidden属性を付けたかったんですが、Pure Javaではそのようなことができないので、JavaからWin32 APIを呼び出せるnlinkを使ってみたら、ものすごく簡単でした。これは便利!以下のようにするだけで使えます。 MSDNとかで、呼びたいAPIの…

TopHatenarの購読者数集計対象

TopHatenarにいただいたコメントで多いのが、livedoor Reader以外のRSSリーダも集計して欲しいというものです。今のところ、livedoor Reader以外は購読者数取得APIを公開していないので、TopHatenarも対応を見送っています。スクレイピングしても良いんです…

TopHatenarのブログパーツ公開

TopHatenarの各種グラフ画像の縮小版を用意しましたので、ブログパーツとしてぜひ使ってみてください。以下に説明があります。 http://tophatenar.com/embed

EclipseでAnt設定ファイル選択ダイアログ表示を止める

EclipseでAntを実行するとき、いつ頃からか以下のような選択ダイアログが出てくるようになってしまって邪魔だったんですが、消し方が分からなくて放置してました。これ、Run -> External Tools -> Open External Tools Dialog... で消せるんですね。今日まで…

TopHatenarに機能追加しました

TopHatenarに若干機能を追加しました。 ランキングにOPMLを追加 購読者数とブクマ数の各ランキングページの内容を一括でフィード購読できるように、OPMLを追加しました。 推移グラフに順位系列を追加 購読者数とブクマ数の推移に加えて、順位の推移もグラフ…

はてなダイアリーの購読者数+ブクマ数をユーザ別に集計するサービスを作った

ブログランキングサイト [TopHatenar]とりあえずURLだけ。詳しくはまた後で書きます。 追記 このサービスは、僕が去年末ごろから持っていたアイデアを、Cubby+Mayaa+S2JDBCの使い心地を確かめる意味を込めて実装したものです。僕がWebアプリを作る上でのフレ…

SunはもっとGUIを大事にしてほしい

SwingのJFileChooserは、OSネイティブのファイルダイアログと比べた場合、どうしても違和感が目立ちます。そこで、ファイル選択時のみ、ピンポイントでAWTを使ってみようかなと思ってjava.awt.FileDialogを調べてみたら、信じられない仕様でした。 getSelect…

Swing Application Frameworkの今後

Sunからの人材流出継続JSR-296: Swing Application FrameworkのスペックリードだったHans Muller氏が、SunからAdobeに移ってしまったそうです。ショックだなあ。ところで彼は、MLに残した『遺言』の中で、現在のSwing Application Frameworkにおける"several…

LGPLと商用利用にまつわる話

商用アプリケーションにLGPLライブラリを組み込むにあたって、いろいろ問題があるらしいということは知っていましたが、それが具体的に何なのかは良く分かっていませんでした。Javalobbyに2004年にポストされた「LGPL and Java」という以下のトピックと、そ…

JavaからWindowsのUSBデバイスにアクセス

WindowsのUSBデバイスにJavaからアクセスしたかったので、方法を調べてみました。JavaのUSBサポートってJSR-80に上がってるんですけど、Windows用のまともな実装は出ていないみたいです。JSR-80以外で情報量の多いのがjUSBですが、これもWindows向け実装がい…

S2ClickのHOT deploy対応

HOT deployできたすごい。僕にとって待望の機能です。やっぱりHOT deployのためには、ClickAppの大幅書き換えは避けられないんだなあ。

POIのOOXMLサポート

今年の第二四半期に、OOXMLをサポートしたPOIが正式リリースされるようですが、諸事情で早急にxlsxファイルを読み込む必要があったので、以下のSVN branchを覗いてみました。 http://svn.apache.org/repos/asf/poi/branches/ooxml次期POIでは、OOXMLのExcel…

海外出張

GW途中から昨日までソウルに出張してました。先月は北京、今月はソウルと、アジアの大都市に連続で行くことができたので、近いうちに東京との比較エントリを書いてみたいです。

タブ切り替えUIの次に来るものは?

MDI方式のアプリケーションがすっかり陰を潜め、その代替とばかりにTDI(Tabbed Document Interface)が台頭して久しいです。MDIは確かに使いにくく、Microsoft自身が非推奨していることからも、失敗作のインターフェイスだと思います。でも僕は、かといってTD…

北京の雑感

現在北京に来ています。来る前に気になっていた諸々の点について、実際にどうだったか書いてみます。 街並みについて 広大な故宮の周りを、ものすごく巨大なビルがびっしり取り囲んでいて、本当に壮観。スケールが違う。東京なんてしょぼくて比べものになら…

Uruma飲み会行ってきた

id:y-komoriさんとid:susie_yさんと、いろいろお話させていただきました。Urumaの飲み会だけに、GUIの深い話ができて面白かったです。ありがとうございました!Urumaについてid:y-komoriさんに何点か質問したんですが、憶えてる範囲で書きます。 画面定義XML…

OGNLとMVEL

MVELはOGNLに比べて『多少』速いものだと思っていたけど、こことかここのベンチマークを見ると、多少なんてレベルではなく『圧倒的に』速い模様。新規プロジェクトで式言語を使うなら、もうMVELで決まりだろうなあ。Click Frameworkでは、内臓のOGNLをMVELに…

Genericsが邪魔

Closures and Preserving the Feel of Java このエントリの中に『Genericsは失敗だった』という話が出てきます。この『失敗』の文脈からは外れるかもしれませんが、Beans Bindingを使っていると、Genericsを邪魔に感じることが非常に多いです。Beans Binding…

JAMWikiでWikipedia記事をパースする

JAMWikiというJava版MediaWiki実装があります。以前はコンポーネント間の結合が強くて利用しづらい印象だったんですが、0.6.xからはコアエンジンが分離されたり、mavenizeされたりと使いやすくなっているようです。JAMWikiのパーサにWikipediaの記事を読ませ…

invalidate()とvalidate()とrevalidate()の違い

各メソッドの働きについて良く混乱するので、まとめます。もっとも、Swingではinvalidate()とvalidate()を直接呼ぶ局面はほとんどないと思います。 invalidate() 自分自身と、全ての親コンポーネントをinvalidにする。 このメソッドはフラグを立てるだけ。 v…

NetBeans 6.0.1 + JRuby 1.1 + Goldspike

NetBeans 6.0.1でJRuby on Railsプロジェクトを作成するとき、ウィザードで「Rake ターゲットを追加してアプリケーションサーバの配備 (.war) をサポート」をチェックすると、Goldspikeプラグインがプロジェクトに自動的に組み込まれます。ただ、このGoldspi…

新サーバ導入記

今回、1台で運用してきた自宅サーバにDellのエントリサーバを2台追加して、3台構成にしてみました。特にどうということもない導入記録ですが、淡々と書いてみます。 サーバの購入 まず、Dellのサイトで送料込み19800円に値下がりしていたPower Edge SC440を…