Jun 28, 2006

[dotNet] WinFS の終焉

なんと本日付で WinFS の開発終了がアナウンスされた。

WinFS Update
http://blogs.msdn.com/winfs/archive/2006/06/23/644706.aspx
These changes do mean that we are not pursuing a separate delivery of WinFS, including the previously planned Beta 2 release. With most of our effort now working towards productizing mature aspects of the WinFS project into SQL and ADO.NET, we do not need to deliver a separate WinFS offering.


元々は Longhorn (現在の名称は Windows Vista) の目玉機能として宣伝されていたものなのだが、「開発遅延」→「Windows Vistaには搭載されない」と次第に声が小さくなっていた。 そして、ついに開発打ち切り・・・。 何と言うことだ。 WinFS がもたらしてくれるはずだった利便性には期待していただけに残念だ。 WinFS が搭載される可能性が無いのであれば、無駄に重くなるだけの Windows Vista には全く魅力を感じないのだが、私だけだろうか??
元麻布春男の週刊PCホットライン - Microsoft、WinFSの開発中止を表明
http://pc.watch.impress.co.jp/docs/2006/0628/hot434.htm
WinFS Overview
http://www.ntfs.com/winfs_basics.htm

Posted in dotNet | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 26, 2006

[Misc] Live-F1 にチャレンジ

Live-F1 とは

F1 の公式サイトにグランプリの情報をリアルタイムに提供してくれるサービスがある。 デフォルトでは Java のクライアントが必要なのだけれど、Terminal 版のクライアントもあるらしいということを知った。 公式サイトによると、

Live F1 is a native Linux client for viewing the information feed of the official Formula-1 Web site without the need of a Java-enabled browser. It displays the live timing information from the track side during races, qualifying, and practice sessions. An account on formula1.com is still required.
というツールらしい。
Live F1
http://freshmeat.net/projects/live-f1/
The Official Formula 1 Website
http://formula1.com/
2006 British Grand Prix Live Timing
http://www.formula1.com/race/livetiming/758.html
CLIマジック:フォーミュラ1ファンに新しいツール
http://opentechpress.jp/developer/06/06/21/0236254.shtml

Live-F1 deb パッケージ

更に嬉しいことに、有志の方が Live-F1 を deb パッケージ化してくれている。 何とも素晴らしい!!

ということで、deb化してみました。もともと構成がautoconf化されてて単純だし、cdbsを使えば5分足らずでパッケージを作れます。manがないとかいうのはさておき。

    snip...

パッケージ名live-f1。
KeN's GNU/Linux Diary - live-f1パッケージ
http://kmuto.jp/d/index.cgi/debian/live-f1.htm

Live-F1 を試してみる

というわけで、早速 Live-F1 をインストールして遊んでみた。

  1. F1 公式サイトのアカウントを持っていない場合は Live Timing Registration で登録(無料)を行う。
  2. KeN's GNU/Linux Diary さんのこちらから deb パッケージをダウンロードする。ここでは live-f1_0.2.5-2_i386.deb を前提とする。
  3. Live-F1 をインストールする。
    # dpkg -i ./live-f1_0.2.5-2_i386.deb
    Selecting previously deselected package live-f1.
    (Reading database ... 15390 files and directories currently installed.)
    Unpacking live-f1 (from ./live-f1_0.2.5-2_i386.deb) ...
    Setting up live-f1 (0.2.5-2) ...
    
  4. とりあえずバージョンなどを確認してみた。
    # which live-f1
    /usr/bin/live-f1
    
    # live-f1 --version
    live-f1 0.2.5
    Copyright (C) 2006 Scott James Remnant .
    
    This is free software, covered by the GNU General Public License; see the
    source for copying conditions.  There is NO warranty; not even for
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
  5. 起動してみた。
    # live-f1
    live-f1 0.2.5
    Copyright (C) 2006 Scott James Remnant .
    
    This is free software, covered by the GNU General Public License; see the
    source for copying conditions.  There is NO warranty; not even for
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    In order to connect to the Live Timing stream, you need to be registered;
    if you've not yet done so, do so now by filling in the form at the URL:
    http://www.formula1.com/livetiming_registration/
    
    Enter your registered e-mail address: me@example.com
    Enter your registered password:
     P    Name            Gap  Int Time     Sector 1 Sector 2 Sector 3 Ps Lap  70
     1  1 F. ALONSO       LAP   70 1:18.061 21.6     24.7     31.6      2
     2  5 M. SCHUMACHER   2.1  2.1 1:16.605 21.2     24.2     31.0      2
     3  3 K. RAIKKONEN    8.8  6.7 1:20.463 21.8     25.1     33.4      2
     4  2 G. FISICHELLA  15.6  6.8 1:19.077 21.9     24.8     32.2      3
     5  6 F. MASSA       25.1  9.4 1:20.819 22.5     25.4     32.7      1
     6  8 J. TRULLI        1L   1L 1:18.299 21.7     24.9     31.5      2
     7 16 N. HEIDFELD      1L  1.4 1:18.364 21.7     24.7     31.9      2
     8 14 D. COULTHARD     1L  5.8 1:18.298 21.8     24.8     31.5      2
     9 12 J. BUTTON        1L  2.1 1:18.976 22.2     24.7     32.0      2
    10 21 S. SPEED         1L  0.4 1:18.925 22.2     24.9     31.6      2
    11 15 C. KLIEN         1L  4.2 1:20.455 22.3     25.4     32.6      2
    12  9 M. WEBBER        1L  5.8 1:23.858 24.4     26.7     32.6      2
    13 20 V. LIUZZI        2L   1L 1:20.887 22.5     25.8     32.4      3
    14 18 T. MONTEIRO      4L   2L 1:23.602 23.4     27.6     32.4      3
    15 22 T. SATO          6L   2L          23.0     STOP               3
       17 J. VILLENEUVE   12L   6L          22.2     STOP               2
        7 R. SCHUMACHER   12L      RETIRED  24.6 L51 25.7 L57           6
        4 J. MONTOYA      57L  45L          STOP                        1
       11 R. BARRICHELLO  59L   2L RETIRED                              1
       23 F. MONTAGNY     68L   9L          26.0     59.7     STOP      1
       10 N. ROSBERG      69L   1L          STOP
       19 C. ALBERS                                  27.1     STOP              0
    

Live-F1 + ttyrec

今日のなんでやねんさんのところで ttyrec というツールが紹介されていた。 公式サイトによると、以下の様なものらしい。

ttyrec は tty を録画します。録画したデータは付属の ttyplayコ マンドで再生できます。ttyrec は script コマンドにマイクロ秒 単位で時間情報を埋め込む機能を追加しただけの代物です。emacs -nw でも vi でも lynx でも tty 上で動くプログラムなら何でも 録画できます。
で、ttyrec と Live-F1 でレースの状況を録画しておくことができるそうだ。 live-f1パッケージ によると、
今気付いたんだが,コレをttyrecで録画しとけばlive timingの録画で出来るんじゃないの? ということで,今晩のカナダを録画してみよう.

    snip...

追記4: おぉ,ちゃんとttyplayで再生できる!
とのこと。楽しそう。 今週末(2006/07/02)のアメリカグランプリで試してみよう。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 25, 2006

[WebService] Weather Hacks 発見!!

以前から天気予報を Web サービスで提供してくれるサイトが無いものかと思っていた。 しばらく前に調べたときには下記の様な情報に行き当たって結局諦めたのだが、現在では少し状況が変わっている様だ。

Web屋のネタ帳 - 天気予報をXMLで提供すると気象庁が発表してから半年が経った
http://neta.ywcafe.net/000484.html
Web屋のネタ帳 - 天気予報のXMLはFTPでGETできる。ただし月額10万円超
http://neta.ywcafe.net/000497.html
Web屋のネタ帳 - もしも天気予報がXMLだったら − その1 XMLとは?
http://neta.ywcafe.net/000338.html
Web屋のネタ帳 - もしも天気予報がXMLだったら − その2 できない理由
http://neta.ywcafe.net/000339.html
今回もう一度調べてみたところ、どうやら livedoor が天気予報のデータを XML で配信してくれているらしいということが分かった。 やるな!! livedoor。 Web サービスというより、単に XML がダウンロードできるだけなのだけれど、これでも十分便利。 位置情報とマッピングしてくれるサービスが提供されると、より使い出があるのだけれど。 今後の発展に期待!!
Weather Hacks
http://weather.livedoor.com/weather_hacks/rss_feed_list.html

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 24, 2006

[Misc] オープンソースの SNS

オープンソースの SNS を調べてみた。 色々探してみたが、結局 2 つしか引っかからなかった。 他にもいくつか情報は存在するのだが、既に消滅していたり、そもそも一度もリリースされた形跡がなかったり。

SNS は人を集めてナンボのシステムなのでオープンソースには不向きなのかもしれない。

プロダクト名 サイト ライセンス 動作環境 DBMS
OpenPNE http://docs.openpne.jp/ GPL 2.0 / Commercial License PHP(4.3.*/5.0以降) MySQL(4.0/4.1以降)
Affelio http://open.affelio.jp/ GPL 2.0 / Commercial License Perl(5.6以降) SQLite / MySQL(4.1以降)

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 23, 2006

[Misc] コメントスパムが酷い(2)

とりあえず、スパマーの IP アドレスからの接続を拒否することにした。 httpd.conf を編集して接続を拒否する。

Order allow,deny
allow from all
deny from 195.225.176.73
deny from 195.225.176.77
deny from 195.225.177.90
deny from 85.255.117.250
これでしばらく経過観察にしよう。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 22, 2006

[Misc] コメントスパムが酷い

ここ 1 ヶ月ほど、コメントスパムが極端に酷くなった。 何パターンが存在しているのだけれど、その中でも特にたちの悪いものを調べてみた。

スパマーA - 195.225.176.73

最もたちの悪いのがこれ。 195.225.176.73、195.225.176.77、195.225.177.90 という 3 つの IP アドレスを使用してコメントスパムを送りつけてくる。 通数がやたらと多く、コメントのサイズも巨大なので非常に迷惑。 whois によると

inetnum:      195.225.176.0 - 195.225.179.255
netname:      NETCATHOST
descr:        NetcatHosting
country:      UA
admin-c:      VS1142-RIPE
tech-c:       VS1142-RIPE
status:       ASSIGNED PI
mnt-by:       RIPE-NCC-HM-PI-MNT
mnt-lower:    RIPE-NCC-HM-PI-MNT
mnt-by:       NETCATHOST-MNT
mnt-routes:   NETCATHOST-MNT
source:       RIPE # Filtered
remarks:      ****************************************
remarks:      * Abuse contacts: abuse@netcathost.com *
remarks:      ****************************************

person:       Vsevolod Stetsinsky
address:      01110, Ukraine, Kiev, 20チ, Solomenskaya street. room 206.
phone:        +38 050 6226676
e-mail:       vs@netcathost.com
nic-hdl:      VS1142-RIPE
source:       RIPE # Filtered
というネットワークを使用している。

スパマーB - 85.255.117.250

次にたちの悪いのがこれ。 85.255.117.250 という IP アドレスを使用している。

inetnum:        85.255.112.0 - 85.255.127.255
netname:        inhoster
descr:          Inhoster hosting company
descr:          OOO Inhoster, Poltavskij Shliax 24, Kharkiv, 61000, Ukraine
remarks:        -----------------------------------
remarks:        Abuse notifications to: abuse@inhoster.com
remarks:        Network problems to: noc@inhoster.com
remarks:        Peering requests to: peering@inhoster.com
remarks:        -----------------------------------
country:        UA
org:            ORG-EST1-RIPE
admin-c:        AK4026-RIPE
tech-c:         AK4026-RIPE
tech-c:         FWHS1-RIPE
status:         ASSIGNED PI
mnt-by:         RIPE-NCC-HM-PI-MNT
mnt-lower:      RIPE-NCC-HM-PI-MNT
mnt-by:         RECIT-MNT
mnt-routes:     RECIT-MNT
mnt-domains:    RECIT-MNT
mnt-by:         DAV-MNT
mnt-routes:     DAV-MNT
mnt-domains:    DAV-MNT
source:         RIPE # Filtered

organisation:   ORG-EST1-RIPE
org-name:       INHOSTER
org-type:       NON-REGISTRY
remarks:        *************************************
remarks:        * Abuse contacts: abuse@inhoster.com *
remarks:        *************************************
address:        OOO Inhoster
address:        Poltavskij Shliax 24, Xarkov,
address:        61000, Ukraine
phone:          +38 066 4633621
e-mail:         support@inhoster.com
admin-c:        AK4026-RIPE
tech-c:         AK4026-RIPE
mnt-ref:        DAV-MNT
mnt-by:         DAV-MNT
source:         RIPE # Filtered

person:         Andrei Kislizin
address:        OOO Inhoster,
address:        ul.Antonova 5, Kiev,
address:        03186, Ukraine
phone:          +38 044 2404332
nic-hdl:        AK4026-RIPE
source:         RIPE # Filtered

person:       Fast Web Hosting Support
address:      01110, Ukraine, Kiev, 20チ, Solomenskaya street. room 201.
address:      UA
phone:        +357 99 117759
e-mail:       support@fwebhost.com
nic-hdl:      FWHS1-RIPE
source:       RIPE # Filtered

気づいたこと

スパマーA、スパマーB 共に

01110, Ukraine, Kiev, 20チ, Solomenskaya street.
が関係している。 ワルモノはここに在住??

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 21, 2006

[Maven] pom.xml の pom / organization / name は折り返してはいけない。

唐突に Maven2 でよく分からないエラーが発生するようになってしまった。 Maven2 の依存解決時に JAR ファイルのヘッダがおかしいと言われてビルドに失敗してしまうというもの。

[INFO] [compiler:compile]
Compiling 50 source files to C:\myproject\myapp\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure

Failure executing javac, but could not parse the error:
エラー: C:\Documents and Settings\me\.m2\repository\myproject\1.0.0\myapp-1.0.0
.jar の読み込みエラーです。invalid header field
エラー 1 個


[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Wed Jun 21 16:57:35 JST 2006
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------

結局、原因は pom.xml の pom / organization / name のコンテンツが折り返されていたことだった。 Eclipse WST の XML エディタで無意識にオートフォーマットをかけてしまっていたらしい。 なんだかものすごく deja vu を感じたので昔のエントリを見返してみると・・・「Maven2 で API Document を生成する方法」にメモしてあった orz 2 度も同じミスでハマってしまった。 今回は忘れないようにちゃんとエラー内容もメモしておく。

Posted in Maven | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 20, 2006

[Mustang] Derby in Mustang にチャレンジ

色々なところで話題になっているようだが、Derby が Mustang に同梱されるらしい。 公式には Java DB という DBMS が搭載されるということだが、Java DB のサイトには

What's Java DB?

Java DB is Sun's supported distribution of the open source Apache Derby 100% Java technology database. It is fully transactional, secure, easy-to-use, standards-based -- SQL, JDBC API, and Java EE -- yet small, only 2MB. The Apache Derby project has a strong and growing community that includes developers from large companies such as Sun Microsystems and IBM as well as individual contributors.
と記述されているので、Java DB == Derby ということだろう。

ユニットテストやプロトタイプ開発時など「とりあえず何でもいいから DBMS が欲しい」というときに Derby を結構使うので同梱してくれるのは多少嬉しい。 ・・・ Maven2 使っていれば別に同梱してくれなくてもすぐ使えるけれど。
Java DB is bundled in Mustang
http://weblogs.java.net/blog/davidvc/archive/2006/06/java_db_is_bund.html
Java DB
http://developers.sun.com/prodtech/javadb

Derby in Mustang のインストール

早速 Java Platform, Standard Edition 6 Binary Snapshot Releases から jdk-6-rc-bin-b88-windows-i586-15_jun_2006.exe をダウンロードしてインストールしてみた。 インストールされた J2SE SDK を見てみると、%JAVA_HOME%\db に Derby がそのまま同梱されていることが分かる。

>tree /f C:\_java\jdk\1.6.0_15_jun_2006\db
C:\_JAVA\JDK\1.6.0_15_JUN_2006\DB
│  3RDPARTY
│  CHANGES
│  COPYRIGHT
│  LICENSE
│  NOTICE
├─demo
│  ├─databases ... snip
│  └─programs ... snip
├─frameworks
│  │  readme.html
│  ├─embedded
│  │  │  readme.html
│  │  └─bin
│  │          dblook.bat
│  │          dblook.ksh
│  │          ij.bat
│  │          ij.ksh
│  │          setEmbeddedCP.bat
│  │          setEmbeddedCP.ksh
│  │          sysinfo.bat
│  │          sysinfo.ksh
│  └─NetworkServer
│      │  readme.html
│      └─bin
│              dblook.bat
│              dblook.ksh
│              ij.bat
│              ij.ksh
│              NetworkServerControl.bat
│              NetworkServerControl.ksh
│              setNetworkClientCP.bat
│              setNetworkClientCP.ksh
│              setNetworkServerCP.bat
│              setNetworkServerCP.ksh
│              startNetworkServer.bat
│              startNetworkServer.ksh
│              stopNetworkServer.bat
│              stopNetworkServer.ksh
│              sysinfo.bat
│              sysinfo.ksh
└─lib
        derby.jar
        derby.war
        derbyclient.jar
        derbyLocale_de_DE.jar
        derbyLocale_es.jar
        derbyLocale_fr.jar
        derbyLocale_it.jar
        derbyLocale_ja_JP.jar
        derbyLocale_ko_KR.jar
        derbyLocale_pt_BR.jar
        derbyLocale_zh_CN.jar
        derbyLocale_zh_TW.jar
        derbynet.jar
        derbyrun.jar
        derbytools.jar

Derby in Mustang を使ってみる

環境設定

Mustang 内の Derby を実行するには、JAVA_HOME、DERBY_HOME という環境変数を指定する必要がある。 これら環境変数を指定した後で、DERBY_HOME の中にある環境設定用バッチファイルを実行する。 今回は Embedded モードを使用した。

> set JAVA_HOME=c:\_java\jdk\1.6.0_15_jun_2006
> set DERBY_HOME=%JAVA_HOME%\db
> set PATH=%JAVA_HOME%\bin;%PATH%
> %DERBY_HOME%\frameworks\embedded\bin\setEmbeddedCp.bat

SET DERBY_HOME=c:\_java\jdk\161730~1.0_1\db

set CLASSPATH=c:\_java\jdk\161730~1.0_1\db\lib
\derby.jar;c:\_java\jdk\161730~1.0_1\db\lib\derbytools.jar;.;C:\Program Files\Ja
va\jre1.5.0_06\lib\ext\QTJava.zip

環境確認

Derby の情報を確認するための sysinfo.bat というバッチファイルが用意されているので実行してみた。

> java -version
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b88)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b88, mixed mode, sharing)

> %DERBY_HOME%\frameworks\embedded\bin\sysinfo.bat
------------------ Java 情報 ------------------
Java バージョン:       1.6.0-rc
Java ベンダー:         Sun Microsystems Inc.
Java ホーム:           c:\_java\jdk\1.6.0_15_jun_2006\jre
Java クラスパス:       c:\_java\jdk\161730~1.0_1\db\lib\derby.jar;c:\_java\jdk\1
61730~1.0_1\db\lib\derbytools.jar;.;C:\Program Files\Java\jre1.5.0_06\lib\ext\QT
Java.zip
OS 名:                 Windows XP
OS アーキテクチャー:   x86
OS バージョン:         5.1
Java ユーザー名:       me
Java ユーザー・ホーム: C:\Documents and Settings\me
Java ユーザー dir:     C:\Hoge
java.specification.name: Java Platform API Specification
java.specification.version: 1.6
--------- Derby 情報 --------
JRE - JDBC: ?-?
[C:\_java\jdk\1.6.0_15_jun_2006\db\lib\derby.jar] 10.2.0.3 alpha - (412448:41244
9)
[C:\_java\jdk\1.6.0_15_jun_2006\db\lib\derbytools.jar] 10.2.0.3 alpha - (412448:
412449)
------------------------------------------------------
----------------- ロケール情報 ----------------
現行ロケール :  [日本語/日本 [ja_JP]]
ロケールのサポートが見つかりました: [de_DE]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [es]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [fr]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [it]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [ja_JP]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [ko_KR]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [pt_BR]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [zh_CN]
         バージョン: 10.2.0.3 alpha - (412448:412449)
ロケールのサポートが見つかりました: [zh_TW]
         バージョン: 10.2.0.3 alpha - (412448:412449)
------------------------------------------------------

サンプルコード実行

以前作成した Embedded モード Derby 用のサンプルコードを実行してみた。

> java jp.in_vitro.codelets.mustang.javadb.Codelet
field01=100, field02=dummy data
field01=888, field02=hogehoge
Derby システムがシャットダウンされました。 : 50000

Posted in Mustang | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 19, 2006

[WebService] YouTube API にチャレンジ

YouTube とは

YouTube はビデオ共有サービスらしい。 しばらく前から話題になっていて気にはなっていたのだが、なかなか使ってみる機会がなかった。 調べてみたら API が公開されているということだったので、とりあえず API だけ遊んでみることにした。

YouTube
http://www.youtube.com/
Developer APIs
http://www.youtube.com/dev

試してみる

YouTube API を使用するには、YouTube のアカウントが必要。 まずは YouTube アカウント作成から行ってみた。

  1. YouTube SignUp から YouTube のアカウントを作成。
  2. developer profile で Developer ID を取得。

User Profile の取得

YouTube API は REST を採用している。 User Profile は下記の URL にアクセスすることで取得できる。

http://www.youtube.com/api2_rest?method=youtube.users.get_profile&dev_id=[Developer ID]&user=[プロファイルを取得したいユーザID]

<?xml version="1.0" encoding="utf-8"?>

<ut_response status="ok">
  <user_profile>
    <first_name />
    <last_name />
    <about_me />
    <age>55</age>
    <video_upload_count>0</video_upload_count>
    <video_watch_count>0</video_watch_count>
    <homepage />
    <hometown />
    <gender>m</gender>
    <occupations />
    <companies />
    <city />
    <country>JP</country>
    <books />
    <hobbies />
    <movies />
    <relationship />
    <friend_count>0</friend_count>
    <favorite_video_count>0</favorite_video_count>
    <currently_on>true</currently_on>
  </user_profile>
</ut_response>

Vide リストを取得

YouTube では Video にタグ付けができるらしい。 現在(2006/06/19) の YouTube API では Video リストはタグ単位、ユーザ単位で取得できる。 とりあえず "cat" というタグのついた Video リストを取得してみた。 URL は下記の通り。

http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=[Developer ID]&tag=cat

<?xml version="1.0" encoding="utf-8"?>

<ut_response status="ok">
  <video_list>
    <video>
      <author />
      <id>HsNYrJDwguo</id>
      <title>cat</title>
      <length_seconds>183</length_seconds>
      <rating_avg>3.46</rating_avg>
      <rating_count>54</rating_count>
      <description>cat</description>
      <view_count>51380</view_count>
      <upload_time>1145383314</upload_time>
      <comment_count>33</comment_count>
      <tags>cat</tags>
      <url>http://www.youtube.com/?v=HsNYrJDwguo</url>
      <thumbnail_url>http://sjl-static6.sjl.youtube.com/vi/HsNYrJDwguo/2.jpg</thumbnail_url>
    </video>

    snip...

  </video_list>
</ut_response>

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 18, 2006

[Library] JChart2D にチャレンジ

JChart2D とは

JChart2D はチャートを生成してくれる Java 用のライブラリ。 LGPL で提供されている。

JChart2D
http://jchart2d.sourceforge.net/
demo
http://jchart2d.sourceforge.net/applet.shtml

実行環境準備

  1. こちら から JChart2D をダウンロードする。ここでは jchart2d-2.0.0.jar を前提とする。
  2. jchart2d-2.0.0.jar をクラスパスに追加する。

サンプルコード

JChart2D を使用して JPEG のチャートを生成するサンプルを作成してみた。 残念なことに、ウィンドウを表示しない状態での動作は実現できなかった。 というわけで、X Window System がインストールされていない等でウィンドウ描画ができない環境では実行できない。 何か方法があるのだろうか・・・。

package jp.in_vitro.codelets.jchart2d;

import info.monitorenter.gui.chart.Chart2D;
import info.monitorenter.gui.chart.ITrace2D;
import info.monitorenter.gui.chart.traces.Trace2DSimple;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class Codelet {

    public Codelet() {
        super();
    }

    protected void execute() throws IOException {
        Chart2D chart = new Chart2D();
        ITrace2D trace = new Trace2DSimple();
        Random random = new Random();
        for (int i = 100; i >= 0; i--) {
            trace.addPoint(i, random.nextDouble() * 10.0 + i);
        }
        chart.addTrace(trace);
        chart.setSize(640, 480);
        chart.setPaintLabels(true);

        JFrame frame = new JFrame();
        frame.setSize(640, 480);
        frame.add(chart);
        frame.setVisible(true);

        BufferedImage image = chart.snapShot();

        frame.setVisible(false);
        frame.dispose();

        ImageIO.write(image, "JPEG", new File("c:\\chart.jpg"));
    }

    public static void main(String[] args) throws IOException {
        Codelet me = new Codelet();
        me.execute();
    }
}

Posted in Library | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 17, 2006

[Misc] プロジェクト jdk-api-ja に参加してみる

jdk-api-ja プロジェクトで Mustang の日本語ドキュメントの精度を高めよう、という活動を行っているらしいということを知った。 日本語ドキュメントは当然日本人のためのものだから、やはり日本人が貢献すべきだろう。 どこまで貢献できるか分からないがとりあえず参加はしておくことに。

プロジェクト jdk-api-ja
https://jdk-api-ja.dev.java.net/ja/index.html
プロジェクトの概要は以下の通り。
プロジェクト jdk-api-ja へようこそ! このプロジェクトは JDK ドキュメントの日本語翻訳の品質向上を目指します。現在、 java.sun.com において、API 仕様を含め JDK ユーザードキュメントの日本語翻訳が提供されています。一方で、Sun はこれらのドキュメントについてユーザ様からバグ報告や、改善のご提案を頂いており、それらを基に定期的に修正を行っています。本プロジェクトではこのプロセスをよりオープンなものにし、リリース前の翻訳に関しても皆様からのフィードバックを取り入れるなど、さらなる日本語翻訳の品質向上を目指します。日本語ドキュメントユーザの皆様、是非ご参加下さい。

なお、プロジェクトの性質上基本的には日本語で運営させて頂きます。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 15, 2006

[Misc] 日本標準 NTP スタート!!

かねてからの願いであった日本標準 NTP がスタートしたらしい。 管理してくれるのは独立行政法人・情報通信研究機構(NICT)。 独立行政法人がこういうサービスをしてくれるのは本当に有り難い。 SourceForgeやApacheのミラーサーバなんかももっと国内でやって欲しいな。

世界最高性能のインターネット用時刻同期サーバによる日本標準時配信の開始
http://www2.nict.go.jp/pub/whatsnew/press/h18/060612-1/060612-1.html
世界最高性能のNTPサーバ、NICTが新設
http://www.itmedia.co.jp/news/articles/0606/12/news068.html

NTP サーバの情報

NTP サーバの情報を見てみた。 IPv6 のアドレスも持っている様だ。

# nslookup
> server ns1.nict.jp
Default Server:  ns1.nict.jp
Address:  133.243.3.1

> set type=A
> ntp.nict.jp
Server:  ns1.nict.jp
Address:  133.243.3.1

Name:    ntp.nict.jp
Addresses:  133.243.238.163, 133.243.238.164, 133.243.238.243, 133.243.238.244

> set type=AAAA
> ntp.nict.jp
Server:  ns1.nict.jp
Address:  133.243.3.1

ntp.nict.jp     AAAA IPv6 address = 2001:2f8:29::fff3
ntp.nict.jp     AAAA IPv6 address = 2001:2f8:29::fff4
nict.jp nameserver = ns1.nict.jp
nict.jp nameserver = ns2.nict.jp
ns1.nict.jp     internet address = 133.243.3.1
ns2.nict.jp     internet address = 133.243.3.2

>

NTP サーバに接続してみる

とりあえず試しに接続してみた。 ntpdate で同期してみただけなのだけれど。

# /etc/init.d/ntp-server stop
Stopping NTP server: ntpd.
# ntpdate 133.243.238.163
14 Jun 16:21:53 ntpdate[32251]: adjust time server 133.243.238.163 offset -0.078740 sec

自動的に時刻同期をする場合、/etc/ntp.conf を編集する。

# vi /etc/ntp.conf
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 14, 2006

[Trac] Trac にチャレンジ(5)

カスタムレポートの作成

Trac はバグや TODO、その他 issue などを Ticket として管理する。 レポート機能を使用することで Ticket の一覧画面を簡単にカスタマイズできる。 例えば、「バージョンが 1.0.0 の Ticket 全て」「マイルストーン MS_001 の Ticket の内クローズされていないもの」といった画面を作成できる。 レポートは非常に便利な機能なので、自前の Report 作成にチャレンジしてみた。

カスタムレポートの作成方法

カスタムレポートの作成方法は Trac のヘルプに記述されている。
Trac Reports
https://www.in-vitro.jp/projects/wiki/TracReports
Trac Permissions
https://www.in-vitro.jp/projects/wiki/TracPermissions

アカウントにレポート生成権限を付与

デフォルト状態のアカウントはレポート生成権限を持っていない。 そのため、trac-admin コマンドを使用してレポート生成権限を与える。

# trac-admin /tmp/trac/myprojects permission add me REPORT_CREATE
ちなみに、レポート関連の権限には REPORT_VIEW, REPORT_CREATE, REPORT_MODIFY, REPORT_DELETE, REPORT_ADMIN, REPORT_SQL_VIEW がある。 REPORT_CREATE を付与するついでに REPORT_MODIFY を付与しておくと、デフォルトで用意されているレポートの定義情報を見られるようになる。

レポートの作成

REPORT_CREATE 権限を所有しているアカウントでログインすると、"View Tickets" 画面に "New Report" というリンクが表示される。 "New Report" からレポート生成画面に移動し、Report Title、Description、SQL Query for Report を入力するとレポートが生成される。 今回は特定のコンポーネント用の Ticket を表示するレポートを作成してみた。 作成した、とは言ってもほとんどデフォルトで用意されているレポートの Copy & Paste。

Active Tickets by Component [MyComponent]

SELECT p.value AS __color__,
   t.milestone AS __group__,
   (CASE status 
      WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;'
      ELSE 
        (CASE owner WHEN '$USER' THEN 'font-weight: bold' END)
    END) AS __style__,
   id AS ticket, summary, component, status, 
   resolution,version, severity, priority, owner,
   changetime AS modified,
   time AS _time,reporter AS _reporter
  FROM ticket t,enum p
  WHERE status IN ('new', 'assigned', 'reopened') AND 
        p.name=t.priority AND p.type='priority' AND
        component='MyComponent'
  ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'), 
        (CASE status WHEN 'closed' THEN modified ELSE -p.value END) DESC
All Tickets By Component[MyComponent]  (Including closed)

SELECT p.value AS __color__,
   t.milestone AS __group__,
   (CASE status 
      WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;'
      ELSE 
        (CASE owner WHEN '$USER' THEN 'font-weight: bold' END)
    END) AS __style__,
   id AS ticket, summary, component, status, 
   resolution,version, severity, priority, owner,
   changetime AS modified,
   time AS _time,reporter AS _reporter
  FROM ticket t,enum p
  WHERE p.name=t.priority AND p.type='priority' AND
        component='MyComponent'
  ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'), 
        (CASE status WHEN 'closed' THEN modified ELSE -p.value END) DESC

Posted in Trac | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 13, 2006

[Book] Java EE 5.0 本(少しだけ)続々

先日 EJB3 の書籍を調べてみたので、Java EE 5.0 関連書籍も調べてみた。 こちらは EJB3 程出版されない様だ。 J2EE(Java EE) も枯れてきたということなのか。 少し寂しい。

EJB 3.0 関連書籍

2005/10 発売


Beginning Java EE 5 From Novice to Professional

2006/05 発売


Pro Java EE 5 Performance Management and Optimization

2006/10 発売


Apache Geronimo Java EE 5 Development and Deployment

Posted in Book | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 12, 2006

[WebService] Flickr API にチャレンジ

Flickr API とは

Flickr は写真を共有するサービスを提供しているサイト。 API 経由で写真の検索などができる。

Flickr
http://www.flickr.com/
Flickr Services
http://www.flickr.com/services/api/

試してみる

  1. こちらから Flickr のアカウントを取得する。
  2. こちらから API application key を取得する。
  3. http://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=[Your API application key]&text=[Query] にアクセスする。

実行結果

http://www.flickr.com/services/rest/?method=flickr.photos.search&api_key=[My API application key]&text=dr+strangelove にアクセスした結果がこちら↓

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<photos page="1" pages="2" perpage="100" total="167">
	<photo id="159653118" owner="14441184@N00" secret="4137e632d9" server="51" title="Dr_Strangelove" ispublic="1" isfriend="0" isfamily="0" />
	<photo id="157381443" owner="84949728@N00" secret="6dd9524b53" server="48" title="Riding the Fire Hydrant" ispublic="1" isfriend="0" isfamily="0" />
	<photo id="152649730" owner="91264084@N00" secret="e8a2ad03da" server="54" title="dr_strangelove" ispublic="1" isfriend="0" isfamily="0" />

  ...略

</photos>
</rsp>
上記の XML には URL が含まれていないのでそのままでは写真を取得することができない。 ID から URL へのマッピングルールは以下に記述されている。
Photo URLs
http://www.flickr.com/services/api/misc.urls.html

API Explorer

Flickr は Web インターフェースから API をコールできる API Explorer というアプリケーションを提供している。 ちょっと試してみるには非常に便利。

写真検索用 API をコールする API Explorer
http://www.flickr.com/services/api/explore/?method=flickr.photos.search

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 11, 2006

[WebService] Technorati API にチャレンジ

Technorati API とは

Technorati は Blog 検索サービスを提供しているサイト。 Search や Browse といった照会系の API を提供してくれているので、試してみた。

Technorati
http://www.technorati.com/
Developer Center
http://www.technorati.com/developers/
Technorati API Documentation
http://www.technorati.com/developers/api/

試してみる

  1. こちらで Technorati のアカウントを取得する。
  2. 生成したアカウントでサインインする。
  3. こちらに ApiKey が表示されるのでメモ。
  4. http://api.technorati.com/search?key=[Your ApiKey]&query=[Query] にアクセスして検索を行ってみる。

実行結果

http://api.technorati.com/search?key=[My ApiKey]&query=star+wars にアクセスした結果がこちら↓

<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Technorati API version 1.0 /search" -->
<!DOCTYPE tapi PUBLIC "-//Technorati, Inc.//DTD TAPI 0.02//EN" "http://api.technorati.com/dtd/tapi-002.xml">
<tapi version="1.0">
<document>
<result>
    <query>star wars</query>
    <querycount>647413</querycount>
    <rankingstart>0</rankingstart>
</result>
<item>
<weblog>
<name>The Truth Shall Make Ye Fret</name>
<url>http://kingandy.livejournal.com</url>
<rssurl></rssurl>
<atomurl>http://kingandy.livejournal.com/data/atom</atomurl>
<inboundblogs>1</inboundblogs>
<inboundlinks>2</inboundlinks>
<lastupdate>2006-06-06 12:20:43 GMT</lastupdate>
</weblog>
<title>The Truth Shall Make Ye Fret</title>
<excerpt>So I've found the link at the bottom of the Penny Arcade front page that permalinks to the most recent comic. You are no longer safe from my linkage. Why the new Star Wars original trilogy DVDs are a crappy rip</excerpt>
<created>2006-06-08 08:49:22 GMT</created>
<permalink>http://kingandy.livejournal.com/388241.html</permalink>
</item>

  ...略

</document>
</tapi>

現在提供されている API

2006/06/11 現在、以下の API が提供されている。

Search
  • cosmos ・・・ Blogs linking to a given URL.
  • search ・・・ Blog posts featuring a given keyword or phrase.
  • tag ・・・ Blog posts tagged with a specific topic.
Browse
  • toptags ・・・ Top tags indexed by Technorati.
Blog information
  • bloginfo ・・・ Information about a specific blog URL such as link counts, rank, and available feeds.
  • blogposttags ・・・ The top tags used by a specific blog.
Member Information
  • getinfo ・・・ Information about a Technorati member such as full name and other blogs by the same author.

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 10, 2006

[Trac] Trac にチャレンジ(4)

Ticket のフィールドをカスタマイズする

Ticket にはデフォルトで Summary、Component、Version などいくつかのフィールドが用意されている。 また、デフォルトのフィールドでは不足の際はカスタムフィールドを追加することができる。 ということで、カスタムフィールドの追加にチャレンジ。

Custom Ticket Fields
http://projects.edgewall.com/trac/wiki/TracTicketsCustomFields

カスタムフィールドに関する設定は /tmp/trac/myprojects/conf/trac.ini で行う。 今回は Ticket の種類 (Memo、Bug、Todo) を指定する select 型のフィールドを追加してみる。
[ticket-custom]
ticket_type = select
ticket_type.label = Type
ticket_type.options = Memo|Bug|Todo
ticket_type.value = 0

[カスタムフィールドが追加された Ticket]

Posted in Trac | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 09, 2006

[Misc] GanttProject にチャレンジ

GanttProject とは

GanttProject は、名前の通りプロジェクトをガントチャートで管理するツール。 フリーの Microsoft Project といったところか。 機能的には Microsoft Project の方が高機能だけれど、個人的にはこれで十分な気がする。 Java で開発されているのでプラットフォームを選ばず実行できる、Java Web Start で実行することができる(但し、その場合は PDF によるエクスポートができない)、多言語対応で日本語にも対応しているなど嬉しい点が結構ある。

GanttProject
http://ganttproject.sourceforge.net/index.php
Demo
http://ganttproject.sf.net/demo/demo.html
Run (Java Web Start)
http://ganttproject.sf.net/jws/ganttproject.jnlp
Trac の Ticket や Milestone と GanttProject が連携できないものかと思っていたら、同じ事を考えている人がいた。
Weekbuild の Hack 倉庫 - ガントチャートとマイルストーン
http://weekbuild.sakura.ne.jp/trac/ticket/49
ただ、残念なことにまだ実現はされていない模様。

GanttProject を Java Web Start から起動してみた。 デフォルトの Locale を見てくれているらしく、起動直後から日本語で表示された。

[Gantt View] [Role View]

ちなみに、担当者を作成する前に 編集 > 設定 > 担当者の役割 でロールを設定する必要がある。 ロールを指定せずに担当者を生成すると担当者タブを選択できなくなる(バグ??)。

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 08, 2006

[Misc] \\?\ の効用

Windows では \\?\ を使用すると通常許されない名前のディレクトリやファイルを作成できるということを教えてもらった。 \\?\ に続けてフルパスを指定すると、半角ドット(.)で終わるファイルやディレクトリを作成できるらしい。 というわけで、早速チャレンジ。

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:58    <DIR>          .
2006/06/04  01:58    <DIR>          ..

C:\tmp>md dummy

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:58    <DIR>          .
2006/06/04  01:58    <DIR>          ..
2006/06/04  01:58    <DIR>          dummy

C:\tmp>rd dummy

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..

C:\tmp>md dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..
2006/06/04  01:59    <DIR>          dummy

C:\tmp>rd dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..

C:\tmp>md \\?\c:\tmp\dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  01:59    <DIR>          .
2006/06/04  01:59    <DIR>          ..
2006/06/04  01:59    <DIR>          dummy.

C:\tmp>dir dummy.
 C:\tmp のディレクトリ

ファイルが見つかりません

C:\tmp>dir \\?\c:\tmp\dummy.
 \\?\c:\tmp\dummy のディレクトリ

ファイルが見つかりません

C:\tmp>rd dummy.
指定されたファイルが見つかりません。

C:\tmp>rd c:\tmp\dummy.
指定されたファイルが見つかりません。

C:\tmp>rd \\?\c:\tmp\dummy.

C:\tmp>dir
 C:\tmp のディレクトリ

2006/06/04  02:01    <DIR>          .
2006/06/04  02:01    <DIR>          ..

C:\tmp>

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 07, 2006

[Misc] Eclipse Update Site のミラーサイトを作成する

Eclipse 3.x では Software Update 機能が提供され、プラグインのインストールが楽になった。 ただし、この機能、当然作業の度に Update Site に接続する必要がある。 大人数で一度に環境を整えたり、ネットワークの帯域が不足していたり、サーバが落ちていたりするとプラグインのインストールが延々終わらなかったりする。 プロジェクトの開始時にプラグインのインストールが出来ないと困るので、プロジェクトローカルの Update Site を準備してみた。

Subclipse Update Site の構築

Subversion Client Plugin である Subclipse の Update Site を用意する。 Subclipse は、Update Site をそのままアーカイビングしたファイルを提供してくれている。 そのため、Update Site の構築は非常に楽。

  1. こちらから Update Site のアーカイブをダウンロードする。(ここでは site-1.0.1.zip を前提とする)
  2. Apache 経由でアクセスできる位置にアーカイブを展開する。
    # mkdir /var/www/eclipse-plugins/subclipse
    # cd /var/www/eclipse-plugins/subclipse
    # unzip ./site-1.0.1.zip
    Archive:  ./site-1.0.1.zip
       creating: features/
      inflating: features/org.tigris.subversion.subclipse_1.0.1.jar
       creating: plugins/
      inflating: plugins/org.tigris.subversion.javahl.win32_1.0.0.jar
      inflating: plugins/org.tigris.subversion.subclipse.core_1.0.1.jar
      inflating: plugins/org.tigris.subversion.subclipse.ui_1.0.1.jar
      inflating: plugins/org.tigris.subversion.subclipse_1.0.1.jar
      inflating: site.xml
    # ls
    features  plugins  site-1.0.1.zip  site.xml
    # chown -R www-data:www-data .
    
  3. Eclipse の Software Update で http://www.example.com/eclipse-plugins/subclipse/ (URL はアーカイブの展開先に合わせる) を指定してみる。プラグインが見えれば OK。

Maven 2.0 integration plugin Update Site の構築

Maven2 用の Eclipse Plugin の Update Site を用意する。 Maven2.0 integration plugin は残念ながら Update Site 用ファイルのアーカイブは提供されていない。 そのため、必要となるファイルを集めて Update Site を作成する。

  1. こちらから site.xml をダウンロードする。
  2. こちらから Plugin の jar ファイルをダウンロードする。(ここでは org.maven.ide.eclipse.feature_0.0.9.jar を前提とする)
  3. site.xml を編集する。 全バージョンをミラーリングするのであれば編集は不要。 今回はプロジェクトで使用するバージョンだけをミラーリングするので、その他バージョンに関する記述を削除する。
    <?xml version="1.0" encoding="UTF-8"?>
    <site>
       <feature url="features/org.maven.ide.eclipse.feature_0.0.9.jar" id="org.maven.ide.eclipse.feature" version="0.0.9">
          <category name="Maven 2.0 integration"/>
       </feature>
       <category-def name="Maven 2.0 integration" label="org.maven.ide.eclipse"/>
    </site>
    
  4. Update Site 用にディレクトリ構成を作成し、ファイルを設置する。
    /var/www/eclipse-plugins/maven2/
      ├ features/
      │  └ org.maven.ide.eclipse.feature_0.0.9.jar
      └ site.xml
    
  5. Eclipse の Software Update で http://www.example.com/eclipse-plugins/maven2/ (URL は上記で作成したディレクトリに合わせる) を指定してみる。プラグインが見えれば OK。

本格的に Eclipse Update Site のミラーサイトを構築する

ネットワークやマシンの問題で私には無理ではあるけれど、公開用 Eclipse Update Site のミラーサイトを構築することもできる。

Re: [eclipse-mirrors] Eclipse update site mirror
http://dev.eclipse.org/mhonarc/lists/eclipse-mirrors/msg00151.html
Simply add this RSYNC line to your script:

rsync -rtlv --delete download.eclipse.org::eclipseMirror/eclipse/updates/ /path/to/eclipse.org mirror/eclipse/updates/


I will be looking for your Update content at this URL:
http://eclipse.gabriel.co.hu/eclipse/updates/3.1/site.xml

When you are synced, please let me know and I'll add you to the Updates list.

自作 Plugin 用 Update Site の構築

当然ながら、自作 Plugin 用 Update Site を構築することもできる。

FAQ How do I create an update site (site.xml)?
http://wiki.eclipse.org/index.php/FAQ_How_do_I_create_an_update_site_(site.xml)%3F

Posted in Misc | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 06, 2006

[Book] EJB 3.0 本続々

2006/05/11 に EJB 3.0 Specification の Final Release が公開された。 書籍の方も続々と出版されてきている。 そろそろ書籍を買い揃える時期か。

Enterprise JavaBeans Technology
http://java.sun.com/products/ejb/
JSR-000220 Enterprise JavaBeans 3.0 (Final Release)
http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html

EJB 3.0 関連書籍

2006/05 発売


Ejb 3.0 in a Nutshell A Desktop Quick Reference for Ejb 3.0


Pro EJB 3 Java Persistence API (Pro)


Enterprise Javabeans 3.0

2006/07 発売


Mastering Enterprise Javabeans 3.0


Beginning Ejb 3 (Beginning from Novice to Professional)

2006/09 発売


Sams Teach Yourself Ejb 3.0 in 24 Hours

Posted in Book | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 05, 2006

[Library] JDiff にチャレンジ

JDiff とは

JDiff はプロジェクトのバージョン間で API の diff を取るツール。 カスタム Doclet として提供され、新旧 API Document の比較を行い、比較結果の API Document を生成する。 ソースコードではなく、API の比較というのは目新しいので試してみた。

JDiff
http://sourceforge.net/projects/javadiff/

サンプルの実行

サンプルは Ant から実行できる。 JDK、Ant にパスを通して Ant を実行する。 ↓の例では JDiff のバージョンを確認するために JDiff にもパスを通している。

>set JAVA_HOME=c:\_java\jdk\1.5.0_06
>set PATH=%JAVA_HOME%\bin;%PATH%
>set ANT_HOME=c:\_java\tool\ant\1.6.4
>set PATH=%ANT_HOME%\bin;%PATH%
>set JDIFF_HOME=c:\_java\tool\jdiff\1.0.10
>set PATH=%JDIFF_HOME%\bin;%PATH%
>java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

>ant -version
Apache Ant version 1.6.4 compiled on May 19 2005

>jdiff -version
JDiff version: 1.0.10

>cd c:\_java\tool\jdiff\1.0.10\examples

>ant
Buildfile: build.xml

init:

create_javadoc_dirs:

javadoc_old:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] パッケージ com.acme.sp のソースファイルを読み込んでいます...
  [javadoc] パッケージ com.acme.util のソースファイルを読み込んでいます...
  [javadoc] Javadoc 情報を構築しています...
  [javadoc] 標準 Doclet バージョン 1.5.0_06

  ...略

javadoc_new:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] パッケージ com.acme.sp のソースファイルを読み込んでいます...
  [javadoc] パッケージ com.acme.spextra のソースファイルを読み込んでいます...
  [javadoc] Javadoc 情報を構築しています...
  [javadoc] 標準 Doclet バージョン 1.5.0_06

  ...略

jdiff_old_api:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] パッケージ com.acme.sp のソースファイルを読み込んでいます...
  [javadoc] パッケージ com.acme.util のソースファイルを読み込んでいます...
  [javadoc] Javadoc 情報を構築しています...
  [javadoc] JDiff: doclet started ...
  [javadoc] JDiff: writing the API to file 'SuperProduct_1.0.xml'...
  [javadoc] JDiff: finished (took 0s, not including scanning the source files).

jdiff_new_api:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] パッケージ com.acme.sp のソースファイルを読み込んでいます...
  [javadoc] パッケージ com.acme.spextra のソースファイルを読み込んでいます...
  [javadoc] Javadoc 情報を構築しています...
  [javadoc] JDiff: doclet started ...
  [javadoc] JDiff: writing the API to file 'SuperProduct_2.0.xml'...
  [javadoc] JDiff: finished (took 0s, not including scanning the source files).

jdiff_compare_apis:
  [javadoc] Generating Javadoc
  [javadoc] Javadoc execution
  [javadoc] ソースファイル C:\_java\tool\jdiff\1.0.10\lib\Null.java を読み込んで
います...
  [javadoc] Javadoc 情報を構築しています...
  [javadoc] JDiff: doclet started ...
  [javadoc] JDiff: reading the old API in from file 'SuperProduct_1.0.xml'... fi
nished
  [javadoc] JDiff: reading the new API in from file 'SuperProduct_2.0.xml'... fi
nished
  [javadoc] JDiff: comparing the old and new APIs ...
  [javadoc]  Approximately 64% difference between the APIs
  [javadoc] JDiff: reading the comments in from file 'C:\_java\tool\jdiff\1.0.10
\examples\sample_output\newdocs\user_comments_for_SuperProduct_1.0_to_SuperProdu
ct_2.0.xml'...
  [javadoc] JDiff: generating HTML report into the file 'C:\_java\tool\jdiff\1.0
.10\examples\sample_output\newdocs\changes.html' and the subdirectory 'C:\_java\
tool\jdiff\1.0.10\examples\sample_output\newdocs\changes'
  [javadoc] JDiff: writing the comments out to file 'C:\_java\tool\jdiff\1.0.10\
examples\sample_output\newdocs\user_comments_for_SuperProduct_1.0_to_SuperProduc
t_2.0.xml'...
  [javadoc] JDiff: finished (took 0s).

jdiff:

BUILD SUCCESSFUL
Total time: 14 seconds
>
Ant プロセス終了後、file:///C:/_java/tool/jdiff/1.0.10/examples/sample_output/newdocs/changes.html にアクセスする。

[JDiff 生成結果(1)] [JDiff 生成結果(2)]

Posted in Library | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 04, 2006

[Blosxom] SimpleAPI その1. にチャレンジ(2)

SimpleAPI その1. 用の Blosxom プラグインを作成してみた。 %BLOSXOM_HOME%/plugins/siteimg に保存して、Story 内で [[siteimg:<URL>]] と記述するだけ。

SimpleAPI その1. 用 Blosxom プラグイン

プラグインのソースは下記の通り。 ZIP アーカイブでダウンロードする場合は こちら

# Blosxom Plugin: siteimg
# Author: in-vitro.jp
# Version: 1.0.0
# License: GPL

# Autoattach
#
# Usage Examples:
#  [[siteimg:http://www.in-vitro.jp]]

package siteimg;

###############################################################
# Configuration Section

$simpleapi1_url  = "http://img.simpleapi.net/small/";

###############################################################


sub start {
  1;
}


sub story {
  my ($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_;

  $$body_ref =~ s/\[\[siteimg:(.+)\]\]/ <a href="$1\"><img src="$simpleapi1_url$1" width="128" height="128" border="0"><br>$1<\/a>/gs;

  1;
}

1;

こんな感じで表示される。

http://www.in-vitro.jp/blog/index.cgi

Posted in Blosxom | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 03, 2006

[WebService] SimpleAPI その1. にチャレンジ

SimpleAPI その1. ウェブサイトサムネイル作成API β版 というサービスを見つけた。 URL を渡すとページのサムネイル画像を返してくれる。 なかなか面白そうなので試してみた。

SimpleAPI
http://img.simpleapi.net/

このサイトのサムネイル画像


<a href="http://www.in-vitro.jp/blog/index.cgi"> <img src="http://img.simpleapi.net/small/http://www.in-vitro.jp/blog/index.cgi" alt="" width="128" height="128" hspace="4" vspace="4" border="0"> </a>
Blosxom 用の plugin でも作ってみようかな。

Posted in WebService | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 02, 2006

[Trac] Trac にチャレンジ(3)

マクロの追加

Trac built-in Wiki 用のマクロを追加してみた。 マクロは以下で公開されている。

MacroBazaar
http://projects.edgewall.com/trac/wiki/MacroBazaar
TracHacks - plugin
http://trac-hacks.org/wiki/plugin
今回追加したマクロは以下の通り。
Javadoc
http://projects.edgewall.com/trac/wiki/MacroBazaar#Javadoc
AddComment
http://trac-hacks.org/wiki/AddCommentMacro
TOC
http://trac-hacks.org/wiki/TocMacro
マクロは *.py をサイトからダウンロードしてきて、/tmp/trac/myprojects/wiki-macros (パスは環境毎に異なる)にコピーするだけで良い。 PukiWiki や Hiki などと同じ感覚で大丈夫。

Milestone を Google Calendar に表示する

Trac は Roadmap を iCalendar 用データファイルとしてエクスポートする機能を持っている。 このデータファイルには、Milestone やチケットの情報が含まれている。 都合の良いことに、Google Calendar は iCalendar のデータファイルをインポートする機能を持っている。 というわけで、Trac の Roadmap 情報を Google Calendar にインポートできるか試してみた。

Milestone の作成

まず Milestone を作成する。 先日試した様に trac-admin を使用する。 Milestone を作成する際には、必ず完了期日を指定する。 Google Calendar では完了期日の指定されていない Milestone は表示されない。

# trac-admin /tmp/trac/myprojects milestone add MyMilestone "Jun 18, 2006"
ちなみに、完了期日の設定されていない Milestone に完了期日を設定する場合は
# trac-admin /tmp/trac/myprojects milestone time MyMilestone "Jun 18, 2006"
という様に、"add" コマンドの代わりに "time" コマンドを使用する。

Roadmap のエクスポート

Roadmap ページに行くと、"Download in other formats: iCalendar" というリンクがある。 ここをクリックすると Roadmap の情報がエクスポートされる。

Google Calendar にインポート

Google Calendar の "settings" から "Import Calendar" タブを選択する。 先ほどエクスポートしたデータファイルを選択し、インポート先のカレンダーを指定。 "Import" ボタンを押下するとデータがインポートされる。

[データファイルのインポート] [インポート完了]
[インポートされた Milestone] [Milestone の詳細情報]

Posted in Trac | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 01, 2006

[Book] フリーで公開されている Java 関連書籍リスト

何となく集めていたフリーで公開されている Java 関連書籍を整理してみた。 古いものが大半だけれど、まだ情報源にできる書籍もそこそこある。 今となってはどこから集めたのか分からないので出典は掲載しない(というか、できない)。


Essentials of the Java Programming Language
http://www.computer-books.us/ja...
http://www.computer-books.us/ja...

Java AWT Reference
http://www.wuppy.net.ru/books/Orel...

Java Language Reference
http://www.wuppy.net.ru/books/Orell...

Java Web Services Tutorial
http://www.computer-books.us/java_...

JDK 1.4 Tutorial
http://muhammad.home.cern.ch/muhamm...

Thinking in Java, 3rd ed
http://jamesthornton.com/eckel/TIJ...

Introduction to Programming Using Java, Fourth Edition
http://math.hws.edu/javanotes/cont...

Core Servlets & JSP
http://pdf.coreservlets.com/

Processing XML with Java
http://www.cafeconleche.org/books/...

Apache Jakarta Commons
http://www.phptr.com/content/images...

JDBC API Tutorial and Reference, Second Edition
http://java.sun.com/j2se/1.4.2/docs...

The Java Virtual Machine Specification Second Edition
http://java.sun.com/docs/books/vms...

Data Structures and Algorithms with Object-Oriented Design Patterns in Java
http://www.brpreiss.com/books/opus...

Java Look and Feel Design Guidelines
http://java.sun.com/products/jlf/ed...

The Java Native Interface Programmer's Guide and Specification
http://java.sun.com/docs/books/jni/h...

Designing Enterprise Applications with the J2EE Platform, Second Edition
http://java.sun.com/blueprints/guid...

Java Security
http://www.goldfish.org/books/O'Rei...

Posted in Book | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |