Netsky.Qという奴らしい。
新手のワーム(ウィルス?)が蔓延している模様。 添付ファイルつきの見なれないメールが届き始めている。
インストール。
./configure --enable-japanese=E --with-migemo make make install
既に、w3m/0.4.2+cvs-1.895-m17nにしていたので、特に戸惑うこともなく終了。
最近、あまり使ってない気がするんだけど、ついでに、emacs-w3m もバージョンアップしておく。
./configure make make install
読了。 東京駅を舞台にしたミステリ風味のドタバタコメディ。 (ミステリではありません。) 27人と1匹の登場人物がどう関わって、どう結び着いて、どう落ち着くのかというのが読み所です。 この本は、ちびちび読んでいては駄目です。 テンポ良く一気読みしましょう。 もっとも、一気読みした後、どっと疲れが出るかも知れません。
『Lightweight Language MAGAZINE』
昨年、行われた LL Saturday のMook化本(?)。 Perl, Python, PHP, Rubyのそれぞれについて、同じテーマで書かれているので、比較してみると面白いかも。
まずは、年1回のペースでいいから続けて欲しいです。 昔、某MLで、Ruby Magazineをという話がありました。さすがにそれは(商業的に)無理だとしても、 Lightweight Languageという形で言語の範囲を広げれば、それなりに成立するんじゃないかと期待してます。
テストデータをデータベースに登録するためにRubyを使いました。 データベースは、Oracleなので、いくつかOracleを扱う拡張ライブラリがあります。 ですが、せっかくですので、自作の Win32OLE と OO4O (Oracle Objects for OLE)の組み合わせでやってみました。 久々に自分の作ったライブラリを有効活用したような気がします。
でも、これ、VBScriptに移植しておいた方がいいんだろうなあ。
なかなか興味深いです。 JavaScriptには、言語として、面白い要素が結構あるんじゃないかと思います。 とっても新鮮です。 (『JavaScript 第3版』第7章より)
近い将来、Rubyに名前つき引数が導入されそうな気配。 (「近い将来」とはっきり書かれている訳ではありません。 ですが、「『末尾の引数にハッシュを直接書ける』文法は今後使わないようにしてほしい。」と書かれてますから 「近い」だろうと勝手に予測してます。) 拡張ライブラリのWin32OLEには影響がありそう。
元々、VB(A)では、名前つき引数が使える。 そこから派生して、Win32OLEで名前つき引数を使いたいという質問がときたま出てくる。 そういうときは「最後の引数としてハッシュを使ってね。」と答えることにしている。
Win32OLE内部では、最後の引数がハッシュならば、それを名前つき引数に変換して扱うからだ。
「日本語の文字コード識別は完璧 (from Rubyにまつわるえとせとら日記)」になるらしいので設定してみた。 完璧になったかどうか検証できないけど、確かに今まで正しく認識できなかったファイルを正しく認識できるようになった。
howmを使い始めました。 今のところ、1日のToDoリストを書いて、終わったら"."にする程度の活用です。
頭がボーッとする。 風邪をひいているに違いない。 「花粉症デビューじゃないか」と上司に言われたが絶対そんなことはない。 風邪だ。 風邪に違いない。 こんな苦しい状況がずーっと続くような状況(=花粉症)には耐えられない。
WINEでVBScriptが動くそうなので試してみました。 インストールしたWINEは、20040309版。
tar zxvf Wine-20040309.tar.gz cd wine-20040309 ./tools/wineinstall
~/.wine/config で、Windows 2000モードで動くようにしておきます。
"Windows" = "win2k"
VBScriptをインストールする前にMFC42.dllをGoogleで検索して、インストールしておきます。
wine mfcdll42.exe
再起動のときに停止してしまうので、強制終了してから、wineboot しておきました。 (これで、本当にいいかどうかはわかりません。)
VBScript は、Windows Script 5.6をダウンロードしてインストールすれば使えるようになります。 Windows Scriptをインストールします。
wine scriptjp.exe
簡単なスクリプトを書いて実行してみます。
'sample1.vbs Dim str str = InputBox("何か入力してください。") MsgBox str
スクリプトは、以下のように実行します。
wine c:\\windows\\system\\wscript sample1.vbs
簡単なものが動くことを確認できました。 今度は、FileSystemObjectを使ってみましょう。
'sample2.vbs Dim fs Set fs = WScript.CreateObject("Scripting.FileSystemObject") drives = fs.Drives
残念ながら4行目でエラーになってしまいました。
スクリプト: 行: 4 文字: 1 エラー: コード:800A01A8 ソース:
何かが足りないのか。
みなさん、拡張ライブラリの互換性という点で言及されているようですが、他の点はどうなんでしょう。
Rubyスクリプトを動かした場合には、動作に違いが無い。 (厳密には、RUBY_PLATFORMが違うので、書き方によっては動作に違いが出る場合があります。)
mswin32版の方がMicrosoft社製のVisual C++でコンパイルされている分、パフォーマンスが良い。
と思ったりするのですが、どうなんでしょう。
あと、
私には、mingw32版を作ることができても、mswin32版を作ることができない。
というのがあります。諸事情により、Visual C++ をアンインストールしちゃったからです。
ちょっと喉が痛い。風邪か。
例え関数の中で使われる変数であっても var を省略した場合は、グローバル変数になってしまうのか。 (『JavaScript 第3版』より)
function foo() { val = "global" } foo() document.write(val)
varを省略した場合は、ローカル変数になって欲しいんだけどな。
さらに、ある関数の中で宣言されたローカル変数は、どこで宣言されようとその関数内で有効らしい。
var val = "global" function foo() { document.write("val=" + val) // The val is not global. var val = "local" document.write("val=" + val) } foo()
私は、JavaやC++の癖でどうも変数は使う直前に宣言しちゃう傾向が強い。気をつけよう。
SFU の特集記事を読んだ。 SFUを積極的に勧めていないように感じる書き方をしているのは何故だろう?
終日打ち合わせ。 相手の考えていることとこちらの考えていたことに大きな違いが無かったことが最大の収穫。
ftpupを使っていると
getopts is deprecated after Ruby 1.8.1; use optparse instead
と警告が出る。 今、実際に使っているRubyは 1.9.0 なんだけど、それはさておき、 そのうちgetoptsが使えなくなりそうなので、適当にoptparseを使うように変更した。
読了(再読)。 1回目に読んだときよりもすんなり頭に入ってきた。 単なるTips集ではなく、JavaScriptの(プロトタイプベースの)オブジェクト指向プログラミングについても解説している。