2007年11月29日

平均値取得


static public double calulateAVG( double[] val ) {
double sum = 0;
for( double d : val ) {
sum += d;
}
return sum/val.length;
}
posted by 台北猫々 at 21:29| Comment(0) | TrackBack(0) | 技術メモ(Java)

2007年11月28日

もうすぐ11月も終わりですね。

気づくと、あと数日で11月も終わり、いよいよ師走ですね。
なんか歳を取ると、本当に時間が早く進みます。

今年中にやることを整理しないと。。。猫
posted by 台北猫々 at 23:45| Comment(0) | TrackBack(0) | 日記

2007年11月27日

長い半角文字列を一定の長さで分割して、HTMLの改行を挿入します。

$str = "aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbcccccccccccc";
preg_match_all("/.{10}|.+$/", $str, $out);
$res = implode("<br>", $out[0]);
posted by 台北猫々 at 22:00| Comment(0) | TrackBack(0) | 技術メモ(PHP)

2007年11月26日

phpのimplode関数みたいな


public static String implode(String glue, String[] pieces) {
StringBuffer buf = new StringBuffer();
for( int i=0; ; i++ ) {
buf.append(pieces[i]);
if( i == pieces.length -1 ) {
break;
}
buf.append(glue);
}
return buf.toString();
}
posted by 台北猫々 at 21:15| Comment(0) | TrackBack(0) | 技術メモ(Java)

2007年11月25日

紅葉狩り

行ってきました。
IMG_0222.jpg
posted by 台北猫々 at 23:31| Comment(0) | TrackBack(0) | 日記

2007年11月23日

今日は勤労感謝の日

ですね。

昔、とある開発プロジェクトで開発リーダーをやっていたときのこと。まあ、ご他聞に漏れずファイアーな感じだったのですが。。。

11月22日の夜の進捗会議で、各サブシステムチームの開発リーダーが進捗報告をした後に、プロジェクトマネージャーが「明日、休日出勤するチームは?」と聞きました。全チームが「出ます」という返答をしました。その時、誰かが「明日は何の祝日だっけ?」と。

それに対して誰かが、
「勤労感謝の日です。」
と言いました。

全員が苦笑するという、微笑ましい時が流れました。
今は懐かしい思い出です。

posted by 台北猫々 at 00:12| Comment(0) | TrackBack(0) | 日記

2007年11月22日

色々な人が

自分に自信(よりどころ)が無いために、他人に乱暴な言葉を投げる人がいます。投げられた方は正直堪りませんが、ある意味不幸な人である気もします。

社会に出てから、そんな人とニアミスすることは何回もあります。でも、いまだに対応方法が確立していない私は未熟者です。

そんなことを思う今日このごろです。。。猫
posted by 台北猫々 at 23:37| Comment(0) | TrackBack(0) | 日記

2007年11月21日

現在日付取得、フォーマット指定

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd (EEE) HH:mm:ss");
String str = sdf.format(new Date());
System.out.println(str);



2007/11/21 (水) 21:38:05
posted by 台北猫々 at 21:39| Comment(0) | TrackBack(0) | 技術メモ(Java)

2007年11月20日

いいねえ〜iBATIS

iBATISいいんです。

私的には、Hibernateより断然使いやすいです。
HibernateはXML地獄のHQL地獄の、ダブル地獄という感じでしたが、iBATISは潔くSQLを隠蔽していないのがいいです。

Eclipseプラグインの「Abator」を使うとDTOとDAO、SQLマッピングファイルを自動生成してくれるのでさらにOKな感じです。

AbatorのEclipseダウンロードサイト
http://ibatis.apache.org/tools/abator

「使用者の技術レベルに関わらず使いやすいもの」ではなく「技術レベルの高い人にマンネリな作業をさせないもの」であるフレームワークの方が目的がはっきりしていて、私は好きです。

HibernateのHQLなんてものは、SQLを使える人間にとっては邪魔なだけです。


posted by 台北猫々 at 21:04| Comment(0) | TrackBack(0) | 日記

2007年11月19日

空文字列を無視しない文字列分割

StringTokenizerクラスやC言語のstrok関数でも似たようなことがあるのですが、、、

String str = ",2,3,,";
String[] strs = str.split(",");

要素数は3つになります。
strs[0]・・・""
strs[1]・・・"2"
strs[2]・・・"3"
後続の空文字列は無視される仕様ということなのです。
これって、不便なことが多いのですよね。今までは、文字列分割処理を自作していました。

ところが、実は便利なメソッドがあることを今日しりました。

String str = ",2,3,,";
String[] strs = str.split(",",5);

要素数は5つになります。
strs[0]・・・""
strs[1]・・・"2"
strs[2]・・・"3"
strs[3]・・・""
strs[4]・・・""
splitメソッドの第二引数は「期待する要素数」ということになります。

これは地味に助かります。ぐっじょぶ!猫

posted by 台北猫々 at 21:58| Comment(0) | TrackBack(0) | 技術メモ(Java)

2007年11月18日

鶏肉とキャベツのスープ

昨日に深酒してしまって、胃腸が駄目駄目なので、胃腸に優しい野菜メインの煮物を作りました。

鶏肉とキャベツのスープ

【材料(4人前ぐらい)】
・キャベツ     1/4
・じゃがいも    3個
・エリンギ     3本
・たまねぎ     2個
・とりもも肉    200gぐらい
・にんにく     1個
・塩
・こしょう

[スープ]
・水       3カップ
・白ワイン    1/2カップ
・ブイヨン    適量


【プロトコル】
(1)とりあえず[スープ] を一回煮立たせ作っておきます。
(2)野菜・肉は食べやすい大きさに適当に切る。
(3)鍋にスープ・肉・野菜をいれます。
(4)中火で煮ます。
(5)塩・コショウで調味します。
(6)出来上がりです。

posted by 台北猫々 at 20:48| Comment(0) | TrackBack(0) | 料理

2007年11月17日

たんたかた〜ん♪

焼酎が急に飲みたくなったので、コンビニに走って「鍛高譚」と氷を買ってきました。

焼酎は普段、芋焼酎を好む人なのですが、ちょっと今日は気まぐれで紫蘇焼酎を嗜んでいます。

ロックで飲んでしますが、随分さっぱりしてしますね。つまみとしては、「うるめいわし」なんか合いそうですね。猫
posted by 台北猫々 at 22:26| Comment(0) | TrackBack(0) | 日記

2007年11月16日

PHPの5C問題

<?php
print '可能';
?>

これをSJISエンコードで実行するとパースエラーになります。
SJISの'能'の文字コードの2バイト目が0x5cなのですが、このコードはASCIIにおけるバックスラッシュ(\)と同じなので、PHPエンジンからすると
print '0x94\';
となり、'がエスケープされてパースエラーになってしまうそうです。

SJISにはこのような地雷のような、マルチバイトがいくつか存在するそうです。最近構築するシステムは基本的にUTF-8なので、自分が遭遇したことはないのですが、他の人の質問に答えるために調べていて知りました。

これって、PHPでSJISは事実上扱えないと言うこと?
posted by 台北猫々 at 23:08| Comment(1) | TrackBack(0) | 技術メモ(PHP)

さて、どうしよう。

めっきり寒くなりましたね。
布団の中の幸せ空間から抜け出すのに苦労します。

それは、さておきJavaでデータベースへのデータインポートツールを作ることになりました。要件的にはORマッピングのフレームワークを使えそうなのですが、どうしようかなと思っている次第で。

使うとするとHibernateかiBATISあたりかと思っていますが、Hibernateは以前にちょっと評価した時にあまりの設定の煩雑さにやられてしまっているので、iBATISかなと。

ただ、ORマッピングツール体制反対派としては、JDBCで手書きするとこともありだなあと。猫
posted by 台北猫々 at 22:58| Comment(0) | TrackBack(0) | 日記

2007年11月15日

テーブル命名規約について

調べてみました。

C:\usr\local\ruby\lib\ruby\gems\1.8\gems\activesupport-1.4.2\lib\active_support\inflections.rb
にありました(私の環境ではRubyをC:\usr\local\rubyにインストールしています)。

複数形化ルールを抜粋してみました。↓

inflect.plural(/$/, 's')
inflect.plural(/s$/i, 's')
inflect.plural(/(ax|test)is$/i, '\1es')
inflect.plural(/(octop|vir)us$/i, '\1i')
inflect.plural(/(alias|status)$/i, '\1es')
inflect.plural(/(bu)s$/i, '\1ses')
inflect.plural(/(buffal|tomat)o$/i, '\1oes')
inflect.plural(/([ti])um$/i, '\1a')
inflect.plural(/sis$/i, 'ses')
inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves')
inflect.plural(/(hive)$/i, '\1s')
inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies')
inflect.plural(/(x|ch|ss|sh)$/i, '\1es')
inflect.plural(/(matr|vert|ind)ix|ex$/i, '\1ices')
inflect.plural(/([m|l])ouse$/i, '\1ice')
inflect.plural(/^(ox)$/i, '\1en')
inflect.plural(/(quiz)$/i, '\1zes')

なるほど、結構力技ですね。これって網羅しきれているのかなと思ってしまいますが、まあ欧米の人がやっているので大丈夫なのでしょう。

ただ、あれなんですね。これだとローマ字表記の場合は落とし穴にはまる場合もあるのですね。Railsのノリとしては、開発要件によってinflections.rbをカスタマイズするものらしいです。
posted by 台北猫々 at 20:54| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2007年11月14日

Ruby on Railsで単純アプリケーション開発1

とりあえず伝票テーブルと伝票明細テーブルのレイアウトはこんな感じでしょうか。商品マスタテーブルは、今回は除外しました。

テーブル名はRailsの規約に沿って複数形にしました。ためしにscaffoldしてみたらできたのでOKのようです。ローマ字表記でも単純に's'を付ければいいようですね(Railsのソースを今度ハックしてみよう)。

//伝票テーブル
CREATE TABLE denpyos (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
denpyo_no VARCHAR(10) NULL,
shohin_sum INTEGER UNSIGNED NULL,
kingaku_sum INTEGER UNSIGNED NULL,
denpyo_date TIMESTAMP NULL,
PRIMARY KEY(id)
);

//伝票明細テーブル
CREATE TABLE denpyo_meisais (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
denpyo_no VARCHAR(10) NULL,
meisai_no INTEGER UNSIGNED NULL,
shohin_name VARCHAR(128) NULL,
suryo INTEGER UNSIGNED NULL,
kingaku INTEGER UNSIGNED NULL,
PRIMARY KEY(id)
);

※伝票テーブル:伝票明細テーブル=1:N

また、従来のシステムであれば伝票番号(denpyo_no)をPKにするところですが、Railsのために"id"という列を付けています。

今までの開発経験から、「伝票番号」というのは業務的なもののためが単純な通番になることがなかったので、別途、Rails用にPK列を作りました。

これにより、思わぬところに影響が出たのですが、それはまた別の機会に・・・
posted by 台北猫々 at 22:50| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

BシェルでCSVファイルを処理しちゃいなよ


#!/bin/sh

OLDIFS=$IFS
IFS=,
while read ELE1 ELE2 ELE3
do
echo $ELE1
echo $ELE2
echo $ELE3
done < ./tmp.txt
IFS=$OLDIFS
exit


tmp.txtの内容は↓のようなCSV形式
a,b,c
d,e,f
posted by 台北猫々 at 21:51| Comment(0) | TrackBack(0) | 技術メモ(シェル)

2007年11月13日

ファイル名から拡張子を除きます。

    
public String removeExt(String file) {
int pos = file.lastIndexOf('.');
if (pos == -1) {
return file;
} else if (pos == 0) {
//先頭が「.」なら、そのまま返す
return file;
}
return file.substring(0, pos);
}
posted by 台北猫々 at 22:34| Comment(0) | TrackBack(0) | 技術メモ(Java)

2007年11月12日

ちょっと時事ネタ

円高・ドル安が驀進中ですね。

それを受けた官房長官や経団連の会長の話として、「円が強くなっている」というようなことを言っていました。

が、

現在の状況は、ドル安の結果として円高になっているだけで、別に日本の評価が上がっているわけではないです。むしろ、輸出産業に頼っている日本経済にとっては、痛手にしかならないです。


ポジティブ過ぎるぜ、ハニー猫
posted by 台北猫々 at 23:26| Comment(0) | TrackBack(0) | 日記

2007年11月11日

Ruby on Railsアプリケーション開発するかなあ

この間、Railsについて色々と規約に反したことをやってみたりとかしていましたが、今度はRailsの規約(レール)の乗ってやってみたいと思います。

簡単な発注システムを作ってみようかと。
DBテーブルは、以下の感じかな。
伝票テーブル
伝票明細テーブル
商品マスタテーブル

posted by 台北猫々 at 22:04| Comment(0) | TrackBack(0) | 日記