Visual Studio で簡単に単体テストを書ける。
テストしたいメソッド上で右クリック「単体テストの作成」でスケルトンのコードが
できるので、必要な箇所を記述すればよい。
1度書いておけば、何度でも繰り返し実行できるので便利である。
通常のクラスだけでなく、フォームもテストできるようだ。
フォームのメソッドに対して単体テストを作成すると
Form1_Accessor target = Form1_Accessor new ();
のようなコードを生成してくれる。
これにより、フォームの private な要素にもアクセスできるようになり
GUIのテストもある程度コードで書ける。
ところが、いろいろとエラーが出たのでまとめておく。
・名前空間とクラス名が同じとき
Class1.Class1 のように .Class1 を足さないとエラーになる。
・テストを生成するときに次のエラーが発生しました 値を null にすることはできません。
のようなエラーがでる。
フォームのメソッドに対して右クリック「単体テストの作成」を実行すると
結構な確立でお目にかかった。
原因はよくわからないが、新しく空のフォームを作成して、そこで
単体テストを作成すれば一応回避可能である。
Form1で上記のエラーが発生し、新たにForm2を作成したとする。
すると
Form2_Accessor target = Form2_Accessor new ();
のようなコードを作成できるので、Form2→Form1とすればテスト可能のようである。
Form1_Accessor target = Form1_Accessor new ();
・中小規模な組織の社内SEにとってのシステム開発 他をつづります。 ・問題解決のヒント集、糸口をめざします。 細かい内容は別途検索してください。 ・コメントは匿名でも、自由にどうぞ。
2013年4月17日水曜日
2013年4月15日月曜日
3Dプリンタ
NHKのサイエンスゼロという番組で、3Dプリンタを特集していた。
20万円くらい?から販売されているようで、個人にも手がとどくレベルになってきたとの
ことである。
・試作品を迅速に作成できる。
・多品種少量生産に役立つ。
・臓器の形を再現し、手術のシュミレーションができる。
・電子回路を印刷で作成し、パソコンを「印刷」できる。
・科学、物理で知られている理想的な形状を作ることができる。
これまでの切削などの技術ではできなかったこと。
iPhoneのケースくらいなら、市販品の質には及ばないが支障のないものが
作れるらしい。
人を3Dスキャナで読み込んで、そっくりな型を作って、グミを作っていた。
アイデアしだいでいろいろできそうである。
「印刷」するための設計データが必要になる。
一方で、問題もある。
20万円くらい?から販売されているようで、個人にも手がとどくレベルになってきたとの
ことである。
・試作品を迅速に作成できる。
・多品種少量生産に役立つ。
・臓器の形を再現し、手術のシュミレーションができる。
・電子回路を印刷で作成し、パソコンを「印刷」できる。
・科学、物理で知られている理想的な形状を作ることができる。
これまでの切削などの技術ではできなかったこと。
iPhoneのケースくらいなら、市販品の質には及ばないが支障のないものが
作れるらしい。
人を3Dスキャナで読み込んで、そっくりな型を作って、グミを作っていた。
アイデアしだいでいろいろできそうである。
「印刷」するための設計データが必要になる。
一方で、問題もある。
専門用語の抽出
r と MeCab により、頻出語をしらべようと思った。
ところが、ごく一般的な単語のみ抽出されてしまい、特定分野固有の用語の
頻出度がわからなかった。
そこで、よい方法はないか調べていたが、
termmi
というツール?を入れることで可能のようだったので、試してみた。
<termmi のインストール>
Active Perl
ppm install File::MMagic
MeCab
TermExtract "win_install.pl"を実行
termmi "Configure.pl"
IMP_M.BAT へのショートカットを作成し、そこにファイルをドラッグする。
ところがエラーが出る。
<termmi のエラー>
エラー1
Can not open tmp.txt/ at ./termmi.pl line 116.
・次のように修正した。
# ディレクトリ中のテキストファイル一覧を得る
sub get_text_file {
my $dir = shift; # 処理対象ディレクトリ
[追加→] $dir = 'c:\termmi'; # なぜかエラーになるため
$dir .= '/'; # Shift-JIS対策
エラー2
c:\termmi>perl -w mi_mecab.pl tmp.txt
Cleaning working directory
Execute MeCab now
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
output indivisual document score
output total document score
output common terms
output unique terms
(この状態だとoutput などのフォルダはできるものの、
結果が入っていない。)
・次のように修正した。
# 「和布蕪」を実行
sub exec_mecab {
my $dir = shift;
my $file = shift;
[追加→] $dir = 'c:\termmi'; # なぜかエラーになるため
[追加→] $dir .= '/'; # Shift-JIS対策
ところが、ごく一般的な単語のみ抽出されてしまい、特定分野固有の用語の
頻出度がわからなかった。
そこで、よい方法はないか調べていたが、
termmi
というツール?を入れることで可能のようだったので、試してみた。
<termmi のインストール>
Active Perl
ppm install File::MMagic
MeCab
TermExtract "win_install.pl"を実行
termmi "Configure.pl"
IMP_M.BAT へのショートカットを作成し、そこにファイルをドラッグする。
ところがエラーが出る。
<termmi のエラー>
エラー1
Can not open tmp.txt/ at ./termmi.pl line 116.
・次のように修正した。
# ディレクトリ中のテキストファイル一覧を得る
sub get_text_file {
my $dir = shift; # 処理対象ディレクトリ
[追加→] $dir = 'c:\termmi'; # なぜかエラーになるため
$dir .= '/'; # Shift-JIS対策
エラー2
c:\termmi>perl -w mi_mecab.pl tmp.txt
Cleaning working directory
Execute MeCab now
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
output indivisual document score
output total document score
output common terms
output unique terms
(この状態だとoutput などのフォルダはできるものの、
結果が入っていない。)
・次のように修正した。
# 「和布蕪」を実行
sub exec_mecab {
my $dir = shift;
my $file = shift;
[追加→] $dir = 'c:\termmi'; # なぜかエラーになるため
[追加→] $dir .= '/'; # Shift-JIS対策
2013年4月12日金曜日
r テキストマイニング
r と MeCab でどこまでのテキストマイニングができるのかを調査中。
まずは単語の出現回数をしらべてみた。
次のようなスクリプトで確認できた。
library(RMeCab) #起動のたびに必要?
txres <- RMeCabFreq("tmp.txt")
#降順にならべかえ
df <- txres[sort.list(txres$Freq , decreasing=TRUE),]
#5回以上出現、名詞のみ
df[df$Freq >= 5 & df$Info1 == "名詞", ]
#ファイル保存(カンマ区切りではない)
write.table(df, "output.txt", quote=F, col.names=T, append=F)
まずは単語の出現回数をしらべてみた。
次のようなスクリプトで確認できた。
library(RMeCab) #起動のたびに必要?
txres <- RMeCabFreq("tmp.txt")
#降順にならべかえ
df <- txres[sort.list(txres$Freq , decreasing=TRUE),]
#5回以上出現、名詞のみ
df[df$Freq >= 5 & df$Info1 == "名詞", ]
#ファイル保存(カンマ区切りではない)
write.table(df, "output.txt", quote=F, col.names=T, append=F)
2013年4月10日水曜日
Oracleクライアント バージョン切り替え
複数バージョンのoracleクライアントが共存している場合の切り替え方法
スタートメニューからUniversal Installer を起動する。
「インストールされた製品」→「環境」にて、
使用するバージョンを一番上に移動する。
スタートメニューからUniversal Installer を起動する。
「インストールされた製品」→「環境」にて、
使用するバージョンを一番上に移動する。
インストールの自動化
インストール作業を逐一行うは非常に面倒な作業であるため、
可能な限り、自動化しておきたいものである。
MDT 2010 などというツールはOSのインストールやアプリケーションの配布に
有用なようだ。
アプリケーションの配布についてはサイレントインストールが必要なようなので、
こちらについても確認したい。
可能な限り、自動化しておきたいものである。
MDT 2010 などというツールはOSのインストールやアプリケーションの配布に
有用なようだ。
アプリケーションの配布についてはサイレントインストールが必要なようなので、
こちらについても確認したい。
Oracle DB作成 サイレントインストール
DBCAを利用すれば簡単に作成できるが、何度も繰り返すには面倒なので、
サイレントインストールについて調べた。
DBCAが吐き出すスクリプトを利用することにした。作成方法が簡単であるため。
(DBCAの最後の方にある、「スクリプトを作成する」チェックを入れると作ってくれる)
吐き出された中の、「DB名」.bat を実行するとパスワードは手で入力する必要があるものの
これだけでデータベース作成ができる。
とりあえず当面はこれを利用することにする。
(ACCEPTS sysPassword を Def sysPassword=xxxx にしただけでは、sysのパスワードが聞かれ、完全に自動化できなかった。機会があれば調べたい)
追加したい処理は「DB名」.sql に追加する等で対応できる。
サイレントインストールについて調べた。
DBCAが吐き出すスクリプトを利用することにした。作成方法が簡単であるため。
(DBCAの最後の方にある、「スクリプトを作成する」チェックを入れると作ってくれる)
吐き出された中の、「DB名」.bat を実行するとパスワードは手で入力する必要があるものの
これだけでデータベース作成ができる。
とりあえず当面はこれを利用することにする。
(ACCEPTS sysPassword を Def sysPassword=xxxx にしただけでは、sysのパスワードが聞かれ、完全に自動化できなかった。機会があれば調べたい)
追加したい処理は「DB名」.sql に追加する等で対応できる。
Oracle インストール自動化
Oracle データベース のインストールを自動化しようと思い、
サイレントインストールについて調べた。
UWSCのような自動操作してくれるツールでやろうかと思ったがうまくいかなかったので、
oui の setup.exe でレスポンスファイルを使用する方法を調べた。
setup.exe -responseFile d:\db.rsp -silent
などとする。
db.rspがレスポンスファイルである。絶対パスで指定すること。
このファイルは、一度 oui の setup.exe を通常通り実行し、最後のほうで
「レスポンスファイルの保存」すると作成できる。
意外と簡単だった。
(-silent を外すと、GUIが立ち上がり、設定が確認できる。)
サイレントインストールについて調べた。
UWSCのような自動操作してくれるツールでやろうかと思ったがうまくいかなかったので、
oui の setup.exe でレスポンスファイルを使用する方法を調べた。
setup.exe -responseFile d:\db.rsp -silent
などとする。
db.rspがレスポンスファイルである。絶対パスで指定すること。
このファイルは、一度 oui の setup.exe を通常通り実行し、最後のほうで
「レスポンスファイルの保存」すると作成できる。
意外と簡単だった。
(-silent を外すと、GUIが立ち上がり、設定が確認できる。)
2013年4月6日土曜日
凝集度 結合度
わかりやすい、回収しやすいシステム、プログラムを開発するときに
「凝集度」や「結合度」に留意する。
できるだけ単一の機能(責任)にわけて実装する。
機能的凝集度をめざす。
そして、できるだけ結合を疎にする。関数にはデータ、または構造体を渡すようにする。
条件により動作が変わるようなパラメータは極力さける。(避けられないときもある)
データ結合、スタンプ結合を心がける。
「凝集度」や「結合度」に留意する。
できるだけ単一の機能(責任)にわけて実装する。
機能的凝集度をめざす。
そして、できるだけ結合を疎にする。関数にはデータ、または構造体を渡すようにする。
条件により動作が変わるようなパラメータは極力さける。(避けられないときもある)
データ結合、スタンプ結合を心がける。
2013年4月5日金曜日
2013年4月2日火曜日
join の種類
join の種類
ネスト・ループ結合 二重ループを回してテーブルを結合する
マージ結合 二つのテーブルを、結合するフィールドについてあらかじめソートし、一致するものを探す
ハッシュ結合 ネスト・ループ結合で全件走査している検索処理の部分にハッシュ法を使うことで高速化を図る
http://itpro.nikkeibp.co.jp/article/COLUMN/20060111/227102/
ネスト・ループ結合 二重ループを回してテーブルを結合する
マージ結合 二つのテーブルを、結合するフィールドについてあらかじめソートし、一致するものを探す
ハッシュ結合 ネスト・ループ結合で全件走査している検索処理の部分にハッシュ法を使うことで高速化を図る
http://itpro.nikkeibp.co.jp/article/COLUMN/20060111/227102/
ドライブ文字の変更
ハードディスク、DVDなどのドライブ文字の変更
コンピュータの管理→ディスクの管理
画面右下にCD-ROM 0 などとなっているので、ここを右クリック、ドライブ文字とパスの変更から変更できる。
コンピュータの管理→ディスクの管理
画面右下にCD-ROM 0 などとなっているので、ここを右クリック、ドライブ文字とパスの変更から変更できる。
ドラッカー 成果と貢献
ドラッカー 「プロフェッショナルの条件」
インダストリアル・エンジニアリングは、肉体労働の効率化には役立つが、
知識労働者には役にたたない。
優れた知識を持つものはまれである。豊富にいるのはそうでないものである。
たった一つ優れた専門分野の知識を
活かすように組織に配置するよりない。
成果を上げる上で最も重要な人間は直接の部下ではない。他の分野のひと、組織図上では横の関係にあるものである。あるいは上司である。それらの人に自分の貢献を利用して
もらい成果に結びつくようにしなければ、いかなる成果もあげられない。
知識は成果の上限を決めるのみであり、成果を上げる方法を知らねばならない。
これは1つの習慣である。
(どのような習慣か、について述べている?)
自らの成果を他人がどう利用するか。自らのやっていることを他人がわかるように。
貢献
「組織の成果に影響を与える貢献とは何か」
←→ 権限 「私は経理部長をしています。」
インダストリアル・エンジニアリングは、肉体労働の効率化には役立つが、
知識労働者には役にたたない。
優れた知識を持つものはまれである。豊富にいるのはそうでないものである。
たった一つ優れた専門分野の知識を
活かすように組織に配置するよりない。
成果を上げる上で最も重要な人間は直接の部下ではない。他の分野のひと、組織図上では横の関係にあるものである。あるいは上司である。それらの人に自分の貢献を利用して
もらい成果に結びつくようにしなければ、いかなる成果もあげられない。
知識は成果の上限を決めるのみであり、成果を上げる方法を知らねばならない。
これは1つの習慣である。
(どのような習慣か、について述べている?)
自らの成果を他人がどう利用するか。自らのやっていることを他人がわかるように。
貢献
「組織の成果に影響を与える貢献とは何か」
←→ 権限 「私は経理部長をしています。」
2013年4月1日月曜日
Windows Server 2008 パスワード要件
Windows Server 2008 パスワード要件 の変更方法
デフォルトだと、単純なパスワードだとはじかれるので、それを回避する。
管理ツール→ローカルセキュリティポリシー→アカウントポリシー→パスワードポリシー
で必要な項目を変更する。
デフォルトだと、単純なパスワードだとはじかれるので、それを回避する。
管理ツール→ローカルセキュリティポリシー→アカウントポリシー→パスワードポリシー
で必要な項目を変更する。
ドラッカー 自己の強みとフィードバック分析
ドラッカー 「プロフェッショナルの条件」
強み、仕事の仕方、価値観の3つの問題に答えをだす。
「プロフェッショナルの条件」によると、自己の強みを知る唯一の方法は、フィードバック分析である。
自分の強みは何か、と聞かれて明確に答えられるだろうか。
たいていは間違っている、と氏は言っている。
自分の強みを知らねばならない。
「何かをすることに決めたならば、何を期待するかをただちに書き留めておく。9ヶ月後、
1年後に、その期待と実際の結果を照合する。」
「2,3年のうちに自らの強みが明らかになる。」
そして明らかになった強みに集中する。
他にも、専門知識の軽視、悪癖、人への接し方、成果のあがらないことは行わない、
などに対し、良い啓発を与えてくれる。
いかなる仕事の仕方をするのかは、強みと同様に大切であり、不得手とする仕事の仕方も
明らかにする。読む人間か、聞く人間か。
(所感 自分でも組織でも、振り返る習慣がなかなかないことに気いた。
逐一記録していないとあとで、冷静、客観的に振り返ることも困難だと思う。
強みを活かす、強みに集中する前に、まず正確に強みを知らないという指摘がある。
仕事の仕方が漠然としていることを反省している。
)
強み、仕事の仕方、価値観の3つの問題に答えをだす。
「プロフェッショナルの条件」によると、自己の強みを知る唯一の方法は、フィードバック分析である。
自分の強みは何か、と聞かれて明確に答えられるだろうか。
たいていは間違っている、と氏は言っている。
自分の強みを知らねばならない。
「何かをすることに決めたならば、何を期待するかをただちに書き留めておく。9ヶ月後、
1年後に、その期待と実際の結果を照合する。」
「2,3年のうちに自らの強みが明らかになる。」
そして明らかになった強みに集中する。
他にも、専門知識の軽視、悪癖、人への接し方、成果のあがらないことは行わない、
などに対し、良い啓発を与えてくれる。
いかなる仕事の仕方をするのかは、強みと同様に大切であり、不得手とする仕事の仕方も
明らかにする。読む人間か、聞く人間か。
(所感 自分でも組織でも、振り返る習慣がなかなかないことに気いた。
逐一記録していないとあとで、冷静、客観的に振り返ることも困難だと思う。
強みを活かす、強みに集中する前に、まず正確に強みを知らないという指摘がある。
仕事の仕方が漠然としていることを反省している。
)
登録:
投稿 (Atom)