オタクのブ。

〜 オタクが発信する(たまには)役に立つ情報とオタク観察日記 〜

スポンサーサイト

スポンサードリンク

一定期間更新がないため広告を表示しています

スポンサードリンク
- | permalink | - | -

JUnit使ってみました

多少、はまったので。まとめます。 

http://junit.org/からJUnit 4.8.1をダウンロード(ファイル名:junit-4.8.1.jar)。

とりあえず、以下のフォルダに配置した。どうせCLASSPATHで設定するのでどこでもいいと思う。
C:¥Program Files¥Java¥jre6¥lib¥ext

環境変数CLASSPATHにjarファイルを追加する。
.;C:¥Program Files¥Java¥jre6¥lib¥ext¥junit-4.8.1.jar
(環境変数CLASSPATHが設定されていないときは.が定義されているので自分でCLASSPATHを設定するときは.を付けときます)

とりあえず、動くかどうか試したかったので、testフォルダに以下のtestcase.javaを作成しました。いろいろimportしていますが、このサンプルでorg.junitで使っているのはorg.junit.Testです。

package test;

import static org.junit.Assert.*;
import junit.framework.JUnit4TestAdapter;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class testcase
{
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(testcase.class);
}
@Test public void test()
{
assertEquals(1, 1);
}
}

コンパイルします。
D:¥>javac test¥testcase.java

textuiで実行してみます。
D:¥>java junit.textui.TestRunner test.testcase
.
Time: 0.191

OK (1 test)

以上!

続きを読む >>
システム開発 | permalink | comments(1) | trackbacks(0)

プログラミング言語Java

評価:
ケン・アーノルド,ジェームズ ゴスリン,デビッド ホームズ,柴田 芳樹
ピアソンエデュケーション
コメント:Java言語を学ぶといったらこの一冊
読みづらい
訳を差し引いても重要な一冊
基礎を学ぶには避けて通れない一冊

Javaを勉強しようかなと思って書店に行って選んでみたら、これが一番スタンダードっぽかったので買ってきました。内容は言語に関することはもちろん、JAVA言語を使った場合のプログラミングの仕方についても書かれています。なかなか、ちゃとローカリゼーションなど書かれている本はないんですよね。

Amazonの書評を見ると訳がわかりづらいとか書かれていますが、私はほとんど気になりませんでした。どちらかというと、クラス契約などについて書かれていたりして、オブジェクト指向などの背景知識がないと読むのは難しいだろうなというところが気になりました。ある程度、プログラミングやオブジェクト指向の経験がある人が読むと、知識の整理ができたりして得ることがかなり多い本だと思います。

続きを読む >>
システム開発 | permalink | comments(2) | trackbacks(0)

JCreator LE

http://www.jcreator.com/

とても軽量なJava IDE、私のノートPCにやさしいかも。

LEには、自動補完がないよ。でも、これって、SCJの勉強にはいいかも。自動補完されてしまったら、きちんとプログラムに関する記憶が定着しているかわからないものね(これが、本当の業務に役立つかどうかは微妙でしょうか?。。)。
システム開発 | permalink | comments(0) | trackbacks(0)

次はJAVA?

Sun認定Javaプログラマ(SCJ-P)
【試験番号:310-055】Sun Certified Programmer for the Java 2 Platform, Standard Edition, 5.0
【試験番号:310-056】Sun Certified Programmer for the Java 2 Platform, Standard Edition, 5.0 Upgrade Exam
【試験番号:310-035】Sun Certified Programmer for the Java 2 Platform 1.4
【試験番号:310-036】Sun Certified Programmer for the Java 2 Platform 1.4 Upgrade Exam

JUGEMテーマ:コンピュータ
サーバサイド技術としてRuby on Railsがあるけど、やっはり大規模なシステムやレガシー(すでにレガシー?)システムでは、JAVA技術を学んでおくといいかも。めざすは、SCJ-Dかしら。

何度としては、1.4の方が簡単らしいですが、まあ実務を考えると5.0の機能を使ったほうが効率的だと思うので、そちらをターゲットにしようと思います。
(5.0の方は機能が追加された分、試験の内容が薄く広くの傾向にあると思うのですが、勉強する際にはそうならないように気をつけたいと思います。)
システム開発 | permalink | comments(0) | trackbacks(0)

名前空間

JUGEMテーマ:コンピュータ

Rubyで名前空間をつける方法を探してみた。moduleが使えそう。includeすれば、他の名前空間のクラスを利用できる。
#ソースファイルを分けた場合は、名前空間は変わらないのかな?(未調査)

module NameSpace1

class Test
  def print
    puts "1"
  end
end

end

module NameSpace2

class Test
  def print
    puts "2"
  end
end

end

module NameSpace3

class TestInclude
  include NameSpace2
    def print2
    test=Test.new()
    test.print
  end
end
end

##test
#access NameSpace1
test1=NameSpace1::Test.new()
test1.print

#access NameSpace2
test2=NameSpace2::Test.new()
test2.print

#access NameSpace3
#TestInclude includs NameSpace2
test3=NameSpace3::TestInclude.new()
test3.print2

システム開発 | permalink | comments(0) | trackbacks(0)

Duch Typping

JUGEMテーマ:コンピュータ
 
GoFのデザインパターンのサンプルを使ってrubyの実装方法について試しています。

Javaによる実装を参考にしていたのですが、作っているとRubyとの静的型と動的型の違いについて考え始めたことが。たとえば、Strategyパターンの場合、Javaなどの静的型を意識していたころは、インターフェイスをmoduleでわざわざ作っていたのですが、よく考えるとRubyだと動的な型チェックしか行っていないので、インターフェイスなんていらないじゃんって。。

下記のサイトでC++とRubyの違いについてわかりやすく解説されています。

買い物ログ別館「C++プログラマから見たRuby」
http://www.skoji.jp/blog/2006/01/cpp-ruby.html


デザインパターンでは、依存関係の逆転のためにC++やJavaで抽象クラスやインターフェイスを定義して、それを利用するクラスは抽象クラスに依存するようにする。ただ、Rubyの場合を考えると、動的型付けがあるため特に抽象クラスを定義する必要が無いように思える。

以下は単純なStrategyのサンプルコードだが、class Strategyは無くても問題ないというか、不要か。。ただ、ここで気になったのは、下記のClientクラスに渡すクラスには実際にはprintメソッドをもっていなければいけないとか、Clientが期待する動きをしなければいけないという制限があるのだがこれをある程度コードとして表しておかないと、誤った使い方をされてしまうような気がするのだ。JavaやC++だと、class Strategyから必ず継承されていたり、ClientもStrategyクラスの型(またはサブクラス)しか受け付けないんだけど。うーん、まだ自分が型チェックの呪縛から解放されていないのかな。

class Strategy
  def print
  end
end

class Strategy1 < Strategy
  def print
    puts "Strategy1" 
  end
end

class Strategy2 < Strategy
  def print
    puts "Strategy2"
  end
end

class Client
  def initialize(strategy)
    @strategy=strategy
  end
  def print
    @strategy.print
  end
end

#test
client=Client.new(Strategy1.new())
client.print

client=Client.new(Strategy2.new())
client.print


システム開発 | permalink | comments(0) | trackbacks(0)

ノートPCのHDD交換(OS、データのコピー)

JUGEMテーマ:コンピュータ

ノートPCのHDDの交換と一緒にノートPCのOSを再インストールしようと思ったが、どうも手持ちのCD-ROMドライブでは、ブートできないということに気がついた(というか、もともとそうだった。。)
CD-ROMブートができないなら、時間はかかるがフロッピーディスクでブートすればいいと思っていたら、どうもCD-ROMとWindows 2000の相性の問題か?OSのイメージをHDDにコピーする段階で、失敗する。ネットを調べていたら手持ちのCD-ROMでWindows 2000のインストールができないというのは仕様らしい(CD-ROMのメーカーのFAQにのっていた)。

というわけで、、困った困った。以下の選択肢を考えてみた。
1.使っているノートPCでCD-ROMブートできるCD-ROMドライブを入手する。これでOS再インストールする。
2.HDDを外付けのケースに入れてUSB接続でOSをコピー、フロッピーブートしてOSのインストーラを起動
3.HDDを外付けのケースに入れてUSB接続で現在使っているHDDの中身をコピーして使う

もともとOSの再インストールを考えていたが、いろいろやっていて疲れてきたので今回は3のHDDのコピーを行うことにした。ちょうどAcronis True Imageを持っていたので、このDisk Cloneの機能が使える(使ったことなかったし、実験って事で、、)。

SofmapでUSB接続のIDE用のハードディスクケースを購入してきて試したところ、ノートPCが古いのでファイルのコピーに以上に時間がかかる(USB 1.1接続なんで、、)。半日ぐらいかかったと思うが、なんとかファイルコピーができて無事新しいハードディスクでOSを起動することができた。
システム開発 | permalink | comments(0) | trackbacks(0)

SSDドライブにしてみました:VAIO PCG-SRX3/BD

トランセンド・ジャパン
¥ 9,427
コメント:古いノートPCの2.5インチIDE HDDの置き換えに使えます。SSDです。
古いノートPCに最適!
iBook G4にて快適に使用中
2003年頃のPCに装着して快適です

JUGEMテーマ:コンピュータ
 
もう、VAIO PCG-SRX3/BDも古くなったし新しいパソコンほしいなぁって思っていたときに、SSDというものがあることを思い出しました。数年前までは数GBで何万円ととても庶民では購入できない代物でしたが(というか、かなり頑張らないとOSやソフトが入らないような容量でしたし)、今では検索してみると安いものは32GBで1万円程度!最近のマシンは数百GBやTBのHDDがあたりまえですが、SRX3はもともと30GB程度ですから十分な容量です。

早速、TranscendのTS32GSSD25-Mを購入しました。これを選んだのは値段が手ごろなことと、ネットをみているとSRX3で試されている方が結構いたので、情報があるかと思いました。
(TS32GSSD25S-Mという後ろにSがついている製品には、古いバージョンではパフォーマンスが悪いものがあったそうですが、今回試しているTS32GSSD25-MというSが後ろについていないものは、この問題が無いそうです。安心安心)。

HDD交換については、以下のサイトを参考にさせていただきました。
futuremix「VAIO PCG-SRX3 のハードディスク交換」
http://futuremix.org/2004/08/vaio-srx3-hdd

HDD交換してからは、通常のリカバリーディスクを使ったインストール手順と同じです。せっかくパフォーマンスが良くなるし、OSのクリーンインストールからやりました。リカバリーディスク1,2,3のインストールで終了(アプリケーションは個人的に必要なかったのでリカバリーしません)。


実際のパフォーマンスですが、ディスクアクセスが多い処理では多少早くなったかなって思いました。副次的な効果ですが、もともとHDDのカリカリ音があったのがなくなったのはうれしい。また、HDD部分の発熱もなくなります。ディスクアクセスが早くなって思うのは、やっぱりCPUやメモリーがやっぱりパフォーマンスのネックになっているなってこと。


システム開発 | permalink | comments(1) | trackbacks(0)

Singletonパターン

JUGEMテーマ:コンピュータ
 
Rubyを勉強しようと思った理由にオブジェクト指向プログラムのプロトタイピングというものがあるが、どのような表現力があるかどうか試してみるためにデザインパターンのサンプルプログラムをRubyで書いてみようと思う。デザインパターンについては、@ITの記事でも紹介されているので参考にさせていただいた。

まつもと直伝 プログラミングのオキテ 第8回
http://itpro.nikkeibp.co.jp/article/COLUMN/20070608/274002/?ST=oss&P=3

Singletonだが、実現の方法はいろいろあるがもともとこのパターンが必要になるのは、本来インスタンスを1つしか生成してほしくないクラスに対して制限をつけることだと思う。そう思うと、Singletonライブラリはこれに必要な振る舞いを簡単に実装できるのですぐれている。サンプルプログラムを作ってみた。

#Singleton Pattern
require 'singleton'

class SingletonClass
  include Singleton

  #for test
  attr_accessor :test
end

attr_accessorは、Classのメソッドでsetterやgetterを生成してくれる。rubyの特異メソッドとか、ブロックって使い方によっては、別の言語もどきを作れてしまうようですが、これってちょっと怖いなぁって思ってみたり(知らない人が見ると、意味不明なコードになりそうなので)。
続きを読む >>
システム開発 | permalink | comments(0) | trackbacks(0)

Rubyの勉強:まつもと直伝 プログラミングのオキテ 第1回(3):ITpro

まつもと直伝 プログラミングのオキテ 第1回(3):ITpro

Rubyの勉強をするために、Webで文法などまとまったものを探していたときに、まつもと氏がRuby言語を使ってオブジェクト指向などについて解説されてている記事を見つけた。言語を開発された方がかかれているという信頼性と、ちょうどオブジェクト指向プログラミングのプロトタイピングをやりたいと思っていたので参考にさせていただいている。

記事の中で、箱を開けるという題材でサンプルプログラムが載っているが、自分なりに試しに作ってみた。

module Box
  def open()
  end
end

class Box1
  include Box
  def open()
    puts("開けます")
  end
end

class Box2
  include Box
  def open()
    puts("開錠して、ふたを開けます")
  end
end

class Box3
  include Box
  def open()
    puts("リボンを解いてふたを開けます")
  end
end

Box1.new().open()
Box2.new().open()
Box3.new().open()
続きを読む >>
システム開発 | permalink | comments(0) | trackbacks(0)
<< 2/13PAGES >>