「最近の fcp」過去ログ フィード

 同じ日付の項目が複数並んでいる場合がありますが、必ずしも間違いではありません。

 前の月へ / 次の月へ

2007 年 5 月

2007 年 5 月 31 日 プログラミング

 ウェブアプリケーションをオフラインで使えるようにするためのプログラム「Google Gears」が発表され、ベータ版が公開されました。 Lifehacking.jp の記事「Google Reader がオフラインでも利用可能になる Google Gears 公開」等で知りました。

 HTML 5 (Web Applications 1.0) や Firefox 3 等で議論しているのと同じ目的を達成するものをアドオンの形でさっさと実装してしまったということでしょうか。だとしたら、さすが Google というところです。参考: ウェブベースのアプリケーションをオフラインでも (Open Tech Press、 2007 年 3 月 16 日)、 Firefox 3 のオフライン機能って何だ? (えむもじら、 2007 年 3 月 17 日)、 Firefox3 で、オフラインでも Google サービスを使える時代が到来?! (Buzzy Dizzy Biz、 2007 年 2 月 12 日)。

2007 年 5 月 22 日

 JIS X 0201 片仮名のことを「いわゆる『いわゆる半角カナ』」と呼んでライバルに差を付けよう!

2007 年 5 月 21 日

 当サイトのページは XHTML でない HTML で書かれています。たまに図や数式を入れたいと思うことがあって、 XHTML+SVG+MathML が使えたら便利かもしれないと感じますが、 Internet Explorer は XHTML に対応してくれないし、 SVG は仕様もまだ十分整備されていないし、 MathML はフォントが普及していないので、当面は XHTML の利点がなさそうです。

 などと書くと、 XHTML の利点は利用者の側にこそある、という反論があるかもしれません。参考: html に戻りそう (JamGraffiti; 壱茉さん)。

 でも、文法的に正しい HTML 文書を等価な XHTML 文書に変換するくらい、機械的にできます (例えば徳保隆夫さんの「文法違反文書の氾濫する中で」を参照)。もし HTML 文書ではなく XHTML 文書として提供されていることが利用者にとって価値があるのなら、ウェブページの翻訳ゲートウェイのように、 URL を指定して HTML から XHTML に変換するゲートウェイがあってもよさそうなものなのに、見たことがありません。ひょっとしたらあるかもしれないけれど、少なくとも広く知られてはいないでしょう。これは、文法的に正しい HTML 文書と文法的に正しい XHTML 文書の比較において、 XHTML であることが利用者にとって大して価値がないことを表していると思います。

 ですが、当サイトのページが XHTML で書かれていたら嬉しいという人がいたら教えてください。たぶん僕はメールをもらっただけで舞い上がって、尻尾を振って XHTML に変えると思います。

2007 年 5 月 20 日 プログラミング

 アプリケーションプログラムを書くための言語として C/C++ は適さないと思います。言語の設計が古くて、コンパイラーの最適化との相性が悪いからです。

 昔の C 言語では、プログラマーは何でも書いてよくて、コンパイラーは書いてある通りのコードを機械語に翻訳するだけでした。これではコンパイラーによる最適化の余地などありません。コンパイラーの最適化というのは、運が良ければ同じ動作をする速い機械語を生成してくれるけれど、運が悪ければ動作が変わってしまうものであって、しかも動作が変わらないか変わるかは長年の経験によって学ぶものでした。

 それではあまりに不安定なので、今では C 言語の標準仕様でコンパイラーがどのような最適化を行ってよいかが規定されています。正確には、プログラムの動作はどういうときに未定義になるかが規定されています。けれど、この規定は非常に複雑なので、普通のプログラマーは理解できません。一見正しそうに見えるコードが、じつは言語仕様で定義されていない処理系の動作に依存していることもしばしばあり、結局普通のプログラマーにとってコンパイラーの最適化の結果が運次第であることに変わりはありません。

 なぜこういうことが起きるかというと、一見何でも書けそうな言語になっているからです。この見かけの柔軟性と最適化の可能性は矛盾します。言語仕様を整えて、実際には「何でも書ける言語」でなくしたとしても、直感的な理解と現実の間にギャップを作っているだけで、直感的な理解と最適化の可能性が矛盾していることに変わりはありません。 C++ も C 言語の「何でも書ける」という幻想をそのまま維持しているので、同じ問題を抱えることになります。 C/C++ の言語設計が古いと僕が感じるのはこの点です。

 これは C/C++ を作った人が馬鹿ということではなく、昔と今とでは必要なものが違っているということです。昔は正しく動けばよくて、最適化はおまけでもかまわなかった。今のコンパイラーには賢い機械語を生成する義務がある。アプリケーション開発のための現代的なプログラミング言語はこの要件を考慮して作られているので、 Java でも Caml でも C/C++ よりずっと直感的になっています。

 とはいえ、アプリケーション開発が C/C++ を中心に回ってしまっているのは残念ながら止められません。多くのライブラリーやサンプルコードが C/C++ で書かれているので、 GCC が開発中止にでもならない限り、今後も C/C++ が使われていくことでしょう。それに、今ある他の言語だって例えば 20 年後には時代に合わなくなっているでしょうから、 C/C++ だけ避けても仕方がありません。理想的にはプログラマーがプログラミング言語に依存しないことが必要なのでしょうが、それはそれで学ぶのが大変です。結局すべてを解決する魔法は今のところありません。

2007 年 5 月 19 日 プログラミング

 5 月 15 日に GCC 4.2.0 がリリースされました主な変更点のリストにも載っていますが、人によっては注意する必要がありそうなのが、新たに加えられた最適化オプション -fstrict-overflow です。符号付き整数型で、オーバーフロー (マイナス側も含む) を意図的に使うのは、 C/C++ 言語仕様から見ると間違いです。これをしている場合、 -fstrict-overflow を無効にする必要があります。具体的には、 -O2 を指定すると自動的に -fstrict-overflow が有効になるので、 -O2 を指定していてしかも符号付き整数型でのオーバーフローを意図的に使っている場合は、コードを修正するか、 -fno-strict-overflow オプションを付ける必要があります。符号なし整数型の演算の動作には影響ありません。

 なぜ符号付きと符号なしで動作が違うのかというと、直接には C/C++ 言語仕様の定義がそうなっているからです。 C/C++ の標準言語仕様では、符号なし整数型での演算は型の最大値より 1 大きい整数を法とする演算とすることを定めていますが、符号付き整数型ではオーバーフロー時の動作を定義していません。 GCC 4.0.x までは符号付きでも符号なしでも同じ値を法とする演算をしていましたが、この演算を意図している場合は符号なし整数型を使うのが処理系非依存な方法です。符号なし整数型の動作についての参照を挙げておきます。標準仕様そのものは持っていないので、例によって ISO のウェブサイトから取れる作業草稿で。 C 言語は ISO C 言語標準化委員会作業草稿 N1124 (2005 年 5 月 6 日付) 6.2.5 節 Types の第 9 項、 C++ は ISO C++ 標準委員会作業草稿 N2135 (2006 年 11 月 6 日付) の 3.9.1 節 Fundamental types 第 4 項とそこにある脚注 46 です。符号付きの場合の動作についても対応する箇所を挙げるのが親切だと思いますが、僕自身がよく理解しておらず正しい箇所を特定できません。

2007 年 5 月 19 日

 最近のニュースはランダムであるように感じます。テレビのニュース番組を観る理由をあえて挙げるなら、世の中を理解したいからのような気がするのに、観ていると、こんなの理解しようとするだけ無駄という気がしてきます。以前はそうは思わなかったのに、最近よくそう思うのは、ニュースの内容が変化しているからではなく受け手である僕が変化しているからだと思いますが、嬉しくない変化です。

2007 年 5 月 18 日 情報発信

 何でもいいから文章を書きたいとすれば、人の書いたくだらない文章に関して「その文章はくだらない」と主張する文章を書くのが簡単です。少なくとも、面白い文章に関して「面白い」と主張する文章よりは簡単です。だからついつい書きそうになります。でも、簡単にけなせるものをけなしても楽しいのは一瞬だけで (一瞬楽しいと感じてしまう僕は損な性格かもしれません)、後にはたいてい自分と他人に不快感を残すだけです。人を楽しませるような文章は書けなくても、せめて自分が後で読んで楽しめる文章を書きたいです。

 例えば、あるブログを読んでいたところ、そのブログの作者を馬鹿にする失礼なコメントがありました。しかも、記事の主張に反対しているつもりらしいのですが、記事の主張を誤解している。それきた! 良いところなしの、くだらないコメントです (本当に良いところがないかどうかは別として、その瞬間にはそう感じたということです)。このコメントに対して、「なんだか必死になっているみたいですが、記事に○○と書いてありますよ。記事を読まずにコメントしてるでしょ?」という内容のコメントを書こうとしました。たぶん書いたら一瞬だけ優越感があることでしょう。でも、そんな文章を書いても面白いことは起きないと思い直して、何も書きませんでした。

 これと似たことは数え切れないくらいしています。それなのに、くだらない文章を見かけるとまた手が動くわけです。面白いものよりくだらないものに惹き付けられたりしない人がうらやましい。せめて何か書いてストレスを発散するために、この文章を書きました。

 ということで、昨日の続き。偽善とも面倒くさがりとも違う場合もあるみたいです。

2007 年 5 月 17 日 情報発信

 二つ前の続き。僕の場合、悪口を抑えるのは偽善ではなく、打算と面倒くさがりの併せ技のような気がしてきました。

2007 年 5 月 17 日 日本語

 定食屋さんで「ご注文はお決まりですか」と聞かれて「○○○定食を」と答えたら、「以上でよろしいですか」と聞かれて戸惑いました。

 この言葉は過去に何度か聞いていたので、もう慣れてきて、戸惑いはしても意味は取れるようになりましたが、最初は本当に「以上」が何を指しているのかわかりませんでした。何か別の言葉を聞き間違えているのかと思いましたが、しばらく考えて、「○○○定食ですね。以上でよろしいですか」の最初の文が省略されていると考えると一応意味が通ることに気付きました。であれば、僕が伝えた注文を指して、それで終わりで良いのかどうかを確認しているのでしょう。その可能性が高いと考えて「はい」と答えたら注文を処理してくれて、ちゃんと頼んだものが出てきたので、僕の理解は間違っていなかったようです。

 ……と言葉以前の思考を文章に起こしてみると、多少誇張されているように思いますが、少なくとも僕が店員の言葉の意味を理解するのに時間がかかったのは事実です。

 僕の感覚では、「以上です」「以上でよろしいですか」のように話し言葉で「以上」と言う場合、直前に自分が読み上げたものを指して、「これで終わり」という意味になります。今の場合、店員は直前に「ご注文はお決まりですか」としか言っていないので、「以上」が指す対象が見つかりません。そのため、最初は理解できなかったし、今でも戸惑います。

 以前気になって「この言葉って変だよね?」と知人に聞いたら「違和感を覚えない」とばっさり切り捨てられた苦い経験があるのですが (大袈裟)、僕の感覚がずれているのでしょうか。まあ、ずれていたとしても、じゃあ直します、とはたぶんいきませんが。

2007 年 5 月 16 日 情報発信

 文章を書くとき、僕しか書かないことを書くよう心がけています (うまくいっているかどうかは不甲斐ないのですが)。逆に言えば、多くの人が書いている内容のコピーしか書けないようなテーマはなるべく捨てています。中でも一番先に避けたいのは、悪口のコピーを書くことです。ところが、しょっちゅう書いてしまって、ウェブサーバーに載せる前に「これは尻馬くんだ」と思い直して偽善力を発揮して消しています。そういうことが続くと、僕は文章を書いているような気がするのにサイトがまったく更新されないという事態になります。

2007 年 5 月 13 日

 Google の検索履歴を見ました。たぶん自分で見るより人が見た方が面白いと思うので、載せておきます。

2007 年 5 月 6 日 ウェブサイト運営

 「最近の fcp」過去ログの URL を http://homepage2.nifty.com/polytope/diary.html から変えました。「正しい」とか「標準」とかいったことに完全に反する行為です。でも、プロバイダーのウェブスペースサービス程度の自由度では正しくするのは難しいです (当然ですが、そういうサービスを選んだ僕の責任です)。

 まず、ウェブページのアドレスを変えるべきではありません。この時点でアウト。

 しかも旧ページから新ページには 0 秒 Meta Refresh で飛ばしています。 Refresh ヘッダーフィールドなんて HTTP/1.1 の標準仕様にも HTTP/1.0 の informational RFC にもありません。やーい非標準。さらに、 HTML の仕様書にも Web Content Accessibility Guidelines 1.0 にも、 meta 要素を使ってリダイレクトするのを避けるよう書かれています (でも理由は納得できません)。

2007 年 5 月 4 日 日本語

 1 月 26 日に書いた内容を今更フォローアップ。同じお店でアナウンスをよく聞いたら、「運転の有無や年齢確認をさせていただく場合がございます」と言っていました (末尾は「あります」だったかも)。前のは聞き間違いだったと思われます。失礼しました。

 ところで、「運転の有無や年齢確認を」の部分は、「や」が形の上では「運転の有無」 (あるいは「有無」) と「年齢確認」をつないでいるように見えるのに、実際には「運転の有無」と「年齢」をつないでいるという違いがあり、若干不自然です。「を」を確認の前に動かして「運転の有無や年齢を確認させていただく場合がございます」にすればこの問題は解決します。

 ただし、ひょっとすると「年齢確認」から「年齢」単独になると表現の丁寧さが足りないかもしれず、「ご年齢」とした方が良いかもしれません。

2007 年 5 月 1 日

 『趣味の Web デザイン』の徳保隆夫さんに「最近よく読んでます」と書いてもらえて嬉しいです (3 月 1 日にも書いた通り、僕はミーハーです)。

 「IT 系テキストサイト」と一言でまとめられているのを見て考えた結果、トップページ先頭の当サイトの紹介文を少しだけ変えました。最近プログラミング関係のことばかり書いていますが、それ以外もまた書く気が起きるときが来ると思います。

2007 年 5 月 1 日 ウェブサイト運営

 このサイトの中でサイト内の文章にリンクを張るときは、わずかな例外を除き URL にディレクトリ名だけを指定しています。末尾のスラッシュを除いたり、逆に「index.html」を付けたりしても参照できると思いますが、一つの文章に意味なく複数の URL を付けると、訪問済みの文章なのにリンクが未訪問の色で表示されたりして気持ちが悪いので、今のようになっています。


 前の月へ / 次の月へ

著者: fcp / このサイトと管理人について