今年一年いろいろご迷惑をおかけしましたが、来年もよろしくお願いします。
Javaプロジェクトの仕事漬けだった一年が終わります。
Javaの技術がついたわけでもなく、ただただ忙しいだけで終わってしまいました。
UML読めないやつのためにエクセルで図を起こしたりして無駄な作業ばかりだった。
無駄に忙しかった。(心が亡びると書いて忙しいと読みます。)
今年の収穫はSpringFrameworkとの出会いでした。
DIとAOPのアイデアには新鮮さを感じました。
人的にはspringframework.jpとの出会いやYAPC::Asiaへの参加がモチベーションを高めてくれました。
・長谷川さんと竹迫さんには感謝
来年はJ2EEとGoFのデザインパターンをマスターし、
ウェブアプリのテスト技法の習得に力を注ぎたいと思います。
で、もう少しPerlでいろいろ遊びたいです。
あと、英語もやんなきゃ。
来年はいい年にしたいな。
Monday, December 31, 2007
Saturday, December 01, 2007
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}&ref=freeword&label=">
</os:Url>
</SearchPlugin>
<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}&ref=freeword&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業界絶望論
お前は生産性をあげるために何かしたのかと。
エンドユーザの要求がそのまま仕様になっていないことが多々あるのは確かです。
でも論旨が乱暴。読んでいて恥ずかしい。
ニッポンIT業界絶望論
だから、あんな生産性の低い、たぶん全産業の中でももっとも生産性が低い部類の、ああいう仕事にとどまることを余儀なくされているのだろう。
お前は生産性をあげるために何かしたのかと。
今までのユーザ企業は実質どうでもいいところまで細かくオーダーメイドで作り込むことを要求しすぎていた。そのくせ、結局ユーザには不評で使われないシステムが量産されていたのだから笑い事ではない。人間の価値観は努力や根性では変わらないから、それが無駄だと気付かせるには外的要因しかない。
Powered by ScribeFire.
Sunday, November 04, 2007
Saturday, September 29, 2007
selenium 0.9.2
テストとか - 2007-09-21
何?と思い見てみた。
Selenium Remote Control 0.9.2 Released - Selenium Remote Control - Confluence
後で使い方を確認しておかなければ
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 標準化という名の悪魔
標準化を要求するプログラマの多くは技術力が低かったりします。
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.
Monday, August 27, 2007
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を使ってみようかなと。
世間では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
・ジョブネット -> 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();
# 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();
Thursday, July 12, 2007
Sunday, July 01, 2007
Bloggerへのコードの投稿方法
先のエントリでXSLをあげる際に四苦八苦したので、備忘録。
問題は、投稿しても文字がエスケープされてしまったり、許容されないHTMLタグだったりすると削除されてしまうこと。
自分でエスケープしても、さらにそれをエスケープされてしまうこと。
解決方法としては、Google Docs & Spreadsheetsを使いました。
つまり、最初にGoogle Docs & Spreadsheetsにアップロードしておき、Bloggerへ公開させるのです。
これだと、文字がエスケープされません。
google-code-prettify - Google Codeを使って、きれいに表示させたかったのですが、
鰯のテクニカルノート: Blogger でも、コードハイライト してみる。by google-code-prettify
にあるようなコードが改行されない事象が出てしまったので、使ってません。
問題は、投稿しても文字がエスケープされてしまったり、許容されない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>=@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>=../../@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>=$max])"/>
</xsl:template>
</xsl:stylesheet>
<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>=@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>=../../@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>=$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レポート
全般的な話題
Springの話題
Interface21のマークフィッシャーのブログは要注目
Sunからの各国に対するメッセージ
Thank you->(和訳)->元気です(?)
2.チャトールさんによるSpringMVCとSpring Web Flowの説明
Strutsの問題->依存性が高い
Finite State Machineモデル(有限オートマンモデル)により会話的なやりとりが可能
Spring Web Flowはconversational Scopeをサポート
でも全てをSpring Web Flowでやろうとすると複雑になる(適材適所)
状態や遷移の管理をするのであればSpring Web Flow
3.飲み会
おまけ
長谷川さんにSpring 入門にサインをしてもらった。ラッキー。
先月に引き続いて参加してきました。
長谷川さん、スタッフの方々、ありがとうございました。
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の話題
- 2005,2006に続き依然として人気は高い
- Interface21のエンジニアに人気が集まる
- Spring Web Flow
- Spring Batch
- OSGi
- SCA(参考http://www.arclamp.jp/blog/archives/000790.html)
- JMX Bean
Interface21のマークフィッシャーのブログは要注目
Sunからの各国に対するメッセージ
Thank you->(和訳)->元気です(?)
2.チャトールさんによるSpringMVCとSpring Web Flowの説明
Strutsの問題->依存性が高い
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に自動的に入れてくれます。
使い勝手は悪くありません。
該当ブログサービスのウェブサイトを尋ねてログインする手間が省けます。
これでブログしない自分とお別れできるといいのですが。
なかなかブログは書けません。
ブログを書くのに便利な19 のFirefox拡張機能 - Google Mania | グーグルの便利な使い方
この記事を読んで、ScribFireを導入してみました。
右クリックのコンテキストメニューにメニューが追加されているので、
言及したいページで右クリックしてScribeFireが起動します。
タイトルとページURLを取得して記事Editorに自動的に入れてくれます。
使い勝手は悪くありません。
該当ブログサービスのウェブサイトを尋ねてログインする手間が省けます。
これでブログしない自分とお別れできるといいのですが。
Powered by ScribeFire.
OracleのJDBCドライバのデバッグ
OracleのJDBCドライバのデモプログラムに付属のOracleLog.propertiesによれば、
ojdbc14_g.jarを使うとJDBCドライバによるデバッグが可能になります。
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#32_00
Tomcatでこのデバッグを可能にするには、
Tomcat起動時の引数に、-Toracle.jdbc.Trace=trueを指定します。
WTPをお使いの方は「構成と実行」で指定できます。
つぎのような指定をしました。
-Doracle.jdbc.Trace=true
-Djava.util.logging.config.file=OracleLog.properties
-Doracle.jdbc.LogFile="C:\Documents and Settings\sano\My Documents\jdbc.log"
OracleLog.propertiesはTomcat起動フォルダに入れておきます。
ここまではいいのですが、発行しているSQLが表示できていません。
OracleLog.propertiesの記述方法に問題があるのでしょうか?
デフォルトではだめなのかな?
ojdbc14_g.jarを使うとJDBCドライバによるデバッグが可能になります。
http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.htm#32_00
Tomcatでこのデバッグを可能にするには、
Tomcat起動時の引数に、-Toracle.jdbc.Trace=trueを指定します。
WTPをお使いの方は「構成と実行」で指定できます。
つぎのような指定をしました。
-Doracle.jdbc.Trace=true
-Djava.util.logging.config.file=OracleLog.properties
-Doracle.jdbc.LogFile="C:\Documents and Settings\sano\My Documents\jdbc.log"
OracleLog.propertiesはTomcat起動フォルダに入れておきます。
ここまではいいのですが、発行しているSQLが表示できていません。
OracleLog.propertiesの記述方法に問題があるのでしょうか?
デフォルトではだめなのかな?
Powered by ScribeFire.
Sunday, June 03, 2007
Firefox「正常にソフトウェアを更新できませんでした。」の対処方法
Firefoxを2.0.3から2.0.4に更新しました。
すると、制限ユーザでの起動時に、
「正常にソフトウェアを更新できませんでした。」
と、メッセージが表示されるようになってしまいました。
いろいろ検索して次の解決策にたどり着きました。
http://kb.mozillazine.org/Updates_reported_when_running_newest_version
上記に従い、ファイルを削除したら、起動時のエラーダイアログは表示されなくなりました。
すると、制限ユーザでの起動時に、
「正常にソフトウェアを更新できませんでした。」
と、メッセージが表示されるようになってしまいました。
いろいろ検索して次の解決策にたどり着きました。
http://kb.mozillazine.org/Updates_reported_when_running_newest_version
Method 1: Delete active-update.xml, updates.xml and the "updates" folder from both of these locations:
- The Firefox installation directory, for example, C:\Program Files\Mozilla Firefox [1].
- (Firefox 2.0.0.2 and later) The corresponding Firefox directory where local application data and settings are stored, depending on your operating system [2]; for example, in Windows XP, C:\Documents and Settings\
\Local Settings\Application Data\Mozilla\Firefox\Mozilla Firefox [3].
上記に従い、ファイルを削除したら、起動時のエラーダイアログは表示されなくなりました。
Saturday, June 02, 2007
デフォルトブラウザをFirefoxに
備忘録です。
僕はPCではいつも制限ユーザで作業しています。
これは不用意にPCの設定を更新しないためです。
ブラウザはFirefoxを愛用しているのですが、
HTMLファイルに対応するプログラムが
Internet Explorerから変更できないでいました。
先日、ハードディスク60GBの未使用率が15%を切ったため、
PCをリカバリしました。
で、Firefoxはもちろん、必要なソフト類をインストールした後に、
作業用の制限ユーザを追加しました。
すると、制限ユーザでもHTMLファイルに対応するプログラムがFirefoxに変更できるようになりました。
覚えたことは、
「Windows XPを使うときには、ユーザを追加する前に必要なソフトをインストールしておくこと」
です。
でも、それってなんだかなぁって感じがします。
僕はPCではいつも制限ユーザで作業しています。
これは不用意にPCの設定を更新しないためです。
ブラウザはFirefoxを愛用しているのですが、
HTMLファイルに対応するプログラムが
Internet Explorerから変更できないでいました。
先日、ハードディスク60GBの未使用率が15%を切ったため、
PCをリカバリしました。
で、Firefoxはもちろん、必要なソフト類をインストールした後に、
作業用の制限ユーザを追加しました。
すると、制限ユーザでもHTMLファイルに対応するプログラムがFirefoxに変更できるようになりました。
覚えたことは、
「Windows XPを使うときには、ユーザを追加する前に必要なソフトをインストールしておくこと」
です。
でも、それってなんだかなぁって感じがします。
Saturday, May 12, 2007
springframework勉強会 第3回 5/11「ワークショップで共有しましょう」
http://springframework.jp/index.php?%CA%D9%B6%AF%B2%F1
参加者の皆様ご苦労様でした。
長谷川さん、スタッフの方々、楽しい時間をありがとうございました。
ワークショップにより参加者の共有する問題の最適解を見つけていく作業は楽しい。
以下は自分のためのメモ。
1.問題点の提起
・知らない人にどうやって教える?
・MyEclipse気になるね
・iBATIS最強(?)
・AutoWire最強(?)
2.AutoWireに関する議論
・AutoWire最強!ワイルドカードでBeanをごっそり取ってくる。
・Bean定義の分割方法大事だね。共通は個別に、業務はワイルドカードでごっそり。すっきり!
・ただし、共通のテンプレートクラスにセッターがある場合は効かない。
・layz_initを使うとシングルトンのオブジェクトを起動時に生成しない。
(アプリケーションサーバーの起動が早いよ)
・iBATISは学習コストが低い。Hibernateは覚えるまでが緩やかな双曲線。(しかも下がることもある)
3.ほか
GWT(Google Web Toolkit)はAjaxのウェブアプリケーション作成フレームワーク
AOPで例外処理のハンドリング
4.成果
・インターフェースを使ったパターン抽出
・AutoWireを使用した場合の定義ァイル分割パターン抽出
(詳細はユーザ会Wikiで・・・)
5.飲み会
・Lisp最強!とんがった人はどこかでLispに触れている。
・JavaOneは、かにパーティと化しているらしい。
・JRubyはやりすぎだろ?スクリプト言語はなぁ・・・
・JavaがC++に近づいている。C++にガベージコレクション機能をつけたほうが早いのでは?
・BinaryHack最高!
・Springにより、Javaのプログラミングを知る人が少なくなっている。(なぜ、ニューしなくて動くんですか?)
・人口低下に伴いプログラマも少なくなる。
・将来、プログラミングの仕事はオフショアにほとんどもってかれている。
・でもフレームワーク部分は日本人で押さえたいよね。
参加者の皆様ご苦労様でした。
長谷川さん、スタッフの方々、楽しい時間をありがとうございました。
ワークショップにより参加者の共有する問題の最適解を見つけていく作業は楽しい。
以下は自分のためのメモ。
1.問題点の提起
・知らない人にどうやって教える?
・MyEclipse気になるね
・iBATIS最強(?)
・AutoWire最強(?)
2.AutoWireに関する議論
・AutoWire最強!ワイルドカードでBeanをごっそり取ってくる。
・Bean定義の分割方法大事だね。共通は個別に、業務はワイルドカードでごっそり。すっきり!
・ただし、共通のテンプレートクラスにセッターがある場合は効かない。
・layz_initを使うとシングルトンのオブジェクトを起動時に生成しない。
(アプリケーションサーバーの起動が早いよ)
・iBATISは学習コストが低い。Hibernateは覚えるまでが緩やかな双曲線。(しかも下がることもある)
3.ほか
GWT(Google Web Toolkit)はAjaxのウェブアプリケーション作成フレームワーク
AOPで例外処理のハンドリング
4.成果
・インターフェースを使ったパターン抽出
・AutoWireを使用した場合の定義ァイル分割パターン抽出
(詳細はユーザ会Wikiで・・・)
5.飲み会
・Lisp最強!とんがった人はどこかでLispに触れている。
・JavaOneは、かにパーティと化しているらしい。
・JRubyはやりすぎだろ?スクリプト言語はなぁ・・・
・JavaがC++に近づいている。C++にガベージコレクション機能をつけたほうが早いのでは?
・BinaryHack最高!
・Springにより、Javaのプログラミングを知る人が少なくなっている。(なぜ、ニューしなくて動くんですか?)
・人口低下に伴いプログラマも少なくなる。
・将来、プログラミングの仕事はオフショアにほとんどもってかれている。
・でもフレームワーク部分は日本人で押さえたいよね。
Sunday, May 06, 2007
springframeworkとlog4j
簡単ですがlog4jライブラリによるログのとり方の覚書
1.log4jライブラリをWEB-INF/lib/に入れる。
2.アプリケーションのweb.xmlに次のように記述する。
3./WEB-INF/log4j.propertiesに記述する。(下記はjpetstoreにspringframeworkのログを追加したもの)
こんな感じです。
以下は失敗談
Eclipseのコンソールには次のようなメッセージが出力されていた。
一行目に気をとられ、二行目に気がつかなかった。
二行目はlog4jライブラリが入っていないか、あるいはCLASSPATHに通っていない場合に出力されるメッセージ。
1.log4jライブラリをWEB-INF/lib/に入れる。
2.アプリケーションのweb.xmlに次のように記述する。
log4jConfigLocation
/WEB-INF/log4j.properties
org.springframework.web.util.Log4jConfigListener
3./WEB-INF/log4j.propertiesに記述する。(下記はjpetstoreにspringframeworkのログを追加したもの)
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.org.springframework=INFO
こんな感じです。
以下は失敗談
Eclipseのコンソールには次のようなメッセージが出力されていた。
一行目に気をとられ、二行目に気がつかなかった。
致命的: クラス org.springframework.web.util.Log4jConfigListener のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です
java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator
二行目はlog4jライブラリが入っていないか、あるいはCLASSPATHに通っていない場合に出力されるメッセージ。
Saturday, May 05, 2007
springmodules
springframeworkを使ったWebアプリケーションの
キャッシュ機能について調査してみた。
というのも、自分で作るほど技術力ないし、作ったとしてもメンテナンスコストが高くつく。
どうやら、springmodulesを使って、
キャッシュプロバイダOSCache、EHCacheなどと組み合わせると
幸せになれそうだ。試してないけど。
http://dev2dev.bea.com/pub/a/2006/05/declarative-caching.html
http://www.gigaspaces.com/JForum/posts/list/139.page
しかしspringmodulesについての記述が少ないのには驚いた。
実績がないのだろうか。
https://springmodules.dev.java.net/
キャッシュ機能について調査してみた。
というのも、自分で作るほど技術力ないし、作ったとしてもメンテナンスコストが高くつく。
どうやら、springmodulesを使って、
キャッシュプロバイダOSCache、EHCacheなどと組み合わせると
幸せになれそうだ。試してないけど。
http://dev2dev.bea.com/pub/a/2006/05/declarative-caching.html
http://www.gigaspaces.com/JForum/posts/list/139.page
しかしspringmodulesについての記述が少ないのには驚いた。
実績がないのだろうか。
https://springmodules.dev.java.net/
Friday, May 04, 2007
Acme::Louのインストールができない
やりたいのは、ローカルな環境でも「ルー変換」ができるようすること。
つまづいているのは、Acme::Lou-0.03のインストールでのmake testに失敗。
ログを見ると、lou変換かけても「美しい国、日本」が「美しい国、日本」のままのようだ。
メモリ上に展開したルー語辞書のハッシュからルー語が取得できていないようだ。
引き続き作業・・・
つぎのタスクは作業終了済み
・MeCabインストール(0.95)
・MeCab辞書インストール(0.95)
・Text::MeCabインストール(0.16)
つまづいているのは、Acme::Lou-0.03のインストールでのmake testに失敗。
ログを見ると、lou変換かけても「美しい国、日本」が「美しい国、日本」のままのようだ。
メモリ上に展開したルー語辞書のハッシュからルー語が取得できていないようだ。
引き続き作業・・・
つぎのタスクは作業終了済み
・MeCabインストール(0.95)
・MeCab辞書インストール(0.95)
・Text::MeCabインストール(0.16)
日本の祝日
今日は国民の休日みどりの日だそうだ。
wikipediaによれば
http://ja.wikipedia.org/wiki/%E3%81%BF%E3%81%A9%E3%82%8A%E3%81%AE%E6%97%A5
「自然にしたしむとともにその恩恵に感謝し、豊かな心をはぐくむ」ことを趣旨としている。
自分がはじめて覚えた祝祭日は次のとおり。ずいぶん変わったものだ。
今では日にちにはあまり意味がないらしい。
1/1元旦
1/15成人の日
2/11建国記念日
3/22-24春分の日
4/29昭和天皇誕生日
5/3憲法制定日
5/5こどもの日
9/15敬老の日
9/22-24秋分の日
10/10体育の日
11/3文化の日
11/23勤労感謝の日
wikipediaによれば
http://ja.wikipedia.org/wiki/%E3%81%BF%E3%81%A9%E3%82%8A%E3%81%AE%E6%97%A5
「自然にしたしむとともにその恩恵に感謝し、豊かな心をはぐくむ」ことを趣旨としている。
自分がはじめて覚えた祝祭日は次のとおり。ずいぶん変わったものだ。
今では日にちにはあまり意味がないらしい。
1/1元旦
1/15成人の日
2/11建国記念日
3/22-24春分の日
4/29昭和天皇誕生日
5/3憲法制定日
5/5こどもの日
9/15敬老の日
9/22-24秋分の日
10/10体育の日
11/3文化の日
11/23勤労感謝の日
Monday, April 30, 2007
自分のノートPCで流行のルー語変換を試そうとした。
http://e8y.net/repos/mecab-htmltagcloud/trunk/index.cgi
http://e8y.net/repos/lou_trans/lou.cgi
colinuxのファイルシステムの使用量を確認したところ、
90%をオーバーしていることに気がついた。
ファイルシステムをusr,var,rootに分割し、再度立ち上げたら夕方六時。
なんだかなぁ。
tarの実行時にpadding size zerosとかメッセージが出たので調べてみたけど、
あまり同様の事象はあげられていなかった。
tar でファイルコピーする際、/sysはコピーしなくてもいいようだ。
(確証なし・・・)
debian 4.0では出なかったんだよな。
http://e8y.net/repos/mecab-htmltagcloud/trunk/index.cgi
http://e8y.net/repos/lou_trans/lou.cgi
colinuxのファイルシステムの使用量を確認したところ、
90%をオーバーしていることに気がついた。
ファイルシステムをusr,var,rootに分割し、再度立ち上げたら夕方六時。
なんだかなぁ。
tarの実行時にpadding size zerosとかメッセージが出たので調べてみたけど、
あまり同様の事象はあげられていなかった。
tar でファイルコピーする際、/sysはコピーしなくてもいいようだ。
(確証なし・・・)
debian 4.0では出なかったんだよな。
Sunday, April 15, 2007
Seleniumの実行結果を取得する
Results URLのテキストボックスに次のスクリプト名を指定する。
#!C:/Perl/bin/perl.exe
# postResults.cgi
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();
#!C:/Perl/bin/perl.exe
# postResults.cgi
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();
Saturday, April 07, 2007
Friday, April 06, 2007
YAPC::Asia 2007 Day2
仕事休んでいったかいあった。
いろいろ刺激を受けました。
DBIx::Classとか、LiveJournalのスケールの話とか、MJDのリファクタリングの話とか。
うー、おなかいっぱい。
消化できるか心配だ。
普通
・普通->最大公約数or最小公倍数?
・perl6は文字列もオブジェクト->Rubyのまね
DBIx::Class
・SQL::Abstract
・Data::pagaer(?),DBIx::Pager(?)
・DBIx::Class::Relataionalship
Asynapse
・REST
・Jiftyのプラグイン
・JavaScriptでファイルの読み書き?
・XUL(ゾールと発音)
・YUI
・my ($a, $b) = (my $c = func(x,y,z));
Pattern in perl
・singleton why use a singleton?
・Class::Singletons
・it is global
・for stateless
・File::Locker
・Is facade design pattern?
・memento
・iterator
・decorator
・Class::Trait
・C/Java クラスを生成することによってPerlの動的な部分を補っている
・CPANの利用によりサポートされる機能
LiveJournalのスケーラビリティ
http://www.danga.com/words/
memcached
perlbal
1->100
RAID->全部書き込みはもったいない、冗長
特効薬はないがやり方はたくさんある
Apacheが生きているか?->OPTIONリクエストを投げて確認
big-ip->mod_proxy->mod_perl->global db->user db
MogileFS->oMgFileS
ジョブ管理?
Gearman::Worker
Gearman::Client
ただし、No Guarantee
TheSchwarz for mail distribute millions of emails per day
djabberd
->デバッグ方法(イベント系のものはデバッグしにくいよね。ケースバイケース)
DBIx::Class
モバイルファクトリーの方
DBIC::from Sledge
_on、_at->日付系のカラム名
http://code.mobfactory.jp/ (?)
Class::C3
Pushmi
いろいろ刺激を受けました。
DBIx::Classとか、LiveJournalのスケールの話とか、MJDのリファクタリングの話とか。
うー、おなかいっぱい。
消化できるか心配だ。
普通
・普通->最大公約数or最小公倍数?
・perl6は文字列もオブジェクト->Rubyのまね
DBIx::Class
・SQL::Abstract
・Data::pagaer(?),DBIx::Pager(?)
・DBIx::Class::Relataionalship
Asynapse
・REST
・Jiftyのプラグイン
・JavaScriptでファイルの読み書き?
・XUL(ゾールと発音)
・YUI
・my ($a, $b) = (my $c = func(x,y,z));
Pattern in perl
・singleton why use a singleton?
・Class::Singletons
・it is global
・for stateless
・File::Locker
・Is facade design pattern?
・memento
・iterator
・decorator
・Class::Trait
・C/Java クラスを生成することによってPerlの動的な部分を補っている
・CPANの利用によりサポートされる機能
LiveJournalのスケーラビリティ
http://www.danga.com/words/
memcached
perlbal
1->100
RAID->全部書き込みはもったいない、冗長
特効薬はないがやり方はたくさんある
Apacheが生きているか?->OPTIONリクエストを投げて確認
big-ip->mod_proxy->mod_perl->global db->user db
MogileFS->oMgFileS
ジョブ管理?
Gearman::Worker
Gearman::Client
ただし、No Guarantee
TheSchwarz for mail distribute millions of emails per day
djabberd
->デバッグ方法(イベント系のものはデバッグしにくいよね。ケースバイケース)
DBIx::Class
モバイルファクトリーの方
DBIC::from Sledge
_on、_at->日付系のカラム名
http://code.mobfactory.jp/ (?)
Class::C3
Pushmi
Wednesday, April 04, 2007
YAPC::Asia 2007
楽しいカンファレンスでした。
Perl worst placticesが印象的でした。
以下メモ(なんかみんな書いてるっぽいので)
・ソースの再利用->二回目以降の開発に役立つ
・依存性の排除(使いたいモジュールより依存性の解消が手間)
・仮想化Virtualization リソースの最適化
・現行:パッケージの配布->将来:環境の配布
・web service->perl service(plagger as a service)
・EC2 CGレンダリングとか
・フレーバー DBは?ストレージが仮想
VOX
・catalyst + JSON-RPC
・sixapart javascript library
・large scale case of LiveJournal by Brad
・Data::Object(cached,partionary)
・TheSchewartz
・Perlbal
・http://code.sixapart.com/
・1st, user->global DB and 2nd, user->user db(DB1/DB2/DB3)
Perl worst placticesが印象的でした。
以下メモ(なんかみんな書いてるっぽいので)
・ソースの再利用->二回目以降の開発に役立つ
・依存性の排除(使いたいモジュールより依存性の解消が手間)
・仮想化Virtualization リソースの最適化
・現行:パッケージの配布->将来:環境の配布
・web service->perl service(plagger as a service)
・EC2 CGレンダリングとか
・フレーバー DBは?ストレージが仮想
VOX
・catalyst + JSON-RPC
・sixapart javascript library
・large scale case of LiveJournal by Brad
・Data::Object(cached,partionary)
・TheSchewartz
・Perlbal
・http://code.sixapart.com/
・1st, user->global DB and 2nd, user->user db(DB1/DB2/DB3)
Sunday, March 18, 2007
Sunday, February 25, 2007
Saturday, February 10, 2007
Blogging: daily blog posting by feedburner
http://semanticvoid.com/blog/2005/11/27/post-delicious-links-to-blogger-now/
によればfeedburnerによりdel.icio.usの内容をBloggerにポストできるそうだ。早速設定してみた。どうなることやら。
によればfeedburnerによりdel.icio.usの内容をBloggerにポストできるそうだ。早速設定してみた。どうなることやら。
Subscribe to:
Posts (Atom)
# スクラムマスターを雇う時に聞いてみるとよい47個の質問
# スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...
-
指定されたデバイス、パス、またはファイルにアクセスできません。アクセス許可がない可能性があります。 このようなメッセージが出たら http://blog.livedoor.jp/saitotetsuya/archives/20535835.html に従い、エキスプローラーのセキ...
-
rbenvは異なるバージョンのRubyを管理するツールです。 最近時間ができたのでSnow Leopardに入れました。 rbenvって何? 異なるバージョンのrubyを管理するツールです。 sstephenson / rbenv - Github すでにrvmという同...
-
デブサミ2012 Day2 2012/02/17 メモ 全体俯瞰はこちらが便利。 デブサミ2012 参加セッション一覧 http://bit.ly/A9kjcL 【17-A-1】 Jenkins 川口 耕介 氏 (※部屋変更) http://togetter.com/li/257...