|
→ 白頭山|
旅行記|
自己紹介|
工房|
巻頭言|
おたより |
|
■ きちんとC++言語を学んだ人にとっては当たり前のことなんでしょうが、きちんとC++言語を学んだことのない私は、今日このことを初めて知りました。以下のコードで実験してみると:
exit() による終了時に、static宣言されたオブジェクト(c1)のデストラクタは呼び出されるのに対して、ローカル宣言オブジェクトである c2 のデストラクタは呼び出されません。これは exit() に限らず、Visual C++ の _endthreadex() などによるスレッド終了時も同様に起こります。考えてみれば、仮想関数など関数ポインタで動的に選択されて呼び出される関数が存在する以上、コンパイル時にスタック上のオブジェクト配置を決め打ちすることはできませんし、かと言って、関数内でローカル宣言されたオブジェクトを exit() の処理関数内から把握することはスタックを逆にたどったとしても不可能なわけで、それを行う為にはスタックにオブジェクトが積まれるたびにいちいちその情報をテーブルにでも記録してそれを保持する必要があります。しかも、莫大なコストを払ってそんなテーブルを作成しても、普段、普通に関数が終了する99.9999%の場合においてそのテーブルは無駄になるわけで、インタプリタならまだしも、ネイティブコードにコンパイルされる効率重視のC++言語では、そんな仕様はとても飲めないわけです。exit() の実装は、ファイルクローズなどの後処理をしたら、スタックを一気に破棄してスタックポインタを復帰させることで、ちゃっちゃっと片付けるC++の仕様は正しいと言わざるを得ません。C++ は“本物の”オブジェクト指向言語ではなくて、オブジェクト指向でシステム記述が可能なアセンブラなんですから。ま、実際にプログラミングする場合は、複雑なオブジェクトはポインタとして保持して、自分の完全な管理下で new に delete するのが普通で、オブジェクトのインスタンスを直接定義することはまずないのですが、改めて、インスタンスを直接定義することの危険性を感じた次第です。風呂釜制御プログラムで「風呂焚きスレッドクラスのデストラクタでちゃんと釜の火を消すようにしてるから大丈夫さ」とタカをくくってプログラムを組むと、家が燃えることになってしまいかねません。 え?Javaならそんな心配はいらないって?...嫌いなんです、Java は。 |
|
|
|
ひさびさにこの欄を書き替えたついでに、コンテンツも1ヶ所だけ改訂しました。 JavaScript旧暦計算ライブラリに、月齢を計算するメソッド(というかプロパティ)を追加しました。月と太陽の黄経の経度差が1朔望月(≒29.53089日)で1回転するという前提で: 月齢[day] ≒ norm( 月黄経[degree] − 太陽黄経[degree] ) ÷ 360 × 29.53089 という式で計算しています。norm() は、角度を0-360の間に正規化する関数です。詳しくは、ライブラリのソースコードをご覧下さい。このソースコードの拡張子を「.js」に変更して保存すると、HTMLやWSHなどから呼び出すことができます。 ライブラリはフリーソフトで使用法はソース冒頭のコメントに詳述しましたので、それをご覧になってどうぞご自由にお使い下さい。→菊池さんの工作室では、私のライブラリを独自に改良されて公開されています。万年カレンダー「今日のこよみ」スクリプトの多機能ぶりとそのアイディアには脱帽です。おすすめ。 |
|
MSIE5.x には Netscape のブックマークを書き出す機能が標準でついていますが、私のスクリプトはブックマークの名前順にソートして出力するのが、MSIEの「エクスポート ウィザード」とは違います。IEのメニュー内でドラッグ&ドロップする方式に慣れた私には、Netscape のブックマーク編集機能はどうも使いにくく順序を整理するだけでも困難で、せめてあらかじめソートして出力してくれれば、と思って作ったのが昨日のスクリプトなわけでして...。 今後のヒマつぶし予定として、MSIEの「お気に入り」メニュー内の順序もそのまま再現させて Netscape にエクスポートできるようにバージョンアップしようと思っています。現在その方法を調査中です。ま、おそらく誰一人としてダウンロードしないスクリプトでしょうけど。 厭世的気分ゆえ、読み手を無視しておたくネタでしばらく行きます。このページのアクセスカウントが1日あたり1ケタになるのを目指します。 |
|
MS Internet Explorer の「お気に入り」の内容を、Netscapeのブックマーク形式に変換して、標準出力に書き出します。Windowsで使っているMSIEのお気に入りを、LinuxのNetscapeに移すために作りました。SJISかつ改行コードCRLFで出力するので、nkfなどで改行コードと文字コードを変換すればLinuxで使用できます。Windows版のNetscapeなら出力をそのまま使えます。 名称:bmc (MSIE → Mozilla ブックマークコンバータ) 配布条件:GPL ソフトウェアの形態:Perl スクリプト (Perl for Win32専用) ダウンロード:http://park1.wakwak.com/~y-nagano/Programs/bmc/bmc.txt |
|
|
|
で、金曜日の深夜2時、無性に味一品を食いたくなった私は、お抱えハイヤーに電話をして呼び出しました。私の家の車寄せまで乗りつけてもらって車に乗り込み、先ほどラーメンを食って帰宅しました。味一品に行く途中、西村達が上野で花見をしているという情報を頼りに、上野公園に立ち寄ってきました。上野はちょうど桜が満開で、懐かしい面々が集合した花見はそれは楽しく、その夜は世田谷のプチトマトとかいうホテルにタダ泊まりし、そして今日、国道4号をひたすら北上して目的の味一品ラーメンを食って帰宅しました。長い旅路の末にやっと食えた味一品でしたが、疲労困ぱいの運転手氏はドンブリを前にして呆然と虚空を見つめたまま固まっていました。 上野花見のレポートは西村まページにて近日公開されると思われますのでそちらをご覧ください。 |
|
|
|
なお NY Spectrum Analyzer は、Windows 95/98/NT4/2000用のソフトウェアです。その他のOS愛用者の方は対象外ですのでご了承下さい。 |
|
|
|
(5日午後6時追加情報) 今朝から配布していたv1.17には、起動時一瞬画面が乱れるバグがありましたので改訂し、v1.17aを現在配布しています。v1.17をダウンロードされた方は、お手数ですがv1.17aをダウンロードし直してください。 |
|
昨日のWin95/98 con/conバグの話の続きですが、メール/ニュースの購読にOutlook ExpressやNetscape CommunicatorなどのHTMLをサポートするクライアントを使っている方は、緊急に対策が必要です。例の「危険なURI」をJavaScriptを使って開くように仕込んだメールを受信すると、そのメールを読もうとした瞬間にブルースクリーンになってしまうことを実験して確かめました。プレビュー表示を使っている場合はメールをいちいち開かなくても、プレビュー表示によってOSが死んでしまいます。メールよりも怖いのがニュースで、誰かがそんな記事を流すだけで世界中のWin95/98に絶大な被害を与えることが出来てしまいます。以下の対策を直ちに行ってください。 【対策例】Outlook Expressを使っている場合: (以下の説明は、Outlook Express 5.01 を前提にしています。異なるバージョンでは設定項目の名前等が異なるかもしれません。)
|
|
この欠陥はOSレベルのもの(Win95/98のFATファイルシステムを司る"IFSMGR.VxD"のバグ)なので、いかなるアプリケーションからも、上記のファイルにアクセスするだけでOSが死んでしまいます。con 以外にも prn, aux, nul, lpt などの、要するに MS-DOSの遺物である「予約デバイス名」であればどれでもOSを落とせます。 で、これのどこが問題かというと、このファイルを指すリンクをMSIEやNetscapeなどのWWWブラウザで開くと、Windowsが停止してしまうということなのです。Webページの中に上記のリンクを入れておくと、それをクリックしただけでその人のPCをフリーズさせられるのです。クリックなんてしなくても、HTMLの<META>タグを使ったり、HTTPのLocation:ヘッダを使うことで勝手に誘導させることもできてしまいます。また、Web自動巡回ソフトなんてシロモノを使っている人は、それこそクリックしなくてもそのソフトが勝手にアクセスしてしまいます。今までに発見された多くのバグとは異なり、非常に簡単に実装できてしまうのが恐ろしいのです。 2月28日現在、Microsoft からはまだアナウンスがないようですが、 マイクロソフトセキュリティアドバイザ http://www.asia.microsoft.com/japan/security/ のページをこまめにチェックして、修正パッチの配布を待ちたいと思います。それまでは、狂信的に反マイクロソフトを謳うサイトなどヤバそうなところには近付かないのが得策でしょう。(大抵のアンチMSサイトはマトモなので大丈夫だと思いますが。) |
|
サンモールのアーケードの、丸善前とひらつか前にステージを作って、袋入り当たりクジつきの豆を撒いたワケなんですが、...すごいですワ、オバさんのパワーは。たかが豆ごときに、必死の形相で「もっとちょうだい〜、豆ェまめェ〜」と原色真ッ黄色の声が飛び交い、あちこちで豆袋の奪い合い。バッグの中にもうぎっしり豆をかき集めてるのに、もっとくれもっとくれと...。こちらとしては楽しんでもらえればそれでいいので、転倒事故などがないように見守っていたのですが、見ててとにかく面白かったっス。 我がサイク部で私と同期の、森田様、山田様も、あと15年もしたらあーなってしまうのでしょうか? あーなってしまうんでしょうね。 |
|
松島湾・浦戸諸島の朴島って、ゴールデンウィーク頃に島一面を黄色に染める菜の花畑で有名ですが、その菜の花、ハクサイの花なんですってね。白菜の丸くなる遺伝形質は劣性遺伝子なのだそうで、他のアブラナ科と交配してしまうと白菜が小松菜のようになってしまって結球しないんだそうです。で、孤島の地理を生かして、他のアブラナなどを駆除して純粋培養しているのだそうです。知らなかったなー、あれ、全部ハクサイだったとは...。 広瀬通のホテルリッチ改めホテルリッチフィールドの前のイチョウの木に、毎晩花が咲いているの知ってました? 広瀬通のイチョウ並木の中で、ホテル前の3本の木にだけ、夜になると白い花がいっぱい咲くんです。...あれ、鳥なんですね。今までホテルが休業中でそこだけ暗かったせいか、野鳥の夜のねぐらになってるみたいです。国分町でしこたま飲んだあと、猛烈に視界が狭窄した状態で千鳥足でそこを通る私は、上なんて見上げたことなかったので今まで気付きませんでした。でもホテルが今週から営業開始したので、鳥さんのねぐらがお引越しするのも時間の問題かもしれません。 |
|
でも、ま、あのバイオリズムスクリプトを使う人は皆無だと思いますので、当面はそのままにしておきます。私が気乗りしたら今度はJavaかサーバーサイドcgiあたりでもっと使いやすいバイオリズムのプログラムを組もうかな...。 【参考】先人の作成されたバイオリズムアプレット(Yahoo! Japan 検索結果へのリンク) |
|
旧千年紀中は世話ンなりやした。今千年紀もよろしゅう。 |