2007年12月12日(水)

コンピュータ > Developer

Windows環境でApacheとTomcatを連携させる

2007年12月12日現在、Apache2.0系の最新版であるApache2.0.61と
Tomcat5.5系の最新版Tomcat5.5.25を使って、連携させてみました。

開発メモ.COMを参考にして、
mod_jkの設定は途中まではうまく行っていたのですが、
mod_jk.confの設定の所で
JkWorkersFile、JkLogFileのファイルパス名を"(ダブルクオーテーション)で囲まないと
Apacheが起動しなくなるというトラブルがありました。

それ以外は素直に行けました。
iBATIS JPetstoreをサンプルアプリケーションとして稼働させていたので
JkMountに記述するURLは"/jpetstore/*"とか"/jpetstore"になりました。


2007年11月14日(水)

コンピュータ > Developer

技術力を主張するにはどうすればよいかと。

ニコニコ動画で面白い動画を探すのが最近の趣味になってきました。

こんばんは。ぜんです。

いやぁね。突然ですが、最近ITエンジニアの技術力の高さってどう比べるのよ!?どう高さを主張するのよ!? って思ったりするわけですよ。

最近、この手のITスキル標準化の動きというのも社会でいろいろとありますが、 ITSSで見るような年収ベースの評価方法だと、その人が所属する企業によって公平感が損なわれてしまいそうだし、情報処理試験などなどの資格・試験で評価するのも 実際、頭でっかちで技術できないって人がいることを考えると微妙。 逆に資格なんかなくても、すごい仕事の出来るエンジニアはいるわけで。

これが個々のITエンジニアレベルでなく、IT企業レベルの比較になると余計大変。 IT企業から「ウチは技術力が高いのがウリです。」ってセリフはよく出てくるものの、さて何を根拠に言っているのやら。って話になっちゃう。この主張を行う対象がITの世界に長けている人なら、「仕事の内容がこうでこうで・・・だから技術力が高い」と、まだ説明もいろいろとできるが、そうではない人になるとかなり難しい。職人が自分の腕前が凄いことを素人に解からせるようなものだ。

そこでそもそもIT企業にとって、技術力の高さを見せつけるべき対象は何処なのかを考察してみたい。 まず、その1。学生。 採用のことも考えれば、学生に対して技術力の高さを押すというのは有益なことだ。 学生にとって、自分の就職先が高い技術力がウリというのであればスキルアップを目指す学生にとっては非常に魅力的に映るだろう。

次に、その2。エンドユーザ。 システムを実際に使うお客さんである。エンドユーザにとっての技術力の高さは信頼感・安心感のバロメータであり、それによってお金を出す・出さないの判断基準になる。やはり末端のお客さんから見れば、「技術力が高い」と言われる会社に仕事を頼みたいというのが人情だろうし、実際出来るシステムの質を考えてもそういうものだろう。

今のところ、技術力の高さをアピールするという観点で有用な対象はこれら以外には思いつかない。 他にあったら、ちょっと教えてほしい。

学生・エンドユーザ向けに技術力をアピールするという方向で話を進めるとすると 技術力の高さが確実に評価できるのは、やはり資格・試験の類だ。 「その資格に受かっている」というだけで、技術に疎い学生やエンドユーザに対しても単純な比較が可能となる。 「あ、こっちの人が『受かっている』のだから、技術力が高いんだね。」と。

あと他に有効そうな評価方法はあるか? う~ん、どうしても考えつかないなぁ。。。

ACMのプログラミングコンテストみたいに、 同じ課題に対して、どれだけ低コストかつ利便性の高いシステムを提供できるかを競う。っていう、 "The King Of Engineers"的なイベントがあればいいのか? ああ、なんかそれなら公平な気がしてきた。 実現性は限りなく乏しい感じがするけど(笑)


2007年08月07日(火)

コンピュータ > Developer

「Javaの鉄則―エキスパートのプログラミングテクニック」

Javaの鉄則―エキスパートのプログラミングテクニック
  • タイトル:「Javaの鉄則―エキスパートのプログラミングテクニック」
  • 発行年:2000
  • 出版社:ピアソン・エデュケーション
  • 著者:ピーター ハガー,翻訳:ドキュメントシステム

Javaを扱うのなら必読の一冊。難易度は中級者向け。

他のJava書籍に比べてJava性能面でのパフォーマンス改善テクニックが豊富に載っている点が特徴。一度は目を通しておくと、きっと無駄に遅いJavaプログラムをコーディングしなくても済むだろう。

コンパイラのコンパイル過程を追って、バイトコードレベルでの解説が入っていたりするのも本書の特徴。Javaコンパイラが何をやっているのかを知るという意味でも本書は一読の価値があると思う。

以前、紹介した「Javaの格言」と比べると、オブジェクト指向による効率のよいコーディング手法を語っていた格言に比べ、鉄則の方がややJavaそのものの知識集的な印象を受ける。鉄則、格言両方マスターすれば、相当なJavaゲンガーに成れるに違いない。

Java初心者から中級者へのステップアップへの一冊として本棚には入れておきたい一冊。


2007年07月28日(土)

コンピュータ > Developer

「コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~」

コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~

  • タイトル:「コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~」
  • 発行年:2004
  • 出版社:日経BP
  • 著者:矢沢 久雄

技術のわからない新米SEなら必読の一冊。 この本に書いている内容を理解していないSEがいるとしたらぞっとする。 逆に情報系専攻や学科を出た人なら 別に読まなくても・・・・的な一冊でもある。

タイトル通りハードウェアからソフトウェアにかけて幅広くのトピックを拾い上げて分かりやすく解説している所はさすがといえる。ハンドアセンブリングやICチップの話はともかくデータベース、XMLと話が広がってくるとは思わなかった。

まぁ、確かにどれもIT技術者であれば必須の内容なのだが、この本だけ見てると、ちょっと話の焦点が拡散しすぎかな~という印象を受けた。無理してDBやXMLに触れる必然性をあまり感じなかった。本の厚みを増すために無理やり書き足した感があるのがいまひとつ。 いや、それでも内容自体は分かりやすくていいんだけどね。なんか読んでて完結感がないんですよ・・・。

というわけで星3つ。


2007年07月23日(月)

コンピュータ > Developer

ふと気づいたこと

論理バグがコンパイルエラーになることって 実はすごい幸せなことだったんだね。

学生時代、僕はそんなこと無視して 如何にコンパイルエラーを避けようかと、 一生懸命苦労して論理バグを作り出していたよ。

だってコンパイル通らないのいやじゃない。


2007年07月10日(火)

コンピュータ > Developer

初学者にはグラフィカルな体験を

初学者にはグラフィカルな体験を

これ読んで、たしかにどこもかしこも入門書の初めには お決まりのように「HelloWorld」があるけど、 正直な所、「作って何が嬉しいんだか」と思う。

今頃の初学者は携帯などの普及によって コンピュータシステムのユーザとしては 結構な熟練者であったりする場合が多いから、 もっとお手軽にグラフィカルなプログラムが書ける言語を 体験させてあげるのがよいのかもしれない。

初めて動かすプログラムで「おおっ!」って 感動すら味わえないのはちょっと寂しいもんなぁ・・・。(^^;;

で、下調べにAdobe Flex2のサンプルコーディングムービーを見てみた。

http://www.adobe.com/products/flex/media/flexapp/

こいつは、スゲー!! たしかに10分程度のプログラミングでものすごいWebアプリ クライアントが出来上がってるw

しかし、コードと出来上がったものにあまりのギャップがありすぎて、初学者がどこまで理解できているのか正直怪しいw う~む、コードと成果物とのギャップという観点ではHelloWorldはプログラミングの入門にはバッチリなんだが・・・。

両方いいとこ取りって難しいなぁ。 リッチなHelloWorldって言われてもいやだしな(笑)


2007年05月13日(日)

コンピュータ > Developer

ゼロから始めるArrowVision&S2Javelin(第3回・最終回)

ウチのサイトでフリー配布されているArrowVisionS2Javelinを自宅で評価実験してみることにしました。

今回このブログでは、その評価実験、つまり「ArrowVisionでSeasarアプリケーションの挙動を解析できるようにする」までをつらづらと書き綴ってみたいと思います。

さて前回はS2Javelinの設定を行い、Seasar2アプリケーションであるs2jsf-exampleに名前のごとくJavelinを刺しました。今日はS2Javelinを動かしてログを取得し、ArrowVisionでログを閲覧することにより、アプリケーションの心電図ともいうべき挙動を覗いてみようと思います。


12.s2jsf-exampleの起動

それではs2jsfサンプルアプリケーションのs2jsf-exampleを起動します。といっても実際にやることは大したことなく、Tomcatを起動するだけです。Tomcatプラグインが正しくインストールされていれば下の画面のようなネコマークがあると思うので、これをクリックしてください。アプリケーションサーバであるTomcatが起動します。

Tomcatが起動するとeclipse画面下のコンソール画面にログがずらずらと表示されます。このログが下の図のようになれば問題なくs2jsf-exampleが起動できたことになります。

それでは実際にs2jsf-exampleにアクセスしてみましょう。Internet Explorerを開いて、アドレスバーにhttp://localhost:8080//s2jsf-example/と入力してください。(面倒ならこのリンクを新しいウィンドウで開いてもいいです。) 下のような画面が出てくると思います。

13.HSQLDBの起動

ここではs2jsf-exampleに付属のHSQLDBというデータベースを起動します。s2jsf-exampleを解凍したディレクトリの中にあるbinフォルダの中に"runHsqldb.bat"というファイルがあるので、これをダブルクリックしてください。

うまく起動できれば下の図のような黒い画面が出てきます。うまく起動できない場合はJavaにパスが通っていない場合が多いです。環境変数PATHにJavaへのパスが正しく設定されているかを確認してください。(詳しくはこちらを参照)

14.S2Javelinログの取得

s2jsf-exampleが正しく起動でき、HSQLDBも起動できた場合はあとは適当にポチポチとs2jsf-exampleの「EmployeeManagement」を操作してみてください。(下図参照)「EmployeeManagement」はその名の通り社員管理システムなので、好きな人を昇給させたり、役職を変更してみたりすると面白いかもしれません。

エクスプローラで「C:\temp」フォルダを確認すると「s2javelin.jvn」というファイルが生成され、操作するたびにこのファイルのサイズが大きくなっていくのが確認できます。これが動作ログの生成です。

15.ArrowVisionの起動

動作ログが取得できたところで、ArrowVisionを起動します。"ArrowVision_3.1.0.zip"を解凍し、解凍先フォルダの"ArrowVision.exe"をダブルクリックしてください。ArrowVisionのウィンドウが開きます。

16.ArrowVisionで動作ログを見る!

ArrowVisionが起動したら後は簡単です。下の図のようにArrowVisionのウィンドウに「C:\temp\s2javelin.jvn」をドラッグアンドドロップしてください。

おお!どの処理がどういうタイミングで走っているのかを矢印で示すビューが表示されましたね!!

ArrowVisionの詳細な使い方についてはここでは書きません。いろいろ触って使い勝手を試してみてください。こちらの村田さんのブログにも紹介記事があるので参考になると思います。

追記

プログラミング(正確に言うとコードやログといったぐちゃぐちゃしたアルファベット)が嫌いな私にとってはこういった分かりやすい形でログを表示してくれるツールは非常に助かります。(o^-^o) ぜひさまざまな人にもこのツールを触って、システムの見方を変えることによる作業効率化について、考えてもらえればと思います。

2007年05月12日(土)

コンピュータ > Developer

ゼロから始めるArrowVision&S2Javelin(第2回)

ウチのサイトでフリー配布されているArrowVisionS2Javelinを自宅で評価実験してみることにしました。

今回このブログでは、その評価実験、つまり「ArrowVisionでSeasarアプリケーションの挙動を解析できるようにする」までをつらづらと書き綴ってみたいと思います。

さて前回はeclipseを中心とした開発環境の構築を行ってきました。今日はいよいよアプリケーションにS2Javelinを名前のごとく刺してみようと思います。


8.S2Javelinのファイルコピー

"S2Javelin-V0.2.0.zip"を展開した結果が下の図です。

この中で"javelin.dicon"をs2jsf-example展開結果の"s2jsf-example\WEB-INF\src"にコピーします。 また"s2javelin.jar"を同じs2jsf-example展開結果の"\s2jsf-example\WEB-INF\lib"にコピーします。

9.s2javelin.jarのビルドパスへの追加

上記のファイルコピーが終わった段階で、eclipseに戻り、s2jsf-exampleプロジェクトを右クリック→「更新」とすると下図の場所に"s2javelin.jar"が追加されていると思います。これを写真のように右クリックし「ビルド・パスに追加」としてください。

10.diconファイルの設定

次にプロジェクト内の"WEB-INF/src"を開き、app.dicon(下図)をダブルクリックして開きます。

ここでの設定の方法はさまざまな方法があるのですが、筆者が一番楽にS2Javelinを適用できたものを示します。 まず以下の3箇所の赤字部分を追加してください。

【インクルードするdiconの定義部】
	<include path="jsf.dicon"/>
	<include path="dao.dicon"/>
                (略)
	<include path="examples/jsf/dicon/insert.dicon"/>

                <include path="javelin.dicon"/>

【actionInterceptorChain定義部】
    <component
        class="org.seasar.framework.container.autoregister.AspectAutoRegister"
    >
        <property name="interceptor">actionInterceptorChain</property>
        <initMethod name="addClassPattern">
            <arg>"examples.jsf.action.impl"</arg>
            <arg>".*ActionImpl"</arg>
        </initMethod>
        
        <property name="interceptor">javelin.javelinTraceInterceptor</property>
        <initMethod name="addClassPattern">
            <arg>"examples.jsf.action.impl"</arg>
            <arg>".*ActionImpl"</arg>
        </initMethod>
        
    </component>
【logicInterceptorChain定義部】
    <component
        class="org.seasar.framework.container.autoregister.AspectAutoRegister"
    >
        <property name="interceptor">logicInterceptorChain</property>
        <initMethod name="addClassPattern">
            <arg>"examples.jsf.logic.impl"</arg>
            <arg>".*LogicImpl"</arg>
        </initMethod>
        
        <property name="interceptor">javelin.javelinTraceInterceptor</property>
        <initMethod name="addClassPattern">
            <arg>"examples.jsf.logic.impl"</arg>
            <arg>".*LogicImpl"</arg>
        </initMethod>
        
    </component>

11.log4jプロパティの設定

最後に"app.dicon"ファイルの下にある"log4j.properties"ファイルを開き、以下の赤字部分を追記します。

log4j.category.org.seasar=DEBUG, C
log4j.additivity.org.seasar=false

log4j.category.examples=DEBUG, C
log4j.additivity.examples=false

log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.ImmediateFlush=true
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n

log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# myfaces logger
log4j.logger.org.apache.myfaces=INFO
log4j.logger.org.apache.myfaces.config=INFO
log4j.logger.org.apache.myfaces.application=INFO
log4j.logger.org.apache.myfaces.application.jsp=INFO
log4j.logger.org.apache.myfaces.lifecycle=INFO
log4j.logger.org.apache.myfaces.taglib=INFO
log4j.logger.org.apache.myfaces.util.DebugUtils=INFO
log4j.logger.org.apache.myfaces.renderkit.html.HtmlResponseWriterImpl=WARN
log4j.logger.org.apache.myfaces.renderkit.html.HtmlRenderKitImpl=WAR

#S2Javelin Logger
log4j.category.org.seasar.javelin.JavelinTraceInterceptor=DEBUG, Javelin
log4j.appender.Javelin=org.apache.log4j.FileAppender
#S2Javelin log file
log4j.appender.Javelin.File=c:\\temp\\s2javelin.jvn
log4j.appender.Javelin.layout=org.apache.log4j.PatternLayout
log4j.appender.Javelin.layout.ConversionPattern=%m%n
log4j.additivity.org.seasar=false

# SQL Logger
log4j.category.org.seasar.extension.jdbc.impl=DEBUG, DaoSql
log4j.category.org.seasar.dao=DEBUG, DaoSql
log4j.appender.DaoSql=org.apache.log4j.FileAppender
#SQL log file
log4j.appender.DaoSql.File=c:\\temp\\s2javelin.jvn
log4j.appender.DaoSql.layout=org.apache.log4j.PatternLayout
log4j.appender.DaoSql.layout.ConversionPattern=Write ,%d{yyyy/MM/dd HH:mm:ss.SSS},,DaoSQL,0,%M,%C,0,public,%t%n<<javelin.FieldValue_START>>%n%m%n<<javelin.FieldValue_END>>%n%n

ちょっと長かったですが、これでS2Javelinの「仕込み」は完了しました! 次回(第3回)ではいよいよS2Javelinを用いてS2jsf-exampleの挙動をログとして出力し、ArrowVisionで可視化してみたいと思います!


2007年05月11日(金)

コンピュータ > Developer

ゼロから始めるArrowVision&S2Javelin(第1回)

ウチのサイトでフリー配布されているArrowVisionS2Javelinを自宅で評価実験してみることにしました。

今回このブログでは、その評価実験、つまり「ArrowVisionでSeasarアプリケーションの挙動を解析できるようにする」までをつらづらと書き綴ってみたいと思います。

【必要なもの】

(※括弧内は筆者実行環境でのバージョンです)
  1. eclipse(3.2.2) ダウンロードはこちらから
  2. eclipse日本語化パック(3.2.1) ダウンロードはこちらから
  3. Tomcat(5.5.23) ダウンロードはこちらから
  4. Tomcatプラグイン(3.2) ダウンロードはこちらから
  5. s2jsf-example(1.0.25) ダウンロードはこちらから
  6. S2Javelin(0.2.0) ダウンロードはこちらから
  7. ArrowVision(3.1) ダウンロードはこちらから

今日は上記の必要なものを一通り揃えて、自分のPCにインストールする所までをやってしまいましょう。

1.ダウンロード

まず任意のディレクトリに上記の製品を全てダウンロードしてきてください。

2.Tomcatのインストール

ダウンロードが全て終了したら、Tomcatのインストーラ"apache-tomcat-5.5.23.exe"をダブルクリックしてTomcatをインストールしちゃいます。インストール先や設定などは全て初期設定のままでよいでしょう。

3.eclipseのインストール

eclipseの圧縮ファイル"eclipse-SDK-3.2.2-win32.zip"を解凍します。中に"eclipse"という名前のディレクトリがあるのが確認できると思います。

4.eclipseの日本語化

次にeclipseを日本語化して使いやすくしましょう。eclipse日本語化パック"NLpack1-eclipse-SDK-3.2.1-win32.zip"を解凍し、中にある"plugins"ディレクトリを先ほど解凍した"eclipse"ディレクトリ内の"plugins"ディレクトリに上書きコピーします。

5.Tomcatプラグインのインストール

Tomcatプラグインをeclipseにインストールします。Tomcatプラグイン"tomcatPluginV32.zip"を解凍し、中にある"eclipse"ディレクトリを先ほど解凍して出てきた"eclipse"ディレクトリに上書きコピーしてください。

6.Tomcatプラグインの設定

そうしたら次にTomcatプラグインの設定を行います。2番目の作業で出来た"eclipse"ディレクトリ内の"eclipse.exe"を実行してeclipseを起動させます。「ウィンドウ」メニュー→「設定」と選択し、「Tomcat」項目内の設定を下の図のように設定してください。ここまでで、開発環境と呼ばれるeclipseの設定は終了しました。

7.Seasar2サンプルアプリケーション「s2jsf-example」のインポート

次にこのeclipseにs2jsf-exampleプロジェクトをインポートします。まず"s2-jsf-example-1.0.25.zip"を解凍します。次にeclipseのワークベンチにジャンプし、左側にある空のパッケージ・エクスプローラの中で右クリック→「インポート」→「一般」→「既存プロジェクトをワークスペースへ」と選択します。その後、出てきたダイアログボックスで「ルート・ディレクトリー」に先ほどs2jsf-exampleを解凍したディレクトリを選択して「終了」をクリックしてください。eclipseのウィンドウが下の図のようになれば問題ありません。

これでS2Javelinを導入する直前まで作業が進んだことになります。次回「第2回」ではS2Javelinのインストール方法と設定方法について紹介します。


2006年10月07日(土)

コンピュータ > Developer

サイズと日付でローテートするLog4jのAppender作成

Codezine
で、「おおっ!?」と思った記事を発見。

「サイズと日付でローテートするLog4jのAppender作成」

「ちょっとあったらいいよな~、でもLog4jにないよな~」
と思うような痒い所に手が届くLoggerがうれしいです。


2006年09月29日(金)

コンピュータ > Developer

Ajaxベースのリッチクライアント開発フレームワーク「マスカット」

NTTデータがオープンソースプロジェクトとして公開した
「マスカット」
ですが、かなり技術的に面白いですね~。

マスカット Pet Store触っただけで痺れてしまいますた。(☆o☆)(ビリビリ)

う~ん、これはおいしそうなぶどうだ。
(*^O^*)


2006年09月26日(火)

コンピュータ > Developer

これはすごい! Webでコードブラウジング"Sorcerer"

「これはすごい! WebでEclipseばりのコードブラウジング"Sorcerer"」
http://journal.mycom.co.jp/articles/2006/09/22/sorcerer/

表題通り、これはすげぇ。
ロボットが完全に2足歩行が出来たくらいの感動っぷり。

ぜひ、オープンソース界に展開して
API&ソースコードリファレンスとして
展開して欲しいなぁ。


オープンソース界ってドキュメントがほとんどできないくせに
ソースコードだけはガリガリ変わっていくから
こういうツールがあると、ぜんぜん違うよね。


2006年09月07日(木)

コンピュータ > Developer

ExcelVBAのここがいやだ

1.キーワードも論理演算子もメソッドもフィールドもアルファベット大文字から始まる表記規則
 ⇒紛らわしくてたまらない
2.End Ifとかいわゆる閉じ括弧に相当する句の存在
 ⇒アルファベットで閉じるっていう感覚がいやだ
3.With句の存在
 ⇒オマエに頼るからコードが見にくくなるんじゃぁ
4.配列の括弧が()
 ⇒なんで[]じゃないねん
5.Currency型の存在
 ⇒もうオマエいらんだろといいたいw
6.コードが文法エラーしているとダイアログボックスをいちいち出してくるVBE
 ⇒もうちょっと静かにしろっ!
7.中途半端な動的配列宣言とReDimの存在
 ⇒JavaのVectorとかに慣れているといらいらしてたまらない
8.Function名に代入してreturnするという考え方。
 ⇒メソッドなんだかフィールドなんだかよくわからん
9.配列の先頭要素の添え字を1オリジンに出来たりする事。
 ⇒他人の作ったコードが読みづらくてたまらない
10.複数行コメントが書けない上にコメントが見づらい
 ⇒'(アポストロフィー)なんて見えない、っちゅうの

Javaげんがーからの苦情です。
どの参考書見ても

Dim X
とか変数宣言しているのが、許せん!w
xだろ、x。

まぁ、インタプリタ言語らしく
デバッグ&トレースが容易なのは素敵だけどね。(-д-)


2006年08月23日(水)

コンピュータ > Developer

アニメーションJavaScriptフレームワーク「Scriptio」

Scriptio
なかなか面白そうなものを見つけました。

JavaScriptアニメーションライブラリらしいのですが、
こちらの例
を見ても、なかなか素晴らしかったです。

Scriptとは思えない質の高さ。ヘェヘェ(・∀・)

:display "Hello, world!" at 30 with center size 20 style bold fade 1 label "hello"

たったこれだけでHello worldのフェードインアニメーションが作れるとは。
やるなぁ。

ただ、文法覚えるのが面倒そう。

そりゃアニメーションを文字表現しようというのだから、当然っちゃぁ、当然ですが・・・。


2006年06月24日(土)

コンピュータ > Developer

技術ネタ3連発(fromオレンジニュース)

最近のオレンジニュースで見つけた
面白い記事をまとめていくつか紹介。

「JavaDocをインクリメンタルサーチ出来るGreaseMonkeyスクリプト」

http://www.teria.com/~koseki/tools/gm/javadoc_isearch/

Javaプログラミングにおけるマニュアルといってもいいし
エンジニア側から言えば、内部仕様書といってもいい
JavaDocですが、インクリメンタルサーチできるのは
確かに便利。
(実装者の命名規則に対する理解がよい場合のみだがw)

ただ個人的には、クラスやメソッドの「機能」に対する
検索をかけたいかなぁ。と。
「こんな機能もったクラス(メソッド)ないかな~?」
なんて探す時なんかには有用かと思うのだが・・・。・

クラス名だけじゃ、メソッドの詳細仕様までわからんから、
そんな検索をかけたいときがあるんだけどなぁ。


「必ず勝つジャンケンロボット(動画もあり)」

http://www.hfl.hiroshima-u.ac.jp/vision/vision4.html

動画が感動モノです! ヽ(゚∀゚)ノ ヤハー

まさにコンマ1秒を争う
「東京大学物語」の世界(わかる?)

すげー。


「Microsoft、「Windows Live Messenger」正式版リリース」

http://internet.watch.impress.co.jp/cda/news/2006/06/20/12392.html


もう大分使っている人もいるんじゃないでしょうか。
オイラももう1ユーザです。→ダウンロード

緋野出くんといろいろやって遊んでみましたが、まず

★「ファイル共有機能」

実際はファイル転送して、共有しているように見せているだけです。
いいのか、そんな安直でw



★「ミュージック・ミックス」
会話ウィンドウの「操作」>「アプリの開始」から選択できるのですが、
これも音楽ファイルを相手に転送して、同期を取っているだけです(汗)
う~ん、なんというか・・・ここまで作りこんだ努力は認めるが・・・
タネがわかると大したことないというか・・・
「それでいいのかマイクロソフトよ。」というか・・・。

む~ん。

ただ、巻戻しや早送りでちゃんと相手と同期が取れているところはウケタ(「便利」ではないw)
相手と同じ曲聴きながら、
「今のここいいよね~」
なんて会話をするのにはいいのかもしれないですが。

でもファイルが相手先にコピーされるので、
違法コピーを増長させないかが心配です。
何も考えないで使っていたら危ないのでは!?

最後
★「リモートアシスタンス」
PC上級者に操作がわからない時に利用するやつですね。
上級者側が相手の画面を直接操作できます。

これ、ちょっとしたセキュリティホールになってから
かなりDANGERな機能ですが、まぁ、大丈夫なんでしょう(ぇ

「相手のエロゲームを勝手に操作する」とかできてしまうという
ひどい事が可能です。

一緒になって楽しめば
それはそれで構わないんでしょうが


2006年06月13日(火)

コンピュータ > Developer

tar -tvfとExcelでファイルリスト作成

ちょっとしたエンジニアメモを。

(1)あるtarに対するtar -tvfの出力結果をリダイレクトでfilelist.txt等に出力

# tar -tvf xxx.tar > filelist.txt

(2)FTPとかでWindows端末にfilelist.txtを持ってきて、
Excelで「スペースでフィールドが区切られたファイル」として読み込む。

(3)適当に編集する。

するとtarファイルの中身を一覧できる表が完成!


tarで作ったファイルリスト

↑Excel上ではこんな感じ。

Excelのオートフィルタ機能やソートとかと組み合わせると、結構いろいろ使えます。
特定のパーミッションのファイルのリストを作るとか・・・。
作成日付順のリストを作るとか。(これだけなら"ls -ltr"でも十分かw)

jarでもほぼ同様のことができますね。


2006年04月30日(日)

コンピュータ > Developer

eclipse3.1.2の日本語化に感動した!

もはや定番のJava開発環境eclipse
最新版バージョン3.1.2の日本語化の仕組みを見て感動しちゃいました。

Pleiadesという日本語プラグインは
(正確にはプラグインではなく、日本語翻訳コンテナらしい)
アスペクトを利用してeclipseを日本語化してるんですねぇ~~。

いままではeclipseバージョンが変わるたびにプラグインもバージョンアップの必要がありましたが、
この仕組みなら、その必要もなし。

いままでは必死こいてeclipse君が作られる度に日本語教えてたのに、
Pleiadesは、eclipse君がしゃべる言葉を「リアルタイムに日本語に聞こえるように変換する」ってことですね。

プログラム界の翻訳コンニャクだ!(^o^)/

アスペクトにこんな使い方があったとは・・・。
なるほどなぁ。


2006年04月24日(月)

コンピュータ > Developer

ウェブサイトサムネイル作成API

ウェブサイトのURLを入力するだけで、そのサイトのサムネイルを生成してしまう
APIを公開しているサイトを発見。
http://img.simpleapi.net/

例えば↓のような感じ。



これだけのレスポンスで、サクッとこういうのが作れちゃうのか~。
すごいな。


2006年04月16日(日)

コンピュータ > Developer

「成分解析!」に見る、ソフトウェア開発のすごさ。

ソフトウェアってもんの価値を、
「あんまりITってわかんない~」って人にもわかってもらう為
にちょっとした計算をしてみました。


最近、巷で話題の「成分解析」ツール。(話題なのか!?w)
http://tekipaki.jp/~clock/software/

このプログラムがどれくらいの価値があるかを評価する為、
ちょっくら計算をしてみました。

---------------------------------------------------
まず全ての人間の月給を200,000円と仮定。
勤務時間を1日8時間とし、月に20日勤務すると仮定すると
1時間あたりのその人の単価は
200,000(円) / 8 / 20 = 1,250(円)

1分あたりの単価にすると
1,250(円) / 60 = 21(円)

今回の「成分解析」ツールを利用した人が以下のような活動を
したと仮定すると、
 1.ダウンロード(1分)
 2.利用(1分)
 3.mixi日記などにネタとして記述(5分)

1人あたり約7分「成分解析」に費やした事になる。

ゆえに「成分解析」に1人あたり
21(円) × 7(分) = 147(円)


ここで、私のマイミク68人中、4人が「成分解析」を
行っていたので、「成分解析」率を

4 / 68 × 100 = 約5.9%

とする。
すると、2006年3月1日にmixiはユーザ数300万人を超えているので、少なくても
3,000,000(人) × 5.9% = 177,000(人)
は「成分解析」を行っていることになる。

したがって「成分解析」ツールは

177,000(人) × 147(円) = 2601,9000(円)

に相当する人間を動かした事になる。
-----------------------------------


ちなみにこの「成分解析」ツール。
ちょっとプログラミングができる人ならそんなに作るのは
難しいものではないでしょう。
(おそらく)入力された文字列を適当な関数にかけて、
成分と対応づけているだけでしょうから。
 ざっくり見積もって同等のプログラムをわかる人なら
1時間くらいあれば作れるのではないでしょうか。

あのある意味、どうでもよい「成分解析」ツールでさえ、
2000万円の金額を動かせるシステム作りの世界。

すごいでしょ!?(笑)

しかもエンジニアと呼ばれる世界ながら、
男女関係ないですからね~。
頭と指先でものすごいやりがいのある事が出来る
可能性を秘めた世界なわけです。


#強引な計算や仮定などに対する、細かいツッコミ等は「一切」受け付けませんwww


2006年03月22日(水)

コンピュータ > Developer

ホームページを見ていた時間をサーバに記録できる技術

「ユーザがページに滞在した時間をサーバに記録するJavaScript」

こんな記事がありました。
いまさらながら、JavaScriptでこんな事ができるのか~。
JavaScriptの奥の深さに感心です。

ユーザの広告閲覧時間とか取得できれば、立派なマーケティングになると思われ。


2006年02月09日(木)

コンピュータ > Developer

デブサミ2006開催中!!

Developers Summit 2006こと、「デブサミ」が開催中ですね。

中身は「濃い」んですが(笑)、ツカミはほどよく一般向けのコンテンツが詰まっていて、
面白そうです。
将来IT系の職を志す人とかは見ておくとよいかもしれませんね。

いろいろなコンテンツがありますが、
尊敬する先輩が出る「【10-E-7】Object-One 第2弾「アーキテクト対コンサルタント」~IT技術者がディベートの技を競うオブジェクト指向の知的格闘技~」には、特に興味ありですw