Perlは既に動いているそうだ。当然だろうけど(^^;)PSLUGのホームページで詳細は報告されるだろう。現在作業中だ。Linux World Expoの記事トップにPS2Linuxが来るのは当然!?
Ant Colony Optimizationは蟻の生態を研究して、最適化問題に応用しようというおもしろい方法だ。これからは群知能(Swarm Intelligence)だと「ソフトウェアの未来」で紹介されていた。
星野力さんのアスキー連載が第7回で最終回(6月号)を迎えた。これまで余り良い読者とは言えなかったが、最終回はおもしろかったので、もう一度読み直したいなと思っている。星野さんの私的なホームページを訪れるとおもしろい。ここは検索エンジンにも引っ掛かっていないそうなので、是非訪問してみよう(^^)またメンバーズ・ホームページにある(旧)講義:知的情報処理と(旧)講義:総合科目「科学技術とSF」はA.I.の現在を考える上で大変参考になるだろう。
AIというとSFの世界か(^^;)、哲学的なまだ非実用的な思弁の世界の話なのではと、現実的な世界とはかけ離れているという印象を持つ方が多いのではなかろうか。いろいろ調べてみても人工知能の現在を把握することは難しい。アカデミズムの塔の高みに辿りつくことは至難の業である。第五世代コンピュータプロジェクトの成果もどのように現実に活かされているのかは判然としない。
さて、高性能なPCやプログラミング言語をパーソナルなレベルで活用できる時代になった今、誰もがパーソナルなAIに取り組むことも可能なのではないかと思われる。どこから取り組めばよいのか、これが問題である。何をしたいのか、何ができるのか、このほうが問題かもしれない。更新日記のなかで取り上げてきた「マシン学習」(Machine Learning)、「Perlモジュール散策:Perlにおける人工知能の現在」、「生命は計算できるか?」といった話題もそういった文脈のなかで私が捉えているものである。実用的には、PCそのものがレベルの低い人工知能だと見ることができる。人間の活動を支援・代行するものだからだ。AWKING Projectもその延長線上にある。簡単に言えば処理の自動化である。それが本当にAIかと言われると、一般的な通念からはちょっと外れているかもしれないが、自動化が極限化すると自律的に継続して動くプログラムになる。情報を周期的に取り入れながら、新たな情報を出力するプログラムなら簡単に作れるだろう。それではもう少しAIの世界に踏み込んでみよう。新しいプログラミングやコンピューティングの概念が出現しているからである。もっとも新しいといってもここ10-20年ぐらいの話かもしれないが。遺伝的プログラミング、進化的コンピューテーション、ニューラル・ネットワーク、カオス、ファジーといった概念である。
今日は「星野・丸山研究室の研究テーマ、それはFPGA(再構成可能なハードウェア)による高速計算とその応用」のページの日本語の参考書のうちの1冊、メラニー・ミッチェル、伊庭訳、「遺伝的アルゴリズムの方法」東京電機大学出版局、1997年(現在、もっともいい遺伝的アルゴリズムの教科書。ただし、大学院レベルか?)をメガの情報科学のコーナーで立ち読みしてきた(^^;)するとJohn Kozaなる人物が、GP、Genetic Programmingの核心にいるようだ。ここらへんから少し調べてみることにしょう。
PS2 Linux Kitのモニターの調達を考える必要が出てきたので、旧8につないでいる17インチモニターの仕様を調べてみるとSync on Greenに対応していた。ラッキー(^^)v 98のモニターはどうするか・・・VNC Viewerでリモート操作するか(^^;)でもFreeBSD98は使えないなあ・・・まあ、最近このモニターに灯が入ったことはない・・・Win95は遅すぎるしね。なにしろPC9801BXだもの・・・時代は変わる
Presented by ZIO Design. Thanks, ZIO! :-)
私はCEは持っていないけど、スクリプト言語もだいぶ充実してきたので考慮すべき環境となってきたのかも(^^;)日本語を使うならTclかもしれないけど、さてどうかな?
ひとりごと・・・PS2 Linux Kit、予約してしまった。宅配便が届くのは7/14。注文番号が連番なら7000までに余裕がありそうだけど。予約の期限は5/24午前9時。
とうとう誘惑に負けて(^^;)予約するために登録してしまった。まだ、正式予約じゃないけどね。でも日本全国で7000人分がLinux Communityのために準備された、多いような少ないような・・・やはりマイナーと言うべきだろうな(^^;)俺ってLinux Communityの一員?^^;)
PS2 Linux Kitよりも衝撃的かも。実際、こういうものが出てくるべきだよね(^^)って、これLinuxだって(^^;)
女房を町に送った後、フタバ図書メガに出動。今日はコンピュータ関連書籍売り場を巡回したあと、雑誌売り場でSoftwareDesignとUNIX MAGAZINEの6月号をゲットして早々と引き上げた。駐車場もレジも混んでいないので午前中に来るに限る。娘の作ってくれたカレーで昼食。
最近のGDモジュールはgif出力に対応しておらず、pngで出力する。GIFgraphモジュールを使用した古いスクリプトでもモジュールの関数名のgifをpngに置き換えれば使えるようだ。グラフを書く場合にはGIFgraphモジュールの代わりにChart::PNGgraphモジュールを使い、関数名については、例えば、plot_to_gifはplot_to_pngとすればOKだ。これはActivePerlを使うWindowsの話。こんな感じでグラフができる。でも日本語は無理みたい。GD専用のフォントを使用する。GD::Graphモジュールだけでもグラフは書け、TrueTypeフォントが使えることになっているが、どうもうまくいかない(^^;)
生成に使用したスクリプト(使用データは「気温データのページ」のもの。ありがとうございました。平年よりも気温が高い。温暖化の兆候なのかな。)
use Chart::PNGgraph::lines; $graph = new Chart::PNGgraph::lines(); while(<DATA>){ chomp; ($mon,$maxt,$avemaxt,$mint,$avemint) = split(/\s+/); push(@mon,$mon); push(@maxt,$maxt); push(@avemaxt,$avemaxt); push(@mint,$mint); push(@avemint,$avemint); } @data = ( \@mon, \@maxt, \@avemaxt, \@mint, \@avemint ); @legend = ('Max Temp.', 'Ave. Max Temp.', 'Min Temp.', 'Ave. Min Temp.'); $graph->set( x_label => 'Month', y_label => 'Temperature, centigrade', title => 'Max/Min Temperature in 2000 of Hiroshima', y_plot_value => 0, y_max_value => 35, y_tick_number => 5 ); $graph->set_legend(@legend); $graph->plot_to_png("temp.png", \@data); __END__ 1 10.6 8.4 4.0 0.4 2 9.7 9.2 1.1 0.8 3 13.6 12.6 4.6 3.3 4 18.8 18.1 9.8 9.0 5 24.2 22.5 15.0 13.4 6 26.8 25.3 19.7 18.0 7 32.1 29.2 24.5 22.6 8 33.2 30.9 24.9 23.5 9 29.1 27.1 20.9 19.2 10 23.8 22.0 15.9 12.8 11 18.0 16.4 10.4 7.1 12 12.9 11.2 4.4 2.5
おもしろい。読む価値があるね。
今日はメガのコンピュータ関連書籍売り場を離れて本を漁った。結局、三冊の本をゲット。
QuickTimeの動画がTkで表示できる。簡単なスクリプトでローカルファイルやURLを指定しての表示が可能だ。スクリプト言語もマルチメディア化した。
連休最終日、ライティングデスクの上にはまたもや堆く本や雑誌の山が(^^;)連休が始まって書棚に本を整理したのに・・・昨日は三冊の本を買った。一冊は中島靖さんのPerl5.6、後二冊は、「ソフトウェアの未来(The Future of Software)」、FTP(Fawcette Technical Publications)編、長谷川裕行監修、ホンヤク社訳、翔泳社、2001年4月30日初版、253ページ、2600円と「スタイルシートWebデザインCSS2完全解説」、すみけんたろう著、技術評論社、平成10年12月1日初版第2刷、258ページ、1980円。
「ソフトウェアの未来」には通常期待するような夢物語があるわけじゃぁない。むしろ堅実な現実に立脚した近い未来が語られている。米国ソフトウェア業界のエキスパートたち31人による未来予想図!という帯が付いている。まだすべて読んだわけじゃないけど、拾い読みをした限りでは、MIT人工知能研究所の、トマソ・A・ポッジオの「ネットワーク・テクノロジにおける次の波」というのがおもしろかった。今でもWeb上にある大量の情報の検索、分類、抽出は課題なのである。例えばGoogleで一つの単語で検索をすると数万件のレコードがヒットする。これから自分の求める情報を絞り込んでいくのは結構難しい。検索による絞込みは漏れの危険が高くなるから、絞り込んで見つからないからといって、求める情報が本当にあるのかないのか疑心暗鬼になる。うまい検索をしてもあまり絞りすぎないように数千件で妥協して、検索結果を最初から辛抱強く30ページ分ぐらい調べてこんなもんだなということにする(^^;)これが現状の精度の高い検索方法だ。無論ビジネスならエンジンを変えてみたりしてもっと手を尽くすことになるだろう。このような精度の低い検索でなく、本当に必要としている情報に素早く到達する方法が必要なのだ。また、メールに含まれている質問事項に自動的に応答返信する仕組みとかも考えられている。情報を抽出・分類する仕組みが問題で、それをしかも自動化する。そこに新しい統計的学習理論とアルゴリズムを応用すると分類カテゴリが進化するということらしい。マシン学習コミュニティ(MITにはcbcl:Center for Biological and Computational Learningがある)での話。
最近何度も繰り返して言っているのだが(^^;)スクリプトによる自動化したインターネットにおける情報・ニュース収集というものを考えていきたいなと思っている。これをWeb Publishingに結びつける。こういった概念は新しいものではなく、代表的なものは正に検索エンジンである。パーソナルレベルで有名なものにはアンテナシステムがある。日記サイト等の更新状況を調べて表示するアプリケーションである。www.ruby-lang.orgのHotLinksも同様のアプリケーションによるものである。これはKINOFINGERというなひさんのPerl Scriptである。"AWKING"のゴールはそれにテキスト処理を応用してさらにおもしろいことを実現することである。無論汎用性はどんどん失われるのだが、それは仕方がない。主要スクリプト言語サイトのトップページのニュースの収集を試みた結果がここにある。ニュースというよりはページにあるURLをリストアップするに止まったが、久しぶりにパターンマッチの世界に浸ることができた。ニュースかどうかの判定をどうするのかは次の課題である。いろいろ方法は考えられるが・・・そう難しくはないだろう。URLのリストアップだけでも結構役に立つ。ページに散りばめられていたURLがリストになるとまた違った趣があるね。
主要スクリプト言語サイトのトップページからURLを抽出し、リストアップして表にまとめるスクリプト、get_news.plを公開した。要はパターンマッチに尽きるのだが・・・いろいろ勉強になった(^^)
マークアップ言語のページをWeb Developmentのページに変える。XML & HTML等、ホームページ作成に必要な情報を網羅していく予定。
中島さんの本が出ている。日本語の本としては、Perl5.6を取り扱ったのは初めてだろう。コンパクトだが丁寧な作りで好感が持てる。索引も完璧で使いやすい。各バージョンの違いなどにも詳しいので5.6を使っていくガイドとして貴重だ。5.003ベースのプログラミングPerl改訂版と比較してみるのもおもしろい。情報管理、2001年3月31日初版、303ページ、2600円。
さて、Webプログラミングはアイデア次第で大変おもしろいことができそうなので、このホームページを実験場にしていろいろ試していくつもりです。データベースと連動したWeb Publishingもパーソナルなレベルで十分可能な環境も整ってきています。それもほとんどがフリーですから大変ありがたいですね。一昔前と比べると夢のような環境です。今は情報収集の自動化とデータベース化、Web Publishingをサーバーでインタラクティブにやるというのが、サーバーサイドの考え方なのでしょう。サーバーを動かすのがままならない個人レベルではそれをローカルでやって、Webではスタティックになるけど随時自動的に更新するというのがおもしろい。サーバーに負担もかからないし(^^;)本サイトのWarmlinksやスクリプト言語の最新バージョンの表の作成はそういった手法で実現しているわけですが、もっとおもしろい応用を考えてみたいですね。実際には各種スクリプト言語についてもう少し文字コードの判定や変換の手法を勉強する必要があるんだけど。get_url.tclもそのテストの位置付け。
Simple Web Programmingを講座から分離して独立ページにした。相互リンク、日記・掲示板・Wikiサイトのリンク集ページを新たに作成、コミュニティ関連のページはトップページにTS Network Communityとしてまとめた。TS Networkingに数件追加。コミュニティもこの一年で大きく広がった(^^)
Computing->.NETに「What Every Perl Programmer Needs to Know About .NET」へのリンクを加えた。
スクリプト言語関連サイトのニュースを自動収集する試み。まだ未完成の部分もあるが意図したことはある程度可能だ。ページにあるURLを抽出してリストアップするだけだが、実際のHTMLページは文法通りになっていないし、siteにあるリンクのURLは補完しないとそのまま使えない。
get_url.tclという、httpパッケージを使ってURLのhtmlファイルを表示するスクリプトを書いた。これまでと違うところはShift_JIS以外で書かれたhtmlを表示できるようにしたこと(^^;)JISとEUCに対応した。ただし、ヘッダのContent-Typeとmetaタグのcharsetを見て判定しているだけである。ヘッダ情報がcharset=文字コードにマッチしなければ、HEADの終了タグまで読んで、charset=文字コードにマッチするかどうか試みる。マッチしなければEUCと判定する仕様だ。ヘッダ情報も一緒に表示するので、サーバーに何を使っているかなんてちょっと知りたいときには役に立つかも・・・HTMLタグを取り除いて適当に整形するようにすれば簡単なWebテキストブラウザになるだろう。
ついでにRubyのWarmlinksも更新した。YARLのうち接続できなかったり、見つからなかったりしたURLは次のとおり。実際にはブラウザでは読めるリンクもあるので、どうもスクリプトに問題があるようだ。NONE SPECIFIEDの判定の意味も調べないと(^^;)
UserAgent.pmのtimeoutの設定はデフォルトは180秒なので、300秒に延ばすと、todo.orgとwww.progwin.comのエラーは消えた。他はそのままだ。
Rubyによるアンテナシステム「たまてばこ」のサイトで「ブラウザで見られるにもかかわらずエラーになってしまう場合に、取得先のサーバがNetscape-Enterpriseである場合はサーバのバグのため更新時刻が取得できないことがある。この場合、HEADメソッドでなくGETメソッドを明示的に指定する、もしくはindex.htmlを明示的に指定することによってエラーが回避できる場合がある。」という記述があったので、URLにindex.htmlを明示的に指定すると、問題のあったURLはすべてエラーにならなくなった。問題のあったURLはすべて@niftyのもので、index.htmlを省略しており、サーバーはNetscape Enterprise/3.6 SP3である。Tcl/TkのHTTPパッケージではindex.htmlを明示しなくても問題なく取得できているようだが・・・
Tcl/Tkを使って<NOT SPECIFIED>のURLが返すヘッダーを調べると、やはりLast-modifiedのデータが返されていない。一応これでスクリプトにも問題がないことの確認もできたし、実用的にもほぼ問題がなくなったので終了(^^)
Python関連日本語サイト集を見直し、14件から62件と大幅追加した(^^)
XML化はしばらくお預けかな。実際上まだまだ必然性が少ないし、素早くWebページを更新するにはスクリプトで自動化したり、直接HTMLに書き込むのが早い。データもテキストデータとしてタブ区切りぐらいにしておいたほうが取り扱いやすい。
発売価格判明。25000円。うーん、思ったよりだいぶ安いなあ(^^)40GBのハードディスク(10 BASE-T/100 BASE-TX Ethernet によりネットワーク接続可能)、USBキーボード、USBマウス、VGAアダプタ、"PS2 Linux Beta Release 1" DVD DISCの内容だしね。これは迷ってきた。これ以外にPlayStation2 専用メモリーカード(SCPH-10020)が必要だが、8MBで3500円。39800+25000+3500=68300円。これにVGAディスプレィが必要だ。17インチを買っても最近は安いから10万円でお釣りが来る。手持ちを使いまわせばなんとかなる人はラッキーだろう。お買い得と言っておこう。
インターネットのメディアとしての可能性は大きい。今や膨大なホームページからなるデジタル情報の大海から、Googleに代表される強力な検索エンジンによって、貴重な情報をすくい取ることができる。本とコンピュータ誌によれば書籍の売上は以前と比べると随分落ちているそうで、みんな本を読まなくなった。これはメディアが多様化したためだ。テレビや最近ではテレビゲームの出現の影響が最も大きかっただろうが、人間の一日の時間は長くなっていない。ここでさらにインターネットが出てきて、あらゆるメディアがここに集約される可能性が出てきた。テレビ、ビデオ、ラジオ、音楽、ゲーム、映画、本、電話、FAX、メール、チャット、掲示板、ニュース、新聞、美術館、博物館、ギャラリー、フォーラム、百科事典、辞書、翻訳サービス、教育、・・・・・放送と通信の融合ということが言われて久しい。当時はといっても数年前だが地上波デジタル放送が主役になるだろうと思われていた。いまやブロードバンドどころかナローバンドでも動画の配信の可能性が出てきている。Palmでさえ、gMovieで動画が受信できる時代になりつつある。人間はよりいっそう-ながら族-にならざるを得ない。携帯を耳に押し当てて歩くのは既にありふれた現実であり、これからはPalmでニュースを見ながら会社に通うのだろうか。デジタルの波を断ち切って、ゆっくりと本を読む時間を持つのが一番の贅沢かもしれないが、インターネットに接続しているのがどうしても長くなるこの頃である。読む本といえばコンピュータ関連ばかり(^^;)常時接続が普及すれば社会の様相がかなり変わる可能性があるだろう。