最近使用したフリーのツール達

画面を動画としてキャプチャー
CamStudio 1.25 日本語版 (2002/10/19 2版)について
日本語版の配布先は http://twk.dyndns.org/CamStudio/ です。
checkcode
指定されたファイルの文字コードをチェックするツールです。
Windowsのコンソールで動作します。
コメント書うんた V2.71
『コメント書うんた』は、C言語やアセンブラ、Java、SQL、VBの
ソースファイルのコメントや行数をカウントし、テキストとして保存や印刷を
するツールです。

DiskLED Version 2.2.4

このソフトは、CPU使用率、メモリ使用率、ディスクアクセス(R/W)、ネット
ワーク経由リソースアクセス(T/R/W)などを監視し、擬似LEDを点灯させる
というデスクトップアクセサリーです。
File Waight Checker
HPに大きなファイルを置くとき、または友人にファイルを送るときなど、
「このファイルは送るのにどのくらいかかるんだろう」
「このファイルはダウンロードにどのくらい時間かかるんだろか?」
とか思ったことありませんか?
このプログラムは、その時間の概算をするプログラムです。
GCA
高圧縮率と展開速度のバランスを重視して
設計された、ファイル圧縮プログラム
jude
NEGiES ver1.40
IPアドレス、ポート番号、アプリケーション(プロセス)、UP,DOWNごとに帯域を
制限できるファイアウォールソフトです。
NetEnum
Setuna
ボタン一つで画面の一部を切り抜き、最前面に表示させておくソフトです。
TrayClock Ver 0.0.1
このソフトはタスクトレイに常駐するアナログ時計です。
AIWMWEBV080.EXE
webテストツール
ババロア
MHT形式で保存する
職員くん
印鑑を押す。

PL/SQL コーディング規約

PL/SQL MYコーディングルール
■フィールド変数のデータ型はかならず%TYPEを使用すべ
フィールドを格納する変数のデータ型には、必ず%TYPEを使用すること。
■FORよりもFORALLを使うべ
FORALLはパフォーマンスが30%程度向上する。FORALLが使用できないか検討してみること。
■空行は作成すな
空行のかわりに–を使用する。SHOW ERRORしたときに空行があるとエラーのあった行数がずれる為。
例)
---------------------------------------------–
vc2_result VARCHAR2 DEFAULT := ‘OK’;
BEGIN
RETURN vc2_result;
END OUT_FILES;
---------------------------------------------–


---------------------------------------------–
vc2_result VARCHAR2 DEFAULT := ‘OK’;

BEGIN

RETURN vc2_result;

END OUT_FILES;
---------------------------------------------–
■変数の型によるプリフィックスを付与すべ

vc2_	VARCHAR2	vc2_from_ymd
cur_	CURSOR		cur_list_master
rec_	RECORD		rec_dept_line
tbl_	TABLE		tbl_code_master
bin_	BINARY_INTEGER	bin_count
pin_	PLS_INTEGER	pin_count
bln_	BOOLEAN		bin_off
dat_	DATE		dat_from
chr_	CHAR		chr_buf
num_	NUMBER		num_count

例外
グローバルな変数にはgを使用すべ
例)gvc2_to_ymd
var_ %TYPEの場合は何型になるかわからないのでvar_を使用する。(variable)
■RECORD型定義,TYPE型定義,例外型定義などの定義関係
型の定義はすべて大文字とする。単語と単語は_(アンダースコア)でつなぐ。
■関数の名称
関数の名称の本体部分には、用途を表す完結した名前を大文字と_(アンダースコア)を使用して付けること。
さらに、プロシージャ名は INIT_NAME_ARRAY やCLOSE_FILEPOINTER のように動詞で始める。
■関数の引数
in_またはout_またはinout_をプリフィックスに使用する。
例)
PROCEDURE NIPPOU_CONSULT_OUTPUT(
in_symd IN VARCHAR2,
out_ret OUT VARCHAR2
);
■定数
プリフィックスにCON_を使用し、すべて大文字とする。
CON_NO_DATA CONSTANT VARCHAR2(1) := ‘3’;
CON_ERROR CONSTANT VARCHAR2(1) := ‘1’;
CON_NORMAL_END CONSTANT VARCHAR2(1) := ‘2’;
■例外処理を必ず実装する。
例外処理は、必ず実装する。よくやるのがEXCEPTION WHEN OTHES THEN NULL;とか。そんなコードを書くな。

例)
FUNCTION "CHAMPLE" RETURN VARCHAR2
AS  -- 宣言部 --
sqlerr_code NUMBER;
sqlerr_msg VARCHARE2(2046);
--
BEGIN -- 実行部 --
--
----------------
-- 処理を記述 --
----------------
--
--COMMIT;	-- トランザクションがある場合
-- 実行部のトランザクションをコミット
RETURN('RETURN from CHAMPLE');
EXCEPTION -- 例外部 --
WHEN OTHERS THEN
-- ROLLBACK;	-- トランザクションがある場合
-- 実行部のトランザクションをロールバック
--
sqlerr_code := SQLCODE;
sqlerr_msg := substrb(SQLERRM, 1, 1024);
--
-- 状況の表示処理例
-- DBMS_OUTPUT.PUT_LINE('sql error code = ' || sqlerr_code);
-- DBMS_OUTPUT.PUT_LINE('sql error msg = ' || sqlerr_msg);
--
--
-- 状況の保存処理例
-- INSERT INTO EXCEPTION_LOG VALUES('FNC_YYY', sqlerr_code, sqlerr_msg, SYSDATE);
-- COMMIT;
--
--
-- 呼び出し元に例外処理の内容を返す
-- RAISE;
--
-- ※上記のINSERT文が有っても,その前の例外が伝えられます。
-- ※上記のINSERT文で例外が発生した場合にはINSERT文の例外も上ります。
-- ※sqlerr_msgには2つの例外メッセージが連結されて呼び出し側に伝わります。
-- 必要に応じて「ORA-」で切り出す。
-- ※INSERT文で例外が発生した場合、sqlerr_codeにはINSERT文で発生した例外番号が
-- 格納される。
END;

Oracleの行連鎖を調べる

SQL> conn ユーザー名/パスワード
接続されました。
SQL> analyze table テーブル名 compute statistics;
表が分析されました。
経過: 00:16:56.05
SQL> spool off
SQL> spool off
SQL> SELECT num_rows,blocks,chain_cnt
2  from dba_tables
3  where owner='ユーザー名'
4  and table_name='テーブル名';
NUM_ROWS     BLOCKS  CHAIN_CNT
---------- ---------- ----------
3231725     193299    2325071

上記の例であれば、
なんと 72% の行が、行連鎖、行移行している!恐ろしく非効率である。

JBossのインストール(Linux)

Linuxの場合
SUSE9.3でのインストール方法です。
YaSTを起動します。
「オンラインアップデート」
Linux
/usr/local/java/j2sdk1.4.2_09
Linux(Bシェル)の場合は次のようになります。
export JAVA_HOME=/usr/local/java/jdk1.4xxx

JBossのインストール(Windows)

J2EE開発環境のインストール
J2SE SDKのインストール
まずはJavaの実行環境・開発環境を導入します。
サンのウェブサイトよりダウンロードしてインストールしてください。
http://java.sun.com/j2se/1.4/ja/今回は以下のディレクトリに配置したものとして説明します。
Windows
C:\j2sdk1.4.2_09
Linux
/usr/local/java/j2sdk1.4.2_09
Windowsの場合
「j2sdk-1_4_2_09-windows-i586-p.exe」をダウンロードします。
ダウンロードしたファイルを実行します。

インストール先を指定します。今回は変更しません。このまま次へをクリックします。

次へをクリックします。

インストールが始まります。いくつかの画面が開いたり閉じたりしますがそのまましばらく待ちます。

インストール完了です。

環境変数の設定
J2SE SDKがインストールできたら、環境変数JAVA_HOMEを設定します。
Windowsの場合、環境変数は コントロールパネルの[システム]-[詳細]-[環境変数]から設定します。
[環境変数]
システム環境変数の[新規(w)…]ボタンを押します。

変数名 JAVA_HOME
変数値 C:\j2sdk1.4.2_09
を設定します。

OKを押します。
同様の手順で、環境変数PATHにも追加します。
[環境変数]を見ると、PATHはすでに存在するはずなので、変数値の最後に
セミコロン「;」をつけて、JDKのディレクトリを追加します。
変数名 PATH
変数値 ;%JAVA_HOME%\bin
JBossのインストール
JBossのホームページhttp://www.jboss.com/よりダウンロードのリンクを辿り、「jboss-3.2.7.zip」というファイルをダウンロードしてください。
既にEJB3.0に対応したバージョンであるJboss4が発表されていますが、今回は安定版の
JBoss Application Server 3.2.7 を使用します。
ダウンロードが完了したら解凍後、適当なディレクトリに配置します。
今回は以下のディレクトリに配置したものとして説明します。
Windows
C:\jboss-3.2.7
Linux
/usr/local/jboss-3.2.7/
過去の記事
3日目 J2EE実行環境の概要
2日目 J2EEの位置付け
1日目 J2EEお勉強を開始

DOSとPL/SQLコマンドの挙動について

タスク起動系のコマンドとその挙動について

コマンド  HOST
タイプ    SQL*Plus
挙動      処理が終わるまで呼び出し元は停止する
参考      PL/SQL内では使用不可、DOSの環境変数が使えない?
コマンド  CALL
タイプ    DOS
挙動      処理が終わるまで呼び出し元は停止する
参考
コマンド  START
タイプ    DOS
挙動      処理はすぐに呼び出し元に戻されるが、/WAITを付ければCALLと同じ動きになる
参考      新プロセスを開きコマンドを実行

WSHによるタスクについて

  • DOSコマンドを起動する(同期)
    Set wShell = CreateObject("WScript.Shell")
    Set oExec = wShell.Exec("cmd.exe /c sample 10 > .\red_network.txt")
    MsgBox oExec.StdOut.ReadAll()
  • DOSコマンドを起動する(非同期)
    Set wShell = CreateObject("WScript.Shell")
    wShell.Run "cmd /c dir > .\test.log"

タスクの一時停止について

DOSの場合、一時停止する方法が無い為、VBScriptを使用する
sleep.bat

echo off
REM Sleep.bat [秒数]
set /a wtime=(%1+0)*1000
echo WScript.Sleep %wtime% > tmp.vbs
cscript //NoLogo tmp.vbs
del tmp.vbs
set wtime=

PL/SQLの場合次のパッケージを使用する

DBMS_LOCK.SLEEP(300);

SQL*Plusを使用したデータの取得

変数&t_dayにシステム日付を代入する。

column tday new_value t_day
select to_char(sysdate, 'yyyymmdd') as tday from dual;
SQL> select'&t_day' "今日" from dual;
旧   1: select'&t_day' "今日" from dual
新   1: select'20050708' "今日" from dual
今日
--------
20050708
SQL> 

ASPの開発中にSQL_TRACEをONにする工夫

こんなページを作っておくとデバッグ時に有効。
<%
Dim CMD
Dim adoCmd ‘ADOオブジェクト
Dim commandText
Dim strMessageONOFF
CMD = Request("CMD")
Call main
Sub main()
‘on error resume next
If fncChkSession(1,"") <> 0 Then
‘不正の場合は終了
Exit Sub
End If
IF CMD="ON" THEN
commandText = "alter session set sql_trace=true"
strMessageONOFF =commandText & "を実行しました<BR>目的のページを実行後、必ずこのページに戻りOFFにして下さい<BR>OFFにしない場合、サーバーに負荷がかかり続けます<BR>"
ELSEIF CMD="OFF" THEN
commandText = "alter session set sql_trace=false"
strMessageONOFF =commandText & "を実行しました<BR><A href=""\\localhost\c$\oracle\admin\ORCL\udump"">トレースファイル</A>を確認してください。<BR>"
ELSE
strMessageONOFF=""
END IF
IF strMessageONOFF <> "" THEN
Session(pcSconDBConn).Execute commandText
END IF
if err.number<>0 then
response.write("err!")
end if
End Sub
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja"><head><meta content="text/html; charset=Shift_JIS" http-equiv="content-type"><title></title></head><body>
<div style="position: absolute; width: 449px; height: 122px; top: 50px; left: 34px;">
<%=strMessageONOFF %>
<form method="get" action="sqltrace.asp" name="FORM">
<div style="text-align: center;"><input name="CMD" value="ON" type="radio">ONにする <input name="CMD" value="OFF" type="radio">OFFにする<br>
<br>
<br>
</div>
<div style="text-align: center;"><input type="submit"></div>
</form>
</div>
</body></html>

SchTasks

定期的または特定の時間にコマンドおよびプログラムを実行するようスケジュールします。スケジュールのタスクの追加と削除、要求時のタスクの開始と停止、およびスケジュールされたタスクの表示と変更を行います。
SchTasks.exe は、Windows の旧バージョンのツールである At.exe に置き換わるものです。
詳しくはWindowsのヘルプを参照。

SQL*PlusでCSV作成

SQL*Plus の機能で、colsep で結果セットのカラム毎のセパレータを定義できる。

SQL> set heading off
SQL> set colsep ","
SQL> select * from 社員マスタ;
社 社員氏名
-- ------------------------------
01 かねやん
02 うえださん
03 いのっしー
04 あかっしー
05 トランスfonda