毘沙門天の達磨祭り

今年一年無事に過ごせたということで、達磨に目を入れた。

1297684638

岳鉄の吉原本町駅からJR吉原まで。その後テクテクと歩きつつ屋台のリンゴ飴とかチョコバナナを食べながら妙法寺まで。

1297684644 1297684651

娘とU隊長の要望により今年は違う色。

1297684660

ちなみに緑は健康、紫は人間関係らしい。

ま、僕にはどちらも大切なファクターになりそうだ。

こどもの国でそり遊び

今年は思ったよりも雪が降らないような気がするが、週末は雪遊びチャンスなので行ってきた。ソリ持参で入り口手前の丘で遊んできた。

なんで入園しないかというと、雪遊び広場までがやたら遠いらしくて不評なんだそうだ。単にそれだけ。

そり遊び

1297583845 1297583851

娘は雪だるま作ったりとか壊したりとか創造と破壊系の遊びが好きなのかなぁ。

1297583857 1297583869

帰りは定番のきわだ路で。山芋がつなぎなので御厨系なのかな、金太郎も山芋をつなぎに使ってますよね。

寒かったので肉うどんと月見そば。

1297583863 1297583883

揚げまんじゅうは外せない。

1297583877

三連休はこれで終り

javascriptの等値演算子(==)と同値演算子(===)

昨日の読書会で、等値演算子(==)と同値演算子(===)をきちんと理解していないことが判明したので、サイ本を読んでみた。

Javascriptは、数値、文字列、論理値が等しいかどうかを「値により」判定します 一方オブジェクトや配列、関数の場合には「参照により」判定します

オブジェクト、配列、関数の場合には参照により判断されるので

$ ./shell 
V8 version 3.0.6.1
> [1,2,3] == [1,2,3]
false
> [1,2,3] === [1,2,3]
false
> var a = b = [1,2,3]
> a == b
true
> a === b
true

同値演算子は型変換を行わないで値が等しいかどうかを評価するが、等値演算子は2つのオペランドの型が異なる場合には型変換を行う。

同値は演算子は直感に対して素直なのでいいとして、等値は型が異なる場合に次のルールーで型変換をする

  • どちらか一方が数値で他方が文字列の場合、文字列を数値に変換してから比較
  • どちらか一方がtrueの場合trueを1に、falseの場合には0に変換してから比較
  • オブジェクトと数値の比較の場合オブジェクトを基本形に変換してから比較

改めてJGPのB1(p.127)を見てみる。

> '' == '0'
false
> '' == 0 
true
> 0 == '0'   
true

最初の例は文字列の比較なのでfalse。二番目は文字列と数字の比較で型変換されて''はfalseなので数値に変換されると0になるのでtrue。最後は文字列'0'が数値0に変換されて比較されるのでtrueか。

ProductName JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
Douglas Crockford
オライリージャパン / 1890円 ( 2008-12-22 )


ProductName JavaScript 第5版
David Flanagan
オライリー・ジャパン / 4410円 ( 2007-08-14 )


オリケシって凄く疲れる

娘の誕生日プレゼントのオリケシなんだけど、電子レンジで温めると1つの消しゴムになるらしい。

1297577197 1297577191

対象年齢が8歳らしく5歳の娘には非常に緻密な作業だ、これは。

ProductName オリケシ キュートパーラーセット

バンダイ / 2163円 ( 2009-03-20 )


第一回Javascript読書会に参加した

皆様お疲れさまでした。今回から新しく参加した人が結構いたので面白かったですね。

ちなみに資料はluminescenceで作りました。 YAML+MarkDownで記述できるため、バージョン管理システムで管理できて便利。ソースはこれ

おやつはC-DOLPHINのロールケーキ

1297551355

JGPも5章終わったら付録以外は消化する感じになるから、どっちの方向に進むのか考え始めないといけない気がするなぁ。

懇親会はKEIKO。一度前を通ったことはあるが入るのは初めて。

1297551353

ソフトドリンクの器がヤバめ(量が多い)。

1297551350 1297551348

創作パスタが美味かった。

1297551346

それからPythonに興味ある人が多かったのでいい流れかも。GAEと絡めてなんかやりたいですね。「みんなのPython」は良いんだけど今読んでるJGPと被るような気がするからなぁ、どうなんでしょう?

吉原バルに行ってきた

吉原バルとは、まぁつまるところは強制はしご酒のことですな。

当日は生憎の雨でちと寒かった。18時に@bg7860と待ち合わせしてチケット受け取ったら、隣で樽酒ふるまってたので頂いた。ちょうど小池さんとも会った。

はせ川 -> どんぶり割烹佐重 -> 鯛屋 -> Sofarii -> プレアーテ

の順にまわった。当日のそれぞれの店の一品の内容は貼り出されていたのだけど、あんまり見てないというか、ぶらぶらしながら目に入った店に入った。

ちなみに、はせ川、佐重、プレアーテは初めての店

1297465883 1297465897

はせ川

一件目からだし巻きをつまみながら酒を飲むという、いい流れを引き寄せた。掴みとしてはいい感じ。

1297465901 1297465886 1297465908

佐重

二軒目にはせ川のとなりの魚民にはいろうとしたが一杯だったので、アーケード街をぶらぶら歩くモードで佐重へ。

磯自慢と味噌焼きそば

1297465905 1297465881

味噌焼きそばはガーリックチップを混ぜて食べるとカリカリとした食感が加わって美味しいが、結構こってりしているので、磯自慢よりはビールのほうが合うかな。

鯛屋

何故かおにぎり。燗酒やりながら。

1297465894

sofarii

ソファリのゆったり感最高。夜ノートパソコン抱えて酒飲みコーディングとかしてみたい。

1297465892

プレアーテ

@bg7860の岳鉄の時間があるので、駅の方に戻りつつプレアーテでしめた。

1297465888

おまけ

帰り道に第一旭でトラップされた。京都にいたときは新福でしめることが多かったけどな。

1297465899 1297465890

初めての試みらしくお店の方も四苦八苦されていたようだが、知らない店にも気軽に入れて楽しかったので次回も開催されればいいなぁ。

Via / 田中フミヤ

ツレが田中フミヤ大好きだったので大阪のロケッツによく行った。

フロアーだともってかれるって表現するけど、DJのほうは引っ張ってくのね。グルーブ気持ちいい。

[なにがイェーイなんだろ]「その場にいないとわかんないよ」っていうコメントが流れていったとこが一番面白かった。

ProductName Via [DVD]
田中フミヤ
インディーズ・メーカー / ?円 ( 2007-09-28 )


コレ欲しいなぁ。

ICICLE - DREADNAUGHT FT. SP:MC

icicleのこの曲かっこいいな。

ICICLE - DREADNAUGHT FT. SP:MC (OFFICIAL VIDEO)

ところで、なんでガンダムなんだろうか?

SQLAlchemyで複数のカラムにUnique制約をかける

declarativeで二つのカラムに対してユニーク制約をかけたい時には__table_args__を使う

class Music(Base):
    __tablename__ = 'music'
    __table_args__ = (UniqueConstraint('title','artist'),{})
    id = Column(Integer, primary_key=True)
    title  = Column(String(128))
    artist = Column(String(128))

class Graph(Base):
    __tablename__ = 'graph'
    __table_args__ = (UniqueConstraint('head','tail'),{})
    id = Column(Integer, primary_key=True)
    head = Column(Integer, ForeignKey('music.id'))
    tail = Column(Integer, ForeignKey('music.id'))

実際に作られたテーブルのスキーマ

CREATE TABLE graph (
    id INTEGER NOT NULL, 
    head INTEGER, 
    tail INTEGER, 
    PRIMARY KEY (id), 
     FOREIGN KEY(head) REFERENCES music (id), 
     UNIQUE (head, tail), 
     FOREIGN KEY(tail) REFERENCES music (id)
);
CREATE TABLE music (
    id INTEGER NOT NULL, 
    title VARCHAR(128), 
    artist VARCHAR(128), 
    PRIMARY KEY (id), 
     UNIQUE (title, artist)
);