2003-02-27 (木) Edit
■ [Ruby] DP/TemplateMethod
つーわけで、たどたどしくも実装。
# Template
class Language
private
def initialize() end
# to be inherited
protected
def first() end
def second() end
def third() end
# Template Method
public
def count
puts "=== #{self.class} ==="
first;second;third
end
end
# English
class English < Language
def first
puts("ONE")
end
def second
puts("TWO")
end
def third
puts("THREE")
end
end
# Japanese
class Japanese < Language
def first
puts("いーち")
end
def second
puts("にーい")
end
def third
puts("さーん")
end
end
# Client
eng = English.new
eng.count
ja = Japanese.new
ja.count
ええとですね、言語っていうクラスがありまして、そいつを継承している「英語クラス」「日本語クラス」がありまして、そいつらに「数を数えろや!」って言ったら、「1、2、3の順番で」数を数えます。
合ってるかどうかよく分からん。以下の点も不明やし。
- Languageクラスをどうやったら抽象化できるんかな
- オーバーライド不可(Javaでいうfinal)ってのはあるのかな
- Clientの動作はコレでいいのかしらん
- initialize()はデフォでprivateだったという罠
- だからLanguageのprivateは意味ナシ
- クラス別にファイルを分割したら、"uninitialized constant" というエラーが。これなんだろか。
整理してからwikiに移そう。
■ 動的言語と静的言語(2)
たださんからのツッコミですが、『Rubyアプリケーションプログラミング』に、まつもとさんのコラムとして載っていました(p.479)。
これによると、
「動的」とは「プログラムの実行時に決まる」という意味で、「静的」とはその逆、つまり「プログラムを実行しなくても、そのプログラムを見るだけで決定できる」という意味です。
とあります。
これだけではちょっとよく分からなかったんですが、静的言語のJavaも明示的なキャストをする局面が多くあるという記述を読んで、なんとなぁ〜く分かりました。
■ オーディオBlogとMoblogが普及のきざし
今週のTVブロスに割と面白い記事が載っていて、それは、blog界隈には「一次ソースってのが少ないよね」というものでした。「あのサイトおもしろいぜー」つってぐるぐる廻るだけで、けっこう「狭い」と。その点、実際にやってみることでちゃーんと一次ソースになってるデイリーポータル Zは面白いよねーつってるんだけど、たしかにね。あれは面白いですよねー。
ただ、一次ソース「だから」面白いなんてこたぁーないってことに気をつけておかないといかんよね。例えば上記のオーディオBlogなんて、んー、どうなんだろ。たしかに一次ソースだが、んなもんおもしろいか? 中にはおもしろいものもあるかもしれんが、おそらく大部分はおもしろくないだろ?
tDiaryを使ってればよく分かるんだが、一次ソースうんぬんよりも、ツッコミツッコマレってのが重要なんじゃないかなあ? 日記コミュニケーションを加速するって、ほんとウマいこと言ってると思います。そこに「オモシロさ」があるような?気がするYO。
■ 日経テレコン21、機能・デザイン刷新
メモです。
■ [Java] Jakarta Commons - Components via textfile.org
Javarなひとたちは口をそろえて「Commonsいいよ!」とか言ってますよね。時間をみて見てみようっと。
■ [ゲーム] 怪盗スライ・クーパーの広告
おもしろいっすね。こういうのって、楽しいね。オヤジビジネスを超越した企業間の融合にこそ、勝機がありですよ。きっと。どうですか。コンサルタントさん。
■ [Ruby] DP/FactryMethod
家に帰ってから結城さんの本を読もう。でもとりあえず。
# Product
class Book
def getName
return self.class
end
end
# ConcretePrduct
class EnglishBook < Book
end
# Creater
class Language
def create
return prepare
end
protected
def prepare() end
end
# ConcreteCreater
class English < Language
def prepare
EnglishBook.new
end
end
# Client
lang = English.new
book = lang.create
puts book.getName
えとですね、TemplateMethodの続きみたいにしてて、英語クラスを作ったら、そいつに「作れ」って投げると、英語本が返ってくるという感じです。細かいところで間違い多いと思われ。
で、今日気づいたのは、Clientの動作の部分。昨日は、英語クラスが返ってくるから「eng」なんていう変数を用意していたんだけど、そうじゃあなくて、「lang」って変数名にすると、なんかこう、抽象的でよくね?
同様に「eng_book」じゃなくて「book」に。これで親クラスが無いよぉー!つって泣かなくて済みそう。
■ [本] 個人と組織のナレッジイノベーション
会社に置いてある販促品なんですが、午前中に時間があったのでパラパラと。で、読んでみてビックリ。けっこう良い。これ。でも、薄いし(物理的に)、2001年発行なんでちょっと古いし、値段も高いのよね。たぶん自分では買わないと思う。
以下、メモ
- SECI理論:よく企業が間違えるのは、いきなりCに飛んじゃうのよね。
- MSはBSCを導入している
- HPのガレージのルールはかなり良い:荻窪のHPに行った時、壁に貼ってあったよ。
- 機能分化よりもプロセス(もしくはプロジェクト)分化:ナレッジはプロセスに宿るんだって。これって、手続き型からオブジェクト指向へっていうのと似ている気がする。
■ 略語
前の部署では、マーケティング担当のことを「MKT」と略していたんだけど、ここでは「MRK」と略されている。ここの略のほうが正しいと思う。
■ Amazonのオススメ機能はエピファニーという会社の製品
マジっすか。製品なんすか。あれ。スッゲエなあ。
2004-02-27 (金) Edit
■ Itemに原価を持たせるか否か。
takaiさんのツッコミはもっともなこと。無い知恵を出して答えてみるよ。
いちおうぼくもそこは考えていて、「initializeする」を「仕入れる」と仮定して、cost(原価)を渡すようにしてますた。ただ、それだとそのオブジェクトが先に売れていく(FIFO)わけでもないから、たしかに、問題ありますね。
原価の問い合わせ先は、やはりItemでいいと思います。厳密には、Socks < Item に値を聞くことになると思います。ただし、オブジェクト単位でその値を「保持」すると問題です。時間軸に沿って(単位個数あたりの)原価は変わるということを踏まえる必要がありますな。
ちと考えてみます。
- 4月に靴下100足を10,000円で仕入れ
- 10月に靴下100足を20,000円で仕入れ
という状況があった場合、「この年」の仕入れにかかった費用は「30,000円」で、商品(靴下)は「200足」となります。つーことは、仕入れ値の単価は「150円」になります。
- 4月の原価は100円
- 10月の原価は150円
で、これを管理するオブジェクトに Socks < Item クラスが問い合わせするという形が良いかもしれません。で、どうでしょう。的外れなこと言ってたらズビバゼン。
あ、いちいち収益で計算するのって面倒じゃね?というのもありますが、途中で「これ売るとなんぼ儲かんねん」と把握するのは、それはそれで重要かな、と。
いや、まだまだ勉強せねば。もう4ヶ月経ったかと。
■ はてなが東京へ移転「夏までには10万ユーザーを達成したい」 - CNET Japan
へえ。株式会社化だって。
■ Oh No! DTO!
なんだってーーーー!!
って、んなアホな。たしかに myVal = other.val と使えるのはイイ。getter/setterウゼーってのもイイ。だけど、データストラクチャだろうがなんだろーが、other.val = 1 って変えられるってのは問題じゃね?漏れの読み違いか?
■ なぜ失敗するのか
ぼくは失敗するとよく周りのせいにするのだが(ダメじゃん)、いちおうそれにも根拠があって、ある一定の環境下では、失敗は必然的に発生するからだ。いわゆるシステム理論というやつですか(違う)。
失敗したその人を責めるのは簡単。次から起こらないように気をつけようと言うだけなのも、これまた簡単(一見、優しそうに見えるが、何も解決しておらぬ)。失敗の状況(つまり周りのせい)を変えるのが一番なのだ。
それが変えられなければ、その失敗は許容だと思って諦めてもらいたい。
とかなんとか。PofEAAの資料が間に合わなかったら申し訳ない(これか)。
■ 足袋4足万引き、経営者死なせた17歳少年に懲役10年
足袋4足でいくらになるのかと。3足ならいくらになるのかと。
■ アナパタ勉強会報告ページ
以前はナニコレって感じだったけど、今更興味を持ったりして。ぼちぼち読んで行きたく。
■ orkut祭り
今日になって友達がドカドカ増えた。LobsterCommunityも出来ておったので入ってみた。発音は「オーカット」だということをはじめて知った。
■ [UML] http://www.phruby.com/
UML2.0用のVisoステンシルがあると聞いたんだが、アクセスできない。
■ ツッコミっぱなし
さいきんは bulkfeeds でウラウラ回っているので、「初めて行く → ツッコむ → 逃げる → もう行かない(行けない)」というウェブロが増えてきました。ここは開き直って、おらツッコミっぱなしするけんのゥ、とココに宣言します。
2005-02-27 (日) Edit
■ [映画]
ドッペルゲンガー [DVD](黒沢清/古澤健)
役所広司が2人って……『ガイアの夜明け』かよ。
なんつーかなあ、ドッペルゲンガーって言い切っちゃうとなんかツマんないよなあ。ドッペルゲンガーの存在が役所広司の分だけだったらもちっと良かったのかもしれないけど、永作の弟の分は必要ないなぁ。あれが存在していると、なんか全部がどっちらけな感じがするよ(あれがOKだと、みんなのドッペルゲンガーも存在しちゃうってことじゃん、身も蓋もない)。
そのほか気になったことは、以下の通り。
- エンジニアが自己満足だけでモノを作成するとは思えない。
- 役所広司がドッペルゲンガーと話してた喫茶店は、家の近所のお店だった。
- おまけに入っているVFXメイキングが面白い。ピンクの全身タイツが機械を動かしている!
2006-02-27 (月) Edit
■ [Rails] rescue_action_in_public(exception)
むーこんな便利なものがあったのか。 AWDwR邦訳スゴス(英語版で読み落としていたともいう)。
コントローラで例外がでたら「コントローラ内で rescue しないで」もrescue_action_in_public に例外が渡る。あとは、メソッド内で判別。 controller/application.rb でオーバーライドしておく感じ。
あーじゃあ、find でいいんじゃん。
それと、productionじゃないと動かない。
2007-02-27 (火) Edit
2009-02-27 (金) Edit
■ [映画]
龍が如く~序章~ [DVD]
舟木の演技が案外イイ!! 作品としてはどうでもいい内容。
■
SPACED ~俺たちルームシェアリング~ DVD-BOX
とりあえず1枚目(3話まで)。おもしろかったなあ。イギリスのコメディはマッチョが出てこないのがいい。ちょっと頭のおかしい人たちばかりなのが生活感があっていい。
問題発見プロフェッショナル―「構想力と分析力」(斎藤 嘉則)
1 proprog [「動的」と「静的」の違いの説明がとても分かりやすかったので、引用・リンクさせていただきました。http://prog..]