もっとコンピュータが好きになるblog -5ページ目

名前に使用出来ない記号なお話

からこんな感じのメールが来ました.

"x1+x2+x3+x4+x5"という名前のメーリングリストを作ってほしい.

結論から言えば,"+"を使っているメーリングリストは作る事は出来ません.試しにQuickMLという簡単にメーリングリストを作れるシステムを使ってテストをしてみました.そうすると上の画像のようにエラーが返ってきます.

Invalid mailing list name: <lkjhg+qwerty@quickml.com>
You can only use 0-9, a-z, A-Z, `.', `-', and `_' for mailing list name

こういう事は別にメーリングリストの名前に限った事ではなく,例えばサーバのアカウント名(ログインする時の名前)だったり,ファイル名にも使えません.(ファイル名に関しては正確には"test*test.txt"とかいうファイルを作った場合には,"test\*test.txt"という名前に自動でリネームされるので作成出来きます.)

ではなぜ使えない記号が存在するのでしょうか.なんとなく,"+"や"*"や"/"といった記号を使ったってかまわないように感じるかもしれません.しかし,僕が思うにこの問題には以下のことがあるため使えない記号が出てしまうのだと考えます.(以下の情報は正しい情報ではない事を予めお伝えしておきます.)



1.記号は修飾子として使われるので使えない
コンピュータには言語の文法定義に使われるBNF(Backus Naur Form[バッカス記法])と呼ばれるものや,正規表現と呼ばれるものなどに利用される修飾子として記号が使われる事があります.これらに関して詳しく書くのは後日に回すとして,簡単に説明すると,

a+b*

と書いてあったら,"aaabb"や"abb"や"a"などの文字列にヒットします.+がその前の文字を一回以上繰り返す,*が零回以上繰り返すという意味になりますので,先ほど述べた文字列がヒットするというわけです.この場合の"+"や"*"といった記号が当てはまります.


2.記号は区切り文字として使われるので使えない
CSV(Comma Separated Values)形式というデータの保存形式があります.簡単に言えば特定の記号を文字列の区切りして認識して保存しておく形式です.こんな感じに.

aaa,bbb,ccc

","を区切りして見れば,"aaa""bbb""ccc"という三つのデータが保存されているのがわかります.メールの@も役割的には同じです.


3.アプリケーションの仕様上,すでに使われている記号なので使えない
メールのToフィールド(宛先)に限って言えば,

名無しさん <nanashi@yahoo.con>

といった感じでかけます.これはメールヘッダのコメントに関する仕様にそった記述の仕方なのでこのように書けるのです.メールヘッダのコメントに関する仕様の中で"<"">"が使われているいるように,記号の中にはそれぞれのアプリケーションの仕様の中で既に予約されている場合があります.



実際に名前に使えそうな記号はなんなのかというと,".""-""_"の三つに限られるようにです.しかし,"."を許していないアプリケーションも多いようなので,実質"-""_"の二つが現実的に利用可能な記号という事になりそうです.

話は最初に戻って改めて考えてみると,記号は使えたしても上の人はあんな使いづらそうな名前のメーリングリスト,本気で使う気なのかと考えてしまいます.(スパム対策のため)携帯のメールアドレスはアホみたいに長くするのが通例のようになってますが,メールアドレスは出来ればわかりやすく簡潔な名前にした方がよいと僕は思ってます.

ちなみに今回覗いていったRFCの資料はこれらです.覗きたければどぞ.
- RFC822 - Standard for the format of ARPA Internet text messages
- RFC2234 - Augmented BNF for Syntax Specifications: ABNF
- RFC2822 - Internet Message Format
- RFC2919 - List-Id: A Structured Field and Namespace for the Identification of Mailing Lists

Google Doodlesなお話

本では,Googleで検索する事を「ググる」とか言われていて,もう動詞と化しています.もちろん海外でもGoogleで検索する事が動詞となっていて,"I googled it"なんて感じで使われます.Yahooなんかも動詞として利用する事も稀にあるようですが,Googleの比ではありません.言葉の使われ方からも,Googleが検索サイトしていかに今のネットワークに欠かせないものとなっているかがわかります.

GoogleはIPO(株式公開)申請もはたし,ますます大きな会社へと成長していますが,Google自体が本格的に動き始めた1998年あたりからのGoogle独自のユーモアを未だに持ち続けているすばらしい会社です.今回のネタは,Google独自のユーモアの一つである,"Google Doodles(グーグルのいたずらロゴ)"について話してゆこうと思います.


クリスマスに近づくにつれてGoogleのロゴが変化してきているのに気がつかれたでしょうか.あれは"Google Holiday Logos"と呼ばれるもので,毎年クリスマス近くになるとロゴが変化します.あれが"Google Doodles"の一つなんですね.今年は熊が飾り付けをしている風景のようです.ちなみにその年その年ロゴはGoogleサイトの中に保存されていて,いつでも見られるようになっていまして,以前は雪だるまの話や,飾り付けしたり,プレゼント交換したりしていました,

- Google Holiday Logos
(ちなみに,今年はdoodle9.htmlとなっています.もし去年以降のものが見たければ,URLを編集してdoodle8.htmlにしたりdoodle7.htmlにしたりして見てください.doodle.html, doodle2.html~doodle9.htmlが存在するようです.えっと.クリスマスだけではなく,オリンピックなどのイベントに関するものもあります.)

会社ぐるみで遊んでますよね.他にもGoogleは細かいイベントについても時々ロゴを変更したりします.面白いのだと,レイチャールズの誕生日やヒッチコックの誕生日,DNA発見50周年なんてものもあったりします.一日限りの公開なので,見逃している方もいるかもしれません.こちらも次のURLに飛べばいつでもチェックする事が出来ます.

- Google ロゴ使用

ちなみにGoogleは2002年にアメリカの人気コミックである「Dilbert」を"Google Doodles"に起用していました.中身としては「金曜までに新しいロゴが必要になったのでアイデアを出してほしい」というものになって,通して読むと5コマ漫画になっています.これはアメリカだけの特別版だったんですが,ぜひ日本の漫画のキャラを出してもらって日本独自のロゴでも作ってほしいなぁと思いますよ.興味ある人は下のURLからどうぞ.

- ?Google and Dilbert Doodle

これらロゴを作っているのが,デザイナ-のDennis Hwangさんです.この方の作った渾身のロゴ,Google Storeで洋服や帽子などが売っています.真のGoogle愛好家なら購入してみてはどうでしょうか.

Holiday Lightsなお話

の周りでヒューマンインターフェースについての話が出た時,「初心者は主観的な説明の方があえて詳しい説明をするより理解してくれるのはないか」とかいう討論がありました.ま,一理あります.

blogの内容も案外そんなもんで,本気でコンピュータに関する話題で人集めたいなら,短めの内容の中に,Windowsのフリーソフトの紹介とかデザインの紹介とか今流行りのアフィリエイトやCSSの話なんかすれば良いんでしょう.でもあえて人気の出るような内容にするつもりはありません.今まで通り,多角的にコンピュータそのものをとらえて,少しでも僕も,読んでくれる読者さんも勉強になるような内容を心がけていきたいと思います.もちろんコンピュータっておもしろいなと思われるような内容にはしていきたいとは思ってますので,暇だったら読みに来てくださいませ.



さて,今回は以前に紹介した「Xsnowなお話」の続編というべき話です.クリスマス近づいたし,それ系の話した方が面白いよなと思って書きました.ちなみに今回はMacに特化した話になります.

- Holiday Lights
- MacLampsX
- Snow for Mac OS X
- X-MasTree

なんというか,無理矢理Macをクリスマス仕様にするって内容の記事です.以前のXsnowという雪を降らせて,サンタクロースがそこら中飛び回るソフトを紹介しましたが,今回はそれにHoliday Lights(今回利用したのは,正確にはMacLampsXというMacLampsXというHoliday Lights Likeのソフトです.)というソフトを追加してみました.

Holiday LightsはMac OS 9以前からあるソフトウェアで,画面の端をアメリカのいろいろな休日に合わせて飾り付けしてくれるソフトウェアです.クリスマスだけじゃなくて,ハロウィンや,独立記念日などいろいろな祝日に対応している他,オルゴール機能なんかもあります.(今回使用したMacLampsXはクリスマス特化のソフトになってます.)

あと,X-MasTreeというツリーを飾り付けてみました.ここら辺は設定によって,いろいろデザインの変更が可能です.だいぶクリスマスっぽくなってきました.他にも壁紙をクリスマスっぽい画像に変更したり,マウスポインタを変更したりするとよりパソコンをクリスマス化出来そうです.

むー,しかし,無駄な努力かもしれませんが,こういう無駄な事も良いですねぇ.明日はクリスマスイブ.明日もクリスマスに合わせたネタを書きたいと思いますよ.

クリップボードなお話

か面白そうなネットワークサービス系の話を書きたいなと思ってるんですが,良さげなのないかなと捜索中.「巷じゃ,こんなの流行ってますよ」とかいう情報募集です.一応ここのblogの資料としても使ってるINTERNET MAGAZINEとかの雑誌,最近はblogかCMEかSEOかCSSの話ばっかりなのでうんざり気味です.いつかはこれらに関しても取り上げるとは思いますが,まずは普通の雑誌が取り上げているような事以外の何かの別のネットワークサービスの話が書きたいですね.


今回のネタは前回に引き続きWindowsネタで攻めたいと思います.今日のネタはWindows使いなら,日頃死ぬほどお世話になっているクリップボードについてのお話です.ちなみに今週はMacネタも予定してますんでお楽しみに.

とりあえず,クリップボードが何であるのかという話する前に,今日の話の核であるアプリケーションを立ち上げてみますか.クリップボードはWindowsスタートボタンをクリックして,「ファイル名を指定して実行」を利用します.そこで「clipbrd」と打てばソフトウェアが立ち上がります.上の画像のように,何か画像か文字かソフトウェアに何か表示されているのがわかるでしょうか.もし何も表示されていないのでしたら,適当にマウスを右クリックして「コピー」を押してください.

ここまでの話でおそらくわかったと思いますが,クリップボードとはWindowsやMacOSのコピー&ペーストをサポートしているものなのです.もう少し専門的な話をすれば,複数のプロセス間での共有メモリってやつです.わかりやすく言えば,Exploreなどでコピーした内容はWordやメモ帳なんかで利用できるってことですね.(普通,Exploreでの情報が,他のアプリケーションに影響を及ぼさないですよね.あれはメモリの上でしっかり各アプリケーションごとに使うメモリの領域が決まっているからです.対して共有メモリでは,いろいろなアプリケーションが文字通り共有してデータを利用できるようになってます.)

- Sharing Data Through the Windows Clipboard

で,さっきのソフトウェアは,共有メモリであるクリップボードの中身を表示してくれるソフトウェアということです.ですから,「コピー」した内容が表示されているんです.ちなみに通常このソフトウェアは「Windowsフォルダ→System32フォルダ」の中にあるもので,あまり一般のユーザさんは触らないところにおいてあります.ここのフォルダはOSの動作に関連するものが多く,あまり知識がない人が触ると何かと面倒が多いので,隔離しているというわけです.

- クリップボード拡張

通常クリップボードの情報はひとつしか保存できないような仕組みなっていますが,上記URLのソフトウェアを利用すれば,クリップボードを拡張して,複数個コピー内容を保存したり履歴をとったりできるようになります.頻繁にコピー&ペーストを利用する方は試してみてもよいかもしれません.


今回は,クリップボードの話をしてきたので,後日Windowsで他のアプリケーションとの連携という話で,DDEと呼ばれるものやOLEというものについて実際に簡単なプログラムと実行しながら説明していきたいと思います.

スパイダーソリティアなお話

うも先週のネタはわかりづらいネタが多く,どう考えても一般的なネタから外れていたので,今週は出来るだけわかりやすいネタを多めに取り上げていきたいと思います.これで少しは順位を上がりますかね.(先週のようなネタじゃあ順位はそう簡単に上がらないだろうなと予想していたら,案の定上がりませんでした.)

という事で今週最初の記事はまずWindowsのネタから.スパイダーソリティアについて取り上げてみようと思います.

スパイダーソリティアは現在パソコンを買うと当たり前のようにインストールされているOSであるWindowsXP(Home or Profesional)に標準でインストールされているゲームの一つです.何も設定していないWindows単体ですぐさま遊べますから,多くの人が遊んだことがあるのではないでしょうか.

ルール自体は単純で,ランダムに配られた札を同じ種類で13から1までそろえてゆき,ゲームから全ての札を取り除いてゆくパズルゲームです.札の移動は種類が同じでなくとも6の札の上には5の札がおけます.おけますが,たとえ13から1までそろえても同じ種類でそろえなければ札の列をゲームから取り除けません.ルールは単純ですが,奥が深く,独自の攻略方法を考えている人も多いようです.

- スパイダーソリティア必勝法

そもそも,スパイダーソリティアがWindowsのゲームとして登場するようになったのはWindows98の時代からで,Windows98自体には入っていないのですが,Windows98Plus!という追加パッケージ(有料)をインストールすることで遊べました.人気があったんでしょう,その後,WindowsMe,WindowsXPに標準でインストールされる事になります.
(ちなみにXP版Plus!も発売されているので,興味ある人はこちらをどうぞ.)



Windowsと頭に名のつくOSの中で一番人気なのが2000です.今でこそ,XPユーザの方が多いですが,今でも根強く2000ユーザは多いです.しかし,Windows2000や98以前のWindowsにはスパイダーソリティアがインストールされていない為,2000ユーザの人は,スパイダーソリティアで遊びたくても知り合いのXPユーザにパソコン借りるとかしないと,なかなか遊べませんでした.

- Free Spider Solitaire Collection 2004
- Free Spider Solitaire Collection 2003

そんな2000&98,95ユーザに朗報.フリーのスパイダーソリティアをダウンロード出来るところがありました.上記のURLの所からダウンロードできます.基本ルールやゲーム中のショートカットは大体同じでした.ちなみに動作画面は一番上の画像です.

Windows標準のものに比べると,細かな設定変更が可能だったり,グラフィックが格好良くなっていたり,札の配る速度が上がっていたり,スパイダーソリティア以外のゲームも遊べるようになっていたりします.標準よりも良い点も多いですし,Me,XPユーザさんも試しにインストールして遊んでみてもよいかもしれません.

- ソリティアの話

ただ注意して欲しいのは,スパイダーソリティアはとても中毒性の強いゲームだということです.下手すると1時間ぐらい平気でそれで遊んでしまい,気が付くと一日な何もしていなかったなんて事もあるぐらいです.ちなみに中毒症の例が上のリンク先のお話.
ゲームはちょっとした気晴らしにやるのが良いのかもしれませんね.

処理の高速化なお話

つのまにか,amebloでblogを始めてから一ヶ月経ってました.結構続いてるなぁ.日に日に文章が長くなって読みづらくなってますが,面白そうな内容を引き続き取り上げていきますので,興味持っていただけた方,暇ならまた読みに来てください.



今回の話はプログラマが日ごろから気を使っているけど,なかなか実現が難しい処理の高速化のお話をしたいと思います.せっかく作るソフトウェアなら高速化させたいというのが設計者の希望であると思いますし,ちょっと考えていきましょ.それからプログラムを書いたことない人は,「プログラマにはこんな苦労もあるだねぇ~」ぐらいの勢いで読んでいただければと思います.

まず,高速化すると考えて一番最初に思いつくのが,言語の違いです.プログラムには処理の方式として「コンパイル方式」「インタプリタ方式」という二つの処理が存在します.まずはこの処理の違いについてみてゆくことにしましょう.

コンピュータがもっとも速い処理を行うには,コンピュータにとって分かりやすい状態のファイルでもって処理するのがもっとも速いことになります.これは日本人なら日本語の文章読むのがもっとも速いのと同じことです.んで,プログラム言語で書いた文章をコンピュータにもっとも分かりやすい文章(機械語と呼ばれます)に変換してあげるのが「コンパイラ方式」と呼ばれる処理方法です.一般的に「コンパイル」を行う言語の事を「コンパイラ型言語」と呼ばれ,C言語やC++,Pascalなどといった言語が存在します.

対して一行ずつ翻訳しながら処理を行うものがあります.その処理方法を「インタプリタ方式」と呼びます.インタプリタ方式で書かれたプログラムは,「コンパイル」を行うことなく実行出来るので,ちょっとした作業をやらせたりするのに適しています.しかし翻訳する行為が入っている分,コンパイラ方式よりも処理は遅くなります.一般的に「インタプリタ方式」の言語の事を「スクリプト言語」と呼び,PerlやJavaScriptなどといった言語が存在します.

ここで簡単な例をば.C言語とPerlで書かれた10000回足し算を行う処理プログラムを書いてみたりします.(どちらも同じマシン上で,forによる繰り返し文,実行五回の平均です.)


結果
- C言語
 real 0m0.097s
 user 0m0.014s
 sys 0m0.042s

- Perl
 real 0m0.119s
 user 0m0.018s
 sys 0m0.056s


10000回の足し算程度の簡単なプログラムですが,処理速度に違いが出ているのがわかると思います.これが複雑な処理になるともっと顕著に違いが現れてきます.


次は,繰り返し文と再帰文の違いです.再帰文とは,作った機能の中で自分自身を呼びだし何回も繰り返し実行するといった構造の処理方法です.いまいちわかりづらいかと思いますが,実際のコードにしたらこんな感じになります.


void rc(int j){
 printf("%d\n",j);
 if(j++ > 10000){
  return;
 }
 rc(j);  //ここで呼び出ししてる
}


対して繰り返し文.これは単純でforやwhileといった繰り返しを行うための機能を使って繰り返しの作業を行います.


for(i;i<=10000;i++){
 printf("%d\n",i);
}


再帰と繰り返しですが,再帰処理はメモリ使用領域確保の理由から繰り返しより遅いとされます.(再帰を使いすぎるとオーバーフローする可能性もあります.)上記のコードでは,やることが少ないんで,再帰の方がめんどくさいような気がするかもしれませんが,処理によっては再帰で書いた方が簡単に組める場合もあります.そういった状況に陥った場合も,出来るだけ繰り返しを使う工夫をするというのもアリだと思います.ちなみにC言語で再帰を使った時の速度です.やってる事は最初の例と同じく10000回の足し算ですので,最初のC言語の時の速度と比べてみてください.今回も五回の平均値です.コンパイラ言語がスクリプト言語より遅くなってますね.(再帰する所でif文があるだけ遅かったんですね.)


- C言語(再帰)
 real 0m0.203s
 user 0m0.16s
 sys 0m0.30s


今回は処理速度を重点を置いて考えていきましたが,プログラムの書き方はこれだけが重要な訳ではありません.見やすさ,拡張のしやすさなどあります.今回は長くなってきたのでここまでにして,後日,他のポイントを考えていこうかと思います.


最近のここのblogの記事の内容がややめんどくさい話が多くなってきたようだし,来週は一度方向転換して,笑えるようなネタとかWindowsアプリケーションとか考えていこうかなと思います.まだどんなこと書くか未定ですが.

ハッシュ衝突なお話

ンデー読んできました.大好きだった作品,「モンキーターン」がついに感動の最終回.最期の最期に優勝&澄に告白はエンディングとしてベタだなと感じましたが個人的に最高でした,去年の今当たり,先輩とモンキーターン談義していた時,「澄派,青島派」で盛り上がって,その時僕は青島派だったんですが,そんな青島派の僕でも最期には幼なじみの澄を選んだ所は元の鞘に収まった感じでよかったと感じましたよ.河合先生にはしっかりと休んで頂いて,また面白いスポーツ漫画を書いて頂きたいと思います.
(あ,後サンデーの編集者さんに一言.唯一無二の競艇漫画と帯に書いてましたが,競艇漫画は「モンキーターン」だけじゃないですよ.「競艇少女」を忘れてもらっては困ります :) )

あ,それから本屋でWindows100%見てきたんですが,第一特集が「脱マイクロソフト」なんですよ.てっきり「Appleマンセー」とか「やっぱAmigaでしょ」とか「いやいや国産BTronも捨てがたい」とか,笑えるネタやってるくれるのかと思ったら,「SP2をいれるな」とか「フリーソフトを使え」とかいうネタでかなりショボーンでした.タイトルにだまされた~.Windows使ってる時点で「脱」出来てないよ.(結構マイナーOSの話とか書いてしまいましたが,これらに関しては後々暇があったら書きます)



ちなみに,今回の前置きの話は今日のネタとは全く関係ありません.だたモンキーターンの最終回だからという理由とWindows100%が笑えたので書いただけです.今日のネタは予告通り,セキュリティの話をしようと思います.でも僕は専門がセキュリティではありません.わかる範囲で書いていきますのでご了承くださいませ.んで,セキュリティという事ですが,セキュリティ一発目は暗号の話でハッシュの衝突に関して書いてゆこうと思います.

今回の話は一方向ハッシュ関数というものが焦点となります.一方向ハッシュ関数とは,その関数に何らかの値を入力する事で得られる値があるとします.その得られた値から,入力した値が判別出来ないというのが一方向ハッシュ関数というものです.同じデータのハッシュはいつも同じ値になり,他のデータのハッシュ値とぶつからないようにします.多分,この文だけだとちんぷんかんぷんな気もするので,もう少し簡単にするとこんな感じ.

水+鶏ガラ+野菜を煮込むとラーメンの出汁が出来ました.ラーメンの出汁から元の食材はわかりませんということです.(正確には味のわかる人にはわかりそうですが,ここではそれは無しということで) (どんなにでかいファイルを関数につっこんでも関数によって決められた長さのデータとしてはき出されます.ファイルのダイジェストのようなので一方向ハッシュ関数の事をダイジェスト関数とも呼びます.)

一方向ハッシュの使い方としては,いくつかありますが,例えば,ファイルのダウンロードに使います.送信前にファイルそのもののハッシュを取っておきます.ユーザさんは自分のマシンにそのファイルをダウンロードします,そのファイルがキチンと送られていなかったり,誰かに改竄されていたりするとデータ量が微妙に変化しますから,ダウンロードしたファイルのハッシュを取るとアップロード時のハッシュと異なる可能性があります.そうなるとダウンロード失敗がわかるという具合です.(例:apacheというサーバプログラムのハッシュ値


アップロード時(送信側)
  ハッシュ関数(ファイル) = ハッシュ値「0000」
ダウンロード時(受信側)
  ハッシュ関数(ファイル) = ハッシュ値「0010」(ちょっと値が違う)


それからamebloでもログインして投稿しますが,そこにも使われています.ログインIDとパスワードの組に関数をかけてハッシュを取ります.その後,再度同じIDとパスワードを入力すると先ほどと同じハッシュ値が返るので,正しいIDとパスワードの組であることがわかるわけです.もちろん一方向性であるため,ハッシュ値から元のIDとパスワードを把握する事は管理者ですら出来ません.

ハッシュ関数にはいくつか種類がありまして,CRC32といった簡単なものからMD4,MD5,HAVAL128,SHA1,SHA256,RIPEMD128などなどいろいろあります.基本は先ほど簡単に説明した通り,元のデータがなんなのかわからないようなハッシュ値を出すだめの関数です.いろいろありますが,ハッシュ値の計算の違いや出てくる値の大きさ(正確にはビット長といいますが)の違いとなっています.ここらの話はRFCにも出てますし,もしもう少し詳しい話プリーズとかコメントあったらまた話しようと思います.とりあえず今回はこちらがメインではないので,ここでは紹介のみ.



ようやく,今日書くところに到着.そもそもは暗号の国際会議CRYPTO2004のこのレポートから話は始まります.このレポートではMD4やMD5やHAVAL128それからRIPEMDにハッシュの衝突を発見したというものです.これはとても問題で,ハッシュはその性質からAのデータのハッシュはBのデータからのハッシュと異なっていなければなりません.これは当たり前で,先ほどのログインの例をあげたら,適当なIDとパスワード入力したら入れたとなってしまったら,セキュリティもなにもあったものではありません.
(ちなみに計算はIBM p690でおこなったそうです)


- 暗号技術入門 ―― 秘密の国のアリス
(上記の画像は結城浩さんのスクリプトを拝借されていただきました.よく見ると異なる二つのバイナリファイルですが,出力されるハッシュが同じです.)

暗号には「機密性」「完全性」「認証」「否認防止」という四つの条件が必要とされていますが,今回の話で「完全性」「認証」「否認防止」に問題あることになってしまいました.この問題がすぐすぐユーザさんのところで発生する問題ではないと思いますが,プログラマさんや,管理者さんは頭の片隅でもおいておいた方がよさそうです.もしどうしてもMD5とか使うのが怖いなと感じるようならSHA256やSHA512などビット長の長い,まだ破られていない関数を利用するものアリだと思います.

しかし今回言いたいのはこのように「完全ではない」という事を証明されて,また強い暗号が開発されてゆく所にあります.まるで麦踏みです.しかし,そのおかげで僕たちは危険なネットワークの海を何事もないかのごとく過ごす事が出来るのですから.

slなお話

日は,早起きして新幹線乗って遠出です.晴れればいいなぁ.

更新のスケジュールですが,明日はお出かけなのでお休みさせてください.水曜以降再開する予定です.一応予定としては,今まで一度も取り上げてないセキュリティ系の話をやる予定です.これも資料集め大変かなぁ~.やるだけやってみます.

今日は早寝しなければならない手前,今日はさっくり短めの簡単な話をしようと思います.今日のネタは明日乗る新幹線にも関係あるかな(?)


- 豊田正史 % sl

コマンドプロンプトなお話でも書きましたが,Unixの世界ではファイルの一覧を見るために"ls"というコマンドを利用します.おそらく,"cd(他のディレクトリへの移動)"と並んで,よく利用されるコマンド1,2位じゃないかなと思います.その"ls"のジョークソフトとして,"sl"というのが存在します.

どんなジョークソフトかというと,"sl"の名前通りSL,機関車が画面いっぱいに走っていくんです.それも結構長い時間かけて.僕の知ってる先生曰く,

「slを見たら寝る時間」

と言っていました.故意にしない限り,"sl"コマンドというのは,打ち間違えてしまった時に出てしまうコマンドなんで,"ls"を"sl"と打ち間違えてしまうほど疲労困憊している証拠という事です.しかもSLの通過時間が長いもんだから,眠い時にず~と通り過ぎるまで見てると,かな~り鬱になりますし :)

- SL 改造計画

SLの通過時間を短くしたい(or長くしたい)人は,上記URLからslパッチを当てて,slコマンドの変更を行います.これで好みのあなた好みのslになってくれるはず.

またMac使ってる人は,一番最初のURLからMac OS X版をダウンロードしてインストールしてみて下さい.画面いっぱいにSLが走っていきます.

- ショートショートプログラムの部屋

ここで終わってしまってはつまらない.2ch版slもあります."quit"というコマンドでこれを実行するともうこねえよが走っていきます.こちらはslと違ってすぐ終わるので,制作者がコメントしている通り,shutdown(電源落とす)コマンドの前にやるとと笑えます,自分管理のUnixが2chライクになりますね.
さらに笑えるのはFreeBSDのPortsにsubmitされているところですか./usr/ports/games/quitです.(Ports知らない人に簡単に説明しますと,FreeBSDというOSにインストール可能なソフトウェアのカタログとでもいいましょうか,インストール作業を自動化してくれるものなのです.)

ここまで調べてきて,残念ながらWindows版を見つける事が出来ませんでした.裏を返せばWindowsで"ls"というコマンドを使わない(使わなくてもいい)ということなのでしょうけどね.近くにUnix持ってる人は試しに遊びで入れてみるのも一興かと思います.(もしslに興味あってもやれない人は,WindowsにUnix入れるやり方とか後で記事にする予定なので,その記事を読んでから試してもらえればと思います.)

ソーシャルネットワーキングなお話

近,びみょ~にここのblogで扱っているネタが1980年から90年にかけてのコンピュータの話が多かったような気がします.混沌としていた時代なので,面白い話も多いので,そこいら辺の話が多くなるのも仕方ないのかなとか思ってますが.

しかし,あんまりコンピュータの昔話みたいな事ばかりやっていても,読者さんのニーズと沿わなくなる可能性もあるし,おっさんくさいと言われそうなので,ここいらで今の流行の一つであるソーシャルネットワーキングについて書いてみようと思います.


- orkut
- mixi
- GREE

「オリジナルの不在が、オリジナルなきコピーを作り出してしまうなんてね.あなただったら,あの現象を何て名づけますか?」
「STAND ALONE COMPLEX」
「イエス,STAND ALONE COMPLEX.元来,今の社会システムには,そういった現象を引き起こす装置がはじめから内包されているんだ.僕にはそれが,絶望の始まりに感じられてならないけど,あなたはどう?」
「さあ,なんとも言えないわね.だけど私は情報の並列化の果てに個を取り戻すための一つの可能性を見つけたわ.」
「ちなみにその答えは?」
「好奇心,たぶんね.」

アニメ攻殻機動隊の一説です.この作品はアニメですが,コンピュータ好き,ネットワーク好きなら是非一回は見てもらいたい作品です.今回のソーシャルネットワーキングはこの言葉をふまえながらながめてゆくことにしましょう. 


2003年はblog当たり年と言われます.2004年の当たり年はなんだったのか.日本のインターネットの中ではソーシャルネットワーキングが当たり年だったと言えるでしょう.Social Networking Service(SNS)は「友達の友達は皆友達だ」という考え方でもって同じ趣味趣向の人とのコミュニケーションを円滑にする為のコミュニケーションサービスです.一見さんお断りサービスで,ソーシャルネットワーキングサービスを受けたいと思うならば,ソーシャルネットワーキングサービスに既にログイン出来るリアル世界の友達の誰かから紹介してもらわなければログイン出来ないという,比較的閉じた環境でのサービスということになります.

正直,このソーシャルネットワーキングについてネタにする事はなかなか難しいなと思っています.なぜなら,このソーシャルネットワーキングが一時の流行りかもしれないし,今後どのように発展してゆくかもわからないからです.今回一回限りで書ききるのは難しいかもしれないので,また後日同じネタで書くと思います.


元々研究機関や軍事利用目的で利用されていた初期のネットワークはそれこそ,専用回線でつながれた非常に閉じたネットワークでした.しかし,インターネットはそれら閉じたネットワークを相互接続することで大規模なネットワークを構築してゆく事になります.現在のインターネットはもっと自由に情報の交換ができるようにしたいがための構成物という事です.

閉じた世界を作るためと考えられる暗号でさえ,現在の暗号もNSA(National Security Agency [アメリカ国家安全保障局] )のコントロールからの脱却を望んだものであるので,これも自由を求めると動きと言えます.(ここの話はかな~り激しいのでまた後日)

自由を求める,それが今までのインターネットの世界でした.今もその動きはあります.例えばCCCD(コピーコントロールCD)反対運動や,P2P,WiKiWiKiなどなど様々あります.(一つ一つの単語に関してはこちらも後日)
しかし,ソーシャルネットワーキングはそれら運動とは全く真逆な動きで,自由であることが果たして善であるのか,インターネットはそれを改めて現在問われているのだと思います.ソーシャルネットワーキングは,閉じた世界で,各人は各人に出来ること(パーティとか集会とか)を各人が行い成長してゆくため,僕はソーシャルネットワーキングはまるで共産主義的な発想であると考えています.

現在のソーシャルネットワーキングはblogを公開して友達同士でわいわいやっているだけの,いわば,「小学生が交換日記をしている」状態+「クラス全員に交換日記は見てもらいたくないけど,すこしは誰かに見て欲しい」状態がごちゃ混ぜになった感じで動いていて,パーティや集会とかでも仲間内の飲みの集会と変わらないといった感じであると考えています.事実,パーティとかに行ったことある人のblogを読むと不満が多いですから.先ほどソーシャルネットワーキングは共産主義的なネットワークであると言いましたが,雰囲気がそれであるのにも関わらず,現在のレベルのソーシャルネットワーキングは,存在としてのレベルが低いと言わざるえません.僕は将来的なソーシャルネットワーキングは,ネット地域通貨地域IXなどとリンクさせたりしてもっと社会的に意義のある存在にすべきであると考えています.

- なぜSNSは使われなくなってしまうのか

上記の記事でも述べられていますが,ソーシャルネットワーキングの問題ともなっている存在理由も,社会的に意味のある存在にもってゆくことで解決すると思います.存在理由という名目だけ取り繕ったものなら,ソーシャルネットワーキングの中には音楽ファイル交換を目的としたものや,ビジネスに特化したものなどありますが,P2Pソフトやグループウェアのと差違など考えたらあまりないと言えます(むしろ使いにくい).今のままでは只の交換日記システムになりさがってゆくはずです.ちなみに僕はgreeのアカウントは持っていますが,今の段階のソーシャルネットワーキングでは,あの中で入ってなにかアクションを起こしたいと思いません.


- WaWaWa

そうそう,僕はもう一つ,あの界隈にいる人たちに言いたい事があったんだ.それぞれのソーシャルネットワーキングはWaWaWaのようにソースを公開すべきだろうと思いますよ.そうすれば,いろんな所で小さなネットワークが形成されると思うし,ソーシャルネットワーキング同士をリンクするとかもっと他のアイデアも思いつくし.

指輪物語なお話

このblog,個人的には楽しくやってるんで良いんですけど,一つの記事書くための資料集めと調査が恐ろしく時間かかります.折角順位も上がってきているので,出来るだけ毎日書きたいのですが,これからは毎日書くのは難しいかもしれません.ですから,調査する為に数日更新をお休みする期間が定期的に出てくると思います.これからもがんばって様々な角度からコンピュータに関係する事をいろいろ取り上げてゆきたいと思っていますのでよろしくお願いします.


毎日どんな内容を話そうか考えるのは大変な作業な訳ですが,それでいてとても楽しい時間でもあります.今日はなかなかネタが思いつかず,どんな内容について書こうか悩みました.テレビを付けたらロードオブザリングやってたんで,原作「指輪物語」とコンピュータの関係について話していこうと思います.案外切り離せないんです.このネタは奥が深いので,もっとじっくり調査してからの方がよかったかなぁと思ってます.また後日,同じネタで書くかもしれません.



指輪物語といえば,いわずもがな「ゲド戦記」「ナルニア国物語(2005年にディズニーで映画化らしいですね)」とならぶファンタジー作品の大御所として有名です.多くのファンタジー系小説,ゲームなどのストーリーも少なからずこれらの影響を受けていると言われています.

今回のネタ,指輪物語がなぜコンピュータの話と関わってくるのかと言いますと,コンピュータについて調べると様々な分野に渡って指輪物語に関係する文書が出てくるからなのです.


- RFC 1296 - Internet Growth (1981-1991)

例えばコンピュータの名前.上記URLにはインターネットの成長記録が載っています.これはRFCというものでインターネットにおける公式文書の一つになっています,RFCについては後日また詳しくやります.んで,そのRFC1296の中に,「Distribution of Hosts by Host Name」という項目があると思います.人気のあるコンピュータの名前についての調査な訳ですが,よくよくみると,「frodo(フロド)」や「gandalf(ガンダルフ)」という単語があったりします.まだこちらは調べきれていませんが,RFCにはまだまだ指輪物語に関係する内容の文書があるらしいです.


- Perl.com

例えば,言語.Perlというスクリプト言語(コンパイルしないで実行出来る言語の事.これも詳しくは後日書きます.)のソースの中にはLord of the Ringからの引用文が存在します.一部を紹介.gv.cというソースファイルの中の一文.

/*
* 'Mercy!' cried Gandalf. 'If the giving of information is to be the cure
* of your inquisitiveness, I shall spend all the rest of my days answering
* you. What more do you want to know?'
* 'The names of all the stars, and of all living things, and the whole
* history of Middle-earth and Over-heaven and of the Sundering Seas,'
* laughed Pippin.
*/


- Options for Debugging Your Program or GNU CC

例えば,バイナリファイル.Unix系のバイナリファイル(コンピュータが扱うファイル.Windowsでいう所のexeファイル)にはいくつか形式がありますが,その中でも準標準的に利用されているのがELF(Executable and Linking Format)[エルフ]です.上記の画像の中でも例を紹介していますが,fileコマンドで調べるとlsコマンドがELFであることがわかりますね.ちなみにELFのdebug形式の名前がDWARF[ドワーフ]なので,指輪物語と関係しているのは間違いないでしょう.


- 日本語版 Angband のページ
- Zangband 日本語版HQ

例えば,ゲーム.Unix系OSの中のゲームでおそらく最も有名なゲームと言えばRouge(ルージュ)ではないかと思います.わかりやすくいえばトルネコの大冒険とかゼルダの伝説,Ysみたいなゲームです.Rougeについては後日改めて詳しく書く予定ですので,ここでは紹介のみで.んで,そのRougelike(ルージュの派生物)の一つにAngband(アングバンド)というゲームがあります.Angband自体もいろいろと派生はしているのですが,基本的に指輪物語やトールキンに関係する話を盛り込んだゲームとなっています.上記の画像のゲームとなっています.アイテムが多くて,操作を覚えるまで時間かかりますけど,結構楽しいです.Windows版,Mac版もありますよ.


さて,ここまで指輪物語とコンピュータについていろいろ書いてきました.ざっと簡単に挙げただけでもこんなにあります.ある意味.コンピュータに関わっている人にとって,指輪物語はとても重要な本の一つという事です.ではなぜこんなに指輪物語はコンピュータに関わっている人に好んで引用されるのでしょうか.ここからは僕の推論です.きっと彼らは魔法遣いに憧れがあるのだと思います.プログラムを組んで,それを動かす.回線をつなげて遠くの人とコミュニケーションを行う.遠隔からコンピュータを操る.いろいろありますが,どれもまるで魔法です.別の視点から考えれば,もしかしたら,今のインターネットやソフトウェアは「こんな魔法があったらいいな」的発想で生まれたのかもしれません.