オープンソースの要求管理ツール(OSRMT)のインストールとクライアント起動
目的
要求管理において、ExcelやWordで管理することに疑問を感じ、調べたところOSRMTがあることがわかった。
それを利用できるようにし、評価してみることにした。
(本記事は、評価までしていない。)
OSRMTとは
OSRMT:Open Source Requirements Management Tool
(オープンソースの要求管理ツール)
プロジェクトの要求を管理し、それら要求とプロジェクトの計画および成果物との不整合を特定することを目的とする。要求管理には変更管理と要求トレーサビリティが含まれる。(Wikipediaより)
インストール方法
下記ダウンロード先からZIPファイルをダウンロードし、任意の場所に解凍する。
ダウンロード先
http://sourceforge.net/projects/osrmt/
その他起動に必要なものをインストール
jdkのインストール。
1.7系でOSRMTのクライアントは起動できた。
JREだけではJAVA_HOMEがないため(なのか?)、OSRMTのクライアントが起動できなかった。
クライアントの起動
インストール先にある「client」フォルダ内のrun.batを実行する。
日本語が含まれているCSVファイルをSJISで読み込み、表示する
目的
CSVファイルを読み込み、データを加工しようとしたとき、まずは簡単に読み込んで表示するだけのシェルを作ったら、文字化けして表示された。それを回避するためのメモとして以下に残す。
原因は、PowerShell内部文字コード
読み込むファイル内に日本語がある場合、ファイルの文字コードがSJISでも、Import-CSVで読み込むとUTF16(UTF16LE)らしい。
テキストファイルの読み込み書き出し - Get-Content他
Import-CSVで読み込むのではなく、Get-Content と ConvertFrom-CSV でCSVファイルを読み込んでやる。Get-ContentはデフォルトSJISで読み込むので、OK。
実例
PS C:\Users\tomohiko\Documents\01_kabu\tool> ./testgetcontent.ps1
Code : 10
Name : TOPIX
a : 東証 ★文字化けしない!★
b : 指数 ★文字化けしない!★
c : 1220.77
d : 1223.12
e : 1214.69
f : 1217.52
g : -
h : -
testgetcontent.ps1の中身は以下。
$A = Get-Content .\2013-09-27_all.csv | ConvertFrom-CSV
echo $A
2013-09-27_all.csvの中身は以下。
Code,Name,a,b,c,d,e,f,g,h
10,TOPIX,東証,指数,1220.77,1223.12,1214.69,1217.52,-,-
タスクスケジューラでタスクが実行できない。
目的
業務中にハマったタスクスケジューラの問題を忘備録として、記載する。
タスクスケジューラの問題
タスクスケジューラでスケジュールする対象を実行するとき、フォルダパスもしくはファイル名に【括弧】が付いていると、タスクが実行されない。
sighandler_t とビルドエラー
はじめに
シグナルを使ったプログラムを作成中、以下のようなエラーが出た。簡単に検索できなかったため、忘備録として残す。
main.c:11:39: error: unknown type name 'sighandler_t'
scons と CFLAGSの指定方法
はじめに
SConstructにCFLAGSを指定して、ビルドする方法が、すぐに見つからなかったため、ここに残す。
SConstruct内の定義
Program('daytime.c', CFLAGS='-g -Wall')
scons の実行で確認する
andre@andre-VirtualBox:~/work/daytime$ scons . scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... gcc -o daytime.o -c -g -Wall daytime.c ★ CFLAGSが指定されて、コンパイルされている ★ gcc -o daytime daytime.o scons: done building targets.
Erlangの変数スコープについて
はじめに
Erlangの変数のスコープについて、erlang.orgの和訳をする。
元は、http://www.erlang.org/course/advanced.html
変数のスコープ
Erlangの変数XやYは、始めに束縛される場所から、最後に参照されている場所までである。
以下、ErlangのHPの例から説明する。
f( X ) -> --- 1 変数Xは【束縛】される(★スコープ内★) Y = g( X ), --- 2 変数Xは【参照】される(★スコープ内★) h( Y, X ), --- 3 変数Xは【参照】される(★スコープ内★) p( Y ), --- 4 以下、変数Xは利用されない(スコープ外) f( 12 ). --- 5 (スコープ外)
ポイントは、束縛後、メソッド内終わりまでスコープ内とならないところ。
4行目では、もう参照することができないのである。
ここでは、変数Xに使用されている領域(メモリ)は、再利用のための領域となる。
それは、以下の原文から読み取れる。
line 1 - the variable X is defined (i.e. it becomes bound when the function is entered). line 2 - X is used, Y is defined (first occurrence). line 3 - X and Y are used. line 4 - Y is used. The space used by the system for storing X can be reclaimed. line 5 - the space used for Y can be reclaimed.
if/case/receive の変数のスコープ
条件分岐での変数スコープについて、説明する。
以下のメソッドで説明する。
f( X ) -> case g( X ) of true -> A = h( X ), B = 7; --- 1 false -> B = 6 --- 2 end, ..., h( A ), --- 3 ...
1の分岐が処理された場合、変数A、Bが束縛される。
2の分岐が処理された場合、変数Bが束縛される。
2の分岐が処理された場合、変数Aは束縛(定義)されていないので、
3は呼び出し失敗する。
ポイントは、分岐毎に束縛される変数が異なること。