Monday, December 31, 2007

12/31/2007

今年一年いろいろご迷惑をおかけしましたが、来年もよろしくお願いします。

Javaプロジェクトの仕事漬けだった一年が終わります。
Javaの技術がついたわけでもなく、ただただ忙しいだけで終わってしまいました。
UML読めないやつのためにエクセルで図を起こしたりして無駄な作業ばかりだった。
無駄に忙しかった。(心が亡びると書いて忙しいと読みます。)

今年の収穫はSpringFrameworkとの出会いでした。
DIとAOPのアイデアには新鮮さを感じました。
人的にはspringframework.jpとの出会いやYAPC::Asiaへの参加がモチベーションを高めてくれました。
・長谷川さんと竹迫さんには感謝

来年はJ2EEとGoFのデザインパターンをマスターし、
ウェブアプリのテスト技法の習得に力を注ぎたいと思います。
で、もう少しPerlでいろいろ遊びたいです。

あと、英語もやんなきゃ。

来年はいい年にしたいな。

Sunday, November 18, 2007

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>Kizasi Serach</os:ShortName>
<os:Description>Kizasi Search</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/x-icon;base64,Qk02AwAAAAAAADYAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAADEDgAAxA4AAAAAAAAAAAAA////////////////////////////////////////////////////////////////////////////////////7/L7fZrlNWDVJlfSTXTcpLnr////////////////////////////////////Wn7dAB6+ACO4AB+2ATK9ACi4ABW4ACvGxdPy////////////////////////LlXQfpnge5HbGDrAnLLlZoDXJ1HHYIHWgpndN13Swc/x////////////////p7vtABC4eI/a5Or4IUrGRmzQzNfyDjS+gZ3gABO0KlTGACLD////////////////G07LAC27KVXJepXcEEDCACG5S2zRZYXXPWXOAC+8ADS9ACS6h6Ln////////4ej2a4zj////BzzBAC+8BTG9u8rusMPsWXLRABCzADe/ATe/ADG8Ik/O////////0dryLl3TfJfd3uT3DEDC////M1rLIkPDm6zl////ABu2ADe+ADS9ADXC////////ztfy1d/5gZve////WXvV////IlHHADi/AAmwc4nZj6biACm6ADS9AzbD////////9/n8hqLqydTw6+75n7Pn7/P7xNHw////////RGrPrr/rACS6AC+7OmXW////////////u8zv+Pj85+v5ydPw8vT8sMDrhJ7gCj3BLFjJCDnBADW+AB+8rb7r////////////8vb8kqztnLHk3ub38/b8iqPhy9by////K1fJIVHIAji9F0jP////////////////////3ub7nrTw7fD58PP7j6ficY/bTHLSSnDRKFXIHVHU///+////////////////////////7vP8sMPw6/L/jKbkfJjgY4XbSnPae5nl////////////////////////////////////////6O360dvzxdLvz9n0/v7/////////////////////////////////////////////////////////////////////////////////////</os:Image>
<SearchForm>http://www.kizasi.jp/</SearchForm>
<os:Url type="text/html" method="GET" template="http://kizasi.jp/show.py/detail?kw_expr={searchTerms}&amp;ref=freeword&amp;label=">
</os:Url>
</SearchPlugin>

Saturday, November 10, 2007

IT業界進化論: 絶望する前に”SIer 2.0”を目指せ



IT業界進化論: 絶望する前に”SIer 2.0”を目指せ
かつての姿を”SIer1.0”と呼ぶならば、受託開発という枠から飛び出そうと積極的なアプローチを展開しているSIerは、”SIer2.0”とでも呼ぶべきまったく異なるステージに駆け上っています。 このような流れをみると、IT業界が迎えている変化は確実に良い方向に向かっているのだと私は感じるのです。 きっと、日本のIT業界はもっとエキサイティングになれます。

野村総合研究所はOpenStandia
を提供しているし、どこの企業も受身でいるわけではないだろう。
そういう意味ではSIerとしては結構エキサイティングなのでは?

空気読めないやつにはわからないのかもしれないが。


Powered by ScribeFire.

ニッポンIT業界絶望論

いくつもの関係部署があるから調整しながら開発するため
エンドユーザの要求がそのまま仕様になっていないことが多々あるのは確かです。
でも論旨が乱暴。読んでいて恥ずかしい。



ニッポンIT業界絶望論
だから、あんな生産性の低い、たぶん全産業の中でももっとも生産性が低い部類の、ああいう仕事にとどまることを余儀なくされているのだろう。


お前は生産性をあげるために何かしたのかと。

今までのユーザ企業は実質どうでもいいところまで細かくオーダーメイドで作り込むことを要求しすぎていた。そのくせ、結局ユーザには不評で使われないシステムが量産されていたのだから笑い事ではない。人間の価値観は努力や根性では変わらないから、それが無駄だと気付かせるには外的要因しかない。



Powered by ScribeFire.

Saturday, September 29, 2007

selenium 0.9.2

テストとか - 2007-09-21
captureScreenshot なんてコマンドもいつの間にか追加されてる・・


何?と思い見てみた。

Selenium Remote Control 0.9.2 Released - Selenium Remote Control - Confluence
* New "captureScreenshot" command lets you capture PNG screenshots and save them to disk


後で使い方を確認しておかなければ

標準化

標準化をつくろうとするマネージャあるいは偉い人は管理能力が低かったりします。
標準化を要求するプログラマの多くは技術力が低かったりします。

A Day In The Life 標準化という名の悪魔
標準化、標準化言う前にまともにモノ造りできることの方が遥かに大事なはず。 たとえ標準化できたとしてもそれを導入したからとって失敗プロジェクトが無くなるという保障もないですが・・・。 よく「失敗プロジェクトが多いから標準化したいんだよね」なんて聞きますが、失敗プロジェクトをいくら研究しても標準化なんてできないと思っています。




Powered by ScribeFire.

Wednesday, September 26, 2007

Saturday, September 08, 2007

第6回 9/7「秋のSpringBatch?祭り」



勉強会 - Japan Springframework User Group

いつもいつも長谷川さんをはじめとしてスタッフの方ありがとうございました。

現時点ではまだまだの感のあるSpring Batchですが、今の時点で技術を習得しておくと
のちのアルファギークになれるかもしれません。大ばけするかもしれないしね。

松原さんの資料はグレートなすばらしい出来です。
本家の資料をしのいでいます。
User Groupへのアップロードを心待ちにしています。

飲み会ではいろいろな方とお話ができて楽しかったです。
家の水道管とガス管つなぐ話は異様に盛り上がりました。
あとRuby( on Rails)を薦める立場に、技術者とマネージャ(営業)の二つのスタンスがある話もね。



Powered by ScribeFire.

Saturday, August 25, 2007

MT4 Conference for Developers



Six Apart - Movable Type 開発者向けカンファレンスのお知らせ【参加無料】

いってきました。
また、MTを触りたくなってきました。
プラグイン作成もおもしろそうだしね。
女性比率が高かったのにはびっくりしたなぁ。
後ろにいたのはチーボウさんだったらしい。

Powered by ScribeFire.

Sunday, August 05, 2007

Google Reader

Google Reader


世間ではRSSリーダーの価値について議論が出ているようですが、
私はRSSリーダーを使っています。
今まではFirefoxのエクステンションSageを使っていましたが、
Google Readerを使ってみようかなと。



Powered by ScribeFire.

Saturday, July 28, 2007

第5回SpringFramework勉強会



勉強会 - Japan Springframework User Group


参加してきました。長谷川さん、スタッフの方々ありがとうございました。
改めてSpring Framworkの奥の深さと、集まった方々の濃いキャラクタに驚かされました。
そして、ぜひともマスターしたい技術であることを再確認しました。
Sesar2もね。

Spring Web Service(松下さん)
・Web Service作成と実行エンジン

Spring Batch
・ジョブネット -&gt; Stage(段階)・
・監視機能、リトライ機能、ステータス管理、階層モデル
・Javaバッチにもオープンソースが来るのか?

Spring Frameworkとスクリプト
・JRuby
・Groovy
・BeanShell
・NetBeansお勧め
・JRubyはAbstractクラスを継承できない。

SpringとJSF
・Spring1にはScopeの概念が無い

Spring.NET
・http://spring-net.jp

Spring SecurityとAJAX
・発音はアシジ
・設定ファイルが難しい
・よくできている
・使うべし!
・判断順序が大事 ログアウト、ログイン、ログインエラー、ログインチェック

Spring 2.1
・JDK 1.6サポート
・Java EE 5サポート

Seasar2
・http://www.seasar.org/
・比嘉さん
・ドキュメント作成中 わかりやすく
・今まではDIを開発者が使うことを意識しなければいけなかった・・・悪くは無いが・・・
・技術はみんなが理解して楽しく使えるもの
・知らない人のために自動化する
・すぐにフィードバックが返ってくる ->モチベーションの維持
・ツールによる生産性向上も必要だけど、人の生産性の向上をあげる必要がある。
・人の生産性をあげるには、必要なのはモチベーションの維持だ。
・そのためにはすばやいフィードバックが必要・・・これがSeasar2ではホットデプロイで提供
・裏にある透明なサービスの提供

飲み会
・生産性を上げるという言い方には2種類ある
・ひとつは技術者からみた生産性向上 これは今まで10かかった仕事を1でやり、残り9で次の技術習得にあてるもの
・もうひとつはマネージメントからみた生産性向上 これは今まで10かかった仕事を1でやるので、残り9の仕事ができるというもの
・JBOSSの中の人、おもしろい!
・Strutsどうなのよ?この先大丈夫?



Powered by ScribeFire.

Saturday, July 14, 2007

#!C:/Perl/bin/perl.exe
# postResults.cgi for Selenium
use strict;
use warnings;
use CGI qw/:standard/;

my $date = localtime;
print header(), start_html(), h1("Selenium results");
print h2("Environment infomation");
foreach my $p (sort keys %ENV) {
print div("$p: $ENV{$p}");
}
print h2("Selenium information");
foreach my $p (param()) {
print h3($p), param($p), "n" unless ($p =~ /^testTable/);
}
print h2("Test Cases");
foreach my $p (param()) {
print h3($p), param($p), "n" if ($p =~ /^testTable/);
}

print end_html();

Sunday, July 01, 2007

Bloggerへのコードの投稿方法

先のエントリでXSLをあげる際に四苦八苦したので、備忘録。

問題は、投稿しても文字がエスケープされてしまったり、許容されないHTMLタグだったりすると削除されてしまうこと。
自分でエスケープしても、さらにそれをエスケープされてしまうこと。

解決方法としては、Google Docs & Spreadsheetsを使いました。

つまり、最初にGoogle Docs & Spreadsheetsにアップロードしておき、Bloggerへ公開させるのです。

これだと、文字がエスケープされません。

google-code-prettify - Google Codeを使って、きれいに表示させたかったのですが、
鰯のテクニカルノート: Blogger でも、コードハイライト してみる。by google-code-prettify
にあるようなコードが改行されない事象が出てしまったので、使ってません。







Powered by ScribeFire.

metrics.xsl for http://metrics.sourceforge.net

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://metrics.sourceforge.net/2003/Metrics-First-Flat">
<xsl:output method="html"/>
<!--
metrics.xsl
01-JUL-07
metrics XML Style Sheet by Atsushi Sano
<as AT cyberoz DOT NET>
-->
<xsl:template match="/">
<xsl:apply-templates select="m:Metrics" />
</xsl:template>

<xsl:template match="m:Metrics">
<html lang="en">
<head>
<meta http-equiv="Content-Style-Type" content="text/css"></meta>
<title>Metrics Report for <xsl:value-of select="@scope"/> as of <xsl:value-of select="@date"/></title>
<style type="text/css"><![CDATA[
<!--
.bannercell {
border: 0px;
padding: 0px;
}
body {
margin-left: 10;
margin-right: 10;
font:normal 68% verdana,arial,helvetica;
background-color:#FFFFFF;
color:#000000;
}
.a td {
background: #efefef;
}
.b td {
background: #fff;
}
.a_ng td {
background: #efefef;
color:red;
}
.b_ng td {
background: #fff;
color:red;
}
th, td {
text-align: left;
vertical-align: top;
}
th {
font-weight:bold;
background: #ccc;
color: black;
}
table, th, td {
font-size:100%;
border: none
}
table.log tr td, tr th {

}
h2 {
font-weight:bold;
font-size:140%;
margin-bottom: 5;
}
h3 {
font-size:100%;
font-weight:bold;
background: #525D76;
color: white;
text-decoration: none;
padding: 5px;
margin-right: 2px;
margin-left: 2px;
margin-bottom: 0;
}
-->]]></style>
</head>
<body>
<h1><a><xsl:attribute name="name">top</xsl:attribute>Metrics Report for <xsl:value-of select="@scope"/> as of <xsl:value-of select="@date"/></a></h1>
<hr/>
<xsl:apply-templates select="m:Cycle" />
<hr/>
<h1>Metric</h1>
<table>
<thead><tr><th>id</th><th>description</th><th>limit</th><th>Total</th><th>Mean</th><th>Std. Dev.</th><th>Value Max</th><th>count</th><th>count(limit over)</th><th>Source causing Maximum</th><th>method</th></tr></thead>
<tbody>
<xsl:for-each select="m:Metric">
<tr>
<xsl:call-template name="alternated-row"/>
<td><a><xsl:attribute name="href">#<xsl:value-of select="@id" /></xsl:attribute><xsl:value-of select="@id" /></a></td>
<td><xsl:value-of select="@description" /></td>
<td><xsl:value-of select="@max" /></td>
<td>
<xsl:choose>
<xsl:when test="@id='TLOC'">
<xsl:value-of select="m:Value/@value" />
</xsl:when>
<xsl:when test="@id='NOP'">
<xsl:value-of select="m:Value/@value" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="m:Values/@total" />
</xsl:otherwise>
</xsl:choose>
</td>
<td><xsl:value-of select="m:Values/@avg" /></td>
<td><xsl:value-of select="m:Values/@stddev" /></td>
<td><xsl:value-of select="m:Values/@max" /></td>
<td><xsl:value-of select="count(m:Values/m:Value)" /></td>
<td><xsl:if test="boolean(@max)"><xsl:call-template name="alternate-count"><xsl:with-param name="max" select="@max" /></xsl:call-template></xsl:if></td>
<td><xsl:value-of select="m:Values/m:Value[1]/@package" /></td>
<td><xsl:if test="m:Values/m:Value[1]/@package!=m:Values/m:Value[1]/@name"><xsl:value-of select="m:Values/m:Value[1]/@name" /></xsl:if></td>
</tr>
</xsl:for-each>
</tbody>
</table>
<xsl:apply-templates select="m:Metric" />
<hr/>
<div style="font-size:large;font-weight:bold;">Powered by <span style="font-style:italic;">metrics.xsl</span>.</div>
</body></html>
</xsl:template>

<xsl:template match="m:Cycle">
<h1>Cycle</h1>
<table>
<thead><tr><th>name</th><th>nodes</th><th>diameter</th></tr></thead>
<tbody><tr><td><xsl:value-of select="@name"/></td><td><xsl:value-of select="@nodes"/></td><td><xsl:value-of select="@diameter"/></td></tr></tbody></table>
<table><thead><tr><th>Packages</th></tr></thead>
<tbody>
<xsl:for-each select="m:Package">
<tr><td><xsl:value-of select="." /></td></tr>
</xsl:for-each>
</tbody></table>
</xsl:template>

<xsl:template match="m:Metric">
<h1><a><xsl:attribute name="name"><xsl:value-of select="@id" /></xsl:attribute><xsl:value-of select="@id"/></a></h1>
<div><xsl:value-of select="@description"/></div>
<xsl:choose>
<xsl:when test="@id='TLOC'">
<xsl:apply-templates select="m:Value" />
</xsl:when>
<xsl:when test="@id='NOP'">
<xsl:apply-templates select="m:Value" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="m:Values" />
</xsl:otherwise>
</xsl:choose>
<a><xsl:attribute name="href">#top</xsl:attribute>back to top</a>
</xsl:template>

<xsl:template match="m:Values">
<h2>Values</h2>
<table>
<xsl:attribute name="summary">values-<xsl:value-of select="../@id"/></xsl:attribute>
<thead><tr><th>per</th><th>total</th><th>avg</th><th>stddev</th><th>max</th></tr></thead>
<tbody><tr>
<td><xsl:value-of select="@per"/></td>
<td><xsl:value-of select="@total"/></td>
<td><xsl:value-of select="@avg"/></td>
<td><xsl:value-of select="@stddev"/></td>
<td><xsl:value-of select="@max"/></td>
</tr></tbody>
</table>
<h2>Value</h2>
<table>
<xsl:attribute name="summary"><xsl:value-of select="../@id"/></xsl:attribute>
<tr><th>name</th><th>source</th><th>package</th><th>value</th></tr>
<xsl:for-each select="m:Value">
<tr>
<xsl:call-template name="alternated-row"/>
<td><xsl:value-of select="@name" /></td><td><xsl:value-of select="@source" /></td><td><xsl:value-of select="@package" /></td><td><xsl:value-of select="@value" /></td></tr>
</xsl:for-each>
</table>
</xsl:template>

<xsl:template match="m:Value">
<h2>Value</h2>
<table>
<tr><th>value</th></tr>
<tr><td><xsl:value-of select="@value" /></td></tr>
</table>
</xsl:template>

<xsl:template name="alternated-row">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="boolean(@max) and boolean(m:Values/@max) and m:Values/@max&gt;=@max">
<xsl:if test="position() mod 2 = 1">a_ng</xsl:if>
<xsl:if test="position() mod 2 = 0">b_ng</xsl:if>
</xsl:when>
<xsl:when test="boolean(../../@max) and boolean(@value) and @value&gt;=../../@max">
<xsl:if test="position() mod 2 = 1">a_ng</xsl:if>
<xsl:if test="position() mod 2 = 0">b_ng</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:if test="position() mod 2 = 1">a</xsl:if>
<xsl:if test="position() mod 2 = 0">b</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:template>

<xsl:template name="alternate-count">
<xsl:param name="max">dummy</xsl:param>
<xsl:value-of select="count(m:Values/m:Value[@value&gt;=$max])"/>
</xsl:template>

</xsl:stylesheet>

Saturday, June 16, 2007

JSUG勉強会 第4回 6/15「Springframework in JavaOne2007 + Spring MVC & WebFlow」

勉強会 - Japan Springframework User Group



先月に引き続いて参加してきました。

長谷川さん、スタッフの方々、ありがとうございました。



JavaOne2007もSpringMVCも自分にとってタイムリーな話題だったので、

興味深く聞く事ができました。以下自分のためのメモ。



1.河村さんによるJavaOne2007レポート

全般的な話題

  • JavaEE6には触れられず。背景として仕様書に着手した状態だからか?
  • JavaFXに注目が集まる
  • JavaSE6,7に注目が集まる Glassfish
  • JRubyの年でした
  • 各社でのJavaEE5 Application Server対応がのろい
  • ボフ?(座談会)でしたEEについて語られていなかった
  • JavaEE6 Final Release 2008 Q4
  • pruning(仕様削除)により少なくなったAPI
  • GlassfishV3は面白そう
  • EJB3.1 ejb.jarがいらなくなる Web層でsのEJB利用の簡略化


Springの話題



Interface21のマークフィッシャーのブログは要注目




Sunからの各国に対するメッセージ

Thank you-&gt;(和訳)-&gt;元気です(?)





2.チャトールさんによるSpringMVCとSpring Web Flowの説明



Strutsの問題-&gt;依存性が高い

Finite State Machineモデル(有限オートマンモデル)により会話的なやりとりが可能

Spring Web Flowはconversational Scopeをサポート

でも全てをSpring Web Flowでやろうとすると複雑になる(適材適所)

状態や遷移の管理をするのであればSpring Web Flow





3.飲み会

  • 森ビルからは東京タワーが見える
  • 六本木周辺は食事が高い
  • ジャカルタでは危険な場所もあるから注意しよう


おまけ

長谷川さんにSpring 入門にサインをしてもらった。ラッキー。













Powered by ScribeFire.

Sunday, June 10, 2007

ScribeFire

del.icio.usでブックマークはするものの、

なかなかブログは書けません。



ブログを書くのに便利な19 のFirefox拡張機能 - Google Mania | グーグルの便利な使い方



この記事を読んで、ScribFireを導入してみました。

右クリックのコンテキストメニューにメニューが追加されているので、

言及したいページで右クリックしてScribeFireが起動します。

タイトルとページURLを取得して記事Editorに自動的に入れてくれます。



使い勝手は悪くありません。


該当ブログサービスのウェブサイトを尋ねてログインする手間が省けます。


これでブログしない自分とお別れできるといいのですが。







Powered by ScribeFire.

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

  # スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...