「予想どおりに不合理」を読んだ

面白いんだけど、その理由をうまく説明することができない。あと、訳本なのでちょっとくどい。伝統的な経済学ってのをきちんと理解してないから行動経済学というものがうまく定義できないだけかもしれない。だってこっちのほうが身の回りにありすぎるから。

ProductName 予想どおりに不合理[増補版]
ダン アリエリー
早川書房 / 2100円 ( 2010-10-22 )


  • わたしたちはものごとをなんでも比べたがるが、それだけではなく、比べやすいものを一生懸命に比べて、比べにくいものは無視する傾向がある。
  • 創薬のプロジェクトでよくある事象だ
  • 自分が何も支払わないときに、もっとも幸福度が高い
  • 薔薇の花も一度ピークが過ぎてしまうともうもとに戻せないように、社会規範は一度でも市場規範に負けるとまず戻ってこない。
  • ブランドの連想こそが、コカ・コーラを市場で優位に立たせている
  • 超自我
  • 現金のための不正と、現金から一歩離れたもののための不正とでは大きな違いが見られる
  • 文脈効果

プリンタを新しく購入した

そろそろ年賀状でも印刷するかと、一年ぶりにプリンタを引っ張り出してきたら壊れて動かなくなってたが、PM-G800を7年近く使っていたのでむしろよく動いていたというべきか。

で、新しいのを選んで買ったら、速いし静かだし綺麗なのでびっくりした。あとプリンタ自体の価格も結構下がっているのね。

そのうえ無線LAN経由で印刷できるのでどのマシンからでも印刷できるし、さらにコピーもできるので結構重宝しそうな感じ。

Faxとしては使わないので置き場所は色々選べるが、なかなか大きいので意外にバッチリな置き場所が見いだせずに、現在は物置として使っている部屋の隅っこに電源入れて置いてある(それでもプリント出来るので無線LANはすばらしい)。

ちなみに今までずっとエプソンだったので、今回もエプソンでも良かったんだけどね。

ビオデリのオードブルとよこぜきのロゼスパークリングワイン

昨晩の話

子供はクリスマス会でもらったアイテムを付けてた。ウサミミはよくわからんが、なんかもらったらしくて気に入ってつけてた。

1293195753

今年はビオデリのクリスマスオードブルを注文してみた。野菜が美味い。ビオス行きたいなー。N君誘って一度行ってこようかな。

1293195740 1293195759

送られてきた生ハム

1293195747

ヨコゼキで購入したスパークリングワイン。

1293195773

そういえば、ヨコゼキで、妙見さんのご主人にばったり遭遇。今度またふぐでもいただきに行こう。

満を持して7-11で予約したマカロンツリー。僕は予約段階から「えーコンビニのケーキ?クオリティ低いんじゃないの〜」とか言ってたんだけど、「3.4Kも取るんだからそれなりの味だろう」というU隊長の主張。

1293195779 1293195734

マカロンイマイチとかいって凹んでた。僕は所詮コンビニとか思っていたので、まぁこんなもんかと思っていたが、U隊長的には、想像をはるかに超えた低CPだったらしい。AKB料金が1000円ほど含まれていて2K位のクオリティということで納得した感じ。

子供たちはマカロンをぺたぺた貼りつけて楽しそうだったのでOKじゃないかな。

入門Gitを読み直している

最近Flaskで色々作っているので、Gitもブランチ切りまくって色々試している。

そんなわけで入門Gitを読み直しているのだ(4章から8章はいい内容だ)。あとコミットの単位を論理的に切り分けるとかコミットログの書き方も本書に沿って実践しつつある。

ProductName 入門Git
濱野 純(Junio C Hamano)
秀和システム / ¥ 2,310 ( 2009-09-19 )


Luv (sic) Pt.5

これは聴いとくべき

Blogos & Pathos

ProductName First Collection Hydeout Productions
ハイドアウト・プロダクションズ
Hydeout Productions / ¥ 2,500 ( 2006-11-15 )


ProductName hydeout productions 2nd Collections
オムニバス
インディーズ・メーカー / ¥ 3,000 ( 2007-11-11 )


amazonのMP3のサービスも気になるんだけどsomaはサブスクリプション購入しているし、drum'n'bassの曲はarenaから買っちゃうから使う機会があまりないんだよな。

クルサーニ 富士店

ちょっと気になっていたクルサーニに行ってきた。

1293100306

店内はきれいで明るい。カレーはまろやか目だけど美味しかった。ほうれん草ベースの方はライスのほうがあっているかも。

1293100308

そのうち、また行きたい。

タグのネットワーク

sofでグラフ(ネットワーク)を描くためのjavascriptライブラリを見つけたので調べていたら、twitterCytoscapewebを教えてもらったので、cytoscape使い的にはそっちで色々試してからCytoscapewebで描画できるようにすれば効率的であることに気づき、自分のBlogのタグネットワークを描かせてみることにした。

が、色々つまづいて結局そこまでは至らなかったという。まず、networkxはutf8の属性含んだネットワークをgmlで出力仕様とするとエラーはいた。

しょうがないのでigraphでやるかと思ったらigraphの場合はネットワークを組み立てる場合には結構めんどくさかった(隣接行列から構築する場合には楽だけど)基本的に行列用意しておいて読み込ませるのはいいんだけど、sqlalchemyからオブジェクトをひっぱりつつネットワークを組み立てていくってのはnetworkxのほうがやりやすいようだ。 致命的だったのが、mac osxだとsaveしようとするとBus errorが出てセーブできなかった。

心が折れたので、igraphのプロットのスクリーンショット。

描かせたネットワークは僕のブログのエントリに入ってたタグ名をその頻度でノードの半径が大きくなるようにして、エッジは同じエントリに出現した場合(いわゆる共起)に貼るようにしたもの。

本当はこれをベースにして共起頻度の閾値を決めたり、ノードに最後に現れた日の情報を持たせて古いタグは透明度あげたりしようと思っているので、週末にでもSIFで出力してcytoscapeで綺麗にして適当なフォーマットでエクスポートしてcytoscapewebで見れるようにしてみよう。

タグのネットワーク

ちなみにpythonでigraphをいじるのは下のチュートリアルが良かった。

日本語で書籍になっているのはこれ。

ProductName ネットワーク分析 (Rで学ぶデータサイエンス 8)
鈴木 努
共立出版 / ¥ 3,465 ( 2009-09-25 )


from database import db_session
from models import Entry, Tag
from math import log
import igraph

entries = db_session.query(Entry).filter(Entry.publish == 1).order_by(Entry.pubdate.desc()).all()

g=igraph.Graph()

all_tags = []

for entry in entries:
    tags = [tag for tag in entry.tags]
    i = 0
    for tag in tags:
        if tag.name not in all_tags:
            all_tags.append(tag.name)

taghash = dict([(tag,i) for i,tag in enumerate(all_tags)])
tag_count = [0] * len(all_tags)

g.add_vertices(len(all_tags)-1)
g.vs["name"] = all_tags

all_edges = []
for entry in entries:
    tags = [tag for tag in entry.tags]
    num_tags = len(tags)
    if num_tags > 1:
        for i in range(num_tags-1):
            itag = tags[i].name
            tag_count[taghash[itag]] += 1
            for j in range(i+1,num_tags):
                jtag = tags[j].name
                tag_count[taghash[jtag]] += 1
                edge = (taghash[itag],taghash[jtag])
                if edge not in all_edges:
                    all_edges.append(edge)
    else:
        tag_count[taghash[tags[0].name]] += 1

vsizes = [int(log(tc))*5 + 10 for tc in tag_count]

g.add_edges(all_edges)

layout = g.layout("kk")
g.vs["label"] = g.vs["name"]

igraph.plot(g,layout=layout, bbox = (800, 600), edge_color = "#777777",\
vertex_label_size=10, vertex_size=vsizes, vertex_color="#ccff33")
#g.write_gml("tag_network.gml")

マーケットインとかプロダクトアウト

最近、社内の会議とか打ち合わせをしているとげんなりする事が多い。特に多いのが、マインドがプロダクトアウトすぎるということだ。

もともと、なんでゴールから逆算して考えるってことができないのかなぁと常々不思議だったのだが、プロダクトアウトの視点しか知らないからなんだろうなぁと気づいて納得した。

そもそも研究者は、頑張って成果物を出してみて、その後それが役に立つか評価してもらおうという思考のヒトが多いが、それは新しい物をつくるからであって、me-too drugを作っている労働者には全く必要ない思考なのではないか?むしろ、マーケットインの視点ありきでおまけというかタンポポ的にプロダクトアウト色をだしていけばいいんじゃないかなと思った。

逆の立場だったら、あんたの成果物買いたいと思うの?って聞いたら、うーんとか首捻っちゃうんだもん、不思議だよなぁ。

なんかマーケティングの本とか薦めてあげないとあかんよなぁと思ったけど、自分は普通に知っているので、実際どういう本を読んで勉強してもらえばいいかわかんなくて悩んでいる。

もしドラみたいなのあればいいと思うんだけどなぁ。僕はもしドラ読んだことないんだけど、もしドラには標記の内容に触れていますか?

Flaskでカスタムフィルターを使う

FlaskでJinja2のカスタムをフィルターを使いたい。具体的にはテンプレート中で{{ URL | urlencode }}がやりたい。

urlエンコードはwerkzeug.urlsのurl_quote_plusをつかえばいい。

>>> from werkzeug.urls import url_quote_plus
>>> url_quote_plus('http://www.kzfmix.com')
'http%3A%2F%2Fwww.kzfmix.com'

Jinja2だとEnvironmentオブジェクトに新しいフィルターを突っ込めばいい

>>> from jinja2 import Environment, PackageLorder
>>> env = Environment(loader=PackageLoader('testapp', 'templates'))
>>> env.filters['urlencode'] = url_quote_plus
>>> template = env.get_template('template.txt')
>>> template.render(url='http://www.kzfmix.com')
u'URL: http%3A%2F%2Fwww.kzfmix.com'

Flaskの場合にはjinja_envってのが用意されているので、ここからfiltersに突っ込めばいいだけだった。

from flask import Flask,render_template
from werkzeug.urls import url_quote_plus

app = Flask(__name__)

app.jinja_env.filters['urlencode'] = url_quote_plus

Registering Filtersに書いてあった。

ふじ山焼き

前から気になっていたので娘の幼稚園の送り迎えの帰りに寄ってみた。

1293010611

要するにたい焼きの富士山型

1293010614

クリームとカレーはなかなかよかったけど、ピザっぽいのはポークビッツがまるごと入っていて個人的にはイマイチだった。息子はうまそうにバクバク食べてたけど。