2009-11-01から1ヶ月間の記事一覧

Spring で JMS を使ったリモートメソッド呼び出し

Spring の JmsInvoker を使用すると、JMS経由でのRMI処理が簡単に書けます。ここでは、サービスを提供するサーバ上の AccountService をクライアントからJMS経由で呼び出す例を見てみます。 使用ライブラリ Spring関連 spring.jar(2.5.5) spring-test.jar(2.…

Go ソースを読み易くする gofmt ツール

Go

Go にはソースファイルを整形する gofmt というツールが付いています。例えば、以下のようなソースがあったとします。 package main import "fmt" func main() { fmt.Printf("hello, world\n")//print hello } gofmtにこのファイルを指定すると、 $ gofmt he…

Go を 普通に Ubuntu にインストールする

Go

先日は windows で Go を試してみましたが、ここでは普通にUbuntuにインストールしてみます。 Go コンパイラ Goコンパイラには 6g や 8g のような gc Goコンパイラと、gcc をバックエンドにした gccgo コンパイラがあります。gccgo では最適化が十分に行える…

Go を Windows でサクッと試してみる

Go

Goとは Google の20%プロジェクトから生まれた新しい言語です。本家は以下です。 http://golang.org/表現力が豊かであり、並列性のサポートがあり、ガベージコレクションがあるシステム記述言語とされています。Go の特徴として以下のような紹介がされていま…

Maven Getting Started Guide 導入編

Mavenの公式サイトの Getting Started Guide をかいつまんで適当に訳したものです・ Mavenとは Mavenはプロジェクトのビルドプロセスのベストプラクティスを提供します。ビルドプロセスの一貫した基盤を提供することで、理解を用意にし、生産性を確保します…

Ubuntu 9.10 の Virtual Box へのインストール

先月10月に Ubuntu 9.10 がリリースされました。ここでは VirtualBox へのインストール手順について記しておきます。 Ubuntu のダウンロード Ubuntu 9.10のCDイメージを以下からダウンロードします。日本語環境用のパッケージも Ubuntu Japanese Team から提…

【これだけ覚えりゃなんとか使えるPerlメモ9】TCPサーバとクライアント

日時を返却するTCPサーバと、TCPサーバにアクセスするクライアントの例。tcp_server.pl #! /usr/bin/perl # 日時を返却するTCPサーバ use Socket; $port = shift || 9999; $proto = getprotobyname('tcp'); socket(ListenSock, PF_INET, SOCK_STREAM, $proto…

【これだけ覚えりゃなんとか使えるPerlメモ8】行数カウント

指定ファイルの行数をカウントする簡単なプログラム例 #! /usr/bin/perl if (@ARGV == 1) { die "$ARGV[0] not exist \n$!" unless -e $ARGV[0]; open ( STDIN, $ARGV[0] ) || die "Can't open file \n"; } while (<STDIN>) { $line_count++; } print $line_count, </stdin>…

【これだけ覚えりゃなんとか使えるPerlメモ7】各種変換処理

文字列を小文字化 $str =~ tr/[A-Z]/[a-z]/; 文字列を大文字化 $str =~ tr/[a-z]/[A-Z]/; 10進->8進変換 $out = sprintf("%o", $in); 8進->10進変換 $out = oct($in); 10進->16進変換 $out = sprintf("%x", $in); 16進->10進変換 $out = hex($in); 日付の書…

【これだけ覚えりゃなんとか使えるPerlメモ6】ファイルとディレクトリの操作

ファイルサイズの取得 $a = 'hoge.txt'; $size = -s $a; print "$aのサイズは$sizeです。\n"; ファイルの存在チェック die "A file called '$filename' already exists. \n" if -e $filename; または、以下でも同じ if ( -e $file ){ die "A file called '$f…

【これだけ覚えりゃなんとか使えるPerlメモ5】入出力

ユーザ入力 スカラコンテキストで受ける chomp($line = <STDIN>) リストコンテキストで受ける chomp(@lines = <STDIN>) 入力を終了するにはCtrl-D(WinではCtrl-z) ユーザからの応答読み取り ユーザからの応答読み取り print STDOUT "Enter a number: "; # 数の入力を促す</stdin></stdin>…

【これだけ覚えりゃなんとか使えるPerlメモ4】制御構造

制御構造(if) 必ずブレースで囲まなければならない。 if ( $var eq 'A' ) { .... } if ( $var eq 'A' or $var eq 'B' ){ .... } if ( $var eq 'A' ) { .... } elsif ( $var eq 'B' ) { .... } else { .... } 制御構造(while) $count = 0; while ($count < 10…

【これだけ覚えりゃなんとか使えるPerlメモ3】演算子

算術演算子 演算子 説明 例題 + 加算 $x = 10+2 # $x の値は 12 - 減算 $x = 10-2 # $x の値は 8 * 乗算(×) $x = 10*2 # $x の値は 20 / 除算(÷) $x = 10/2 # $x の値は 5 % 剰余 $x = 10%2 # $x の値は 0 ** 累乗 $x = 10** # $x の値は 100 ++ インク…

【これだけ覚えりゃなんとか使えるPerlメモ2】リテラルと変数型

リテラル 整数リテラル 整数リテラルは以下のようなもので、_にて読みやすくすることもできる(桁区切り)。 0 2001 -20 30_289また、0で始まるものは8進数、0xで始まるものは16進数、0bで始まるものは2進数として扱われる。 浮動小数リテラル 浮動小数は以下…

【これだけ覚えりゃなんとか使えるPerlメモ1】Hello World

1行perl 伝統的な Hello World の 1行 perl。 -e オプションは続くperlコードを実行する。 $ perl -e 'print "Hello World\n";' 出力 Hello World スクリプトの作成 hello.pl を作成、実行する。 #!/usr/bin/perl print "Hello World\n"; 出力 $ chmod a+x h…

ファイルとディレクトリのパーミッション

ファイルのパーミッション 設定 意味 r そのファイルを読める w そのファイルを変更できる x そのファイルをプログラムとして実行できる ファイルに対する s/t ビット 設定 意味 u+s setuid 該当のコマンドが所有者の権限で実行される g+s setgid 該当のコマ…

ファイルのロックを取得する

ロックを取得してファイルにWriterで書き込む処理のサンプル public static void writeWithNoWaitLock(String filename) throws IOException { FileOutputStream fos = null; Writer writer = null; FileChannel channel = null; try { fos = new FileOutput…

テストケースからのH2起動

H2の組み込みモードで単体テスト 単体テストとか、結合テストとかでテストスイート起動時にデータベースを起動して、終了時にデータベースをシャットダウンする例です。 @RunWith(Suite.class) @SuiteClasses( { ProductDaoImplTest.class, ProductServiceIm…

2つのディレクトリ下のファイル構成を比較するシェルスクリプト

タイトルの通りです #!/bin/sh # # 名称 # dir_diff - 2つのディレクトリ下のファイル構成を比較する # # 書式 # dif_diff [-v] [dir1] dir2 # # 解説 # 指定した2つのディレクトリ下にあるファイル構成を比較し、 # 等しくないファイルをリスト表示する。 #…

指定日時よりも更新日付の新しいファイルを検索するシェルスクリプト

タイトルの通りです。 #!/bin/sh # # 名称 # find_new_file.sh - 指定日時よりも更新日付の新しいファイルを表示する。 # # 書式 # find_new_file.sh [-rv] [[CC]YY]MMDDhhmm[.ss] [directory] # # 解説 # 指定日時より更新日付の新しいファイルを表示します…

シェル変数のまとめ

覚えていられないシェル変数について書いておこう・ 特殊変数 特殊変数一覧 変数 説明 $0〜$9 $0はコマンド名、以降$1,$2・・は第1,2引数に対応。 $* 引数全体。ダブルクオートで括ると、引数全体をダブルクオートで囲んだ状態となる。 $@ 引数全体。ダブル…

Shellの小ネタ集

文字列の長さを得る expr は引数にコロンがあると、その右側と左側の文字列を比較して、先頭から何文字までが等しいかという値を返却する。そのため、以下のようにすると文字列の長さが得られる。 expr "string" : '.*' 文字列中に特定の文字列が存在するか…

ファイルのコピー処理各種

ストリームによるファイルコピー シンプルなストリームによるファイルコピー public static void copy(String src, String dest) throws IOException { InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(new FileInputS…

Swingでウインドウ位置を調整する

ウインドウをプラットフォームのデフォルト位置に表示する ウインドウ表示位置をプラットフォームの指定に任せるには、java.awt.Window.locationByPlatform プロパティを true にセットする。すると、ウィンドウマネージャはウィンドウを(0, 0)の原点に置く…

システム環境変数の取得

どうでもいいですが、以下で環境変数が取得できます・・ for (Map.Entry<String,String> e : System.getenv().entrySet()) { System.out.println(e.getKey() + " : " + e.getValue()); } JAVA_HOME とか USERNAME みたいなシステム環境変数の一覧が表示されます。</string,string>

単体テストを簡単に Unitils 〜モックオブジェクト 3 〜

前回 blog1.mammb.comに引き続き、Unitils によるモックオブジェクトのサポートを見ていきます。 ダミーオブジェクト モックオブジェクトを使用したテストを書いていると、オブジェクトの準備が面倒な場面があります。 オブジェクトの中身に設定されている値…

単体テストを簡単に Unitils 〜モックオブジェクト 2 〜

前回 blog1.mammb.comに引き続き、Unitils によるモックオブジェクトのサポートを見ていきます。 メソッド呼び出しの検証 テスト対象のクラスのメソッド呼び出しにより、モックが期待通りに呼び出されたかを検証するには以下のようにします(通常モックオブジ…

単体テストを簡単に Unitils 〜モックオブジェクト 1 〜

blog1.mammb.comに引き続き、Unitils でのモックオブジェクトの使い方について見ていきます。 Unitilsによるモックサポート Unitils では、以前は EasyMock によりモックオブジェクトをサポートしていましたが、バージョン 2 から独自でモックオブジェクトを…

byte 配列の変換メソッド

commons-codec がバグってたので作成したユーティリティメソッドです。かなり昔のことなので今は直ってるかも知れませんが、何かのときのために・・ byte配列と2進数char配列の変換 /** * バイト配列から2進文字配列を作成して返却します。 * @param bytes …

test コマンドを書く時は・

testコマンドの注意点 以下のような記述はよろしくない。 if [ ${VAR} = ""]; then echo "true" else echo "false" fi if [ ${VAR} != "" ]; then echo "true" else echo "false" fi 上記は VAR が空であった場合、以下のように展開されるため test コマンド…