Monthly Archive for August, 2003

List Structure in FLASH ActionScript

おめおめ泣き寝入りするのもイヤなので,リストのクラスを書いてみた.

function ListElement(obj) {
    this.obj = obj;
    this.next = null;
}
function List() {
    this.head = null;
}
// 要素をひとつ追加
List.prototype.append = function(obj) {
    elm = new ListElement(obj);
    // リストが空のときは特別扱い
    cur = this.head;
    if(cur == null)
        this.head = elm;
    else {
        while(cur.next != null)
            cur = cur.next;
        cur.next = elm;
    }
}
// 全要素を順に出力
List.prototype.showAll = function() {
    cur = this.head;
    while(cur != null) {
        trace(cur.obj);
        cur = cur.next;
    }
}
 
// main
list = new List();
for(i=0; i<10; i++) {
    list.append(i);
}
list.showAll();

んーイマイチ.

ActionScriptでOOP – 継承

土曜ということで,趣味のプログラミングです.Flashを使って遊ぼうと,ActionScriptをごにょごにょしています.ActionScriptは,いちおうObject-Orientedな言語ということなので,クラスとかつくっちゃってー,継承とかしちゃってー,という風に書きたいのです. ところがどっこい,ActionScriptでOOPをするのはとってもキモチ悪い. まず,クラスの定義がヘン.例えば,Hoge っていうクラスをつくりたいとしましょう.その場合,

function Hoge(property) {
    this.property = property;
}

なかんじで定義するのです.つまり,コンストラクタを定義することでクラスを定義する,と.メソッド定義はこんなかんじ.

Hoge.prototype.some_method = function() {
    return some_value;
}

まるでLispの名無し手続きみたいです.

更に,継承したいときも厄介.Hogeクラスを継承するSubHogeクラスを定義するには,

SubHoge.prototype = new Hoge();

としろとマニュアルにあります.もうサブイボが出てきそうです.おまけに,この方法では全然継承されません.

SubHoge = function() {
    super();
}

という文を,前に書いておく必要があるのです.そんなん知るかーい.

というわけなので,ActionScriptでOOPするのは苦痛だらけなヨカーン.

ちなみに,Rubyでおなじことをしてみると:

class Hoge
  def initialize(property)
    @property = property
  end
  def some_method
    return @property
  end
end
 
def SubHoge < Hoge
end

簡単ですねー.

MIT Everyware

Every lecture, every handout, every quiz. All online. For free. Meet the global geeks getting an MIT education, open source-style.

ちょっと前に聞いた話でもあるのですが,憧れのMITが全講義をWebで公開するというお話. 「ノーベル賞ものだ!」と興奮する人がいる傍ら,実際に公開している人たちにしてみると,生徒の顔が見えないというのはやはり(・A ・)イクナイ!,という,ありがちな問題を感じていたり,Webにある情報は所詮以前の講義のスナップショットにすぎず,昨日の講義を聞き逃したからといって,補講になるわけではないから(´・ω・`)ショボーン,といったMITの生徒の意見,などもあります. やってみていろいろ問題があることがわかってきた,なのでこれからそれらをどう解決していくか,ていうことですね.

でも,やっぱり天下のMITなわけで,自分の学校の講義では退屈なだけだった学問が,教える人が違うとぐんぐん引きつけられたりする,という例も書かれています. そう,勉強するときって,自分だけじゃなく先生がどんな風であるかによって,その学問の容姿が変わってしまうから.

価値ある講義アーカイブを公開するってことは,ビジネス的な面はどうかしらないけど,人類の知的財産にすごく寄与すると思うのです. 価値のない講義を公開したところで,無駄情報が増えるだけ.特に某教授のような,何十年も同じ講義資料を配って毎年毎年くだらない話をするだけ,部屋に生徒は2,3人(しかもその教授の研究室の学生が義理で出席)しているような講義なんてステステ( ´∀`)つ ミ

あ,でも「この講義はダメ講義」ってのを知らしめるためにはいいのかも.

Linux as Infrastructure

書いたのはIan Murdock – Debianの創始者で10年来のLinuxユーザ・開発者・提唱者。Progeny社の共同創業者である。

僕は元Debian派であり,現在も研究でDebian使いまくりなわけで,Debian創始者さんの言う内容には納得させられます.やっぱりハコ売りの Linux てのにはどうしても馴染めない.現在のRedHatがMSのようにサポート期間をどんどん短くしていることとか. で,現在は FreeBSD 教に改宗しているので,Linux (特にDebian) が如何に個別のプロジェクトの寄せ集めによって成り立っているか,てのが分かります.FreeBSD なんかだと,portsを入れるまでもなくデフォルトで必要なものが一式入っちゃうわけで,一枚岩なシステムだなー,と.

で,Linuxはインフラ技術だってところ.最近の流れである組み込みLinux(Linuix-ZaurusとかコクーンとかTivoとかその他諸々)を見るにつけ,なるほどねー,と思う.一般ユーザにとってOSなんてなんでもいいのです.まず,自分が思うことを違和感なく実行できるものであればなんでもいいのです.それからサポート,セキュリティ. あぁ,頼むから住基ネットをOpenで非プロプラなソフトで構築してください.

カテゴリを exclude したい

This hack adds the ability to specify categories not to display when filtering categories in the tag.

Oh, that’s just what I needed!

これを使えば、例えば moblog をやってるときに、category=moblog とかしておいて、トップページには とかしてやることで moblog セクションを隠すことができるのです。 で、moblogカテゴリにはそれ用の Template をつくる、と。

そういうことでどう? > けんたろ

ということで、早速導入してみました。 パッチもつくったんですが、Context.pm のコメントに、

This code cannot be redistributed without permission from www.movabletype.org.

とあったので、公開できないです。

まぁとりあえず、kompeito.org な weblogっ子たちは NOT category をつかえるようになったですよ、と。

長くなりすぎたページを分割して表示する方法

MovabletypeのArchive機能って便利なんだけど、ひとつのカテゴリに全部ドババーっとん百件もエントリーがあったりするとイヤーンな感じ … こんなすばらしいplugin(“MTPaginate”) があったとは!ということで早速導入しました。

おぉ〜,やっぱプラグインで解決できるんだ. うちのとこも無駄にエントリ数が多いし,早速やらねば.