Macintosh Developer Online (MDOnline)


2000年1月4日発行号 - MDOnline-2000年幕開け



あけましておめでとうございます。本年もMDOnlineをよろしくお願いします。かたずを飲んで2000年の到来を見守っていた方もいらっしゃったかと思いますが、一部の人たちがあおったような水道が止まるとか電気が止まるみたいなことはまったく発生せずによかったかと思います。何がおこるか分からないとは言え、どういう論理的な根拠で電気が止まると言えるのか疑問ではありましたが、やはり空騒ぎでした。
むしろ、2000年問題でいちばん大きいのは表示の問題だというのは、すでに証明されたでしょう。こうした問題は2000年にならないと気づかないものです。筆者も、あるページのJavaScriptの修正を行いました。知り合いのホームページでは、「192000年」という表示になっていました。支障がある場合もあるのですが、些細な表記の行き違いはあちらこちらで見られます。デベロッパーにとっての2000年問題は、越年という1つの山場は過ぎたかもしれませんが、まだまだこれからではないかと思います。
MDOnlineの申し込みサイトでは、元旦の午前8時前に、誰かが2回ほど申し込みボタンを押しています。名前も電子メールも入れていないので、たぶん、申し込みのミスではなく、いたずらに近いことだと思います。おかげで(笑)、年数がしっかり「2000年」と記録されていることが確認できています。実はオンラインのサイトは半分はperlで組んでいるので、年数に1900を加えることをある時期に片っ端からやっておりました。もちろん、そうした特別なことがないようになるべくプログラミングはしていますが、まだまだ安心できないというのが正直なところではあります。
(新居雅行 msyk@mdonline.jp


表示の問題を残した2000年問題、本格的な修正はこれからか

2000年問題は大きな問題はなかった…。一般メディアの論調や政府の発表はこぞって平静であったことを伝えているが、システムを管理する側にとって、顕在化した2000年問題へ否応なく取り組まなくてはならないのはこれからだ。大停電などの生活の基本サービスに問題がなかったのはいいことだが、あちらこちらで、「1900年」と誤認したり、「100年」などと表示したりする問題が発生している。やはり「2000年」「00年」は許容されても、「1900年」はともかく「100年」もピンと来ない表現だ。デベロッパーやシステム管理者はこうした不具合をつぶすことを、仕事として行う必要があると言えるだろう。

まず、UNIXサーバなどでのCGI作成によく利用されているperlでは、time関数、localtime関数で現在の日付を連想配列の形式で取り出すのが一般的な手法だ。そのとき、年については「西暦から1900年を引いた数値」が得られる。つまり、昨年までは99だったが、今年になると100という数字が得られるわけだ。その数字をそのまま表示すると、昨年までは特に違和感はなかったものの、今年は「100年」となり、ちょっと違和感がある。一般的には得られた年数に1900を加えるという措置で対処できるが、必ずしもそのようプログラムされているという保証はない。
メーリングリスト用ソフトで有名なfmlはperlで構築されている。通常のメール配信にはすでに修正されているなどして問題はなかったものの、配信メールをHTML形式で残す機能で「100年表示」がなされる点が発見されている。正月中にサポートメーリングリストでパッチが出回り、すぐにソフト自体の修正は行われた。しかしながら、利用者の側で必ずしもアップデートされるとは限らないため、表示の問題は長く残ると思われる。
同様に、1900を引いた数値で年数が扱われるシステムとしてJavaがある。Javaで作成しているシステムについても年数の処理を組み込んでいる場合には再度のチェックが必要だろう。
単純なログなら見てくれの問題で済まされる。しかし、後から集計処理をするようなデータをperlやJavaで処理している場合には細心の注意が必要だろう。たとえば、年をまたがった月次集計や年間集計が正しく連続して行われるようになっているかは今のうちにチェックすべきだろう。外に見せないデータなら、かえって、99、100のような年号のままの方が問題はないかもしれない。

JavaScriptについての2000問題もすでに指摘されているが、これから顕在化してくることになるだろう。JavaScriptはDate型変数からgetYearメソッドを使って現在の年数を得るが、昨年が99今年が100となるブラウザと、昨年が99今年が2000になるブラウザの2種類がある。Mac OS環境では、Netscape 4.5が前者、Internet Explorer 4.5が後者になる。問題は、perl/Java式にgetYearで得られた結果に1900を加えて、西暦の数値としている場合だ。Internet Explorerだと、今年は3900年になってしまう。実は筆者のサイトでもこの問題で、今年を3900年と判定してしまうことになってしまった(現在は修正済み)。これについての対処法などは、以下のとほほ氏のWebページに的確な解説がある。JavaScriptについては個人のWebページでよく使われており、事前にチェックということは(言い訳がましいが)どちらかと言えばあまりなされていない可能性が高いのではないだろうか。

◇getYear()に潜む2000年問題
http://wakusei.cplaza.ne.jp/twn/wwwjsz03.htm

実機テストがはしていないのだが、あるメーリングリストにCyberdogを使ってメールを投稿した人がいて、そのメールのヘッダにあるDateフィールドは「100年」という年号になっていた。ただし、同じメーリングリストでも、Cyberdogを使っていても「2000年」となっている場合もある。おそらく、Mac OSの日付&時刻の設定が年号を2桁としているときに問題が出ているのではないかと推測される。いずれにしても、Cyberdogは2000年問題に抵触しているものだと考えられる。

カテゴリ:業界動向


FutureBasicの次期バージョンがすでに出荷

STAZ Softwareは、Mac OSで利用できるBasic言語の開発ツール「FutureBasic^3(FB^3)」を正式にリリースした。FutureBasic IIのアップグレード版であり、以前から開発していることは伝えられていた。Basic開発ツールは最近ではREALbasicに圧倒的な人気があるが、以前はFutureBasicにも人気があって、現在でも根強い支持もある。しかしながら、長らくバージョンが凍結されていたままだったが、Mac OS 9に対応してバージョンアップをした模様だ。FutureBasicは、ウインドウ上にコントロール類などをドラッグして配置するなどしてユーザインタフェースを構築し、その上でさらにプログラムソースをBasic言語で記述して、アプリケーションなどを作成することができる。バージョンアップにより、ツールなどの機能向上などがあるが、もっとも大きな変化は、PowerPCネイティブなコードを生成できるようになった点だ。FATバイナリも生成できる。算術演算処理も劇的に早くやっているという。言語についても、C言語の仕様をある程度取り入れた。価格は$169で、1年間のサブスクリプションという形式だ。

なお、日本の代理店であるモードのページには、バージョンアップ関連の情報は、以下のような2年前に作成された古いものしかなかった。
◇FB^3-Jにアップグレードする100の理由
http://www.mode.co.jp/faq/fb3.html

関連リンク:STAZ Software, FutureBasic^3
カテゴリ:開発ツール, 開発ツールその他


Mac OS X/Server向けのDB利用RADツールが登場

OpenBase International社は、Java利用のデータベースアプリケーションを構築するRADツール「RADstudio」を発表した。2000年1月4日からのMacworld Expo/SFで展示され、2000年1月中に出荷される予定だ。開発ツールは、Mac OS X、Mac OS X Server、Windows NT & WebObjects Framework 4.0で利用できる。開発したアプリケーション(サーバに配置する)は専用ブラウザで稼動させ、Mac OSやWindows、Free UNIX系などの各種OSのクライアント上で利用できる。クライアントではJDK 1.1レベルのJava VMが必要となる。同社のMac OS X Server向けSQLデータベースソフトであるOpenBaseに対応するほか、Oracle、Sybaseなど、JDBC対応のデータベースエンジンを利用できる。
開発ツールでは、スキーマのエディタや、テキストボックスなどの各種のコンポーネントを配置してのビジュアルなユーザインタフェース作成ツール、OpenScript 4GLによるスクリプトの作成が可能だ。一連のデータベースアプリケーションを構成するためのツールがそろっている。開発ツールが稼動するOSではネイティブなブラウザが利用できるが、Mac OSやWindowsなどその他の稼動環境では、100% Pure Javaのブラウザを使ってアプリケーションを稼動させるようになっている。
RADStudioの価格は$1395からだが、現在のところ値引きをして$999からとなっている。クライアントのランタイムのライセンスは$179からだ。1年でライセンスが切れる形態と、ライセンス期間のない形態が用意されており、差額で無期限ライセンスに移項できる。価格的に見て、どちらかといえば企業システムなどの構築が中心になると思われるが、Mac OS X Serverからみで、WebObjectsとは異なる開発環境が利用できるようになる点に注目できるだろう。

関連リンク:RADstudio
カテゴリ:開発ツール, Mac OS X, Mac OS X Server, 開発ツールその他


Open Transportでゾーンの認識を行うサンプルコード

Appleから配付されたサンプルコードの「OTCheckNetForNBPName」はOpen TransportでAppleTalkを利用したものだ。Name Binding Protocolを利用して、AppleTalkのゾーンを認識し、非同期でルックアップを行うようなものである。Open Transportを利用した事例のサンプルなどとして利用することができるだろう。

関連リンク:OTCheckNetForNBPName
カテゴリ:アップルからの開発資料, ネットワーク


HFS Plus APIを利用したフォルダコピーのサンプルコード

Appleから配付されたサンプルコードの「Files: MFileCopy」は、Mac OS 9で利用できるHFS Plus APIを利用したフォルダコピーを行う。HFS Plus APIの利用法の参考になる。また、フォルダのコピーを非同期で行うようなプログラムが提示されている。

関連リンク:Files: MFileCopy
カテゴリ:アップルからの開発資料


Final Cut Proについての日本語の技術・サポート情報を公開

Tech Info Library-Jに、Final Cut Proに関する日本語のドキュメントが公開された。概要は以下の通りで、日本語版独自の情報もある。

60343JC:Final Cut Pro: QuickTime Pro のシリアル番号
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/2/wa/showTIL?id=60343JC
Final Cut ProにはQuickTime Proのキーも含まれているが、ステッカに記載されたキーを正確に入力して登録する必要がある。登録方法も文書として同梱されている。

58498JC:iMac DV: 現在のところ Final Cut Pro 1.2 はサポートされていません
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/2/wa/showTIL?id=58498JC
Final Cut Pro 1.2はiMac DVで使用するきにビデオとしてFireWireが選択するとフリーズする。現バージョンはiMac DVでは使用しないでおいてもらいたい。

31157JN:Final Cut Pro 1.2: ルーマ/彩度がクランプする問題
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/2/wa/showTIL?id=31157JN
トランジションを設定したときに、トランジションの途中で画像が乱れる問題について記載されている。アップルは現在、修正に向けて作業をしているということだ。

100353JO:Final Cut Pro 1.2 について
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/2/wa/showTIL?id=100353JO
日本語版のFinal Cut Proに付属するファイル(つまりReadMeファイル)の内容を参照できる。一部のボードに関する制約など、詳細を購入前に知りたい場合には参考になることもあるだろう。

カテゴリ:Tech Info Library-J, QuickTime, グラフィックス


Mac OSの自動化ツールT-Minus TenがVer.2.2に

MK Software社は、Mac OSの自動化ツール「T-Minus Ten」をVer.2.2にバージョンアップした。T-Minus Tenは、キー操作やマウスのポイントなどさまざまなアクションに対して、アプリケーションの起動や自動キー入力などの動作を割り当てることができる自動化ツールだ。起動後の数分後や、操作しなくなって何分後などのアクションも設定できる。時間を指定しての実行などもできる。バージョンアップによりスリープや復帰時のアクションが設定でき、Mac OS 9のマルチユーザ機能に対応している。シェアウエアで$20だ。

関連リンク:T-Minus Ten
カテゴリ:ユーティリティ, 各種製品


ログ解析ツールFunnel Webがバージョンアップ

Active Concepts社は同社のWebサーバログ解析ツール「Funnel Web」をVer.3.6にバージョンアップした。Funnel WebはMac OSだけでなく、WindowsやLinux、FreeBSDなどのプラットフォームで利用できるログ解析ツールだ。解析結果を要約する他、チャートなどで表示することもでき、サーバのパフォーマンスや参照される度合いなどが分かる。Ver.3.6では使用メモリの減少やレポートの向上、acgiファイルやTangoのファイルの解析などが加わった。スタンダード版が$249、プロフェッショナル版が$499などとなっている。Ver.3.Xユーザはフリーでアップグレードできる。

関連リンク:Active Concepts
カテゴリ:サーバー関連, 各種製品


2000/1/3現在のTech Info Library

Appleより公開されているTech Info Libraryで、以下の文書が新規公開、あるいは更新されている。「About Apple DVD Player 2.0」については新規公開文書だが、Software Updateで公開された段階で既報のため、文書が公開されたことだけをお知らせする。以下のリストの左端が文書番号なので、記事の最後にあるリンク先にジャンプし、その番号を手がかりに検索をすると良いだろう。

26201:About Apple DVD Player 2.0
18176:Macintosh: Which Shared Library Manager?

関連リンク:Tech Info Library
カテゴリ:Knowledge Base(旧TIL)