Japan Akihito Fujii's Weblog 日々是新 Akihito Fujii's Weblog

金曜日 1 28, 2005

English Translation: (Google) / (Yahoo!)

デジタルガレージがブログ事業会社のテクノラティジャパンを設立。すばらしい!株買おうかなぁ、遅いか・・・。本家、伊藤譲一氏もBoardに。

木曜日 1 27, 2005

English Translation: (Google) / (Yahoo!)

CNETのJohn Loiaconoの発言に関する記事「サン、サーバソフトのオープンソース化も検討」読まれたでしょうか。ソフトウェア業界は本当に恐ろしい世界です。ビジネス面が一番難しいところだと思いますが、それはさておき、オープンソースへの正面からの企業全面参画は、もしかしたら、SEのキャリアアップの横道を王道に取り込むことになるかもしれませんね。(っていいつつ、私、サーバ製品担当なんですけど・・・)
English Translation: (Google) / (Yahoo!)

同じチームの渡辺さんのBlogが始まりました。流通、EA-TRM、WebAppのネタを期待していますが、サッカーネタが多くなるんでしょうね。なんせ、ヤジでJリーガーを泣かせ、イタリアまで俊介見に行く人ですから・・・。大森さんのBlogがなかなか始まらないなぁ・・・。

水曜日 1 26, 2005

English Translation: (Google) / (Yahoo!)

BigInteger, BigDecimalのlongValue()に関するバグBugID:4823171で困っていたら、Sun のPrincipal SE, Sun JapanのJavaの権化、山口浩さんが「そんなんDeserialize後の同期部分のバグろうから、同期取らせれば回避できるんかもよ?」とさらっと一言。すぐにテストして、回避策を作ってくれました。すばらしい、ちょっと感動です。negate()2回とは。
もちろん、根本的な解決策ではないですし、「バグなんだからもちろんもとの原因を直せ」って話ではありますが、Workaroundを見つけることも非常に大切ですよね。あとから考えれば、「ああ、そうか、検討すべきだったな。」とか思うでしょうが、自身の未熟さを痛感です。ビバ!山口さん。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.math.BigDecimal;

public class BigDecimalTest {
    
    public static void main(String[] args) {
        //BigDecimal bigDecimal = new BigDecimal("-7493989779944505344");
        BigDecimal bigDecimal = new BigDecimal("-2882303761517117440");
        System.out.println("created BigDecimal (before serialization):");
        System.out.println("toString=" + bigDecimal + ", longValue=" +
bigDecimal.longValue());
        System.out.println();
        
        try {
            FileOutputStream fileOut = new FileOutputStream(new
File("biginteger.ser"));
            ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
            objectOut.writeObject(bigDecimal);
            objectOut.close();
            
            FileInputStream fileIn = new FileInputStream(new
File("biginteger.ser"));
            ObjectInputStream objectIn = new ObjectInputStream(fileIn);
            bigDecimal = (BigDecimal) objectIn.readObject();
            objectIn.close();

	// workaround begin
	    bigDecimal = bigDecimal.negate().negate();
	// workaround end

            System.out.println("serialized and deserialized object");
            System.out.println();
            
            System.out.println("BigDecimal after deserialization: ");
            System.out.println("toString=" + bigDecimal + ", longValue=" +
bigDecimal.longValue());
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
English Translation: (Google) / (Yahoo!)

久しぶりにSOA第3弾です。以前のSOAについての書き込みで、SOAのBuzz Word化を取り上げましたが、私なりの考えを整理してみたいと思います。どこにSOAの良い部分があるのでしょうか。安価なOpen Standard BaseのB2B, EAI製品であれば、なんのそこまで注目すべきパラダイムシフトも起きません。ましてや、SOAによって全体の開発コストが劇的に変わるわけでもありません。SOAの本質を私はシステムの視点をServiceを軸に視点を逆転させるところにあると考えています。例えば、Amazon のWebサービス、30万人の登録者が、日々Amazonのサービスの新しい利用、活用方法を考えています。本のバーコードをAmazonに携帯端末から問い合わせて、売っているものより安ければ買う、こんなことを考えている会社が以前USで取り上げられていました。これはサービスの主体者が、サービスの活用をITをキーに他社へ拡大させる可能性を秘めています。AmazonのWeb shoppingに最先端のIT技術者、アイデアマンは集まりません。(すくなくとも集まりにくいでしょう。)ですが、Amazonはサービスの公開とアフィリエイトプログラムでITベンダーでも難しい開発者Communityを作ってしまっています。もしこれが、他の既存の業界で起きたらどうなるでしょう。これは大きなパラダイムシフトを起こすかもしれません。業界の1,2位の企業は、この流れを生かすべきでしょう。ウォルマートは、AS2で業界のプロトコルを決めてしまうわけですから、日本の企業も海外発のスタンダードにのっかっている場合ではありません。トヨタの奥田会長は、環境技術の標準化規格の動きに対して、「勝った企業のやりかたがスタンダードになる」とその動きを一蹴したそうです。(どこかの記事で読んだんですがわすれてしまいました。拡大解釈していたらごめんなさい。)サービスインタフェースのスタンダードについて、もっと企業はSOAをキーワードに取り組むべきかと思っています。
以上、私見です。意見などあれば、コメントください。第4弾に続きます。

月曜日 1 24, 2005

English Translation: (Google) / (Yahoo!)

久しぶりに仕事と関係ないネタを。週末、野川公園で写真家の橋本和典さんに家族写真をとってもらいました。高いデジカメを購入してもなかなか子供のいい写真がとれないので、嫁がkazufoto.comを見つけて子供の誕生日記念にと、週末親子撮影会となりました。単なるデジカメの大量データを、保管、印刷、加工をという昨今のビジネスに走るのでなく、いい写真をいかに撮るか、それにどういう対価を払うのかという、サービスの本質にせまる新しいビジネスの形態のような気がしています。後日、出来あがったら一枚upします。

木曜日 1 20, 2005

English Translation: (Google) / (Yahoo!)

昨日、press向けのJava Studio Enterprise 7のセミナーを実施しました。プレゼンとデモあわせて20分しかなく(当然時間オーバー:P)技術的な部分はあまり話せなかったのが残念ですが、(個人的には地味なTest Client Web App 自動生成機能をデモしたかった)なんとか特徴だけは伝わったのではないかと思います。わかりやすい製品ツアーがありますからこのデモ必見です。実際のUMLのモデリングのデモは、英語ではありますが、これがGoodです。まねるだけで機能がさらっと理解できます。
ただ、一番具体的に開発するインフラサービスとして効果があるのは複数Web AppのSSOの実装機能やPortlet sample/Portal Serverかもしれません。これらはDev Summit までにデモ作る予定です。
しかし、私が言うのもなんだが、これ・・・安すぎ。開発ツールベンダーに嫌われそう・・・。ま、IBMのEclipseに比べれば大したことないか。UML guruの方、Eclipse guruの方、JSE 7利用して、是非フィードバックお願いします。

火曜日 1 18, 2005

English Translation: (Google) / (Yahoo!)

@ITの12月News Insight 月間アクセスランキングの1位から3位までSolaris 10の記事がランクされていました。技術者に注目されるSolaris 10、やっぱりこうでなくてはいけませんね。「InternetはSolarisがいいんだろ」的なバブルがハジけ、厳しい状況である現在、あるべきところからもりあがりは本当の復活の序章になることでしょう。私がSunに転職して初めて担当したのが x86 Solaris。x86でZoneつかってWeb/App server/DB分離をNote PCで動かしたいものです(なんのために・・・)

木曜日 1 13, 2005

English Translation: (Google) / (Yahoo!)

Applogicって知ってますか。知ってる人はかなりのApp serverオタクです。KIVA, Netscape Application Serverが利用していたアプリケーションコンポーネントです。J2EEのServletみたいなもんですね。東芝ITソリューションの佐藤さんと電話でApplogicからJ2EEへの移行について話していて、ソフトウェア・テクノロジーの進化と陳腐化について考えさせられてしまいました。当時のApplogicの採用者は、間違いなくChasmの左側にいるEarly Adoptor, Visionaryタイプです。当時の採用者がいれば、テクノロジーの進化と陳腐化はソフトウェアビジネスの流れなのでしょうがないと、理解できる方なのでしょう。担当が替わってmajorityタイプが担当になり、不景気による塩漬け効果等が加わると、「なぜサポートを続けないんだ」ということになってしまいます。新しいテクノロジーによる先行者利益と、枯れた安定したテクノロジーによる実利を同等で比べるのはいつも難しいものです。
製品技術や標準技術の栄枯盛衰は、ソフトウェアのエンジニアの習得すべき技術にも関係してきます。 最新の構築技術やJavaの技術も例外ではありません。(一昔前の大学で教えていたソフトウェア工学とかも・・・)ソフトウェアのエンジニアは本来なにを習得すべきなのでしょうか。もしかしたら、マッキンゼーやボストンコンサルティングなどのトップコンサルタントの武器である、知識の蓄積だけない、ゼロから考え抜く力を実績として残すことが重要なのかもしれません。トップコンサルタントがどのような業種の企業をも再生できるように、そういう人であればどのような新しい技術でもビジネスにできますから・・。
書いているうちに、最後に話が変わってしまいました。(笑)

水曜日 1 12, 2005

English Translation: (Google) / (Yahoo!)

Creator seminar等で実施しているCreatorのデモ手順を掲載です。どんどんアピールお願いします。希望ですが・・・デモしたらコメントお願いします。

事前準備
1) Creatorを起動します。
2) アプリケーションサーバを起動します。 サーバナビゲータ -> 配備サーバ を右クリック、「サーバを起動/停止」を選択、ポップアップの「サーバ起動」ボタンをクリック
3) データベースを起動します。
メニューのデータ->PointBaseを起動 を選択
4) 新規プロジェクトの作成
ようこそページの「新規プロジェクトの作成」ボタンをクリック
適当なプロジェクト名(デフォルトの設定でよい)を指定し「了解」ボタンをクリック

デモ開始
1)アプリケーションレイアウト
デフォルトで作成されている Page1.jspタブを選択。
「パレット」, JSF, JSF標準コンポーネントから画像をPage1.jspにドラッグ&ドロップ
画像ファイル、C:\Sun\Creator\samples\components\header.jpgを選択して
了解ボタンをクリック
ドロップダウンリストとデータ表をpage1.jspにドラッグ&ドロップ
ドロップダウンリストを右クリックし、変更時に自動送信を選択
2)データバインディング
サーバナビゲータのデータソース、Travelと表を展開し、Person表をドロップダウンリストに Trip表をデータ表にそれぞれドラッグ&ドロップ(表全体が選択しドロップすること。セルが 選択されている場合にはESCで上位の単位に変更可能)。ドロップダウンリストのドロップしたときの ポップアップでは、リスト項目を作成を選択
3)行セットの操作
tripRowSetを右クリックし、行セット照会を編集 を選択し、照会エディタを表示
テーブル表示の空白部分を右クリックし、表を追加を選択
TRAVEL.TRIPTYPEテーブルを選択し、了解をクリック
SQL文が表示されている部分を右クリックし、照会を実行。実行結果が表示される。
TRIPTYPEテーブルのTRIPIDとDESCRIPTIONを表示しないように、チェックをはずす。
表部分のPERSONIDの条件のセルを右クリック。
条件の追加を選択し、パラメータを押して了解をクリック。
データ表を右クリック、表レイアウトを編集。
PERSONIDとTRIPTYPEIDを表示からはずす。
TRIPTYPE.NAMEを表示に加える。
ページレイアウトタグを選択し、ページサイズを有効をチェックし、ページサイズを3に設定 ナビゲーションボタンを表示をチェックし、それぞれ、最初、前、次、最後に変更し、位置を 下に変更。了解をクリック。
4) コーディング
ドロップダウンリストをダブルクリック。パレット、クリップ、デモからtravel dropdownを ドラッグし、
    public void dropdown1_processValueChange(ValueChangeEvent vce) {
        // User event code here...
    }
に追加。
同様に、travel initializationをドラッグし、
public Page1() {
         フォールドされているコード。。   
        // Additional user provided initialization code
    }
に追加
5)実行
実行ボタンをクリックし、実行。ブラウザから、ドロップダウンや、データ表のボタンを操作しアプリの動作を確認。
Webサービス
1) Web services
サーバナビゲータ、Webサービスを右クリックし、Webサービスを追加を選択
ローカルファイルのラジオボタンをクリックし、ドロップダウンから、JavaTravellerService_pe.wsdlを選択
Webサービス情報を取得 ボタンをクリック
webサービスメソッドをテスト
追加 ボタンをクリック
2) データ表
データ表のレイアウトを開く。表示のTRIP.TRIPIDを選択し、コンポーネントタイプをボタンに変更 了解をクリック
3) 結果の表示
出力テキストをページにドロップ。プロパティのEscapeのチェックをはずす。
4) コードの追加 データ表に新たにできたボタンをダブルクリック。trcと打ってspaceでtry catchを作成
            String s= javaTravellerService_Service4Client1.javatravellerserviceportGetTripItinerary("" + button1.getValue());
            outputText1.setValue(s);
を追加(Ctl+Spaceでコード補完可能)outputText1の番号を変更しなければいけないケースあり。出力テキスト追加時に番号を確認のこと。
5) 実行
実行ボタンをクリック。アプリケーションをテスト

金曜日 1 07, 2005

English Translation: (Google) / (Yahoo!)

CNETで連載されいた梅田さんのBlogが終わってしまった。1996年、シリコンバレーでアーサー・D・リトル時代にお目にかかって話を聞き、これをきっかけに翌年初に私はSunに転職しました。(一緒に行った友人Y氏は梅田さんのところに弟子入り。)Sunのイベントの基調講演とかで招聘してほしいものです。こんどはこっちでチェックですね。http://www.mochioumeda.com/

木曜日 1 06, 2005

English Translation: (Google) / (Yahoo!)

年末にとてもよい本にめぐり合いました。「ソフトウェア企業の競争戦略」です。ほかにもタイトルがキャッチーな「だから顧客が盗まれる」とか数冊読んだんですが、やはりこのMITの先生が書いた本は別格でした。本当にこれだけ示唆に富んだ本を読んだのは久しぶりです。(後でわかったんですが、有名な本だったんですね・・・恥ずかしい)
Sunのソフトウェアビジネスにかかわる身としても、頭の中のもやもやがきれいに整理されていく気がします。無論、もうスタートアップ企業でないSun、Javaという市場の特異性、日本の営業形態なども加味しなければ、Sun Japanにおけるソフトウェアビジネスについては議論できませんが、社内でもよくある、製品かサービスか、ハードかソフトかという二者択一の議論の不毛さを明確にしてくれています。
低価格コモディティ化製品を利用したプラットフォーム製品のビジネス推進方法とは?総合系のSI企業文化とオフショア開発の推進のなかで、日本の、またはSun Japanのサービスビジネスとはどうあるべきなのか?このような状況下でpre sales engineerのキャリアはどう描けばいいのか?今回新たに作成したbusinessというカテゴリで(今年からきちんとカテゴリを指定したいと思います)私なりに考えて行きたいと思います。
しかし・・・ITのビジネス、ソフトウェア・・・なんて面白い業種なんでしょう:P。

水曜日 1 05, 2005

English Translation: (Google) / (Yahoo!)

Profiler あけましておめでとうございます。今年もよろしくお願い致します。 今年は、Java 10周年の年です。Javaの登場後、どうせなら本家でJavaに携わろうと、富士通からSunに転職した私ですが、あらためてJavaとその技術、ビジネスを考え直してみたいと思っています。プライベートな年賀状をupします。恥ずかしながら、写真は息子の「新(あらた)」です。今年も「日々是新」で臨みたいと思います。
日々是新 Akihito Fujii's Weblog