Archive for May, 2007

ノートの取り方ってよくわからない

Posted by on Thursday, 17 May, 2007

出欠の話から大学のあるべき姿とかについてまで長々と書いたけど、見返したらなんだかアホらしくなってみんな消しました。

どうでもいいけどわたしもノートはぐちゃぐちゃ。色とりどりのペンをわざわざ使ってノートを取ってるやつはアホだと思っているままこんな年になってしまいました。

でまあそれはアホだといまでも思ってるんだけど、 コーネル大学の方式は優れていると思う。というか、当たり前のことでしかないんだけど、復習用のスペースを作るというのはいいかもねーという感じですかね。

あとわたしも小学生のころは進研ゼミやってたし塾にも通ってました。


fizzbuzz

Posted by on Wednesday, 16 May, 2007

2ちゃんねるの Ruby スレを見たらいまだに FizzBuzz 問題をあれこれ言っていた。アホか。

>

shiro 4 points 8 days ago >

Fizz-Buzzの話は、あくまで「プログラムの書けなさ加減」の限界を示すためのarbitraryな例でしかないのに、Fizz-Buzzプログラムそのものを書いてしまう人が多発するのはなぜだろう。

(http://ja.reddit.com/info/1oid5/comments/c1oo20)

わたしもどうしてだろうと思っていたのだけれど、これって典型的な bikeshed discussion なんじゃないの。誰でも書けるプログラムには誰もが口出ししたくなるの法則。


アドバタフライで firefox が固まるんですけど

Posted by on Wednesday, 16 May, 2007

StarChartLog を読んでいるんですが、ここ最近、奇妙なふるまいをするようになりました。閉じようとすると固まり、「スクリプトの実行がぜんぜん終了しない」という旨の警告が出てくるようになります。それで「スクリプトを強制終了する」を指定すると、ひとまずいいんですけど。

このダイアログはちょっと珍しいですが、 JavaScript のコードを開発しているときはうっかり見かけてしまうことがあります。無限ループを書いちゃったりすると、そういうことになります。

で、気にはなっていたんですがいいかげん頭にきたんで調査。 Firebug で怪しそうな script 要素とかを削ってみて挙動を確認するというのを地道に繰り返してみたところ、結論としてはサイドバーにあるアドバタフライの広告を削ったらうまく行きましたよと。

でも、ぐぐってみるとこれがぜんぜんヒットしませんね。なんでだろ。オレの環境依存ですか? てことでブラウザや OS をかえてみてにわかったことですが、

>
  • Firebug が有効になっていると固まる
  • ってことでした。あんまり気にせずどこでも常にアクティブにしていたんですが、そんな相性問題があるとは思わなかった。てことで「disable for …」を指定してokなことを確認。

    まあ他人のサイトなんで Firebug をアクティブにする意味はとくにないんですけど、なんとなく気持ちわるい。


    Erlang のパターンガード

    Posted by on Wednesday, 16 May, 2007

    ところで Erlang の言語仕様で個人的に気になること。

    >
  • 「ASCII(7bit)の範囲内の整数のみで構成されているリスト」が「文字列」とみなされること(「文字」というのはないし、マルチバイトはおろか8bit clean ですらないんじゃないかなあ) >
  • 関数内ローカルな関数が書けないこと >
  • パターンガード=if条件部に書ける述語は、あらかじめ定められたものしか許されないこと
  • とりあえずこのみっつかな。最初のもひどいんだが、 Haskell を使っているとそれなりに感覚がマヒしてくるので(とりあえずiconvとかあるしいーや派)ひとまず脇に置くとして、関数内にローカルな定義を書けないのも、それが Erlang の流儀ならそれでよしとしようじゃない。

    で、最後のことについて。たとえば member という次のような関数があるとします。

    member(X, []) = false; member(X, [X|_]) = true; member(X, [_|L]) = member(X, L).

    でも、この member をガードに使うことができないわけです。たとえば、メッセージを受信したいが、あらかじめ事前に、リストで渡したデータだけを受け取り、ほかのものは無視したいとする。 ML とか Haskell とかに慣れていると、自然と次のように書くことでしょう。

    receiver(L) -> receive Msg when member(Msg, L) -> ... end.

    でもこうは書けないっつーことです。 when 以降には任意の式が置けるわけじゃないから。

    ……when は特別なんですよと覚えればいいじゃないって思いましたか? でもね、 Erlang では、実は if 式というのもパターンガードの集まりであるという原理がある。したがってif の条件部には任意の式は置けません。これはけっこうびっくりしませんか?

    1> if member(1, [1,2,3,4,5]) -> ok; true -> fail end. ** 1: illegal guard expression **

    どうするかというと、こういう場合には case を使えばいい。

    1> case member(1, [1,2,3,4,5]) of true -> ok; _ -> fail end.

    それじゃ、 receive でガードする場合はどうでしょう。ガードが成立してもしなくても処理をする場合はともかく、ガードが成立しなくて今この場では処理したくないメッセージはどうればいいんですかねー。自分で自分に send するのかしら?

    receiver(L) -> receive Msg -> case member(Msg, L) of true -> ...; _ -> self() ! Msg end end.

    もっと複雑なパターンの場合にメッセージの順番が維持されるかとかが気になるけれど、ひとまずこう書けばいいのかなー。

    でもなんで、パターンガードにそんな制約を加えているんだろう。確かに、任意の関数を許すよりはパフォーマンスは上がるのかもしれないが、なんかちょっと微妙。


    Erlang のリスト処理は最適化されまくっとるらしい

    Posted by on Wednesday, 16 May, 2007

    Erlangの++はドーピングされている件

    ちょっと関係ない話なのでコメントするかどうしようかなあと思っていたんですが、 Programming Erlang 3章にもこんなことが書いてありました。

    >

    Note: whenever you want to reverse a list you should call lists:reverse and nothing else. If you look in the source code for the module lists you’ll find a definition of reverse. However, this definition is simply used for illustration. The compiler, when it finds a call to lists:reverse calls a more efficient internal version of the function. >

    (訳) 注意: リストを逆転させたいときは lists:reverse を使うべきであり、ほかのものは使わないこと。 lists モジュールのソースコードを見れば、 reverse の定義を発見できる。しかし、この定義は単に説明のために使われる。コンパイラは lists:reverse の呼び出しを発見すると、もっと効果的な最適化版の関数を呼び出す。

    ということだそうです。リスト系って実はいろいろ最適化しているんですかね。やっぱヘンな処理系だなー。

    あと例外処理についてですが、 catch が昔の書き方であり、これだとまずい場合が発見されたので try…catch 式が導入されたんだそうです。

    ちなみに、まずい場合というのはどういうのかというと、 catch は内部で例外が発生すると、 {‘EXIT’, Why} というタプルを返すのですね。それを case とかで捕捉して処理するのが昔の定型だったと。でも、catch 内部の式が正しく終了してその返り値が {‘EXIT’, …} だったときに区別できないじゃん、ということみたいですね(そんなことありうるのかというのはさておき)。

    ともかく catch は deprecated だということで、ぼくら newbie は try…catch だけを使っていればいいよっていうことのようですね。


    今週のパンシャーヌ

    Posted by on Tuesday, 15 May, 2007

    スゲー。超スゲー。次回予告もスゴかったけど本編はいっそうスゴかったぞ。

    パパイヤ鈴木が扮する丘ダイバー(陸上なのにスキューバダイビングの恰好、ときどきシュノーケルで「スコー」って言う)は、海の危険を訴え、陸上で海を想像しながら泳ぐ怪しい水泳教室(?)を開設していた。娘の理沙もすっかりそれにハマってしまう。怪しいけど無害かと思っていた主人公だがしかし、実は丘ダイバーの正体は乱獲されたマグロの怨霊。教室の人たちはいつのまにか耳の後ろにエラができ、昏睡状態に陥り、このままだと本当に魚になってしまう!

    という意味不明のストーリーは実はどうでもよく、丘ダイバーvsパンシャーヌの対決が神展開すぎます。

    まずは水球勝負(という名のドッヂボール勝負)。でも丘ダイバーはぜんぜんキャッチできなくて惨敗。逆ギレした丘ダイバーはマグロの切り身を武器に攻撃してくる!……んだけど、だめだ、あの強烈な絵面は文章では表現できない。笑いすぎて困るくらい笑ったですよ。なんなんだありゃ。

    オチも綺麗に決まってました。今週は必見でしたね。見逃した諸賢には、そのうち YouTube か何かに上がった画像を閲覧することをオススメしておきたい。


    十年一日とはまさにこのこと

    Posted by on Tuesday, 15 May, 2007

    http://kazuhiro.ty.land.to/blog/2007/05/post_63.html いったい何年前の記事かと思いました。なんというか、これに対する反応も含めてまったく十年一日のごとしとしか言いようがないなあ。

    と、言われても若い皆さんには想像できないかもしれないので、実際に10年前だとどうか、ってのを考えてみようか。

    細かい単語が違うだけでまったく変わらないもの

    >
  • オフラインの友人にブログを宣伝する >
  • イベントに参加して、ブログを宣伝するとともに、イベントのエントリーを書く >
  • 読者を想定する >
  • ブログ界のハブとなっているブログ(ブロガー)をおさえる >
  • 季節、イベントを先取りしたエントリーをかく >
  • PVを稼ぐために、ブログ内でリンクの張り方を工夫する  >
  • エントリー数を増やす >
  • エントリーとアクセス数の関係を観察する
  • なんかね、10年前でも有効だっただけじゃなくて、10年前からふつうに言われつづけていることだよねえ……

    同じようなことだが実現方式がかわるもの

    >
  • pingを打つ →アンテナに入れてもらえるよう工夫する >
  • Google Adsenseを導入する →検索エンジンに登録する(googlebot が来てくれる、という話なので)
  • 今はそうでもないのだろうが、アンテナというのはある時期までは非常に重要だったのです。更新の検知という意味でも、この機能はアンテナの代替でいいと思う。ちがうのは、アンテナは管理者が特権的な立場にいたこと、その逆にスパムは入りづらいこと。

    あと若い皆さんはひょっとするとご存知ないかもしれないんですが、むかしは各種の検索エンジンに一発登録を代行してくれるwebサービスというのがあったんじゃよ……。

    微妙に違うもの

    >
  • ニュースサイトの記事にトラックバックを打つ >
  • Wkikipediaからリンクされるエントリーを書く >
  • ブックマークに登録する >
  • はてなダイアリーでブログをはじめる >
  • 魅力的なタイトルをつける
  • 10年前にはなかったので適用できないもの。「魅力的なタイトル」も、ブックマークなんかのツールがなかった時代には、そこまで重要ではありませんでした。

    さて、つまり、この10年で生まれて個人に活動に影響を与えたもの。それは、

    >
  • ニュースサイト >
  • wikipedia >
  • はてなコミュニティ(はてブ)
  • くらいのものだ。ってことかしらねえ。あーやだやだ。

    # きっと、この日記のタイトルも「この10年に生まれて個人の活動に影響を与えた3つのもの」とか「ブログのアクセス数を増やすために試したい15の方法を十年前風にしてみた」とかいった風にするのが「魅力的なタイトル」なんだろう。だが、オレはそんなことをしたくないのでやらない。


    ワニ計算についてそのあと

    Posted by on Sunday, 13 May, 2007

    そういえば作者からは「ありがとう!」みたいなメールを受け取りました。

    一読してつい訳してしまったのはいいとして(ちなみにわたしは LtU 経由。 Wadler のは読み飛ばしてた)、あのあとでとある知り合いから「向井君がアレに感動していることだけはよくわかった」と言われました(笑)。いや、まあ、うん。そうですね。

    実際問題としては、ラムダ計算について(すくなくともこれが何に対応するかがすぐわかるくらいには)わかっている人が子供に教えるための遊びだと思うのでした。 Wadler が娘に遊ばせてうまくいったのは、きっとレクチャーが上手いからだよなーみたいな。あとまあ「だからなに?」ということを考えだすと困っちゃうかもね。

    sumii さんがいくつかの指摘をしていますが、わたしも爺婆ルールと色のルールは問題だと思っています。

    爺婆については、「卵-飢ワニ-爺婆ワニ」というスケールが現実の直感とまったく対応していないのが問題。卵があるからには、ふつうは、ワニが何らかの手段で卵を「生む」ようなことを期待してしまうし、飢ワニは何らかの食事パターンでは死なず、爺婆に老いる、という成長ルールを期待する気がするのですね。

    卵-ワニの関係については、それでもまあいいとして、爺婆ワニはおかげでよくわからないルールになっていたんじゃないかな、と思うんですよね。まったくべつの存在を仮定した方がよかったような気はする。

    色については、突然、何らかの適当な色に換えるというルールはさすがに意味不明すぎると思いますね。 sumii さんの提案は、それはそれでややこしいと思いますが、じゃあ何がいいんだという対案はわたしにはありません。

    ところでこれを子供に遊ばせる案。ふたり一組となり、手持ちのワニは両者とも共通とし、相手に隠して好きなパターンをつくる(ぜんぶを使わなくてもいい、もしくは手持ちのパターンのうち10個のピースでつくる、とか個数を制限する)。つくりおわったら「いっせーのーせ」で相手に見せて、展開を繰り返し、これ以上展開しないところまで先に展開しおえた方の勝ち。もしくは、わからなくなって「ギブアップ」を宣言したらそっちの負け。

    ただし、どうしても展開が終わらないことが、じつはある。そのときは、そのことを発見し「終わらない」を宣言したら、その人の勝ち。

    てのはどうでしょうか。面白いかどうかはよくわかりませんが。


    タイフェス行ってきた

    Posted by on Sunday, 13 May, 2007

    http://www.thaifestival.net/

    ここ数年で、こういう特定の国/地域がこういうところでこういう物産展(?)をやったりするのが増えたように思うけれども、タイフェスティバルはそのなかでもたぶんいちばんの古参で、たぶんいちばんの有名どころで、それだけに人数が多い(ちなみに前はタイフードフェスティバルと言っていたが、何年かまえに「タイフェスティバル」に名称を改めている)。

    昨年は日曜の12時くらいにひょっこり行ったらあまりの混雑に辟易したので、今年は朝イチで行こうと心にかため、今朝の10時すぎくらいに行ったら、これがもうガラガラ。といっても人はけっこういて、お店にはそれなりに人が群らがってるんだけど、まだまだぜんぜん。

    そういうわけで、のんびりと食材店でタイの食材を買ったり(でも食材店は狭くてけっこう混んでた)、出店でガイヤーンとかグリーンカレーとかドリアンとかを食したり、十全に堪能したところで12時ちょい前くらい。混雑がひどくなったのでとっとと退散したのでありました。やー食った食った。グリーンカレーペーストを大量に買い込んだので、そのうち作ろうと思います。

    にしてもゲップがちょっとドリアンくさい。ぐえー。やっぱさ、あれって味はいいんだけど臭いはわたしにはつらいよ。まえに紹介した『ドリアン 果実の王』の著者の人なんかは、あれをして「馥郁たる香り」などというのだけど、ほんとうに「当たり」なんてあるのかね?

    追記: マサトクさんが、土曜の昼過ぎに行った写真を挙げているのだけど>http://ore.to/%7Egekka/2007/05/20070512_141023.php 混雑ってのはこれくらいの感じ。混みすぎ。今日の午前中でも店先の人数は同じくらいだけど、通りのまんなかあたりの人が皆無に等しいので、快適、快適。

    まあ、昨日は快晴だったのに対して今日はやや曇っていて、出足も違ったのもあるかもしらん。


    電脳コイル

    Posted by on Saturday, 12 May, 2007

    公式ページ

    ん! おもろかった。たぶんそうだと思ってたけどいいアニメだー。今期はこれがイチオシかな。第1話は18日午後7時18分〜に再放送をやるらしいので、興味のある人はお見逃しなきよう。

    しかし、アンテナか受像機か途中経路か何の具合か知らないが、録画をチェックしたら30分間まるまる白黒だったのには閉口した。これまでも、局や時間帯によってノイズが凄いことになったりといったことはあったのだけど、ずっと白黒ってのは初体験。どうにかした方がいいかもしらん。