2006年11月16日

ちょっとスタイルシートをいじってみた

一つだけ。リンクが沈むようにしてみました。

今HTMLを気合いを入れて勉強したので、少し解るようになってきたかも。

このページを参考にしました。というよりソースをそのままパクリました。

また詳しくは後日。
posted by n_shimizu at 22:20| Comment(0) | TrackBack(0) | 日記

2006年11月12日

一晩かかって「できない」ことが解った

現在情報Aの授業で軽くHTMLに触れ、これからソフトを使って Web ページ作成にはいるところです。

今まで3年生は、samba で作った共有フォルダを使ってきたのですが、大量にファイルを扱う Web ページ作成では限界があります。今まではアカウントの区別無しで授業を行ってきましたが、ユーザ名・パスワードでドメインにログインして、個人フォルダを使うことが必要となりました。ユーザを登録するのは以前に解決しましたが、ログオンスクリプトの件と、マイドキュメントを自分のホームフォルダにリダイレクトしたいということが解決していませんでした。

ログオンスクリプトは、諦めました。

3年のあるクラスが2時間のうち1時間が時間割の関係で部屋を移ってしまうため、どちらの部屋でログインしても同じファイルを取り出せるようにする、というのが課題だったのですが、ログオンスクリプトで悩むのは限界を感じました。そこで、生徒には申し訳ないのですが、2時間とももう一方の部屋で授業をやってもらうことにしました。それはふだん過ごす第二校舎から道路を渡った後に5Fまで上がらなければならないのですが。

もう一つのマイドキュメントの件です。結論から言えば「できません」。

答えはマイクロソフトのページにありました。そのものずばり「ホーム ディレクトリへマイ ドキュメントをリダイレクトする」という項目です。この中にこうあります。
……Windows 2000 クライアント、および Windows XP Home Edition クライアントでは、ホーム ディレクトリにリダイレクトできません。

そう、IT支援校として配布されたノートパソコンは、Windows2000 だったんです。できるはずと思ってできないのは自分のせいだと思ってしまいますよね。
そういえば、どこかで読んでいて知っていたような気もします。昨日一睡もせずに作業を行って「できない」と解ったときには、以前MySQL のクエリで悩んだ時のデジャビュかとも思いました。徒労に終わったようにも見えますが、ああでもない、こうでもないとやっていたことで知識も増えたので、良しとしましょう。

ただ、間に合わないことが確定したので、最初のWeb作成の授業は全員の共有フォルダに個人フォルダを作ってもらうことで対応し、次の回には間に合わせるようにしたいと思います。
posted by n_shimizu at 01:04| Comment(0) | TrackBack(1) | 日記

2006年11月10日

オブジェクト指向が何となく解ってきた

先日書きました今読んでいる本の一冊「オブジェクト指向でなぜつくるのか」。3分の2ほど読んだところです。

オブジェクト指向でなぜつくるのか
平沢 章著
日経BP社 (2004.6)
通常24時間以内に発送します。


最初に思ったよりも薄い内容(同じようなことを何度も言っている)ことをさっ引いたとしても、広く浅く全体を網羅するように書いてあるので、入門用にはいいと思います(ただし、初めて「オブジェクト指向」という言葉を聞いたという人にはムリかなぁ。一度勉強しようとしたけど挫折したとか、実際にやり始めたけど全体像が掴めていないという人向き?)。

特に一番最初の「用語の洪水、譬喩の乱用、なんでもオブジェクト症候群」が理解を妨げている、という部分に納得。譬喩は譬喩として割り切ると解ってきました。

よく言われる「鯛焼きの型」と「鯛焼き」が、「クラス」と「インスタンス」の関係だとか言われる譬喩。

new で新しい string オブジェクトを作ったとき、その変数が表す「もの(オブジェクト=インスタンス)」はまだ値を何も持っていない訳で、何でもないけど、string オブジェクトなんです、と。

どこが鯛焼きなんだ!

とちんぷんかんぷんになっていました。その変数が表しているのは、つまりそのような(今で言えば「文字列を扱う」という)性質を持った「箱」になったということなんですね。文字列はリバースしたり、最初の一文字を取り出したり、文字数を数えたりできるということは string クラスの中で定義されている、と。その場合、「+」の記号は文字列の結合を意味するメソッドといういう風に勝手に変化しているわけです。

また、本質的には、それ以前は「処理」を中心に、

元データ →(入力)→ 処理 →(出力)→ 結果データ

という流れがあって、どう処理するか、という発想だったのを、

(元データ).メソッド

という形で、元のデータ(つまりオブジェクト)の「性質」として、メソッドを働かせると、何らかの結果がデータに対して行われる、と。それを新しいオブジェクトで受け止める場合もあれば、元のオブジェクトを変更する(Ruby では破壊的メソッド)場合もある。つまり、オブジェクトを中心として、そのオブジェクトに「成形しろ」「抽出しろ」と命令するようにプログラムを組む仕組みな訳なんでしょう。

今の理解は、こんなところです。

しかし、実際にプログラミングを重ねないと解らないでしょうね。
posted by n_shimizu at 02:29| Comment(1) | TrackBack(1) | 日記

2006年11月09日

履修問題続き

辰己先生のブログ立花隆の記事を紹介されていました。中でも次の部分が全くそうだと思いました。

 あまりに急激な学習内容水準の切り下げに、高校のカリキュラム編成が追いつけなかったというのが、今回の「高校必修科目の履修漏れ問題」の根本原因である。

 いわゆる「ゆとり教育」の問題が大声で叫ばれる以前から進行していた、中等教育における履修内容の切り下げ問題が大学側の入試水準ないし、大学での教育水準とのインターフェース不整合を起こしてしまっていたということである。

 その不整合を、高校での補習教育と予備校教育、大学での補習教育(大学新入生の知的水準が低下してしまったので、いま多くの大学で、新入生に補習教育が必要になっている)などによって塗抹してきたが、それがそういった手段では塗抹しきれないほどの矛盾をきたしてしまったということである。

やはり「物書き」というのは短い言葉でよくぞ言いたいことを言えるものだなぁと感心しました。

制度的なきしみをまず素直に認めるところから始めないと、いけないということです。

まじめにきちんとやるために、本校は、土曜日も授業をし、ふだんも週二日7時間目(午後4時まで)までやっているのですから。

そこには「ゆとり」は全くない、とだけ申しあげます。
posted by n_shimizu at 19:52| Comment(0) | TrackBack(0) | 日記

2006年11月08日

企業の講習会って……

MySQL の登録をしているとメールがちょこちょこ来るんですが、今日は「MySQLオフィシャルトレーニング」の案内が来ていました。

「Using MySQL」つまり基本編の方の内容は、

MySQL の概要・ インストールの概要
MySQL のリソース
mysql クライアント
基本的な SELECT の概要
WHERE を使用した絞込み
ORDER と GROUP の使用
MySQL のデータ型
テーブルの定義
初期データのロード
INSERT を使用したデータの挿入
UPDATE を使用したデータの変更
DELETE を使用したデータの削除
MySQL の拡張機能
MySQL の関数
JOIN を使用したテーブルの結合・ サブクエリ・ 一般的なエラー


自分のおごりかも知れませんが、全部解るなぁ、と思いました。もちろん勘所などを教えてもらったり、質問ができたりするんでしょうけど、この内容だったら必要ないな、と。2日間(6時間×2)

お値段を見てみると、

価格 : ¥126,000 (税込価格)


一万二千円って、この手の講習会にしては異常に安いと一瞬思いましたがよく見ると十二万六千円でした。おっと……。

二日間でその力がつくまでやりましょうということですから、企業にしてみると安いものなんでしょう。80000円ぐらいかなと思っていたので、ちょっと。

しかし、私たち教員は色々な研修の機会があり、夏にやった能城さんの研修などこのぐらい、三日間でしたから、もしかしたら二十万円ぐらいの価値があるものなのでしょうね。

とても恵まれているなと思いました。自分も何かで返していかなければいけませんね。
posted by n_shimizu at 18:32| Comment(0) | TrackBack(0) | 日記

2006年11月03日

本に囲まれる幸せ

本を読むことは大好きです。できれば一日中本を読んでいたい。最近忙しくて小説を読んでいませんが、行き帰りの電車の中では必ず何かしらの本を読んでいます。

今同時に読んでいる本。

たのしいRuby第2版

HTML+CSS HANDBOOK 2ND EDITION

はじめてのRuby on Rails

オブジェクト指向でなぜつくるのか

MySQLで学ぶSQL実践のツボ

他(笑)。

たのしいRuby はほぼ読了。しかし、残念ながら手を動かしながら(PCで試しながら)ではなく、電車内での黙読状態。でも読みたい本に囲まれているのは、それだけで幸せです。

しかし、この手の本はなんて高いのでしょう。2600円、2000円、2300円、2400円、2800円……。こんな本を気が狂ったように買ってしまうからお小遣いが足りなくなってピィピィしてしまうのですよね。

何気に仕事上関係あるものも含まれているのですが、とても図書館に入れてもらうものではなく、すべて自腹になってしまいます。ただ、これらのうち「はじめてのRuby on Rails」以外は良書です(この本はちょっと……)。自分の糧になることは間違いありません。

自らを向上させるものですから、納得するしかありませんね。もちろん、自宅に所有していたい、というのが買ってしまう最大の理由ですが。後で調べたいときに手元にないとどうしようもないんです。
posted by n_shimizu at 03:13| Comment(0) | TrackBack(0) | 日記

2006年11月01日

HTML勉強中

もうまもなく、webページの作成になる。ごく簡単にHTMLに触れてから、ソフトを使って作成する(これも一つ問題があるのですが)。

改めて HTML について勉強していると、なかなか難しいものですね。今まさに変化の途上にあるものというのは。

解ったこと。

ドキュメントタイプ宣言は HTML3.2 以降必須のはず。だが、多くはドキュメントタイプ宣言をしていないし、それを説明している情報の教科書も少ない。

HTML は「SGML」の一種だが、XHTML は「XML」の一種であって元となるものが違う(「SGML アプリケーション」、「XML アプリケーション」と呼ぶ)。

HTML はタグなどについて大文字小文字を区別しないが、XHTML は小文字しか許さない。また<br>タグのように要素の中身がない空要素について、XHTMLは<br />という形で/を付ける必要がある。

最近のブログなどは、基本的にその性質上からか XHTML が多い。

W3C 自体がそれほど権威を持っていない。

……説明が難しいですねぇ。

冒頭のソフトウェアを使う本校独自の問題点などについては、機会を改めてまた。
posted by n_shimizu at 02:08| Comment(5) | TrackBack(0) | 日記

2006年10月30日

やはり……

新潟県立26校で科目振り替え 情報を数学や理科に(asahi.com)

 発表によると、燕高や村上中等教育学校は、コンピューターの活用法などを学ぶ「情報」の年間時数のすべてで、新潟高や長岡高、高田北城高などでは同じく4分の3で「他教科と連携を図る」として、数学や化学の教科書を使っていた。


「コンピューターの活用法などを学ぶ「情報」」って違います、というつっこみは置いておくとして。

数学は若干あり得るかも知れないが、化学はあり得ない。絶対にあり得ない。

情報で使うことがあるとすれば、「数学」以外には「家庭科」「美術」「国語」「倫理」あたりでしょうか。教科のコラボとしては「英語」「社会」なら何となくイメージが浮かびます。

そう、「情報」=「理系」ではないんですよね。もちろん情報システムの方向やプログラミング等に進む場合は論理的な思考や計算が必要になります。しかし、教科「情報」が扱うのは現実に根ざす『情報』、身近な『統計』がやはりピッタリくるのです。

体育に半分分けている学校が「健康な心身を鍛える」とかなんとか言い訳していたのがなんとも。某都立高校水泳部顧問のM先生のようにPCをバリバリ使って水泳指導なんてしていますが、「情報」の内容ではありませんから。

逆にブレストして、これらの科目をどう「情報」で取り込むかを考えてもいいかもしれない(というかこれは夜の反省会ネタでしょうか。かなり自虐的ですものね)。

この辺はどんどんおおっぴらにしていただいて、「情報」の完全実施を望みたいところです。
posted by n_shimizu at 23:07| Comment(0) | TrackBack(0) | 日記

2006年10月29日

履修問題に敢えて言及する

まず、墨田川高校では、今回の履修問題に関して、まったく問題ない。必履修の科目はすべて行っている。

その上で、敢えて言う。土曜日が無くなった現状で、今の必修をクリアするのはかなり負担である。

現行の学習指導要領にはこうある。

すべての生徒に履修させる各教科・科目(以下「必履修教科・科目」という。)は次のとおりとし,その単位数は,第2款の2に標準単位数として示された単位数を下らないものとする。ただし,生徒の実態及び専門教育を主とする学科の特色等を考慮し,特に必要がある場合には,標準単位数が2単位である必履修教科・科目を除き,その単位数の一部を減じることができる。
(1) 国語のうち「国語表現I」及び「国語総合」のうちから1科目
(2) 地理歴史のうち「世界史A」及び「世界史B」のうちから1科目並びに「日本史A」,「日本史B」,「地理A」及び「地理B」のうちから1科目
(3) 公民のうち「現代社会」又は「倫理」・「政治・経済」
(4) 数学のうち「数学基礎」及び「数学I」のうちから1科目
(5) 理科のうち「理科基礎」,「理科総合A」,「理科総合B」,「物理I」,「化学I」,「生物I」及び「地学I」のうちから2科目(「理科基礎」,「理 科総合A」及び「理科総合B」のうちから1科目以上を含むものとする。)
(6) 保健体育のうち「体育」及び「保健」
(7) 芸術のうち「音楽I」,「美術I」,「工芸I」及び「書道I」のうちから1科目
(8) 外国語のうち「オーラル・コミュニケーションI」及び「英語I」のうちから1科目(英語以外の外国語を履修する場合は,学校設定科目として設ける1科目とし,その単位数は2単位を下らないものとする。)
(9) 家庭のうち「家庭基礎」,「家庭総合」及び「生活技術」のうちから1科目
(10) 情報のうち「情報A」,「情報B」及び「情報C」のうちから1科目

(平成11年3月学習指導要領より抜粋)

現場の観点から言う。

「世界史A」「理科基礎」「理科総合A」「理科総合B」「英語I」「オーラルコミュニケーションI」では受験には不十分。「家庭基礎」「情報」「体育」「保健」、芸術は受験科目では殆ど無い。

情報科の教員だが、公平を期すために「情報」も敢えて記述した。

本校では「弾力的な運用」のもと、土曜日もすべてではないが授業を行うことで年間33単位の授業を行っている。それでやっと成り立っていると言える。

必履修の科目をやらなくていいと言っているのではない。「ゆとり」の名の下に安直に土曜日を無くしたにもかかわらず、「浅く広く」の必履修科目が多すぎるのが問題なのだ。やらせるのならば単位数を確保するため土曜日授業をなくすべきではないし、土曜日休業を続けるのならば必履修を少なくする必要がある。

多分(想像だが)、今回「抜け道」をした学校は進学校でも「二番手」「三番手」の学校なのだろう。一番手、超一番手の進学校は、学習指導要領に従っても生徒達はしっかり受験に対応できるだろう。進学を余り意識しなくていい学校も問題ないだろう。

二番手の学校は、なんとか学校が頑張る必要がある。その中で、いいとは言わないが、問題となっている方向に行ってしまったのだと想像する。そこに現場の教員達の苦悩を感じてしまう。

そして、悲しいかな「情報」の名の下に数学等に振り返られている学校も多いのだろう。

これを打開するには土曜日を復活させることではないかと思う。4単位の違いは大きい。一週おきの2単位でもいいから(それでも3年間で6単位ある)、土曜日を復活させる。今の必履修をクリアするにはそれしかないのでは、と思う。現実に大学から要求される水準を高校生に果たすためには、それこそ必要なことだと思う。

こんなところで意見を言っても、文部行政には関係ないかも知れないが、大学受験制度が、もっと言えば東京大学の方針が変わらない限り、そのしわ寄せは生徒に降りかかるとおもう。

こういった趣旨の報道がまったく(ほとんど)なされていないことが不思議でならない。「やれ!やれ!」というだけでなく、「なぜそうなったのか」という構造的な原因をきちんと把握して、小手先ではない対応を望みたい。
posted by n_shimizu at 00:20| Comment(4) | TrackBack(3) | 日記

2006年10月26日

ウェブサーフィン(死語ですか?)

ネタフルを読んでいたらサディスティック・ミカ・バンドに付いての記事があり、初代の解散は「加藤和彦とミカの離婚が、ミカバンド解散の理由だとは知りませんでした。」との記述とウィキペディアへのリンクがあり、そこから加藤ミカ(福井ミカ)へのリンクへ飛ぶとYMOの Nice Age の中に出てくる「ニュース速報」はこのミカの声であり、その内容は当時来日して麻薬所持で捕まったポール・マッカートニーについてであり、「22番」とはポールの入っていた独房、「Coming up like A flower」の台詞はポールの発売されたばかりのシングルで歌われるフレーズだとか。

長い一文だ。
posted by n_shimizu at 01:07| Comment(0) | TrackBack(2) | 日記

2006年10月22日

phpMyAdmin導入

いままでずっと、MySQL の操作は「MySQL monitor」すなわちコマンドプロンプトから行ってきました。ところが前にも書いたような、スピードが付いてこられないことによる「文字化け」が発生したりして、SQL の結果が正しいかどうか良く解らないことや、ちょっとだけテーブルの中身を確認したい、ちょっとだけフィールドの定義を見たいというときに、「select * from tableA limit 20;」だとか、「show fields from tableB;」だとか入力するのがメンドウになってきました。

「limit 20」などを付け忘れたために1万行も表示し始めてしまったり(この場合、プロンプトを一度最小化して、画面に表示させないと素早く終わるのですが)、綴りを一つでも間違えるとエラーが起きたりと、メンドウです。

ちまちまやることで、とても勉強にはなるのですが、そろそろ効率性を求めても良いかなと。

Excelに結果を読み込むだけなら ODBCドライバを使って「取り込み」もできます。でも生のデータを扱っている訳ではないし、データそのものを加工することもできません。純正の「MySQL Query Browser」を使ってみましたが、いまいちShift-JIS のデータを読み込むと文字化けしてしまいうまくいきません。設定も英語なんでいまいち。

そこで、前に一度やってみて余りよく解らないなぁと諦めていた「phpMyAdmin」にチャレンジしてみました。こちらのあるレンタルサーバ提供会社の説明を真似しました。特にバージョンを「2.7.0」にすることや設定ファイルについてためになりました。
設定ファイル中の

'http://ドメイン名/任意の名前/'

の意味が分からず、「http://localhost/」だけにしたら画像が一切表示されませんでした。本来画像ファイルがある位置のHTMLソースを見ると、ルートから始まっているので、「ああ、カレントディレクトリの位置まで指定しないといけないんだ」と気がつきました。

'http://localhost/phpMyAdmin2.7.0/'

というフォルダ名まで含めてしていしたら画像のようにちゃんと表示されるようになりました。
phpMyAdmin


また、設定ファイル中のデフォルトの文字コードを「SHIFT_JIS」に指定しました。377行のところを

$cfg['DefaultCharset'] = 'SHIFT_JIS';

としたのです。それでも最初のページでもう一度、SHIFT_JIS を指定しないと正しく表示されません。

でも使ってみるとメチャ便利ですね。これからはこちらで行こうと思います。
posted by n_shimizu at 22:31| Comment(0) | TrackBack(0) | 日記

2006年10月09日

Rails・・・

Ruby を学ぼうと思ったきっかけは「Ruby on Rails」に手を出したくなったからでして、Ruby の勉強もそこそこに Rails のインストールをし始めました。

Ruby on Rails とはwikipedia のこちらに詳しく書かれているとおり、Ruby でかかれた「オープンソースのWebアプリケーションフレームワーク」のこと。

つまり、PHP などで書かれるような Web アプリケーションを、Ruby で簡単に書いてしまおうというフレームワークですね。

まっさらな Windows XP の方なら、「Instant Rails」をダウンロードしてインストールを実行するのが一番ラクなようです。50MBぐらいある巨大なzipファイルの中に、Ruby 本体、Ruby on Rails、Apache、MySQL、PHP まで入っているのですから。

でも、Apache も MySQL も PHP も、そして Ruby 本体すら既にインストールしてあるので独自に入れるしかないでしょう、ということでやりました。

大変でした。

まず、「RubyGems」をインストールしなければならない。これは Debian でいうところの「apt-get」、Perl でいう「cpan」、Windows でいう「Windows Update」(違うか)。つまり Ruby 周りのさまざまな環境を整えるためのダウンロードマネージャだということは後から知った。

ここから、「rubygems-0.9.0.zip」をダウンロード、解凍。できたディレクトにコマンドプロンプトからカレントディレクトリを移して、

ruby setup.rb

を実行。ずらずらずらーとインストール開始。ところが、「ssleay32.dllが見つからなかったため・・・」うんぬん。と言われ、「zlib.so」も無いとか言われる。

ssleay32.dllが見つからない

むむむ。そこで Google さんに聞いてみると、この方のブログに到達。現象が全く同じでした。

zlibに関しては、ここからダウンロード、解凍すると「bin」「doc」「include」「lib」というフォルダができます。

うーん、Ruby のインストールフォルダによく似ているので強引にフォルダごと上書きコピー。何も言われなかったのでそのまますんなり入ったと思います。

つづいて「ssleay32.dll」の件ですが、再び Google さんに尋ねるとこのページにたどり着きました。どうやら OpenSSL がらみの何かのようです。

その中に書いてあるとおり、このページの一番最後にある「OpenSSL binary packages」というコーナーの「Windows 0.9.7e」の zipfile をダウンロードして解凍。中にあるlibssl32.dll をコピー、同じフォルダに貼り付けてファイル名を「ssleay32.dll」にリネーム。ssleay32.dll と libssl32.dll は中身が同じらしいのです。これを「c:\windows\system32」に放り込みました。


これで準備OKのはず。もう一度「ruby setup.rb」を実行すると、ずらずらずらーと画面が流れて何事もなく終了。RubyGems が入ったようです。

そこで、

gem install rails --include-dependencies

というコマンドを実行すると、だまりこくってしまいました。ん? と思うとダウンロードを始めました。ああ、「apt-get」と同じというのはこういうことかと、その時点で初めて解りました。

Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.1.6
Successfully installed rake-0.7.1
Successfully installed activesupport-1.3.1
Successfully installed activerecord-1.14.4
Successfully installed actionpack-1.12.5
Successfully installed actionmailer-1.2.5
Successfully installed actionwebservice-1.1.6
Installing ri documentation for rake-0.7.1...
Installing ri documentation for activesupport-1.3.1...
Installing ri documentation for activerecord-1.14.4...
Installing ri documentation for actionpack-1.12.5...
Installing ri documentation for actionmailer-1.2.5...
Installing ri documentation for actionwebservice-1.1.6...
Installing RDoc documentation for rake-0.7.1...
Installing RDoc documentation for activesupport-1.3.1...
Installing RDoc documentation for activerecord-1.14.4...
Installing RDoc documentation for actionpack-1.12.5...
Installing RDoc documentation for actionmailer-1.2.5...
Installing RDoc documentation for actionwebservice-1.1.6...

そしてそのまま無事インストール終了しました。

でもどうやってつかうのでしょう。今日はこれで終わりにします。

【追記】
コマンドプロンプトから

rails

と打ってみると、「iconv.dllが見つからない」とか言われます。前述のブログの通り、ぼこぼこ入れていかなければならないようです。ま、Path が通っているみたいなので、うまくいけば、

rails path/to/your/new/application
cd path/to/your/new/application
ruby script/server

という手順でうまくいくようです。先は長そうです。Web アプリケーションが目的なら、素直に PHP の勉強をしていた方が良さそうですね……。
posted by n_shimizu at 23:20| Comment(2) | TrackBack(0) | 日記

Windows Vista

今日、とつぜん Windows Vista を試してみたくなった。さっそくサイトに行ってみる。

どうやらRC2の発表があったが、未だにダウンロードできるのは RC1 だけのようだ。まぁいいや、と思って細かい手続きを経てダウンロード開始。

なんと3GBあるようで、小一時間たった現在、100%にようやくなるも、まだ終わった気配がない。

もう寝ようと思う。続きはまた今度。
posted by n_shimizu at 02:14| Comment(0) | TrackBack(1) | 日記

2006年10月06日

オープンソースマガジンが休刊だそうで

オープンソースマガジンも休刊に

スラド早っ!

ここのところの相次ぐコンピュータ雑誌の休刊ラッシュには寂しさを憶えます。

旧 UNIX USER を八丈島で定期購読していたのはずいぶんためになりました。

FreeBSDやLinux のインストールできないよ〜。

とか、

X が動かない〜。

等と言っている時が一番役に立っていたのでしょうか。今は殆どするするする〜と使えてしまいますから、webもあるので雑誌としての必要性はないのでしょうね。すべてが web に飲み込まれていく一つの結果なのでしょう。

と言っている間に必要な仕事を全くしないまま、もう寝ようと思っている n_shimizu でした。ほんとにマズイ。
posted by n_shimizu at 02:16| Comment(0) | TrackBack(0) | 日記

Ruby の勉強2

いま勉強している本は次のものです。

たのしいRuby
高橋 征義著 / 後藤 裕蔵著 / まつもと ゆきひろ監修
ソフトバンククリエイティブ (2006.8)
通常1-3週間以内に発送します。



やはり、言語は本をきっちり読んでいくのは大切ですね。マニュアルも大切です。何事もそうかもしれませんが、利用法・活用法の本、解説本、マニュアル、それらを偏り無く、この順番に見ていくのがいいかと(マニュアルは常にみるものですが)。

さて、先日の短いソースを少しいじってみました。

require "cgi"
filename = ARGV[0]
file = open(filename)
while text = file.gets do
  ntext = CGI.escapeHTML(text)
  ntext.gsub!(/\t/){ |matched|
    '  '
  }
  print ntext
end
file.close

前回、
3回も違う変数に入れ直しているところなどもっとスマートにならないかなぁと思いますが、

と書いた部分を直してみました。まず「変数」とだけ思っているのが間違っていますね。正確には stringオブジェクト ですね。文字列のオブジェクトに対してsubメソッドやgsubメソッドを実行していた訳ですが、「!」を付けて「破壊的メソッド」にすることで元のオブジェクトを変更することで、改めて違うオブジェクト(n2text,n3text など)にする必要がなくなりました。

オブジェクト.メソッド

の形を、「オブジェクトに対してメソッドを実行する」という考え方ではなく、オブジェクト指向では「オブジェクトにメソッド(メッセージ)を送る」「オブジェクトはメソッドを受け取る」と解釈するようです。

sub、gsub は stringオブジェクト の一部を置き換えるメソッドですが、置き換えた後は別の stringオブジェクトを生成しますが、sub!、gsub! は元のオブジェクトを変更するメソッドと、種類が違ったのですね。

まだ今書いている文章も後から考え方として間違っているのかも知れませんが、今の理解ではそんな感じです。

一応、今の理解で一行ずつ解説を入れてみます。

require "cgi"

添付ライブラリ「cgi」を利用してタグをエスケープするため(使ってみたかった)requireしています。

filename = ARGV[0]

コマンドラインから引数として指定された情報をデータとして受け取る「ARGV(アーグブイ)」という配列オブジェクトを使い、その一つめ(0番目)をfilenameという変数(stringオブジェクト)に入れています。

file = open(filename)

filename に入っている名前のファイルをオープンして「file」という名前のファイルオブジェクトを生成しています。

while text = file.gets do

while 〜 do 〜 end により、ループさせています。このとき、
text = file.gets
には二つの意味があります。一つは file オブジェクトに gets メソッドを実行し、開いているファイルから1行取り出して変数text に代入していること。もう一つは、この代入した結果が一つの値(通常は代入しているもの)をもち、while の条件判断として使われること。

通常1行ずつ読み込まれているときはループを繰り返しますが、最終行が終わった後は、getsメソッドは「nil」を返すので、while を抜け出す訳です。Perl と同じですね。

ntext = CGI.escapeHTML(text)

CGIクラス(添付ライブラリ「cgi」に含まれる)のescapeHTMLメソッドをtextに実行してntextに入れています。
これによりタグの<や>が置き換わります。

ntext.gsub!(/\t/){ |matched|

ntextに対して、Tab を探します。sub、gsub は string オブジェクトに対して置換をします。gsub は複数あったらすべて置換します。一つずつ行うために{ }でループさせ、|matched| の部分で、一応「matched」に代入しています(使っていません)。「!」が付く「破壊的メソッド」なので ntext を置き換えます。

'  '

Tab を「  」つまりスペース2個に置き換えています。

}

ループ閉じ。

print ntext

置き換えた ntext を標準出力。

end

while の閉じ。

file.close

ファイルオブジェクト file をクローズ。

そんな感じだと思います。
posted by n_shimizu at 00:12| Comment(0) | TrackBack(0) | 日記

2006年10月05日

何のソフトを入れたら重くなるのか

がんばれ!!ゲイツ君という知る人ぞ知る老舗コラム(アンチマイクロソフトの)があります。

IE4.0 あたりでは「もっともだ、もっともだ」と読んでいましたが、実はいまでも続いていまして、さすがにXP時代では、「まぁ、そこまで言わんでもよかろう」という気になりながら、斜め読みしています。

さて、アンチMSの話はどうでもよくて、この記事の中の更にリンク先が結構衝撃的だったのでご紹介します。

何のソフトを入れているとWindowsが重くなるのかリスト

堂々の一位は「Norton Internet Security 2006」です。結構堪えました。ま、私の使っているのは2005、正確に言えば、「Powered by BBセキュリティ」というYahoo!BB 契約者が使うオプションです。月600円も払っているのですから安くないです。家計から(Yahoo!BB の料金と一緒に)堂々と払ってもらえるから入れている、と言う理由です。あと、以前から使っていたので慣れているというのもあります。

ただ、最近、フリーズの原因はこれかなぁという自体がなきにしもあらず。最近フリーのものでも結構良さそうなものもあり、有料でも軽いものがいいなあと思っていたのですが、今回の記事では結構、いえ「かなり」ノートン先生とはさようならしようと思う動機になりそうです。

妻のPCは新しいからかなり速いのです。しかし、新しいだけではなくやはり「ソフトウエアを余り入れていない」というのも大きいんだな、ということも良く解りました。この表と比較して自分の環境を考えると、

1.Norton Internet Security 2005(40%ぐらい?)
2.フォント500個(20%ぐらい?)
3..NET Framework Runtime2.0(8.89%)
4.OpenOffice 2.0.3(5.33%)
5.DivX 6.3(4.89%)
6.DirectX 9.0c(4.89%)
7.Java Runtime 1.5.0.06(4.00%)

という感じで、どんどん遅くなっているわけですね。1.2.は当てずっぽうでの数字です。この数字から見ると、自分のPCは本来の性能の30〜40%のスピードで使っていることになるのでしょうか(誰か数字に強い人、教えてください)。

色々な意味で、結構ショックでした。
posted by n_shimizu at 02:07| Comment(0) | TrackBack(0) | 日記

2006年10月03日

Rubyの勉強

今Rubyの勉強をしています……。

続きを読む
posted by n_shimizu at 08:17| Comment(0) | TrackBack(0) | 日記

2006年09月25日

Ruby

プログラミング言語の一つに「Ruby」というものがある。とっても簡単に言ってしまうと、Perl + JAVA = Ruby らしい。Perl のように(Perl をお手本とした)インタープリタのスクリプト言語、正規表現も使え、JAVA のようにオブジェクト指向を備えている、とか。

この「オブジェクト指向」が今まで自分の中で頑として受け入れられない発想で、あらゆるものをオブジェクト(もの)として扱いますよ、とか、よく鯛焼きと鯛焼きの型の例でクラスとオブジェクトを説明したりしています。

いわく、「クラスというのは鯛焼きの型、オブジェクトは型からできた鯛焼きそのものであり、鯛焼きの型自体は実体ではなく、そこからいくつでも鯛焼きを作れるように、クラスそのものは定義のことであり、クラスからオブジェクトをいくらでも作ることができる」などなど。

へー、ああそうですか。という感じで、そこからソースコードを読み始めるとやはりさっぱり分からない(VB を始めとする .net もそうでした)。

でも最近は、Perl もオブジェクト指向ですし、PHPもそう。何をやるのでもプログラミングはオブジェクト指向が飲み込めないと先に進まない感じです。

そもそも、「オブジェクト」にする利点は何か。

内部構造が分からなくても入力と出力だけで考えることができる(隠蔽?)
ほんの少し異なるような動作をするものを流用できる(多態性や継承?)

C言語の関数をさらに突き詰めた発想なんでしょうか。C++ や C# などはそうなんでしょうか。

読む本が悪いのか、僕の頭が悪いのか、疑問点が色々湧いて良く分かりませんでした。

・何を「クラス−オブジェクト」の関係にするといいの?
・クラスの定義とはどこまで定義すれば使えるの?
・クラスを実体化する作業はなに?
・定義したものをどうやって使うの?
・定義したもの以外は何も使えないの?

上記の疑問は多分に重なっているのでしょうけど、解っていないから疑問自体が多分本質なのでしょう。

今月の「日経ソフトウェア2006年10月号」の付録CD-ROMに「ずばりわかる!Ruby」というものがありました(本来付録の小冊子になるべきものののhtmlバージョン)。早速印刷して読んでみたところ、なんとなく分かってきました。

実体化?するには「.new」とかして「=」は代入文ではなくてオブジェクトを作る作業なんだなぁということや、定義するのはメソッドとして定義するんだなぁとか、「継承」すれば元々あるものを利用しながら自分での定義を付け加えることができるんだなぁ、などなど。

もう少し形になったら、ここでも書けるようになるかも知れません。

今のところ少し概念が解りかけたというところです。
posted by n_shimizu at 02:56| Comment(0) | TrackBack(0) | 日記

2006年09月21日

web2.0 の RSSリーダー

先日ノートパソコンのメンテナンスを行ったときに、色々なものをバックアップしました(フルバックアップとは別に)。メールソフトのアドレスブック、IEのお気に入り、マイドキュメントやデスクトップで要りそうなもの、などなど。

しかし、通常の生活が続く中で一番違和感を憶えた(それで困ったほどではない)のは意外にも「RSSリーダー」でした。通常はPCに常駐している「Headline-Reader」を使っています。これで仲間のブログの更新をチェックしている訳ですが、全く分からなくなりました。お気に入りにフォルダも作っていない自分に気がつきました。ま、誰かのブログにたどり着けばリンクで行けるのですが、すべてを網羅するためにはいちいち見に行かなければなりません。

そこで、今流行の「あちら側」の必要性が出てきたわけです。

お、結構使える?!と思ったのは、livedoor Reader でした。

livedoor Reader

続きを読む
posted by n_shimizu at 18:03| Comment(2) | TrackBack(1) | 日記

2006年09月19日

七高祭

9月16日、17日と二日間にわたって七高祭(文化祭)が行われました。

個人的に携帯で撮った写真を載せます。

正門のアーチ、校舎にはクラスごとの垂れ幕が見えます。
七高祭正門
続きを読む
posted by n_shimizu at 02:14| Comment(0) | TrackBack(0) | 日記