2009-01-01から1年間の記事一覧

Base64OutputStream

Base64OutputStream Base64 の Stream エンコード実装例です。 import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; public class Base64OutputStream extends FilterOutputStream { private int col = 0; privat…

Java Native Access 〜その1〜

Java Native Access (JNA) とは JNA とは、Javaからネイティブライブラリを簡単に使用するためのライブラリです。通常Javaからネイティブライブラリを呼び出す場合は、JNIを利用しますが、Cヘッダファイルの作成が必要であったりと手順が煩雑でした。JNA を…

JYaml の設定ファイル

JYaml では jyaml.yml という設定ファイルにて動作をカスタマイズできます。jyaml.yml というYAMLファイルをカレントディレクトリかクラスパスのルートディレクトリに配置しておけば勝手に読み込んでくれます。構成ファイルは以下のような内容となります。 m…

Observer パターン

Observer パターンとは オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化すると、それに依存している全てのオブジェクトが自動的に状態の変更の通知を受けるようにします。 Observerインターフェースと具象クラス public interface O…

ネットワークインターフェースの取得

NetworkInterface の static メソッド getNetworkInterfaces によりプラットフォームに存在ネットワークインターフェースが取得できます。 List<NetworkInterface> list = EnumerationUtils.toList(NetworkInterface.getNetworkInterfaces()); for(NetworkInterface networkInt</networkinterface>…

DB2のActivate(活性化)とは

DB2

Activate(活動化)とは DB に接続時には、必要なメモリの確保やログの整合性チェックが必要です。DB2 では、この作業をデータベースのActivate(活動化)と呼んでいます。 Activate のタイミング DB2 は db2start によるインスタンスの起動時には活動化は行いま…

MS製のテストケース作成ツール PICT

etc

PICT はMicrosoftがフリーで提供するテストケース作成ツールです。All-Pair法により、品質を維持したまま、組み合わせテストのパターンを削減することができます。 導入 以下のサイトから Available Tools > PICT と辿り、pict33.msi をダウンロードします。…

DB2でトランケート

DB2

DB2にはORACLEで言うトランケートがありません。 トランケートしたい場合は空データをインポートすることで代用できます。 空のファイルを作成する $ touch empty.del 空のファイルをインポート $ db2 import from empty.del of del replace into <table_name></table_name>

DB2でシステム日付を取得する

DB2

ORACLEでいう select sysdate from dual;は、DB2では SELECT current date FROM sysibm.sysdummy1; 以下でも取得できます。 values current timestamp;

diaglevelの変更

DB2

diaglevel レベル 説明 0 キャプチャーされる診断データなし 1 重大エラーのみ 2 すべてのエラー 3 すべてのエラーおよび警告 4 すべてのエラー、警告、および通知メッセージ 現在設定の確認 db2 "get dbm cfg" ・・・途中省略 診断エラーのキャプチャー・レ…

Java の YAML パーサー JYaml を試す

JYaml は Java でYAMLを扱うためのライブラリです。現在のバージョンは1.3となっています。本家サイトは以下です。 http://jyaml.sourceforge.net/index.html 使用するには jyaml の jar をクラスパスに追加するだけです。 YAMLについて XMLと比較して簡素で…

DB2接続設定

DB2

ノードの確認 db2 list node directoryノードカタログ設定 db2 catalog tcpip node <カタログ名> remote <IP> server <PORT>ノードカタログの削除 db2 uncatalog node <カタログ名> エイリアスの確認 db2 list db directoryデータベース別名設定 db2 catalog database <DB名></db名></port></ip>…

DB2でオフラインバックアップを取得

DB2

オフラインバックアップ取得 バックアップ以外のタスクがデータベースに接続しているとオフライン・バックアップが取得できないので、接続がないことを事前に確認する。 $ db2 list applications 上記で接続が有る場合、force する。 $ db2 force application…

コマンドプロンプトからエクスプローラを開くには

etc

コマンドプロンプトで作業していて、カレントディレクトリをエクスプローラで開きたい時は以下 > start . ちなみにドットが無いと、別のコマンドプロンプトが立ち上がります。

シェルの1行目はシバン

毎度名前を忘れます。シェルの1行目に書く#!から始まるインタプリタ指定はシバン(shebang)と呼びます。 #!/bin/sh ・・・ そんだけ。。

slf4j log4j JUL のログレベルの対応

slf4jcommons-logging Log4j java.util.logging fatal fatal SEVERE error error SEVERE warn warn WARNING info info INFO - - CONFIG debug debug FINE - - FINER trace debug FINEST

easyb による振舞駆動開発

easyb とは Groovy で書かれた Java 向けの BDD(behavior driven development:振舞駆動開発)フレームワークです。Groovy の簡素な文法を利用して、BDD専用のドメイン特化言語を提供します。 その他のテスティングフレームワークでも同様のことはできますが、…

Eclipse Groovy プラグイン

いつの間にか GroovyEclipse v2 が出てました。Java と Groovy 間でリファクタリングの同期が取れるようになってたりして結構使いやすくなっており、Groovy プラグインの導入として記しときます。 Eclipse Groovyプラグイン更新サイト Eclipse 3.5(galileo) …

Javaのロック機構と変数の可視性

前回 blog1.mammb.com からの続きです。 synchronized Javaは言語本体の機能としてロック機構を備えています。このロック機構は synchronized キーワードにより指定します。ロックはミューテックスの働きをし、1度に1つのスレッドしか所有できません。 Java…

スレッドセーフな実装について

前回 blog1.mammb.comについて書いたのでついでにスレッドセーフについても書いとこ。 レースコンディションとは スレッドセーフ化 複合アクション 複合アクションをスレッドセーフにする レースコンディションとは Javaではスレッドを比較的簡単に扱うこと…

同期コレクションと並列コレクション

同期コレクション 同期コレクションのイテレーション 同期コレクションのプット・イフ・アブセント 並列コレクション ConcurrentHashMap CopyOnWriteArrayList CopyOnWriteArraySet 同期コレクション 同期コレクションは、JDK1.2以降で追加された Collection…

動的なメソットのオーバーロード

こんなことがしたい 例えば以下のようなクラスがあった場合。 public interface Base { } public class Sub1 implements Base { } public class Sub2 implements Base { } 以下のようにすると test(new Sub1()) のような呼び出しで method(Sub1 sub1) のメソ…

軽量O/Rマッピングフレームワーク ActiveObjects その3

前回 blog1.mammb.comの続きです。今回は Polymorphic について見ていきます。 多様性関連のマッピング Person が請求明細(BillingDetails)を1つ持つことを考えます。この請求明細は、クレジットカード(CreditCard)か銀行口座(BankAccount)の何れかであると…

軽量O/Rマッピングフレームワーク ActiveObjects その2

前回blog1.mammb.comの続きでテーブル間の関連について見ていきます。今回はOneToMany。 1対多関連 1側となるFamily Entityを以下のように作成します。 public interface Family extends Entity { public String getName(); public void setName(String name…

軽量O/Rマッピングフレームワーク ActiveObjects その1

RailsのActiveRecordを意識したJavaの軽量ORMです。Entityとしてインターフェースを定義するだけで一通りのDB操作が可能で、XMLによる設定ファイル等なしで非常に手軽にORMを使うことができます。本家は以下です。 https://activeobjects.dev.java.net/ 現在…

jMockの簡単なまとめ

jMockとは モックの振る舞い定義が、慣れると心地いいモックライブラリです。本家サイトは以下。 http://www.jmock.org/index.html jMock利用準備 クラスパスへ以下のjarを追加します。 jmock-2.5.1.jar hamcrest-core-1.1.jar hamcrest-library-1.1.jar jmo…

Go 言語仕様の簡単なまとめ 3

Go

構造体 type T struct { a int; c string; } t := &T{ 7, "abc" }; インターフェース struct がデータ型を定義するのに対して interface はメソッドセットを定義する。インターフェースはメソッドの引数として指定するなど、型として利用できる。 type ReadW…

Go 言語仕様の簡単なまとめ 2

Go

if Cで必要な括弧は不要で、以下のような書き方となる。 if x > 0 { return y } 以下のようにifの中に初期化文を書くことができる。 if err := file.Chmod(0664); err != nil { log.Stderr(err); return err; } Forループ doやwhileループはGoには存在しない…

Go 言語仕様の簡単なまとめ 1

Go

Go の特徴 シンプルな言語仕様 Class は無いがオブジェクト指向っぽい記述ができる interfaceがある ポインタはあるがポインタ演算はない タイプセーフである ガベージコレクションがある 並列処理の組み込みサポートがある コンパイルが異常に早い ソースフ…

Maven Getting Started Guide プラグインの利用

Maven プロジェクトのビルドをカスタマイズしたい場合にはプラグインを利用します。例えば、Java のコンパイルターゲットとして JDK5.0 のソースを使用したい場合には、以下のように、コンパイラプラグインを使用する定義をPOMに追加します。 ... <build> <plugins> <plugin> <groupId>org.apa</groupid></plugin></plugins></build>…