世の男性諸君はよく読んでちゃんと理解しておくように。2006年11月30日 16時11分26秒

微妙に関連するかも。いや、しないか。

しかし月経周期を報告させてスケジュールに組み込むってのも何だか尋常ならざる管理完璧主義だな。数ヶ月先を見越して、月ごとにスケジュールに余裕を持たせておくのが正しいスケジューリングなのでは? 女性は月一ぐらいで辛い日があることを想定してスケジュールを組むのは正しいけど、辛い日がどの日とどの日であるってわかってないとスケジュール組めないよーなんてのはむしろスケジュール組む側の人間が無能なんじゃねーのかとか思わずにはいられないわけだが。保守業務だって、この日は彼女は辛くなるから替わりに誰々さん入ってねじゃなくて、いつ誰が辛くなっても大丈夫なように人員配置&教育しておくべきなんじゃないの? って気がするんだが。

「実際そうそううまく行くもんでもないんだよ」なんて泣き言が許されるんなら、そもそも月経周期の報告義務ぐらい勘弁してやれよと。

ついでに、冬季は全員が一度はインフルエンザで一週間ぐらい休んじゃうことを前提にスケジュール組むとよろしいんではないかと\(^o^)/。年度末に向けて一番忙しくなる時期? そもそも年度末に向けて仕事を溜め込む文化をどうにかしろと。

型宣言の必要性2006年11月30日 16時33分28秒

矢印演算子 -> は、何の為に残しておきたかったのかしら?

高木センセーがブクマで以下のように批評していらっさる訳ですが、

例えばJavaで、「LinkedList x = new LinkedList()」と書かずにわざわざ「List x = new LinkedList()」と書くことの意義を理解していない。

それは恐らく instance (Perl 的に言えば invocant) の型ではなくて、それを受け容れる変数そのものが、受け容れる値の型を限定することの意義、ということなのでしょう。確かに、

home = getenv('HOME'); /* home is char * because getenv() returns char * */

getenv()char * を返すから、homechar * だ」という解釈がまかり通ってしまうと、将来的にはこの home という変数には、char * 以外の型の値が入ってきてもいいように見えます (実際 Perl はそんな感じの世界ですね)。Perl は値の型よりもコンテキストが優先される言語であるため、大抵の局面においてはそれで問題がないわけですが、一方でオブジェクトを扱う局面においては、bless された invocant に対して refisa メソッドで所属する package (一般にいうところの class) を調べたり、can メソッドで特定のメソッドが存在するかどうかを調べたりすることによって型の厳密性を担保する必要も出てきます。

そういう意味では、Perl の世界観ってのは、ある程度の物事の厳密性に対して、「そもそもプログラマーが間違えなきゃいいんじゃん」という価値観がまかり通っている部分もあるわけですが、その一方で、間違ったハンガリアン記法の使われ方がその手の間違いを誘発しまくっていたりする現実があったりして、そして世の中の Java やら C++ やら D やらのコンパイラが頭よくなってきてくれたおかげでそもそも型を意識する作業はコンパイラに任せておけばいいという考え方がやっと定着してきているんかなぁというこのご時世において、再びプログラマが型を意識しなきゃならんような言語を、それもスクリプト言語としてではなくてアセンブラのマクロとして提供することの意義ってそんなにあるのかなぁっていう疑問はあるわけですが。。。

しかし次回のテーマが代入演算子としてよく使われている = であるということで、もしかしたらこの辺のことについても実は十分認識していて、その解決策を次回は述べられるのかなぁなどという期待もあったり。。。つまり、C++ では通常の代入は値渡し (すなわち、コピー) で、ポインタの代入が参照渡しになるわけですが、Perl では (摩訶不思議なコピーコンストラクタのカラクリは存在するものの) = は参照渡しとしてしか使えないので、この辺をどうにか切り分けられればいろいろと解決できる問題もあって、そういう世界観ならそもそも型宣言なんて不要なんじゃねーの、という論展開になるんじゃないかと予想するわけですが。。。違うかなぁ? (((((((((/;^^)/


Fri Dec 1 12:47:32 JST 2006 - 追記

tb どもです。

型推論でhomeの型を決定しているのだから、char *以外の型の値が入るわけ無いと思います。

なるほど。だとすると、ますます高木氏のおっさられる通りですやんね。

class Animal {
  // ...
};

class Dog : extended Animal {
  // ...
};

class Cat : extended Animal {
  // ...
};

class DogsCompanions {
  members as list<Dog>;
  iterator_counter as int;
public:
  push(dog as Dog) as void { members.push_back(dog); }
  shift() as Dog { return members.pop_front(dog); }
};

class CatsCompanions {
  // ... (似たような内容)
};

enum ANIMAL_KIND {
  ANIMAL_DOG,
  ANIMAL_CAT,
};

DogsCompanions dogs;
CatsCompanions cats;

getFavoriteAnimal(kind as ANIMAL_KIND) as Animal{
  switch (kind){
    case ANIMAL_DOG:
      animal = dogs.shift;
      break;
    case ANIMAL_CAT:
      animal = cats.shift;
      break;
    default:
      assert(0);
      animal = NULL;
      break;
  }
  
  return animal;
}

さて、getFavoriteAnimal() 関数内の変数 animal は、何の型としてコンパイルされるべきでしょう?

# そもそも、その設計は無いだろうとか言われちゃうと、ちょっとアレなんですが。。。

上記のコードで、変数 animalAnimal 型の変数として認識するようコンパイラに要求するのはさすがに無理があるように思います (return 文を根拠に類推すれば不可能ではないですが)。だとすると、コンパイラは以下のいずれかの理由でエラーを吐くしかありません。

  • 型の曖昧さを解消するよう要求するエラー : 例えば、if 構文や switch 構文の中で使用する変数は、事前に型宣言が必要、とか。
  • 最初の出現時点で Dog 型の変数であると認識し、Cat オブジェクトを代入しようとする箇所で型不一致エラー。

どちらにせよ、変数 animal は事前に型宣言が必要になってしまいます。

# ついでに言うと、NULL は本当は NULL と書くべきではない気もするけど。

片腹が激痛2006年11月30日 18時18分26秒

以下、強調は T.MURACHI による。

安倍首相直属の教育再生会議の「規範意識・家族・地域教育再生分科会」(第2分科会)は29日、来年1月に打ち出す第1次報告の素案をまとめた。「子どもの『心の成長』のために」と題し、「家族の日」を創設し、家族一緒に夕食を取ることや、協力・助け合いの重要性を実感してもらうため体育の時間に「30人31脚」を行うことなどを提唱している。

(中略)

また、二人三脚を30人で行う「30人31脚」のほか、全国の小中学生が最高レベルの芸術を鑑賞する機会を与えること、いじめなどを題材とした演劇の鑑賞や演技を通じて「お互いの心の闇や過ち」を理解させることを提唱している。一方で、子どもに悪影響を与える番組を通報する窓口組織の新設も求めている。

    _, ._
  ( ゚ Д゚)
  ( つ旦O
  と_)_)

    _, ._
  ( ゚ Д゚)   ガシャ
  ( つ O. __
  と_)_) (__()、;.o:。
          ゚*・:.。

参った。ホンの一時でも安倍氏の教育改革路線に期待したおいらが馬鹿だったよ。

cover
大人問題
(五味太郎 / 講談社文庫)

いつだったか、「大人問題」から以下のセンテンスを引用したことがあったような気がするんだけれど、もう一度引用しておこうと思う。大なわとび教育がいかに間違っちゃった手段であるかということをよく認識して頂きたい。

■ いつだったか「大なわとびでギネスブックに挑戦」というテレビ番組がありました。学校の先生が生徒百何人を使って、記録に挑戦していました。いや、そうじゃない、生徒からの発案だ、自主性だ、と言うでしょうけど、それは甘い。見ているうちに、重たくなってきました。まあ、半分ぐらいはそういう馬鹿騒ぎが好きな、はしゃいじゃうタイプの子もいるんでしょうが、その一方には必ず、必死な、悲壮な子がいるわけです。
 結果的には成功しましたが、記録達成の瞬間にそういう必死な子たちが泣き出しました。それを、カメラで映してる大人は「成功したから感激して泣いている」と実に脳天気に見るわけです。
 冗談ではありません。ぼくにはその子たちがどんな気持ちだったのか、九割ぐらいはわかる。もう命がけです。失敗したら「おまえの足が引っかかったからだ、お前が真剣にやらなかったからだ」という形で村八分だったに違いないのです。だから、もし失敗するなら、みんなでいっぺんに引っかかってほしいぐらいのことを本気で思っていたんです。
 たかがなわとび、たかが遊びだからこそこわい。そういう教師はたぶん、みんなが心を合わせて一つのことを成し遂げた、それを自分がリードした、いい思い出ができた、ぐらいにしか思ってないんだろうなと思います。

そして氏は、そういった全体主義的な考えをよしとする姿勢を、戦争体制下の教育になぞらえて批判を展開していくわけですが、続きは是非本を買って読んでみて頂きたく。。。

大体ね、体育の授業で教えることじゃないですよ。そもそも道徳自体が授業として教授されるべきこととは思ってないですが、それでも何が悪で、どうあるべきかってことは、回りくどい方法で体験してもらおうなんて形ではなくて、はっきりと口で、言葉で伝えるべきです。定義どおりに。で、その言葉 (教え) の本質については、各自が各自の生活の中で、各自のコミュニケーションの中で、学んでゆくべきです。だから、子どもの周辺のコミュニケーションを改善する為に、街ぐるみ、地域ぐるみでの、人間の「見える化」を推進するような政策であれば、おいらも期待します。でも、「助け合いの気持ち」とやらは、「全体主義」を奨励するような授業内容では到底培われません。こんな小手先の、しかも間違った政策内容を以って、「教育改革路線」とか言ってるようでは、片腹痛いです。

「子どもに悪影響を与える番組を通報」ってのも、ドリフターズが全盛だった、かれこれ 20 ~ 30 年も昔の発想じゃないですか。。。orz

以下、参考サイト。

rms2006年11月30日 20時18分52秒

ちょwwwwwwwwwwwwwwwwwwwww

てゆか、ふくよかだなぁ。。。(* ̄∇ ̄)

カウンター2006年11月30日 21時15分16秒

かうんたー

カウンターが 888 ですた。すまんそんだけ。w

1万円あったら。。。うまい飯と酒に使うかな。