April 02, 2005April 07, 2005April 09, 2005科学教育について思う
[Timely]
NHK教育で『ETV特集 新”科楽”教育のススメ』というものをやっていました。最近の科学教育はつまらない、どうすればよいか、という内容でしたが、納得できる部分がかなりありました。 具体的には未来ロボット技術研究センターの古田さんという人が言っていた、『今の教育はプラモデルのつくり方を教えているだけ。それだけではプラモデル以上のものはつくれない。』という言葉。同感です。 とりあえず、よい刺激を受けました。今年度のうちに自律飛行のアビオニクスの開発を完了して次なるステップにすすみたいなぁ。はやく飛ぶモノも地面モノに追いつきたいと思う次第です。 April 15, 2005PukiWiki RSSの文字化け
[Computer]
PukiWikiを某サイトで構築したのですが、なぜかRSSが文字化けして読めない(IEのXMLプロセッサが『無効な文字です』エラーを吐く)、なんてことがあったので、どうすれば直るかを調べてみました。 原因は単純でXML宣言のところにencoding="UTF-8"にも書いてあるにも関わらず、日本語の文字コードがEUC-JP(内部コードのまま)になっていたことが発覚。要は文字コードの変換が行われていなかったみたいです。更に調べてみると、日本語の文字コード変換にはmbstringというモジュールが必要な様子。どうやらこれが組み込まれていなかったみたいです。 mbstringを組み込むためにPHPのリビルドをしました。configure時に--enable-mbstringオプションと--enable-mbstr-enc-transオプションをつけるとよいみたいです(インストール手順)。リビルド、インストール後、RSSが正しいエンコーディングで表示されるようになりました。 April 20, 2005April 23, 2005morph3の脳みそこの間、用があって秋葉原の『ツクモ ロボット王国』にいってきました。サーボとかメカメカしたものがいっぱいあるのですが、そこで物欲を掻き立てるものを見つけてしまいました。morph3の脳みそです。 morph3というのはfuROがつくった1体確か3,000万円もするロボットです。それもそのはず、morph3には体中にセンサーを積んでいて、その数なんと100を越えるという電子技術の結晶なのです。 その脳みそですがシマフジ電機という会社の製品でVR5500(800MIPS@400MHz)を積んだVR5500-ATMでした。お値段128,000円。でも制御用のエンジンとして特化されている(=余分なEtherとかごちゃごちゃしたものがついていない)ことと、非常に小さい(50 x 50 mm)ことを考えるなら市場はあると思います、というか僕は欲しいです。
おまけですが、僕が開発中のSH4基板も試作フェーズに移行しました。どうなることやら。 April 27, 2005雲取山
[Mountain]
話が前後しますが、先々週の土日(4/16と17)に東京の最高峰である雲取山(2017m)に登ってきました。 コースは埼玉県側の三峰→(タクシー)→大血川~お清平~雲取山~奥多摩小屋~石尾根縦走~奥多摩駅。 登山は久しぶりですごく楽しかったです。視界は例によってゼロでしたが。これで雲取は通算成績1勝2敗。いずれも雨は降っていませんが、なかなか新宿の高層ビル街を拝めません(頂上から見えるんですよ)。 April 29, 2005JavaなRuby
[Computer]
最近Rubyでcgiを書いています。で、Rubyで外部モジュールを読み込む方法について思うことがあるので記事にしてみます。 Rubyでは外部ファイルを読み込む方法がrequireとautoloadの2通りあります。requireは require 'external.rb'
のように外部ファイルを指定してするだけなのに対し、autoloadはautoload('External', 'external.rb')
のように読み込むクラス・モジュール(以下まとめてクラスと呼びます)と読み込むべきファイルの2つを指定します。大きな違いはrequireは指定された時点でそのファイルを読みに行くのに対し、autoloadは指定したクラス(先ほどの例でいうとExternal)がでてきた時点ではじめて外部ファイル(external.rb)を読みに行きます。
クラス・モジュールが最終的にいっぱいできたとしても、cgiなんかだと状態遷移の過程でその全てを使うということは少ないのではないかと思います。そこでautoloadを活用し効率的に外部ファイルを読みにいってはどうだろうかと思いました。 考えた方法は、ファイル名とそのファイル内で定義するクラスの間に命名規則を設け(例えばExternal.rbにはExternalというクラスが定義されている、これがJava的たる所以)、autoloadを指定しておくというのはどうでしょうか。 AUTOLOADABLE_DIR = "autoloadable"
こんなコードを書いて、autoloadさせるファイルをAUTOLOADABLE_DIR下に配置すればよいと思います。Dir.open(AUTOLOADABLE_DIR).each{|file| if file =~ /(.+)\.rb$/ then autoload($1, "#{AUTOLOADABLE_DIR}/#{file}") end } これで無駄なクラスを読み込むことなく、かつ気軽にコーディングできると思います。どうでしょう? |
かれんだ~
スポンサード リンク
|