ChaichanPapa-World !

燈明日記(2007/10

◆ インデックス

◆ 2007年10月

■ 2007-10-31 嬉しいこと、3つ!

  1. PerlノートのページがヤフーのPerlディレクトリに登録されました!
  2. アマゾンアフィリエイトでやっと収入があった模様!
  3. 久々に本日記にコメントが貰えました!

1のPerlノート登録は、オブジェクトなJavaScriptの基礎講座法華経ノートインデックス VB-Tipsメモにつづいて4つ目です。有り難い感謝感謝。

2のアフィリエイトは、はじめたけど3ヶ月間無収入だったので、忘れていたらアマゾンメールがきたよ。有り難い感謝感謝。

3のコメントは、約1ヶ月間、コメントもトラックバックもなくて、結城先生と同じような気持ちになっていたけど、fbisさんのようなPerlの達人からコメントがもらえました。有り難い感謝感謝。

■ 2007-10-31 IIS-FTPのディレクトリ一覧取得でフォルダを判断するには

ディレクトリ一覧を求める時の表示スタイルは、2通り(UNIXとMS-DOS)があり、設定は以下の通り。


プログラムで取得したディレクトリ一覧からフォルダを判断するには、以下の通り。

■ 2007-10-30 タスクスケジューラ登録で『セキュリティ アカウントにログインできませんでした』が出たら

上記メッセージか、または、『ログオン失敗』が出たら、以下の設定を確認してみて下さい。

確認は、スケジューラから起動されるプログラムのセキュリティタブに、そのアカウントが起動許可になっているか。


尚、上記は、WINDOWS-XPでATコマンドからタスクスケジューラ登録をした場合です。

■ 2007-10-29 PerlでIIS-CGIからEXCELを起動すると『アクセスが拒否されました』になったら

まず、IIS5.1のインターネットゲストアカウントは『IUSR_ホスト名』です。

また、『IUSR_ホスト名』は、Guestsグループです。

一方、EXCEL実行ファイルのプロパティのセキュリティタブで『IUSR_ホスト名』の権限をフルアクセスにします。

しかし、フルアクセスでもブラウザからCGI経由でEXCELを起動すると『アクセスが拒否されました』になるのです。


これは、EXCEL実行ファイルセキュリティとCOM限定セキュリティの両方にインターネットゲストアカウントから起動できる許可がないとダメなのです。


回避策は2つあります。

  1. 『IUSR_ホスト名』をAdministratorsグループにする。
  2. または、COMの限定セキュリティにGuestsグループを追加する。

1は、インターネットゲストアカウントにAdministrator権限を与えるのでセキュリティが問題になります。

2は、COM起動がGuestユーザにでも出来てしまうので、やはり、セキュリティが問題になりますが、1よりはマシですね。


ということで、2がおすすめです。他に方法があったら教えてください。


1の具体的な設定方法:
  1. コントロールパネル
  2. 管理ツール
  3. コンピュータの管理
  4. ローカルユーザとグループ
  5. ユーザ
  6. IUSR_ホスト名
  7. プロパティ
  8. 所属するグループへAdministratorsを追加する。

2の具体的な設定方法:
  1. コントロールパネル
  2. 管理ツール
  3. コンピュータの管理
  4. コンポーネントサービス
  5. コンピュータ
  6. マイコンピュータ
  7. プロパティ
  8. COMセキュリティタブ
  9. 『起動とアクティブ化のアクセス許可』
  10. 『既定値の編集』でGuestsグループを追加する

■ 2007-10-28 繋がるケースその1

今回は、スペルの最後に「d」や「g」や「z」がくる単語と、その次に母音が先頭にある単語が来ると、繋がって一つの単語のように発音されるケースです。

このように、2つの単語が繋がって一つの単語のように発音されるのです。

とにかく、2つの単語の並びに、子音(d,g,z)の後に母音(a,i,u,e,o)が来たら、繋がって2つが1つになって発音されると覚えよう!


尚、本コンテンツは、『TOKYOまちかどリスニング(教育テレビ)』を大変参考にしています。

■ 2007-10-27 ほったいもいじるな

新テーマ「英語ノート」です。よろしくお願いいたします。

私は、英語が苦手ですが、なぜか、英語の勉強は好きなのです。

ちなみに、英語のNHK教育テレビは、20年近く見ています。

そう、私の英語は、受験英語とか英検とはまったく別に、単に趣味で勉強をしているわけです。

今回、ここにその勉強の成果である英語ノートを公開していきます。

初回は、「ほったいもいじるな」です。

これは、普通に読めば「ファツ タイム イヅ イット ナウ?」です。

でも、ネイティブスピードで発音すると「ほったいもいじるな」と聞こえるのです。

そう、単語一つ一つの発音でなく、文全体として繋がって発音されるのです。

いくら、単語一つ一つを知っていても、太刀打ちできないのです。

「ほったいもいじるな」と同じようなものに以下があります。

このように文として発音されると、変化して発音されるケースを当分ご紹介していきます。

尚、本コンテンツは、『TOKYOまちかどリスニング(教育テレビ)』を大変参考にしています。

■ 2007-10-26 昨日と今日の一日

昨日は、ネットする時間が無くて、日記が一日空きました。

で、昨日と今日は、IISのCGI に、はまっていました。


CGI(IIS5.1)のユーザは、IUSR_xxxx(xxxxはホスト名)なのですが、このユーザは、デフォルトでは、Guestsグループです。

このユーザの権限では、CGIからサーバのEXCELを起動することが、どうしても出来ません。

いろいろ、やってみたのですが、すべて出来ませんでした。

ちなみに、Administratorsグループにすると、ちゃんと起動が出来ます。

しかし、IUSR_xxxxをAdministratorsグループにするとセキュリティに問題が出そうです。

どうしよう……。


あと、CGIでフォームからのPostデータを標準入力が出来ない現象に遭遇しました。

はじめ、ファイヤーウォールやアンチウィルスソフトだと思ったのですが、IEのセキュリティの設定でした。

セキュリティをリセットしたら、突然、標準入力が出来るようになったのです。

その後、現象を再現させようと、セキュリティ設定をいろいろ変えてテストしましたが、再現しません。

なぜなんだろう……。


とまぁ、こんな感じで毎日が過ぎて行きます。

では、また!

■ 2007-10-23 今日の一日

今日も一日、FTPとの格闘でした。

昨日の問題は、結局ペンディングに……。


しかし、いろいろとFTPがわかったよ。

これをネタに近々VB-TIPSとしてアップするね。


また、Webサービス、WebAPI、WebOS、SOAP、WSDL 、XML-RPC 、REST、JSON

などをまとめてみたいと思っています。


あと、今、新しいコンテンツに英語TIPSを考えている。

期待しないで、待っててね。

■ 2007-10-22 今日の一日

今日は、FTPと一日格闘でした。

テストで自分自身(WINXP-IIS5)に大量のファイルをFTPをすると接続エラーになる。

なぜか、パッシブモードになったり、ならなかったり、わけわからんですね。


さて、23時からNHK中国語講座とジュークボックス英会話です。

楽しみです。では、また明日!

■ 2007-10-21 今日の一日

朝6:30に起きて、家を7:10に出て、三鷹教会へ7:30に着いて、太鼓のお役(某教会以外の人には謎)をさせて頂きました。

直前の練習では、バラバラで心配でしたが、本番では、皆さん集中してまぁまぁの出来でした。

ご供養の読経もいい感じで上げることができました。

いつも思うのですが、同じお経をほぼ毎日上げているの、日によって、三昧に入れる時とそうでない時がありますね。

今日は、三昧に入れました。快く読誦ができました。


三鷹教会を10:00に出て、都立小金井北高校へ10:20に着いて、バスケットの試合を見ました。

試合は、次男のやっくん(高2)の新人戦です。チビだった小学校の時のミニバスの面影はもうなく、

たくましい次男が見れました。小2からバスケットをしているので、さすがにテクニック&スピードは素晴らしい。

しかし、相手のチームの高さと体力の壁を突き破れず、新人戦一回戦敗退してしまいました。

負けたけど、普段あまり見れない、次男のカッコイイ姿が見れて大満足でした。


で、本燈明日記ですが、そろそろ、ネタ切れです。

また、ちょっと、充電期間になるかもです。


とにかく、毎日毎日、時間がアッという間に過ぎて行きます。

こうやって、毎日無事に生きていけることこそ奇跡だと思える今日この頃です。

この奇跡に、ただただ感謝感謝の日々です。

では、またお会いしましょう!

■ 2007-10-21 巨大サイズファイルの簡易作成方法

プログラムテストのリミットチェック等で、巨大サイズのファイルが必要になる場合が結構あります。

そのような時は、コマンドプロンプトから以下のコマンドで簡単に作成することができます。


例、Dドライブ直下に1GB(1073741824バイト)のファイル作成
D:\>fsutil file createnew file_1G 1073741824

ちなみに、1GBは1073741824バイトで、1024000000バイトではないです。

■ 2007-10-20 Mariah Carey_Without You

例のNHK『ジュークボックス英会話』で知りました。私にとって今一番の曲です。

D

I can't live

If living is without you

「without you」発音の「ウィズアウトユー」が、何回聞いても「バァウチュー」に聞こえるんだよね!

■ 2007-10-20 ファイルサイズ制限 for WINDOWS系

以下にファイルサイズ制限をメモしときます。

ファイルシステムファイルサイズ制限利用可能なOS
NTFSボリューム・サイズまでWindows NT/2000/XP/Server 2003
FAT324GbytesまでWindows 9x/Me/2000/XP/Server 2003
FAT162GbytesまでWindows 9x/Me/NT/2000/XP/Server 2003

詳しくは、以下を参照のこと

■ 2007-10-19 サブルーチンへのリファレンス

たとえば、何かの関数のリターン値が想定でき、リターン値毎にサブルーチンをコールする場合、普通の言語では、if文でロジックを組みます。

Perlでは、もちろんif文でも大丈夫ですが、Perl的(謎)にはリターン値をハッシュキーとして、サブルーチンへのリファレンスをハッシュ変数に格納し、コールすることができます。

use strict;
my  $rc = 401;
my  $pm = "hikisu";

# if文でのロジック(普通の言語風)
if ($rc == 200) {
    &sub01($pm);
}
elsif ($rc == 401) {
    &sub02($pm);
}
elsif ($rc == 403) {
    &sub03($pm);
}
else{
   print "サブルーチン該当なし\n";
}

# サブルーチンリファレンスをハッシュに格納
my %sub;
$sub{200} = \&sub01;
$sub{401} = \&sub02;
$sub{403} = \&sub03;

# ハッシュ値に従って該当サブがコール
eval {&{$sub{$rc}}($pm);};
if ($@) { # $@には、エラー時にエラーメッセージが入り、状態が真となる。
   print "サブルーチン該当なし\n";
}
# 上の実行文と等価
eval {$sub{$rc}->($pm);};   
if ($@) {
   print "サブルーチン該当なし\n";
}

#----------------------------------------------------
sub sub01 {
    print "--- sub01 $_[0]---\n";
}
sub sub02 {
    print "--- sub02 $_[0]---\n";
}
sub sub03 {
    print "--- sub03 $_[0]---\n";
}

尚、いくら想定ができても、想定内だけのロジックはよくないです。

どんな場合でも想定外を考えてロジックを組まないと、痛い目に会うぞ。

■ 2007-10-18 ファイルとフォルダのサイズ取得方法 for VB.NET系

以下にファイルとフォルダのサイズ取得方法があったので、引用メモしておきます。


ファイルサイズ取得方法
Dim path As String = "c:\WINDOWS\隅田川.bmp"
Dim fi As FileInfo = New FileInfo(path)
Dim size As Long = fi.Length 
http://www.atmarkit.co.jp/fdotnet/dotnettips/357filesize/filesize.html

フォルダサイズ取得方法
Imports System
Imports System.IO

Public Class DirectorySize
  Shared Sub Main()
    Dim path As String = "c:\Inetpub"

    Dim di As DirectoryInfo = New DirectoryInfo(path)
    Dim dirSize As Long = GetDirectorySize(di)
    Console.WriteLine(dirSize)
  End Sub

  Shared Function GetDirectorySize(ByVal dirInfo As DirectoryInfo) As Long
    Dim size As Long = 0

    For Each fi As FileInfo In dirInfo.GetFiles
      size += fi.Length
    Next
    For Each di As DirectoryInfo In dirInfo.GetDirectories
      size += GetDirectorySize(di) ' 再帰呼び出し
    Next
    Return size
  End Function
End Class
http://www.atmarkit.co.jp/fdotnet/dotnettips/357filesize/filesize.html

■ 2007-10-17 カレントディレクトリと実行ファイルディレクトリ for VB.NET系

普通、カレントディレクトリと実行ファイルディレクトリは同じになる場合が多いです。

しかし、実際は環境によって別々になる場合が結構あります。

つまり、実行ファイルのあるディレクトリがカレントディレクトリとは限らないのです。

以下に、それぞれの求め方のサンプルを示します。


カレントディレクトリ(作業するディレクトリ)の求め方
   Dim CurrentDir As String = System.IO.Directory.GetCurrentDirectory()
実行ファイルディレクトリ(exeファイルがあるディレクトリ)の求め方
   Dim ExefileDir As String = My.Application.info.DirectoryPath.ToString()

■ 2007-10-16 フィードRSSとAtom

フィード(Feed)とは、供給するとか与えると言う意味で、ウェブサイトやブログなどのコンテンツの概要、もしくはコンテンツ全体を配信する際のデータのことを指します。

そのデータの代表的なフォーマットとしては、RSSやAtomがあります。

RSSは、単純構造のXMLファイルで、サイト全体の概要、タイトルや内容概要、コンテンツへのリンク、といった情報が含まれています。

実は、RSSには3つの規格があります。


この中で「RSS 2.0」は、「RSS 0.9x」を改良したものであり、書式の互換性が確保されている。

その一方で、「RSS 1.0」は、「RSS 2.0」や「RSS 0.9x」との互換性がない。


また、「RSS 2.0」に代わるコンテンツ配信技術としてAtomと呼ばれる新しい規格がすでに存在している。

Atomは、更新情報の配信のみにとどらまず、MP3や動画などのリッチメディアの配信にも用いることが出来て、拡張性も高いため、メタデータの流通方法として汎用的に利用することが可能で、今後の本格的な利用が展望されている。


ということで、今(2007/10)のフィードリーダー(RSSリーダー)は、上記すべてをサポートするケースが普通らしい。

そのうち淘汰されて、どれかに一本化していくのでしょうか・・・。


また、これらのフィードの一般的な使い方は、ウェブサイトの作者がフィードへのリンクをサイトのどこかに置き、ユーザーがそれをアイコンなどから見つけて、自分のフィードリーダーに登録する。

後は、フィードリーダーがフィードの更新を定期的に確認し、ユーザーは最近のコンテンツを得ることができるようになる。


参考:

■ 2007-10-15 my宣言とour宣言

my宣言された変数は、レキシカル変数と呼ばれ、レキシカルスコープを持つ。

また、レキシカルスコープは、ブロック毎のスコープで、親ブロック内の子ブロックは同スコープ内になる。

したがって、実行ステップがブロック外(レキシカルスコープ外)に抜けた瞬間、そのブロックのレキシカル変数は消滅する。


また、レキシカル変数は、同じ名前で再度my宣言されると、実体は別になる。

したがって、変数のリファレンス値も別になる。


一方、our宣言された変数は、グローバル変数と呼ばれ、パッケージ内でどこからも参照変更ができ、実行中消滅することはない。


ちなみに、以下のように最上位ブロック(mainパッケージの先頭)で宣言されたレキシカル変数とグローバル変数は同じスコープを持つ(たぶん)。

use strict;
my  $aaa; # レキシカル変数
our $bbb; # グローバル変数

&xxx();
print "---$aaa---\n";
print "---$bbb---\n";

sub xxx {
    $aaa = "111";
    $bbb = "222";

    print "---$aaa of xxx---", "\n";
    print "---$bbb of xxx---", "\n";

    &yyy();

    sub yyy {
        print "---$aaa of yyy---", "\n";
        print "---$bbb of yyy---", "\n";
    }
}
D:\>tstour.pl
 ---111 of xxx---
 ---222 of xxx---
 ---111 of yyy---
 ---222 of yyy---
 ---111---
 ---222---

■ 2007-10-14 トラックバックPingとは

トラックバックとは、簡単に言ってしまうと自分のブログ更新と一緒に他人のブログ更新もしてしまうことです。

仕組みとしては、BBS(掲示板)のフォーム書き込みとほぼ同じで、データとしては、「タイトル」「概要」「自身のPermanent Link」を書き込みます。

違うのはaction属性が『トラックバックping URL』になるところです。

このようなデータを送ることをトラックバックPingというらしい。

<BODY>
  <FORM method="POST" enctype="application/x-www-form-urlencoded; charset=utf-8"
    action="相手のブログのトラックバックping URL">
  タイトル:<INPUT type="TEXT" name="title"><BR>
  概要:<INPUT type="TEXT" name="excerpt"><BR>
  自分のURL:<INPUT type="TEXT" name="url"><BR>
  ブログ名:<INPUT type="TEXT" name="Blog_name"><BR>
  <INPUT type="SUBMIT">
</FORM>
</BODY>
</HTML>
http://www.itmedia.co.jp/enterprise/articles/0507/20/news007_3.html

尚、ブログソースに以下のようなタグを入れると、自動でトラックバックを受けることができるらしい。

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
    rdf:about="記事のPermanent link"
    dc:identifier="記事のPermanent link"
    dc:title="記事のタイトル"
    trackback:ping="記事のトラックバックping URL" />
</rdf:RDF>
http://www.itmedia.co.jp/enterprise/articles/0507/20/news007_5.html

■ 2007-10-14 伯母の納骨式

昨日(10/13 13:15)、千葉市若葉区の平和公園墓地で、伯母の納骨式がありました。

朝、10時に出発し、早ければ1時間前に着けるかなと思ったけど、首都高が込んでいて、ぎりぎりセーフでした(気揉んだ)。

やはり、時間に余裕をもって出発するの正解です。

途中、突然のトイレ休憩(謎)や先に着いた従弟からの道案内アドバイスなど、神様仏様ご先祖様にご加護されていると思うことの連続で、改めて神様仏様ご先祖様に感謝感謝でした。


納骨式では、お墓の前でお坊さんからお経を上げてもらって、有り難い説法を聞かせて頂きました。

それは、念珠(ねんじゅ)と合掌についての説法です。

基本的に念誦は左手に持ち、合掌するときに念誦を両手に掛け、30度から45度(推奨)で礼拝する。

また、お供え物は、初めにお供えをして、終わりに必ず持ち帰る、または、終了後その場で食べるとのこと。


とにかく、お供えしたものは、持ち帰ってみんなで食べるということでした。

実は、ちゃいちゃんのお墓参りの時は、いつも置いて来ていたのです。

私がいくらカラスの餌になって、お墓が汚れると言ってもです。

ママとママ方のお婆ちゃんのちゃいちゃんを思う強い意思には敵いませんでした。

でも、この説法を聞いて、少し考え直したようでした。よかったよかった。


で、今回このブログで言いたかったことは、神様仏様ご先祖様っているよってこと、思えば思われる。

神様仏様ご先祖様を思えば、神様仏様ご先祖様が私を思ってくれる……そう思えば思われる。


■ 2007-10-14 NHK語学番組

えーと、10月から毎週月〜木まで23時から3チャンネルを見ています。

この時間は、英語を初めとして中国語、ハングル、フランス語、スペイン語の講座が放映されています。

私は、以下の番組を見ています。

毎日欠かさず見ています。

お世辞でなく、どれも、素晴らしい講座ばかりです。


実は、アシスタントの女の子が、みんな、美人でカワイイんです!

安田美沙子と加藤夏希、福原愛ちゃんはスターなので、いうもがなですが、

白田久子さんは、ミス・インターナショナル代表、

前田さん、黄鶴さん、中田さん、樋場さん、じゅよんさん、高橋さん、toutou、皆さん本当にカワイイんですよ!


みんな、おすすめなのですが、その中でも『ジュークボックス英会話』は、とくにおすすめです。

英語のリズムとロック名曲のリズムのクロスオーバー、素晴らしい。中田さんもステキです。

■ 2007-10-13 Ajax(Asynchronous Javascript And XML)とは

Ajaxは、JavaScriptの組み込みオブジェクトである「XMLHttpRequest」によって、WebページとWebサーバー間で非同期通信(Asynchronous)を行い、Webサーバーからデータ(主にXML形式)を受信して、ページ遷移なしにデータを表示するWebアプリケーション技術の一つです。


このXMLHttpRequestオブジェクトは、IEをはじめとして、Firefoxなど多くのWebブラウザでサポートされており、Webサーバーと非同期通信を行うための手段として標準的な方式の一つとなっている。


Ajaxを勉強するなら以下のページがおすすめです。

■ 2007-10-12 シグナル処理 for WINDOWS

処理タイムアウト時とか、終了コマンド(ctrl+c)発行時とかで割り込み処理をしたい場合があります。

UNIXでは当たり前の処理ですが、ActivePerl5.8.8なら、WINDOWSでも可能です。

use strict;
    $SIG{'ALRM'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = \&test_sig;
    alarm(5);
    for (my $i=0; $i<30; $i++) {
         sleep 1
    }
sub test_sig {
    my ($prm) = @_;
    print "----キターーーーーシグナル($prm)----\n";
}

割り込み処理は、ハッシュ%SIGへ割り込み処理(test_sig)のリファレンスを登録すると、割り込みが発生時に起動される。

割り込みは、終了コマンド(ctrl+c)でINTシグナルが発生する。

また、alarm関数での割り込みは、引数で指定された秒数後、ALRMシグナルが発生する。

■ 2007-10-11 BEGINサブルーチンについて

BEGINサブルーチンは、スクリプトのコンパイル時に自動的に1回のみ呼び出されます。

したがって、普通、初期化処理(ファイルの読み込み等)は、ここに記述します。

use strict;
my $aaa;
&xxx();
sub xxx {
    print $aaa, "\n";
}
sub BEGIN {
    $aaa = "ABCD";
}

尚、my宣言された$aaaのレキシカルスコープは、ローカルサブルーチン(xxx()とBEGIN())も含みます。

■ 2007-10-10 困ったときのUndoキー(Ctrlキーとzキーを同時に押す)

今日は、ファイルやフォルダを間違ってコピーや移動したときに元に戻す方法です。

以前に『困ったときのエスケープキー』をご紹介致しましたが……。

すでにドラッグ&ドロップをしてしまったら、エスケープキーでは、もう遅いです。

そんなときは、Undoキー(Ctrlキーとzキーを同時に押す)で、たぶん、元に戻ります。

だだし、Undoキーが効くのは、間違って操作した直後のみです。

■ 2007-10-09 EXCELのプロセスをKILLするには

プログラムからEXCELを制御していると、なにかとEXCELプロセスが残り、その後のテストに影響が出ます。

そのような時は、以下の強制終了コマンドをプログラムから発行します。

c:\windows\system32\taskkill.exe /F /IM EXCEL.EXE

ただし、最近のWINDOWSは、マルチユーザなので、その影響を考慮してからですが…。

■ 2007-10-09 Perlでのカレントパスの求め方(for WINDOWS)

WINDOWS系でカレントパスを求める。

my $current_path = $0;
$current_path =~ s/\\[^\\]*$//;
print "---$current_path---\n";

尚、$0には、実行中のプログラムのパス(プログラム名含む)が格納されている。

■ 2007-10-08 代入文と||論理演算子

Perlでは、代入文に『||』論理演算子が繋がる構文がよくあります。

これは、代入文の右側の『||』で繋がれたもの達で、左から順に 真 を返したものが、代入文の左側に代入されます。

代入文の左側 = 代入文の右側1 || 代入文の右側2 || 代入文の右側3;


tstans.plソース
$ans = &aaa() || &bbb() || &ccc();
print $ans, "\n";

sub aaa {
    return "0";
}
sub bbb {
    return "0";
}
sub ccc {
    return "ccc";
}
tstans.pl実行
$ tstans.pl
ccc

ちなみに、||論理演算子でなくor論理演算子では、優先順位の関係で上記の構文は不可です。

また、Perlの場合の文字列の偽は『""』と『"0"』で、これ以外は 真 です。

スカラー値は、その値が空文字列か数値の 0 (あるいは同値な文字列``0'') 以外の場合には、ブール値の真として扱われます。

http://www.kt.rim.or.jp/~kbk/perl5.005/perldata.html#Scalar_values

■ 2007-10-07 お墓参りとネックレス

今日は、佼成霊園にお墓参りに行ってきました。

本当は、昨日ちゃいちゃんの月命日で行く予定でしたが、用事で今日になりました。

大体、月一回はお墓参りに行きます。


お墓参りは、お墓を掃除して、お花やちゃいちゃんの好物をお供えて、お線香を上げ、

お経(法華経)を読誦します。


お墓の前でお経(法華経)を上げている人は、普通、いませんが、私(ママも)は上げています。

すると、この間、テレビで細木数子が、お墓の前でお経を上げることは、凄く善い事と言っていたので、

なぜか、それを聞いて、細木数子のファンになってしまいました。


で今日、お墓の掃除をしていたら、墓石の上にネックレスが掛かっていたのです。

推測ですが、ちゃいちゃんのお友達の誰かが、供えしてくれたのだと思います。


昨日テレビで、江原さんと美輪さんが亡くなった人は、生きている人と同じように年をとると言っていました。

つまり、ちゃいちゃんは今年20才なり、ネックレスが似合う年頃になったのです。


お墓の前で、ネックレスを見ながら、お経(法華経)を上げていると、込み上げてきて……(以下略)。


改めて、思えば思われるです。

■ 2007-10-07 requireサブルーチンはパッケージ名で修飾する?

requireサブルーチンは、パッケージ名で修飾するとシステム関数やローカルサブルーチンとの区別が明確になります。

パッケージ修飾は、サブルーチン名の前に『&パッケージ名::』の形になります。

尚、ローカルサブルーチンは、package宣言しなくともmainパッケージになります。


tstcall.plソース
use strict;
require 'sub.pl';

&aaa();
&main::aaa();
&sub::aaa();

sub aaa {
    print "---ローカルサブaaa---\n";
}
sub.plソース
package sub;
use strict;
sub aaa {
    print "---requireサブaaa---\n";
}
1;
実行結果
D:\>tstcall.pl
 ---ローカルサブaaa---
 ---ローカルサブaaa---
 ---requireサブaaa---

■ 2007-10-07 9月分月次更新

■ 2007-10-06 Perlでコマンドラインからの引数取得方法

今日は、プログラムをコマンドプロンプトから起動する時の引数取得方法です。

引数は、@ARGVというグローバルな特殊配列から取得することが出来ます。


tstARGV.plソース
print "\@ARGV = $ARGV[0] $ARGV[1] $ARGV[2] $ARGV[3]", "\n";
print "\@ARGV = "@ARGV", "\n";

tstARGV.pl実行
D:\>tstARGV.pl aaa bbb ccc ddd
@ARGV = aaa bbb ccc ddd
@ARGV = aaa bbb ccc ddd

ちなみに、@ARGVと$ARGV[0]の関係は、わかるよね!

配列@ARGVのゼロ番目の要素が$ARGV[0]です。

■ 2007-10-06 『問題が発生したため(プログラム名)を終了…』が出たら

以下のメッセージは、いろいろなプログラムで、いろいろな原因により、出力されるようです。

問題が発生したため(プログラム名)を終了します。ご不便をかけて申し訳ありません。

そのうちの一つを解決したのでご紹介します。

イベントビューアのログ容量オーバー時にイベントログを出力すると発生するようです。

その時は、イベントビューアのプロパティで、最大ログサイズや最大値に達した時の動作を調整することで回避ができました。


ちなみに、イベントビューアとは、スタートメニュー->コントロールパネル->管理ツール->イベントビューア です。

■ 2007-10-06 法華経系更新

以下を更新しました。

■ 2007-10-06 るろうに剣心 追憶編 エンディング

プロフィール書いていて見つけたよ。

いつ聞いても、すばらしい!『Theme of 比古清十郎』

D

■ 2007-10-05 更新Pingとは

今日は、『ブログを更新したらpingを飛ばせ!』 などと、最近良く聞く『更新Ping』についてです。


更新Pingとは、Webサービスを呼び出す手法のXML-RPCを使い、pingサーバーへブログ更新を通知します。

具体的には、更新通知のXMLデータ(リクエスト)を、HTTPのPOSTメソッドを使ってPingサーバーへ送信します。

するとPingサーバーは、それを受信して、更新Ping用のWebサービスを起動するのです。

更新pingは、単なる合図で更新内容は含みません。

したがって、Pingサーバーは、更新Pingを受け取ると、その内容に指示されたURLのRSSを取得しに行くのです。

ちなみに、更新Pingは、トラックバックPingと似てはいますが、全くの別物です。


参考リンク(更新ping,トラックバックPing,RSS)

■ 2007-10-05 燈明日記(2007/09)を追加

■ 2007-10-04 プロフィール更新

プロフィールを更新しました。

■ 2007-10-04 IISリセット

CGIやWEBサービスをデバック中、IISを初期化したい場合があります。

その時は、マシン再立ち上げでなく、以下のコマンドで初期化することが出来ます。

C:\>iisreset

停止しようとしています...
インターネット サービスの停止に成功しました
開始しようとしています...
インターネット サービスの再開に成功しました

■ 2007-10-04 EXCELのセル格納ロジックをスピードアップするには

Perlからロジックでセルにデータを格納する時に、全く表示していなくても、以下の一行を入れると処理スピードが速くなります。

$excel->{ScreenUpdating} = 0;

EXCELオブジェクトのScreenUpdatingプロパティを偽(0)にします。

ちなみに、45分掛かっていた処理が、この一行追加で、15分短縮された30分になりました。

尚、セル格納ロジックそのものは、以下にあります。

■ 2007-10-03 IIS5.1のCGIタイムアウト値の変更方法

以下は、IIS5.1(for WINDOWS-XP)のCGIタイムアウト値の変更方法です。

  1. スタートメニューをクリック
  2. コントロールパネルをクリック
  3. 管理ツールをクリック
  4. インターネットインフォメーションサービスをクリック
  5. タイムアウト値の変更をしたい任意のWebサイトを選択
  6. 上記を右クリックしてプロパティを選択
  7. 仮想ディレクトリタブをクリック
  8. アプリケーション保護を『高(分離プロセス)』に設定
  9. 構成ボタンをクリック
  10. 処理オプションタブをクリック
  11. CGIスクリプトのタイムアウト値を変更する

アプリケーション保護を『高(分離プロセス)』にの設定がミソです。

これをしないと、処理オプションタブが出現しないのです。


ちなにみ、IIS6なら以下が参考になるかもです。

■ 2007-10-02 IEのReceiveタイムアウト

クライアント側のIE(ブラウザ)のReceiveタイムアウト値です。

タイムアウトまでの時間は、バージョン 4.0 および 4.01 の場合は 5 分、バージョン 5.x および 6 の場合は 60 分です。

http://support.microsoft.com/default.aspx?scid=kb;ja;181050

ちなみに、Receiveタイムアウトではないのですが、以下は、似た機能のKeep-Aliveタイムアウト値です。

接続が 1 分間アイドルだった場合、Internet Explorer はその接続をリセットします。その後の要求受信には新しい TCP/IP ソケットが使用されます。Internet Explorer の HTTP KeepAlive タイムアウト値は変更することができます。

http://support.microsoft.com/?scid=kb%3Bja%3B813827&x=16&y=12

■ 2007-10-01 ローカルサブとrequireサブで、同名サブルーチンは、どちらが優先か?

結論から言うとrequireサブが優先されます。

追記:

package宣言なしのrequireサブを読み込むと、ローカルサブと同じくmainパッケージとなり、単に先に宣言されたサブの方が優先されただけでした。


テストプロ(test.pl)
use strict;
require 'sub.pl';

&aaa();

sub aaa {
    print "---ローカルサブ---\n";
}
requireサブ(sub.pl)
use strict;
sub aaa {
    print "---requireサブ---\n";
}
1;
実行結果
$ test.pl
 ---requireサブ---