ChaichanPapa-World !

燈明日記(2010/01

◆ インデックス

◆ 2010年1月

2010-01-30 電源コンセントにつないでのLAN

ルータなどネットワーク側の情報機器に接続する「マスターアダプタ」(親機)と、PCなどに接続する「ターミナルアダプタ」(子機)を電源コンセントに差し込むことで、LAN環境が構築できる。通信速度は最大90Mbps。ターミナルアダプタは最大15台まで増設できる。LANケーブルの配線が困難な場所や、遮蔽物などにより無線の電波が届かない場所でも利用でき、LANケーブルを施工する必要がない。

http://japan.cnet.com/news/com/story/0,2000056021,20407625,00.htm

これって、PLCでVLANを構築するのですかね。

とにかく、電源コンセントに繋ぐだけでネットワークができるのは、凄く便利ですね。


◆補足

2010-01-30 カルトでないと言うと、逆にカルトだと思われてしまう気がする!

毎年この時期は、某教会の寒修行(法華経全品読誦)の時期です。

寒修行は約10日間あり、導師(1人)、脇導師(2人)、太鼓(2人)が1セットで、一日当たり約2セットが必要なのです。

つまり、10*(1+2+2)*2で100人が必要なのです。


そこで、子供達(長男・次男・三男)にも太鼓のお役をお願い(説得)することになるのですが…。

すると、当然の如く、超凄く、嫌がりますね!


しかし、『某教会の教えは、本当に素晴らしく、某教会をやっていれば、間違いないよ!』…。


って言うと、なぜか、逆にカルトだと思われてしまうような気がするのです。

では、なんて言ったらいいんでしょうか…。まぁ、子供達には、背中で教えるしかないみたいですが…。


で結局、私の説得が失敗に終ると、今度は、ママとママの妹(叔母さん)の2人掛かりで説得され、子供達が落ちるわけなのです。

やはり、子供達も母と叔母さんには、逆らえない…この2人は凄い!


とにかく、皆さまも、某教会ならたぶん大丈夫だと思いますが、本当のカルトには、気をつけてくださいね。

とにかく、人間の弱いところ突いてくるカルト宗教と悪徳商法には気をつけましょう!


ということで、今回の寒修行は、私と次男・三男が、お役をすることが出来ました。

いつかは、次男・三男も某教会の教えの素晴らしさに気がついてくれると思います。


ちなみに、某教会の教えとは、「3つの心構え」と「3つの実践」です。


◆3つの心構え
かつて書いた3つの心構えの記事(ひとつたりないけど・・・)

◆3つの実践
かつて書いた3つの実践の記事

2010-01-29 HTML5のビデオコーデックにmp4(H.264)だとライセンス問題あり!

HTML5では、Flash等のプラグインがなくてもビデオを再生することが可能とのことです。

すると、HTML5自体にビデオをデコードする機能(ビデオコーデック)が必要になりますね。

そのビデオコーデックにmp4のH.264を採用するか、フリーのOgg Theoraか、という記事が今日ありました。

H.264こと、mp4にはライセンス料金がかかるのですね。

フリーでなかったのですね。mp4は…。


10年前のGIFのライセンス問題と同じことが、今度はmp4で起こるかもしれませんね。


◆補足

コーデック(Codec)とは、coder/decoderからの造語で、データのエンコードとデコードを双方向にできる装置やソフトウェアなどのこと。

2010-01-28 iPadの衝撃

今、ネット上は、iPadの話題でもちきりですね。

そう、iPodでなくiPadですよ!

とりあえず、以下をリンクしときます。

ネットブックはもちろん、DSやPSP等のゲーム機や小型液晶テレビ・ビデオやキンドルなどが淘汰される可能性が出てきましたね!

さて、AndroidとChromeを擁するGoogleは、どう打って出るか…。

Apple 対 Googleの今後の対決が楽しみです。

しかし、最近はMSの出る幕がなくなりましたね!

2010-01-28 2010年の寒修行

最近、法華経は陀羅尼以外、あまり読誦していなかったのですが…、頼まれたので、今日寒修行の脇導師で授記品を読誦させて頂きました。今、寒修行を終えて、教会から帰って参りました。

とりあえず、寒修行とはなに?…って人には、毎年この時期にありますので、その過去ログをどうぞ!

やはり、普段から毎日、法華経を読誦していないと、すらすら読めなくなりますね。

最近、さぼりにさぼっているので、そろそろ、またネットの時間を法華経読誦に充てようかなぁ……。

2010-01-27 Android(グーグル携帯)がスマートフォン市場で急成長へ

これからは、Android(グーグル携帯)の時代がきそうですね。


現状、世界的シェアのベスト3

  1. Symbian OS
  2. BlackBerry(RIM)
  3. Apple

現状、アメリカのシェアのベスト3

  1. BlackBerry(RIM)
  2. Apple
  3. Windows Mobile(Microsoft)

Androidは、2013年までに最も急成長するワイヤレスOSとなり、2013年中には世界で2番目に広く利用されているスマートフォンOSの座に着くことになると、同リポートは伝えている。

http://japan.cnet.com/marketing/story/0,3800080523,20407436,00.htm

AppleとRIMは、自社が製造するデバイス上でのみなのに対して、Androidの強みは、なんたってGoogleでオープンですからね!

2010-01-27 基礎文法最速マスター

id:perlcodesampleさんが『Perl基礎文法最速マスター』をまとめられたら…つぎつぎと他の言語のが出てきましたね!

この調子で『JavaScript』、『VBScript』、(『VBA』は出ましたね)、『VB.NET系』が出てこないものですかね。

まぁ、いまさら、『C言語』と『Java』は、どうでもいいけれど…。

2010-01-26 2009年の国内自殺者数は3万2,000人余り 12年連続で3万人超える!

2009年の東京マラソンの定員数が3万人なので、あの膨大な数の人達と同数以上の人が一年間に自殺しましたね。

確かに、この大不況で、生きていくのが辛いです。私も自殺したい気持ちにならない…とは言い切れないです。


しかし、日本は、日本以外の国と比べれば、まだまだ、暮らしやすい国だと思いますよ。

贅沢しないで、なにか生きがいを見つけて、生きていきましょうよ!


職を選ばなければ、就職だって出来るし、最悪、生活保護もある…。

そのうち、大不況が好景気になっていきますよ(でも最低5年はかかるかも)


そう、物事には波があり、好景気は必ず来ます。

それまで、歯を食いしばって凌ぎましょう。


大不況の時こそ、勉強して実力を身につければいいのです。

お互い、頑張っていきましょうね(自殺など考えずに…)。

2010-01-26 日本語メッセージと英語メッセージ At VB2005

TryCatchで捕らえた割り込みの ex.Message の内容が、同じWindowsXPのPCなのに、日本語メッセージになる場合と英語メッセージになる場合があるのです。

この辺は、コントロールパネルの「地域のオプション」で設定するカルチャに関係がある感じなのですが、とりあえず、両方とも日本語になっているのです。


あと、考えられるのは、日本語メッセージのリソースが何かの原因でインストールされていないのかもしれません…。

なお、カルチャの最上位が英語なので日本語メッセージのリソースが無い場合は、英語メッセージが表示されるようです。


今後また、何か分かったら追記していきますね。

2010-01-25 URLの相対パスとフォルダの相対パス

URLの相対パスは、ドキュメントルート配下でHTMLファイルがあるところからの相対で、WEBアクセスを記述する場合に使用します。

フォルダの相対パスは、たとえば、cgi-binの実行フォルダ内のCGIプログラムがあるところからの相対で、ファイルアクセスを記述する場合に使用します。


そして、HTMLファイルがあるフォルダのURLにCGIプログラムがあるフォルダがマッピングされていれば、HTML内でのURL相対パス指定とCGIプログラム内で掃き出すHTMLのURL相対パス指定が同一になりますね。


しかし、別々にマッピングされていれば、当然、相対パス指定が違ってきます。

すると、HTML内でのURL相対パス指定とCGIプログラム内で掃き出すHTMLのURL相対パス指定が違っているので、ややっこしいことになったりするのです。


ということで、この辺は、CGIプログラムを開発する場合、つねに頭の隅に入れておくことが必要ですね。


ちなみに、Javaサーブレットでは、server.xmlとweb.xmlによってマッピングすることにより、URL相対パスをドキュメント(HTML)に合わせることができますね。


またちなみに、CGIとサーブレットを同じURLにはマッピングすることは不可能のようですね(at Apache2.2)。

2010-01-25 ゼロベースとスローペース

最近、民主党のセンセイ達がゼロベース(zero base) と連呼していますが、つい最近まで、ゼロペース(zero pace)だと思っていました。


スローペース(slow pace)がゆっくりすることなので、ゼロペース(zero pace)は、立ち止まって考えることかなと思っていましたが、ゼロペース(zero pace)でなくゼロベース(zero base) だったのですね!


ちなみに、ゼロベース(zero base)は、物事を最初からやりなおすことやゼロの状態から検討しなおすことですね。

2010-01-24 Perlの基本の基礎が簡素によくわかる

以下のリンクは、ごく普通にPerlプログラミングする基本の基礎が、簡素に分かり易く、まとめられています(素晴らしい)。

なので、リンクメモしときます(いつも良記事ありがとうございます)。

社内教育などで使えそう…、また、度忘れしたときに使えそう…なリンク先です。


そう言えば、僭越ながら、私の以下のコンテンツも同じようなコンセプトになっています。

こちらも、少しはPerl習得のお助けになると思いますよ!

2010-01-23 1Q84を映画化した時の配役を考えてみる

1Q84 BOOK 11Q84 BOOK 2

小説は、ストーリーのイメージを頭の中で映像化して読みますね。

登場人物も、とりあえず知っている俳優や女優をイメージします。


青豆は、30歳前後で表向きはスポーツジムのインストラクターで、実はクールな女殺し屋。

天吾は、青豆と同級生で数学、小説、柔道、音楽と多才だけどイマイチで、結局有能な予備校の講師に。

ふかえりは、ディスレクシアな美少女小説家で、たぶん、超能力者。

老婦人は、DVから逃れてきた女性を囲まうセーフハウスの女主人。

タマルは、そんなセーフハウスのセキュリティを担う、自衛隊出身のプロ中のプロ。

編集者小松は、我が道を行く異端な編集者。

戎野老人は、ふかえりを預かる、昔有名な学者で謎の人物。

中野あゆみは、青豆の唯一の友人で、過去に身内からいたずらをされたトラウマを持っている。

安田恭子は、旦那と子供がいるが、天吾のガールフレンド。

天吾の父は、NHKの集金係りで、子供の頃の天吾を集金に一緒に連れまわす。本当の父ではなく育ての父?


以下は、上記を踏まえて、私が1Q84でイメージした俳優や女優さん達です。

どうですか、いい感じでしょう…。

2010-01-22 WINDOWS系のOS名を求める

.NETでは、『Environment.OSVersion』クラスオブジェクト内の以下の3つのプロパティでOS名を求めることが出来ます。


◆ OS名を求めるロジック

2010-01-21 WINDOWSでのシバン for Apache

UnixやLinuxのシェルやPerl等のスクリプトには、シバンという#!から始まる1行目にインタプリタ(実行ファイル)を指定します。

しかし、WINDOWSでは、拡張子に実行ファイル(インタプリタ)を関連付けていてシバンの必要ありません。


つまり、IISのCGIのPerlスクリプトも、もちろんシバンの必要がないのです。

しかし、WINDOWS for Apacheでは、WINDOWSなのになぜかシバンが必要なのです。


WINDOWS for ApacheでのCGIのPerlスクリプトでは、以下のようなシバンを1行目に入れます。

#!c:/perl/bin/perl.exe

2010-01-20 1Q84の謎

1Q84 BOOK 2

1Q84(Book2)を読み終えました。

評判通り、メチャクチャ面白かったです!


読み終えた時点で、謎のオンパレードですね。

とにかく、最大の謎は『リトル・ピープル』ですね。結局、よくわからなかったです。


その他の謎を、思いつくまま列挙してみます。

4月にBook3が出るとのことで、上記の謎が少しは解明されるのですかね。

実は、「2つの月」と「空気さなぎ」は、よく読むとなんとなくわかりました。

私は、ふかえりがリトル・ピープルのような気がしているのです…。

2010-01-19 Apache2.2 for WINDOWSでのCGI設定のメモ

デフォルトでApache2.2をインストールした状態で、もうすでにCGIが動きます。

(Perlの場合は、もちろんPerl本体がインストールされている前提ですよ)

しかし、CGIの仮想フォルダと実フォルダは、以下のように httpd.conf に設定されています。

ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

これを任意のフォルダで、CGIを動かしたい場合は、以下のように追加します。

ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"
ScriptAlias /mycgi/ "D:/myperl/"
:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
<Directory "D:/myperl">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory></span>

尚、上の例では、仮想フォルダは /mycgi/ で、実ファルダは D:/myperl/ です。

2010-01-18 最高権力者

ご存知、現在日本の最高権力者は、間違いなく鳩山さんでなく小沢さんです。

しかし、ご存知の通り、今、その小沢さんがピンチですね。


そう、最高権力者は『検察』だったのですね。

とにかく、『検察』対『小沢一郎』の今後が興味深いですね。

ちなみに、私は、小沢さんを嫌いではないです。

2010-01-18 セットアッププロジェクト(インストーラ)をりビルドの対象にする

VB2005でソリューションにセットアッププロジェクト追加しても、デフォルトではリビルドの対象になっていません。

リビルドの対象にするには、ソリューションエクスプローラで以下の手順です。

すみません。すぐ忘れてしまうので、単なるメモです。

しかし、こんなメモでも何かのお役に立てれば幸いです。

(ちりも積もればなんとやら…)

2010-01-17 ボタンのvalueで改行するには

input要素のtype属性が"submit"や"button"の場合で、value属性の文字列を改行するには、実体参照で「&#13;&#10;」を入れます。

<html>
<body>
<form>
<p><input type="submit" value="aaaaa&#13;&#10;aaaaa&#13;&#10;aaaaa&#13;&#10;aaaaa"></p>
<p><input type="submit" value="aaaaa&#13;aaaaa&#13;aaaaa&#13;aaaaa"></p>
<p><input type="submit" value="aaaaa&#10;aaaaa&#10;aaaaa&#10;aaaaa"></p>
</body>
</form>
</html>

IE系では、「&#13;」や「&#10;」の単独でも改行されますね。

Firefox系では、「&#13;」単独では、改行されませんね。

また、IE系では、最後の行の先頭に変なスペースが入ってしまいますね。

2010-01-16 リトライとトライの関係とは

すみません。本当に当たり前のことなのですが、ある程度の極限状態だとわからなくなる場合があります。

たとえば、その処理を『3回リトライする』とかは、トータルで3回でなく4回トライすることになりますね。

つまり、以下の式になります。


トライ数 = りトライ数 + 1


ネットワークとか、マルチタスク、マルチスレッド等のアクセス処理を考えるときは、排他とリトライは必須ですね。

2010-01-13 VB2005でのカスタム動作の設定

昨日に引き続き、インストーラ作成系のカスタム動作についてのメモです。


インストール時やアンインストール時に任意の処理をしたい場合があります。たとえば、レジストリのへ書き込みや削除等です。そんな場合は、インストーラクラスにその処理を記述し、セットアッププロジェクトへカスタム動作を設定することで可能です。

以下は、インストールのカスタム動作を追加する手順です。


まず、ソリューションエクスプローラで以下を行います。

  1. メインプロジェクトの右クリックメニューの『追加』の『クラス』を選択
  2. 『新しい項目の追加』画面で『インストーラクラス』を選択
  3. 『インストーラクラス』に任意の処理を記述します。

つぎに、前日作成したセットアッププロジェクトに対して以下を行います。

  1. 右クリックメニューの『表示』の『カスタム動作』を選択
  2. 『カスタム動作』タブ画面で『インストール』を右クリックメニューの『カスタム動作の追加』を選択
  3. 『プロジェクトから項目を選択』画面で『アプリケーション フォルダ』を選択
  4. 『プロジェクトのプライマリ出力』を選択

尚、アンインストールも 2の『インストール』ところを『アンインストール』すれば同様にできますね。


また、カスタム動作について、もっと詳しくは、以下を参照してください。

2010-01-12 VB2005でのインストーラの設定

APの開発が終わると、次はそのインストーラも必要ですね。

インストーラの作り方は、半年経つと、すっかり忘れてしまうので、ここにメモしときます。

まず、ソリューションエクスプローラにて以下の操作でインストーラを設定します。

これで、とりあえずのインストーラが作成されました。

あとは、ショートカットをスタートメニューとかデスクトップにも設定したりします。これは以下を参照してください。

2010-01-11 1Q84

1Q84 BOOK 1

会社の先輩が隣で読んでいて、昨年もっとも話題の本だったので、一巻が読み終わった時に貸してもらいました。

小説は、あまり読まないのですが、まして村上春樹のは、はじめてで…しかし1Q84は、はじめから引き込まれました。評判通り面白い小説ですね。


1つの小説なのに、2つのストーリーが章毎に交互になっていて、徐々にこの2つに関連性が出てくる…。

どうやら、DV(ドメスティックバイオレンス)がテーマになっているようです。


2つのストーリーでの1つは、DVを闇に葬る女殺し屋『青豆』の章で、もう一つは幼少時代にDVあった美少女小説家のゴーストライターであるの『天吾』の章になっています。

この2つのストーリーが各々で面白く、また徐々に関連性が出てきて、さらに面白くなる!

たとえば、両方のストーリーが、某カルト教団の教祖のDVに集約していく…。


あまり書くとネタバレになるので、このへんにしときます。

とりあえず、まだ1冊目なので、2冊目が楽しみです。

尚、3冊目が今年の4月に出るそうです。

2010-01-11 VB2005でテキストファイル内の検索文字列がある行数を求めるには(ヒント編)

昨日のヤツをPerlでなく、VB2005で考えてみました。

とりあえず、こんなところで頑張って見て下さい(謎)。

もしかしたら、このヒントは、はずれかも知れないので、自分で試行錯誤してみてください。

頑張って出来たら教えてね。


しかし、VBScriptでは、Perlとほぼ同じようにできるのに、VB2005では全く異なりますね。

ちなみに、『$`』は、VBScriptではRegExp.leftContextで表現できますね。

2010-01-10 Perlでテキストファイル内の検索文字列がある行数を求めるには

たとえば、テキストファイルを読み込んで、とある文字列を検索し、それがヒットしたテキスト内の行数を求めたい場合があったとします。

以下は、そんな場合のサンプルです。

検索文字列『小池啓仁』があるテキスト内の行数を取得します。

ただし、このサンプルでは、ファイルI/Oは割愛し、すでにテキストファイルの内容が$strTextに入っているものとしています。


◆サンプル
use strict;
use warnings;
use utf8;
binmode STDOUT, ':encoding(shiftjis)';

my $strText = << "END_OF_TEXT";
1234567890
ABCDEFGHIJ
1234567890
ABCDEFGHIJ
12小池啓仁AB
1234567890
ABCDEFGHIJ
END_OF_TEXT

my $linecnt;

if ($strText =~ /小池啓仁/) {
   $linecnt = scalar(() = ($` =~ /\n/g)) + 1;
   print "検索文字『小池啓仁』にヒットした行数:$linecnt \n";
}

◆解説

◆補足

2010-01-09 VB2005で漢字を表示する時の留意点

WINDOWS(VB2005)の内部コードは、UTF-16のBOM無しリトルエンディアンです(参照)。

テキストファイルのコードは、以下の3つが主流です。

上記の3つのコードは、制御コードと英数字は、同じ値のコードです。

違うのは、基本的に漢字の部分のコードなのです。


たとえば、ファイルを読み込んでWINDOWSで表示するには、この3つのコードからUTF-16に変換してあげないとなりません。

その時に、テキストファイルのコードと違うコードでUTF-16に変換すると当然、漢字は化けますね。


しかし、実は漢字コードの部分だけでなく、英数字コードや制御コード(改行コード等)の部分も化けてしまうのです。

これは、UTF-16ではサロゲートペアがあり、それにたまたまマッチしてしまう場合に、バイト数がずれて、英数字や制御コード(改行コード等)が化けるとか。

また、UTF-8では3バイトで漢字を表しますが、これを2バイト漢字コードのEUC指定やSJIS指定でUTF-16に変換すると、バイト数がずれてしまう場合などなど…。


まぁ、テキストファイルのコードを誤って、違うコードでUTF-16に変換する時点でNGなのですが…とりありず留意点です。

2010-01-07 今日は、凄く大変でした…

今日は、いろいろなプレシャーの中、大バグが出て、精神が逝ってしまいそうになりました。


とあるプログラムのアンインストールが上手く行かず、コンパネの『アプリケーションの追加と削除』に残ってしまい、MS指定のレジストリをクリアしてもダメで…。


でも、調べて分かれば、大バグも大した事ないのですね…これが!

インストーラクラスでのアンインストールロジックで『try catch』をしていなかっただけでした。


つまり、アンインストール処理で想定外の割り込みをシステムに返すと、上記のようにエライことになり、逆にいうとアンインストールロジックでは『try catch』必須ですね。

近いうちに、メモにまとめて公開したいと思います。


そう、セットアッププロジェクト追加やインストーラクラス追加やカスタム動作追加などなど…

ということで、お疲れ様でした…>(自分)。


補足:

昨日食べ過ぎで、吐き気があり、大バグ以外のシステム2つがいろいろとプレシャーをかけてくる。

精神がおかしくなる気がしました(仕事をほっぽり出して、どこかにいってしまいたい気持ち…)。

とにかく、アンインストールしても『アプリケーションの追加と削除』に残ってしまい、どうにもこうにも行かず。

セットアッププロジェクト追加やインストーラクラス追加やカスタム動作追加などの設定方法もすっかり忘れているし。

しかし途中で、『俺たちは強い』というスラムダンクの名セリフが頭にめぐり、なぜか凌げました(^o^)

2010-01-06 ガソリン暫定税率廃止を訴えていた藤井財務相辞任

先日、小沢氏が国民の意思とか言って、ガソリン暫定税率廃止案が廃止になりました。

そして今日、あれほどガソリン暫定税率廃止を訴えていた藤井財務相が辞任されました。


国民の誰が、『ガソリン暫定税率廃止案』を廃止しろなんて、言ったんだよ〜

高速道路料金無料化なんかどうでもいいから、暫定税率だけは廃止にして欲しかったなもう〜


コレ絶対に国民の意思じゃないですね。小沢さんの意思ですね。

おちゃらかでもいいから、また、ひっくりかえらないものですかね!


2010-01-11 不況の波が…

『仕事のコトはブログに書くな』という某圧力をはねのけて、今回はちょっと書きますね。


まず企業は、不況で売り上げが落ち、経費削減に走ります。

経費削減のメインは、人件費です。


人件費を安易に減らすには、新入社員削減と派遣切りです。

すると、ベテランの人に仕事が集中してきます。


ということで、めちゃくちゃ忙しくなってきました。

人員削減、予算削減、しかし、仕事は普通にある。


いつになったら、景気がよくなってくれるんですかね…。

おちゃらかでも社会の景気が良くなってほしいものです。


しかし、逆に考えると、この不況の中、沢山の仕事がもらえることは、実は、凄く有り難いことなのですね!

またしかし、仕事は増えても、なぜか収入は減っていく…、デフレは嫌だ!

2010-01-05 SQLiteを使ってみる!(パート2)

前回のをencode/decodeを使って書き換えてみました。

『from_toはバイト文字列をバイト文字列に変換するのでよくないです』、とのご指摘もありましたので…。


use strict;
use warnings;
use DBI;
use Encode;
use utf8;
binmode STDOUT, ':encoding(shiftjis)';

# メモリ上のデータベースへ接続
my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:");

# ディスク上のデータベースへ接続
#my $database = 'test.db';
#my $data_source = "dbi:SQLite:dbname=$database";
#my $dbh = DBI->connect($data_source);

my $create_table = 'create table books (' .
                       'タイトル,' .
                       '著者' .
                   ');';
$dbh->do($create_table);

# insert文の実行
$dbh->do(encode('UTF-8', q/insert into books (タイトル, 著者) values ('Perl', '啓仁');/));
$dbh->do(encode('UTF-8', q/insert into books (タイトル, 著者) values ('C++', '康友');/));
$dbh->do(encode('UTF-8', 'insert into books (タイトル, 著者) values (\'Python\', \'ken\');'));
$dbh->do(encode('UTF-8', 'insert into books (タイトル, 著者) values (\'Java\', \'成憲\');'));

# update文の実行
$dbh->do(encode('UTF-8','update books set タイトル = \'Ruby\' where 著者 = \'成憲\''));

# delete文の実行
$dbh->do(encode('UTF-8','delete from books where 著者 = \'ken\';'));

# select文の実行
my $sth = $dbh->prepare("select * from books;");
$sth->execute;

# 各行のフェッチ
while (my @row = $sth->fetchrow_array) {
    # 各行を出力
    print decode('UTF-8', "$row[0] : $row[1]"), "\n";
}

undef $sth;
# データベースの切断
$dbh->disconnect;

◆解説(kitsさん、ご指摘により加筆、いつもありがとうございます)

※1:実は、encodeしなくてもSQLiteで自動的に行う模様です。もちろん明示的にencodeした方がいいと思います。


◆参考

2010-01-04 にせリンク

アンカー(A要素)で引数を記述すると、ブラウザのアドレス欄に引数が丸見えになりますね。

そんな時は、以下のようにフォームとJavaScriptを使い、にせリンクで対応すれば、hiddenで渡せるので、少しセキュリティが上がります。

ポイントは、HTTPメソッド(form要素のmethod属性)を『POST』にします。ここを『GET』にするとA要素と同じになってしまいます。

<html>
<head>
<title>サンプル</title>
<script type="text/javascript">
    function LinkLike(fm, target) {
        if (target != '') {
            document.forms[fm].target = target;
        }
        document.forms[fm].submit();
    }
</script>
</head>
<body>
<p><a href="test01.htm?aaa01=97&aaa02=98" >普通のリンク</a></p>
<form method="POST" name="aaa" action="test01.htm">
<div>
<a href="javascript:void(0)" onclick="LinkLike('aaa', '_self'); return false;">にせのリンク</a>
<input type="hidden" name="aaa01" value="97" />
<input type="hidden" name="aaa02" value="98" />
</div>
</form>
</body>
</html>

サンプルでは、test01.htmはhtmlですが、実際はCGIを指定します。

また、LinkLike関数の引数は、第1引数にform要素のname属性の設定値、第2引数にターゲット名を指定します。

ターゲット名で、フレームで無い場合は、'_self'を指定します。


追記(2010/01/05)

コメントで以下のご指摘を頂きました。

確かに、上記とトレードオフですね。

  • 「新しいウィンドウ (タブ) で開く」「リンク先の URL をコピー」等のコンテキストメニューが全滅し、また Shift + クリックや中クリックによる別窓表示ができなくなるなど、ユーザが取り得る操作を大きく制限することになります
  • リンク先のページをブックマークすることも、リンク先のページに直リンクを張ることもできなくなり、ユーザの再訪問を著しく妨げます (Amazon の商品検索結果ページから各商品詳細ページへの遷移でもし同じ事をやられたら…)
  • (JavaScript を解釈できるような高度なものを除き) 検索ロボットがリンク先をクロールできなくなり、SEO 的に致命的です
  • 元々 POST はサーバ側のデータを変化させることを目的として使うものとして設計されているので、GET と異なりプロキシサーバが結果をキャッシュしません。このためネットワーク利用効率やユーザの快適性に悪影響を及ぼします。

セキュリティ的にもテキストを単にhiddenでは、確かに問題がありますね。

特に、パスワードやキーになる情報は、暗号化してからhiddenですか…。

2010-01-03 ブログ12月分をウエブページへ変換

ブログ12月分をウエブページへ変換しました。

もう3日、明日は、仕事はじめです!

それを思うと、なんか、憂鬱な気分になってきた…。


でも、全力で走りきるしかないでね、この2010年を!

2010-01-02 初参り

今日は、佼成霊園・氏神さまの地元八幡神社・長久寺霊園とお参りしてきました。

長男は、バイトなので、次男・三男・ママと4人で新車コンテで行ってきました。


はじめは、大学生の次男と反抗期の三男が、まさか一緒に行ってくれるとは、思わなかったのですが、とりあえずダメもとで言ってみたら、まったくいやがらないでOKでした。

正月早々、家族ほぼみんなで、なかなかよい、ドライブが出来ました。感謝感謝!!


実は、昨日の元旦に三鷹教会の道場当番(奉仕)だったので、こちらの方が初参りでしたね。

とにかく、今年は、益々不景気になって来ますので、心してそれを乗り越えていきたいと思います。


そのことを、神さま・仏さま・ご先祖さまへお誓いをしてきました。

まだまだ、引退(退職)することはできませんし、まだまだ勉強、そしてその壁を乗り越える努力をしないと!


では、皆さまにとってもよき年になるよう…頑張って参りましょう!

ちなみに、年末ジャンボは惨敗でした。運のかけらもない。よって、運にたよらず努力のみ!

2010-01-01 あけましておめでとうございます!

本年もよろしくお願い致します!


今年も厳しい社会情勢ですが、すべてに感謝して、頑張って参りましょう!

過去も現在も受け入れて、周りの人から感謝される存在になれるよう、頑張って参りましょう!


右の写真は、次男が茅ヶ崎で撮って来た2010年の初日の出です。