2006年11月


目次


2006年11月29日


2006年11月28日

has_one :through 経過報告(1)

has_one :throughを作ってて、一応、基本的な使いかたに関しては動くようになったと思う。本家のRevision 5642から分岐したリポジトリをhttp://svn.yugui.jp/svn/has_one_through/trunk/に置いてある。(注: 2007-07-12現在サーバー停止中)

  • has_one :throughな関連をEager loadingしたときの望ましい挙動がよくわからない。
  • Polymorphic Relationshipとの絡みは適当。こんな仕様でよいのかな。
  • 瀧内さんが書いてくれたUnsaved Objectのところはまだ取り込んでない。これが次のタスクかな。

残りの仕様が固まって、それを実装したら本家にパッチを投げる。


2006年11月26日

has_one :through作ってる。

has_one :throughパッチを作ってる訳だけれども。いや、今日は本棚の整理で手一杯だったけど、昨日は作ってた。

ruby-debug便利過ぎ。最初から-rdebugして起動するとフックのせいで無茶苦茶遅い訳だけれども、ruby-debugならブレークしたいところに"debugger"と書いておけばそこまではさくっと走ってくれる。主に想定してるのはRailsアプリケーションっぽいけれども、ARそのもののユニットテストでも、最初にDebugger.start; require 'ruby-debug'しておけば動いてる。

あとの問題は、本家の人達になんて言ったら必要性をアピールできるんだろうということ。

  • :throughは単なるN+1 problemへの解決法じゃない。それはスタイルだ。リレーションシップを明示的にモデル化することで、ある種の望ましいオブジェクト指向を実現するためのスタイルだ。
  • だから、それは単数の場合でも必要なのだ。
  • で、単数のときにはより簡単な記述で書きたいし、より適切なSQLを発行したいよね? と。

通じるのかな。むー。


本棚の整理

本棚を整理した。本の配列は強迫観念の対象なので、それが押しつけてくる制約を満たすように新しい本を配置するのは大変。

本棚を買い足したというのにまだ溢れてる本がある。

* 整理中

難しい。

20061126-1.jpg

20061126-2.jpg

* 完了

結局、入らなかった本は棚の横板の余りを床に敷いて積むしかなかった。

20061126-3.jpg

20061126-4.jpg


2006年11月25日

Assertion × 実装

私も腐女子の端くれとして、どんなものでもカップリングを与えられればストーリーを紡ぎ出す思考回路は持っているわけで。それは何かと困るのでできるだけ日常的な概念はヤオイから切り離すようにしているのだけれど。

うっかり脳内で繋がってしまった。TDDが。もうダメだ。三角測量で変わっていく実装に対するAssertionの嫉妬とか、そんなストーリーが。実装はどう考えても誘い受けです。


2006年11月24日

日経ソフトウエア1月号

日経ソフトウエア2007年1月号に記事を書かせていただきました。いろんなプログラミング言語からその言語の特徴的なところを学んでみようというようなお話の中で、Rubyを担当してます。

日経ソフトウエアの大森さんには最後にはまる1日お付き合いいただいて記事を書いて、なんとも大変御迷惑をお掛けしました。で、大森さんと話して「Rubyに学ぶ『Ruby on Railsの正体』」たらいうどうにもタイトルで気を引こうとする気満々なタイトルになっていますけれど。

Rubyは本当に、昨今のある程度知られた言語たちに比べて真新しい点というのはないと思うんです。言語機能に関してはまつもとさんが常々おっしゃってるとおり「C言語で実装してある処理系の間であれができるこれができるというのを競っても意味がない」ですし。構文もどこかで見掛けたようなのを細かくチューニングしているに過ぎないわけです。殊に、この特集の中でJavaScriptやEiffelと並べられると非常に弱い。でも、チューニングするにあたって、やはりRubyの個性が出てきている筈で、私がRubyを習得するにあたり「こいつ本物のアホだ(褒め言葉)。普通こんなんやらない」と思ったような点をひねくり回してRubyの個性をできるだけ描写しようとしてみました。

Rubyはなー、本当にブロックの終わりがendであることとメソッドがオブジェクトでないこと以外は極めて普通だと思う。逆に、なんで他の手続き型/オブジェクト指向/動的強型付言語はRubyじゃないんだろう。Rubyからその普通じゃない2点を除くとGroovyになるのかもしれないけど。じゃあ、なんで他の言語はGroovyじゃないんだろう。

それより、この特集の見どころはまつもとさんによる総論「複数のプログラミング言語を学ぶ意義」だと思うのですよ。あとは、知ってる人は知ってるでしょうけれども、Design by Contractは大事なのでEiffelも。


2006年11月23日

Django勉強会 Disc 1

Django勉強会Disc 1に行ってきた。

Djangoはまだよく分からないので「寺子屋」で黙々と写経してた。とりあえず、Generic Viewはいいな。

Django AMFのソースを見て、初めてPythonのソースを美しいと思ったよ。少しだけ文化が身についてきたか。

もうね、endとかいらなくね? というのは嘘だけど。RubyはRubyで。

懇親会では、Djangoも含めて最近のTable - Classマッピングをするフレームワークは既存のデータベースを活かして業務アプリを組むには窮屈という話にもなった。でも、私の考えではそれはRDBMSがまだ未熟なんだよ。Dateたんの本では、ViewとTableはもっと透過的でなければいけないって書いてあるし。私がRailsのmigrationにviewをサポートする語彙があるべきと言ってる理由もそれ。viewに透過的に書けるDBMSは良いとしてtriggerでサポートできるならtriggerの設定までして、ORMより上の層からはviewとテープルの区別が付いてはいけない。


2006年11月22日

リビジョン管理システム

開発の速さ優先の態勢であることはリビジョン管理システムを使わない理由にはならんでしょ。と思った経験を思い出したのでメモ。

リビジョン管理システムがあればこそ、いつでも戻れる安心感を背景に大胆に変更してさくさく開発できるのだ。

開発の種類が影響するのは、RCSを使うのか、Subversionか、はたまたSVKか、そういうところ。使わないという選択肢はありえない。


2006年11月21日

JOJO、DB、LOVELESS

はてなのバトル漫画考はおもしろいな。

インフレを必然とせずに、バトル漫画のある意味理想であるところの「なんとなく勝ってるよう見えるほうが勝ち」という描写を合理化すると「言葉による闘争」になるのかもしれない。

まぁ、『LOVELESS』の魅力はそこじゃないんだけどさ。『妖精事件』はまんま巡礼の物語だったけれども、私からみるとがゆんの魅力は登場人物が何かを追い求める巡礼者であることだ。草灯があやし過ぎるのは勿論魅力だけれども。

ちなみに、『ジョジョ』は20代後半〜30代のプログラマさんと話すには必須の話題なので、設定はある程度聞き覚えてるけれども読んだことはない。「これが俺のスタンドだ」で笑えないと色々困るじゃないですか。


Yellow between Red and Green

id:yuki_neko_nyanさんやid:moroさんが言う「仮実装に対するマーカーが欲しい」というのは実際の開発に置ける利便性という意味では分からないではないんだけど、捉え方は私の考えとは違う。

つまり、こういうことだ。



2006年11月20日

ABD飲み会

ABD飲み会を12月3日にやります。 はぶさんをお招きしてABDを中心にデータベースモデリングについて語る飲み会です。

ABDが気になって仕方がない我々Rails系Webアプリケーション開発者は、常々、はぶさんにABDのあれやこれやを聞きたいなぁと思っていたわけですが、はぶさんが「飲み会にでも呼んでくれれば話すよ」といってくださったので開催となったわけです。

ABDの適用範囲がどのあたりなのかはまだ探求段階ですが、多分Webアプリケーションだけということはなくて、非Webな業務アプリケーションは少なくとも部分的に含まれるでしょうし。T字型が好きな方も、ABDが好きな方も、関心のある方はどうぞご参加ください。


2006年11月19日

Rubyの呼び出し可能オブジェクトの比較 (2) - というよりコンテキストの話

前回は各オブジェクトの基本的な特徴を見ただけで終わってしまった。今回はこれらをコンテキストという観点から見てみたい。



言葉

GraphvizをずっとGraphizだと思っていた。

フランクフルト学派とコペンハーゲン学派が何故かごっちゃになってる。


2006年11月18日

居酒屋への要望

この季節はどこの店も高いなぁ。困る困る。

それはそうと、ホワイトボードとプロジェクタがあって、人数分の電源と無線LAN完備の居酒屋ってどこかにないかね。プログラマたちが喜んで通うこと請け合い。無線LANは最近たまにあるけど、なんで居酒屋にはホワイトボードがないのだ。世の中間違っとる。


2006年11月17日

「仮想経済」の世界:仮想と現実の出会い

GLOCOMセミナー「『仮想経済』の世界:仮想と現実の出会い」に行ってきた。

会場は六本木ヒルズのふもとのGLOCOM研究所。最近六本木によく縁があるな。

ve-20061117-1.jpg



Rails勉強会参加申し込み忘れた

締め切られてしまった。申し込んだつもりだったんだが。ここしばらく、個人開発とかその他で頭がいっぱいだったからなー。

昨日もろはしさんに指摘してもらったときにすぐチェックすればよかったんだが。

ま、いいや、開発の時間が足りなかったし。また来月よろしくおながいします。



2006年11月14日

Rubyの呼び出し可能オブジェクトの比較(1)

Rubyにはコード片を表すオブジェクトが複数ある。Method, UnboundMethod, Procである。Continuationは少し違うけど、実行コンテキストを記憶しているオブジェクトという意味では近いものがあるか。『Ruby Way』にはこういういろいろがあることについて「驚くほどのことではありません」と書いてあるけれども私は驚いた。で、これらが微妙に違うのだ。困ったもんだ。いや、便利なのかもしれないが。

それで今回はこれらの概要を眺めてみたいと思う。




オッカムのせいで心霊体験を仕損なった話。

中秋の頃に書いた原稿を公開してなったのを発見したので公開してみる。

--

なんか、懐かしい夢を見た。私の、今思い出したばかりという脚色されてる可能性も高い記憶を頼りにするなら、この夢は幼児期から繰り返し、数回見ている夢の1つ。ストーリーは2つあって、前半は今は覚えてない。後半は天動説的なモチーフによって外惑星を、なぜが外惑星のみを配置した太陽系儀を構成していくような夢。途中から分析的思考がいくらか戻ってきて、夢の中でそれを行使した限りでは、そうだ、たしか、これはNHKスペシャル「地球大紀行」を見て、それに影響を受けて前半の夢の内容をもとにふくらませた夢なのだな。後半の冒頭部に、あの番組のナレーションがかぶってたしな。だとすると、見始めた時期はその辺だ。

それはさておき、夢の中で、途中から明晰夢化して、物語を追っているのとは別の思考の流れが評価したには、これは結構美しい物語なんだわ。いや、それでも夢の中の判断だから当てにならないけど。 明晰夢は久しぶりだな。



2006年11月13日


Seasar Conference 2006 Autumn (1)

Seasar Conferenceに行ってきた。会場は法政大学ボアソナードタワー26F。

飯田橋駅構内でまた道に迷った。春に一度来た場所なのに。

会場は見晴らしがよい。

seasar-conf-20061112-1.jpg



2006年11月10日

なるほどautotestは素晴らしい

滝内さんに教わったZenTestのautotestはとても便利。使ってみたら今までテストを実行するのに余計な手間暇を書けていたことを実感した。TDDではテストは楽しいわけだけれども、それはテストケースを書いたり結果を見たりするのが楽しいだけで、やっぱり実行(たとえrakeって打つだけでも)は面倒だったんだ。今まで気づいてなかった。

そうなると、あとはZenSpecが欲しいわけだれども。

そして、autotestを走らせておくためにディスプレイもう一台欲しいわけだれども。安いのを探してこようかな。


2006年11月08日

Rubyの変数スコープがキモい件

記事を書くにあたってRubyの変数スコープを考えれば考える程気持ち悪く思えてくる。

ダイナミックスコープは慣れれば後置修飾子以外はあまり困らないんだけど、やっぱりブロック変数が気持ち悪すぎる。それから、制御構文はスコープを導入しないのにブロックは導入して、class/defに至っては外側のスコープを継承しないっていうのが気持ち悪い。

まぁ、これは関数ベースの発想に毒され過ぎなんだけど。Rubyは第一にはオブジェクト指向であって、非オブジェクト的構造化言語の性質は(Kernelモジュールとかで)シミュレートされているだけだし、関数型言語の性質はほんのり残ってるだけ。関数型っていう意味であればPythonのほうがまだ近いよね。

Rubyはクラスベースのオブジェクト指向言語なんだから、classやdefが特権的であって、そこでまったく新しいスコープが入るのはまぁ、わからんでもない。でもなー、クラス定義中のローカル変数をメソッドが参照できるとやっぱりうれしいんだけどなー。いや、define_methodとかClass.newはなしの方向で。

どうにも気持ち悪いから同じコードをとりあえずGaucheとHaskellで書いてみたらすっきりした。しばらくGaucheの人になります。

ところで、pythonistaとかrubyistのgauche(scheme)版の単語はなんて言うんだろ?


TS-jade 915Gの再構成

メインマシンに使ってるTS-jade 915Gをちょっといじってみた。

  • ハードディスクを買ってきて追加。
  • OSのディストリビューションをUbuntuに変更
  • Xgl/Berylを入れた


2006年11月05日

肉が好き

いや、正直な話、Java VMは大好き。Javaの構文は、RubyやSmallTalkやC#を見るとはもう少し何とかならんかと思ってしまうけれど。でも、Tiger以降のAnnotationを活用する記述は好きだしなー。何より、Java VMよりの(Javaとしては)低水準のレイヤーをごりごり書くのは楽しいし。

そうして考えてみると、Windowsも、徹底してGUIを使おうとする指向の割にAppleと比べると洗練されてないのが嫌いなだけ。cygwin入れれば大概の不満はなくなるし。Win32 APIは手に馴染んでるから違和感ないし。COMは好きだ。COMは。

私の不満は結局皮一枚。肉より下は、気に入ってる。

Blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

follow yugui at http://twitter.com

© Yugui

Powered by Movable Type 3.2-ja-2