2008年03月13日

ブロックでクローズいらず!

open("c:\\okinawaa.csv") {|f| f.each {|line| print line }}
↑のようにopenメソッドにブロックを渡すとクローズ処理はいりません。ブロックを定義することにより、ファイルハンドルのスコープが明確になり、ガベージコレクト(GC)できるようですね。

ただ、
open("c:\\okinawa.csv").each {|line| print line }
では、駄目です。クローズ処理が必要です。これだとeachメソッドにブロックを渡しているだけなので、ファイルハンドルのスコープが不明確なのですね。

ちなみに、

begin
s = open("c:\\okinawa.csv") {|f|
s = f
f.each {|line|
print line
raise "fake error!\n"
}
}
rescue => e
print "Error!!" + e
print s.closed? #=>true
end

としてブロック内で例外を発生させてみたら、ちゃんとクローズしてくれていました。なかなか賢いですね。猫


良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 18:57| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年03月12日

ファイルダウンロード処理

Ruby(CGI)でファイルダウンロードを行います。


#!"C:\usr\local\ruby\bin\ruby.exe"
require 'cgi'

def download(filename)

open(filename) {|fp|

basename = File.basename(filename)

param = {
'Content-Type' => "application/octet-stream",
'Content-Length' => fp.stat.size,
'Expires' => 0,
'Cache-Control' => "must-revalidate, post-check=0,pre-check=0",
'Pragma' => "private",
'Content-Disposition' => "attachment; filename=\"#{basename}\""
}

cgi = CGI.new
cgi.out(param){
fp.read
}
}

end

download('c:\\okinawa.csv')




良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 19:27| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年03月11日

最近・・・

最近、「コードなにがし」というサイトにブログや情報公開サイトにアップしたソースを投稿しています。良いソースには「Good Job」をもらえるのですが、私はなかなかもらえないです・・・修行が必要ですね。

それはそうと、「コードなにがしhttp://code.nanigac.com/」は、皆で有用なソースコードを持ち寄って、ソースコードのデータベースを作成するのが目標のようです。「ソースコードのWikipedia」を目指すという考え方は良いと思います。

ですが、現在のところ思い描いていたものには、なっていないのではないかな?という印象を受けます。投稿されているソースもそれほど数があるわけではなく、体系立ってもいないので、情報源としての有用性は???な感じです(こんなことを書いていると怒られちゃうかな?)。

もう少し、枠組みを付けて方向性を明確にした方がいいのかな?という気もします。とはいえ、思想的には期待できるのでもっと多くの人が集まればいいなあと思います。猫

良かったらクリックお願いします→banner_01.gif

posted by 台北猫々 at 19:38| Comment(0) | TrackBack(0) | 日記

2008年03月10日

正規表現で、文字列は全てASCII文字か?のチェック


# -* coding: UTF-8 -*-
require 'kconv'

str = " abcdefghijklmnopqrstuvwxyz!#$&'()[]@";

if str =~ /^[\x20-\x7E]+$/
puts Kconv.tosjis("すべてASCIIである")
else
puts Kconv.tosjis("すべてASCIIでない")
end



良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 21:22| Comment(0) | TrackBack(0) | 技術メモ(Ruby)

2008年03月09日

フラッシュリカバリ領域

●RMANによって以下のファイル群が格納されるディレクトリです。(デフォルトの保存先)
(1)アーカイブREDOログファイル → LOG_ARCHIVE_DEST_nで変更可能
(2)フラッシュバックログ
(3)RMANバックアップファイル → RMANの永続構成とバックアップ時で変更可能
  ・イメージコピー
  ・バックアップセット(RMANファイル)
  ・制御ファイルの自動バックアップ
  
●フラッシュリカバリ領域の設定パラメタ(ALTER SYSTEM 〜で変更可能)
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE


●フラッシュリカバリ領域のサーバ生成アラートはデフォルト設定です。
【使用量】
85%→警告アラート
97%→クリティカルアラート

●フラッシュリカバリ領域の使用状況を表示するSQLです。
SELECT name,
space_limit/1024/1024/1024 "最大サイズ(G)",
space_used/1024/1024/1024 "使用済み(G)",
space_reclaimable/1024/1024/1024 "再利用可能サイズ(G)"
FROM v$recovery_file_dest;


name最大サイズ(G)使用済み(G)再利用可能サイズ(G)
C:\usr\local/flash_recovery_area20.687937736511230468750


●フラッシュリカバリ領域のファイルをテープ装置にバックアップします。
BACKUP RECOVERY AREA
BACKUP RECOVERY FILES
posted by 台北猫々 at 21:04| Comment(0) | TrackBack(0) | 技術メモ(Oracle)

2008年03月08日

ことの葉ひらひら その20

「神は、その人が耐えることのできない試練を与えない」

〜イエス〜


ぶつかった試練にどのように立ち向かうのか、それが大事ということでしょうか猫
posted by 台北猫々 at 23:51| Comment(0) | TrackBack(0) | ことの葉

2008年03月07日

新たなスタート

C/C++台北猫々ライブラリの第一期工事も完了したので。次に何をしようかと思っていたのですが、「各種言語のスケルトン集」というものを公開してみようかと思いました。

手始めにテキストファイル読み込みロジックのスケルトンを
・C言語
・C++
・Java
・PHP
・Ruby
・Perl
・Python
・なでしこ
・Bシェル
の各々について掲載してみました。

自分の勉強も兼ねてですが、こういった横断的なサイトが無いので作っちゃおうかなと思いまして。。。

比較しての考察などを載せていければ、おもしろいかなとも思っています。


公開場所は、
http://winter-tail.sakura.ne.jp
から「各種言語のスケルトン」です。


良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 20:00| Comment(0) | TrackBack(0) | 日記

2008年03月06日

PHPをEclipseでいこう

Eclipse+PDT(PHP Development Tools)プラグインでPHPドライブ!

とりあえず、
AmaterasIDE InstallerからEclipseのインストーラーをダウンロードして、Eclispe(3.3.1)をインストールします。
http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=AmaterasIDEInstaller

このままだとプラグインの依存関係により、PDT(PHP Development Tools)プラグインをインストールすることはできません。
そこで、Eclipseの「ヘルプ」⇒「ソフトウエア更新」⇒「検索およびインストール」で「インストール/更新」ウインドウ
を起動して、「インストールする新規フューチャーを検索」を選択して「次へ」をクリックします。

EclipsePDT_1.jpg

EclipsePDT_2.jpg

「Europa Discovery Site」を選択して、「終了」をクリックします。更新対象モジュールを検索した後に、
更新対象プラグインの一覧ウインドウが表示されるので、右側の「必須項目を選択」をクリックして、選択
された更新プラグインをインストールします。

で、PDTをインストールする準備が整ったので、
更新サイト:http://download.eclipse.org/tools/pdt/updates/
を指定して、PDTをインストールします。

さあ!PHPを実行!としたいところですが、まだ実行できません。
さらに、Zend Executable Debuggerプラグインをインストールしなければいけません。

なので、さらにプラグインをインストールします。
更新サイト: http://downloads.zend.com/pdt
にアクセスすると以下のようにZend Executable Debuggerプラグインを選択できるので、
インストールします。

EclipsePDT_3.jpg

すると、以下のように実行環境の設定が完了します。

EclipsePDT_6.jpg

EclipsePDT_7.jpg


後は、PHPファイルを右クリック→「実行」→「PHP Script」で実行できます。
また、ブレークポイントを設定したから、PHPファイルを右クリック→「デバッグ」→「PHP Script」でデバッグできます。


今回は、PHPの実行環境にZend Executable Debuggerを使いましたが、XAMPPなどで入れたPHPを実行環境として使うことも可能でしょう。猫

良かったらクリックお願いします→banner_01.gif

posted by 台北猫々 at 19:11| Comment(0) | TrackBack(0) | 技術メモ(PHP)

2008年03月05日

フラッシュバックバージョン問合せ

以下のようなテーブルを作成します。
IDNAMEPRICEUPD_DATE
1商品A10002008/02/23 23:58:27
2商品B15002008/02/23 23:58:27


商品AのPRICEを更新


IDNAMEPRICEUPD_DATE
1商品A12002008/02/23 23:58:27
2商品B15002008/02/23 23:58:27


これまでの変更履歴を表示します。
SELECT versions_starttime,versions_operation,ID,PRICE
FROM MST_SHOHIN
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE
WHERE ID = '1'


versions_starttimeversions_operationIDPRICE
2008/03/04 23:12:12U11200
2008/03/04 23:11:21I11000

※U:Update, I:Insert

こんなこともできるようになったのですね。猫
posted by 台北猫々 at 19:44| Comment(0) | TrackBack(0) | 技術メモ(Oracle)

2008年03月04日

台北猫々C++ライブラリ

台北猫々C++ライブラリの方は、ある程度のクラス数の公開ができたので、第1期工事は一応完了ということにします。

今後、
第2期工事(開始時期5月?)の内容として考えているのは、
・Wpcapライブラリを使用した、ネオ・生ソケットクラス
・ネオ・生ソケットクラスを使用した、ステルススキャンクラス
・SMTPクライアントクラス

また、
第3期工事(開始時期9月?)の内容として考えているのは、
・データベース(Oracle, Postgres, Mysql, DB2, SQLServer)アクセスクラス

となります。猫


公開URLはページの→側にもありますが、
http://winter-tail.sakura.ne.jp
です。


良かったらクリックお願いします→banner_01.gif

posted by 台北猫々 at 19:30| Comment(0) | TrackBack(0) | 日記

2008年03月03日

自転車通勤

最近、自転車通勤する日が増えました。そこで、1年間でどのくらいの距離を走ることになるのかを計算してみました。

1日1往復で12Km程度なので、

1週間で、12km X 5日 = 60Km

1ヶ月で、60Km X 4週 = 240Km

1年で、240Km X 12ヶ月 = 2880Km

大体1年で約2880Km!大体、日本を縦断するような感じになります。結構な距離になりますね。日々の積み重ねというのは大事なんだなあと思いました。猫


良かったらクリックお願いします→banner_01.gif
posted by 台北猫々 at 22:42| Comment(0) | TrackBack(0) | 日記

2008年03月02日

星ほたる

早く宇宙軌道エレベーターが出来て、アクアラインの海ほたるに行くような感覚で、高度3万6千キロにある宇宙観光施設「星ほたる」に行けるようにならないかなあ、と思う今日この頃です猫
posted by 台北猫々 at 20:38| Comment(0) | TrackBack(0) | 日記

2008年03月01日

新資格 ORACLE MASTER Gold Oracle Database 11g リリース

2月29日からORACLE MASTER Gold 10g認定資格を持っている人向けの「ORACLE MASTER Gold 11g」移行試験が始まったそうですね。

http://www.oracle.com/global/jp/education/certification/portal/index.html#OM11gGold

現在、私は9i→10gへの移行試験を受けようとしているのに、世話しないことです。10g→11gへの移行は、いつ受けようかな?しかし、Oracleは良い商売していますね。

今のところ、「iStudy Gold DBA 10g新機能」の模擬試験の結果は、ぎりぎり合格レベルです。勉強開始から1週間でここまできているので、3月中には取得できるかもです。猫
posted by 台北猫々 at 08:41| Comment(0) | TrackBack(1) | 日記

Oracleをアップグレードする時の起動モード

Oracle9iでは、"startup migrate"だったものが、10gでは"startup upgrade"に変更になったそうです。また、移行ツールも"Database Migrate Assistant"から、"Database Upgrade Assistant"に改名したそうです。

↓は、コマンドラインからデータベースをアップグレードモードで起動する方法です。

C:\Documents and Settings\xxxxx>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 土 3月 1 08:13:34 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn sys/xxxxxxxxxx as sysdba
接続されました。
SQL> startup upgrade
ORACLEインスタンスが起動しました。

Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 96469696 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
posted by 台北猫々 at 08:22| Comment(0) | TrackBack(0) | 技術メモ(Oracle)